From RAG to Agentic Chatbots
Cowley built a RAG chatbot for Graph Academy in 2023. He split documentation into chunks, created vector embeddings, and deployed a chat interface. The results were coherent but useless. When a database instance failed to spin up, the chatbot returned long-winded pre-canned advice that was technically accurate but did not solve the problem. Cowley quietly disabled it. Nobody noticed. In 2025 he rebuilt it with tool calls. The agent could check the database instance, verify if it was running, and provision a new one. It also accessed the user’s course, language, and identity to give tailored debugging instructions.
Transparency: Streaming Agent Reasoning
As agent flows grow longer, users need to see what is happening. Cowley gave every tool access to response objects that update the UI in real time. The backend streams events using server-sent events (SSE). Each event has a type and data: plain text or JSON. The front end uses a chain of if statements to handle reasoning starts, tool call starts and ends, and final responses. Users see the agent’s chain of reasoning, the tools it called, and how it built the answer. This mirrors tools like Cursor that show thoughts as they happen.
Adaptability: Replacing Forms with Conversations
Cowley replaced a long onboarding form with a conversational agent. In the Neo4j Fundamentals course, the agent asks the user to describe the problem they want to solve. It hands off to a sub-agent that extracts nouns and verbs and builds a graph data model. The agent learns the user’s job title, industry, and experience implicitly from the conversation. The old form asked for all that upfront and put people off. Since moving to this adaptive model, enrollment lifted 5-10%.
Serendipity and MCP: Meeting Users Where They Are
Cowley argues UIs should answer questions the user did not know to ask. On Graph Academy, when a user provides feedback, the system analyzes it in the background. If the user did not understand a concept, the agent offers clarification. This removes a barrier and also reveals gaps in the content. Cowley then demoed an MCP server for Graph Academy. It exposes seven tools: courses, lessons, prompt templates, and more. A user can ask an MCP client to build a Neo4j app, and the agent selects content, generates a data model, seeds the database, and builds the application in a couple of minutes.
Q&A
Shouldn’t you restrict agent access so users actually learn instead of asking the agent to do it for them? Cowley sees two types of learners: those who want guided workshops and those who just want to build at hackathons. As long as the user ends up with a working solution, the company’s job is done. ▶ Watch (22:13)
Notable Quotes
I quietly disabled it. And I don’t think anybody noticed. Adam Cowley · ▶ Watch (6:25)
the role of the UI isn’t really to uh to to get in the way. Um it’s not for us to go down, you know, a predefined path. It’s it’s for us to guide the thinking. Adam Cowley · ▶ Watch (21:30)
we’ve seen like a 5 10% uplift in the uh in in enrollment Adam Cowley · ▶ Watch (13:18)
Key Takeaways
- Replace rigid RAG chatbots with tool-calling agents that act on the user’s behalf.
- Stream agent reasoning via SSE events to build user trust and understanding.
- Use adaptive conversations to replace lengthy onboarding forms, boosting enrollment.
About the Speaker(s)
Adam Cowley is a multi-disciplinary developer with over 20 years of experience building products that help people learn and grow. Currently Manager of Developer Education at Neo4j, he leads the team behind GraphAcademy, Neo4j’s free learning platform.