Skip to main content
create-context-graph supports 8 agent frameworks. Each generates a different agent.py implementation while sharing the same FastAPI backend, Neo4j client, and Next.js frontend. This page helps you pick the right one.

Comparison table

Full streaming means text tokens stream to the browser as they’re generated, and tool calls appear in real-time in the timeline. Tools-only streaming means tool call events stream in real-time, but the final text response arrives all at once after the agent completes.

Choosing a framework

Both offer full token-by-token text streaming, excellent tool execution, and native async/await support. They are the default choices for new projects.PydanticAI adds type-safe tool definitions using Pydantic models and RunContext, making tool parameters explicit and validated at the Python type system level.Claude Agent SDK provides the most direct Anthropic integration with a straightforward agentic loop.
If you’re already using OpenAI’s API and models, this framework integrates naturally using @function_tool decorators and Runner.run() / Runner.run_streamed().
Broad semantic queries (e.g., “who are the top players?”) may return empty results because the text-matching tools require specific search terms. This is a characteristic of the OpenAI tool-call pattern, not a bug.
An OPENAI_API_KEY is required. The CLI will warn you if it is not set.
If you’re building within the LangChain ecosystem and want access to LangChain’s tool ecosystem, agent memory integrations, and LangSmith observability, LangGraph is the right choice.The generated agent uses create_react_agent() and graph.astream_events() for full streaming.
CrewAI’s Agent + Task + Crew paradigm is designed for multi-agent collaboration. The generated template uses a single agent, but you can extend it into multi-agent crews for complex, role-based workflows.CrewAI runs synchronously in a worker thread via asyncio.to_thread(). Tool calls bridge back to the async event loop using asyncio.run_coroutine_threadsafe(), which is handled automatically in the generated code.
A lightweight, no-framework approach that uses the Anthropic API directly. It implements a custom @register_tool registry and a bounded agentic loop (maximum 15 iterations) so you can see exactly how tool-use cycles work under the hood.Good for teams who want to own the agentic loop code without a framework abstraction on top.
Uses Google’s Gemini models via the Agent Development Kit (ADK). Requires a separate GOOGLE_API_KEY — the CLI will warn you if it is not set.Best if you’re building within the Google Cloud ecosystem. Uses FunctionTool calling and runner.run_async() for full streaming.
Uses Anthropic’s Claude model via the Strands SDK with @tool decorators. Like CrewAI, Strands is synchronous and runs in a worker thread, so streaming is tools-only — real-time tool call events with text arriving at the end.

Streaming behavior in detail

PydanticAI, Claude Agent SDK, OpenAI Agents SDK, LangGraph, Anthropic Tools, and Google ADK all support full token-by-token text streaming.The backend emits Server-Sent Events (SSE) over POST /chat/stream. As the agent runs:
  1. tool_start events fire when a tool is invoked — the timeline shows a live spinner.
  2. text_delta events stream each text token to the frontend as it arrives.
  3. tool_end events fire when a tool completes — graph data is included and the visualization updates incrementally.
  4. A final done event closes the stream.
Text deltas are batched approximately every 50 ms before updating the ReactMarkdown renderer to avoid excessive re-renders.

Framework-specific dependencies

The CLI injects the correct dependencies into the generated project’s pyproject.toml automatically. For reference: All 8 frameworks share the same conversation memory backend (neo4j-agent-memory with local sentence-transformers embeddings by default — no OPENAI_API_KEY required). If OPENAI_API_KEY is present in .env, the generated project automatically upgrades to OpenAI text-embedding-3-small embeddings.

API key requirements

Most frameworks require ANTHROPIC_API_KEY. Two frameworks require different keys and will not work without them.
The CLI prints a warning during scaffolding if you select openai-agents or google-adk without the corresponding key set in your environment. You can provide keys via CLI flags:

Switching frameworks after scaffolding

Each project is scaffolded for a single framework. To switch, scaffold a new project with the different --framework flag and point it at the same Neo4j instance (using --neo4j-uri, --neo4j-username, --neo4j-password) to share existing data.