Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/neo4j-labs/create-context-graph/llms.txt

Use this file to discover all available pages before exploring further.

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

FrameworkCLI flag valueLLM providerStreamingAsync modelAPI key required
PydanticAIpydanticaiAnthropic (configurable)FullNative asyncANTHROPIC_API_KEY
Claude Agent SDKclaude-agent-sdkAnthropicFullNative asyncANTHROPIC_API_KEY
OpenAI Agents SDKopenai-agentsOpenAIFullNative asyncOPENAI_API_KEY
LangGraphlanggraphAnthropic (configurable)FullNative asyncANTHROPIC_API_KEY
Anthropic Toolsanthropic-toolsAnthropicFullNative asyncANTHROPIC_API_KEY
StrandsstrandsAnthropicTools onlyThread-bridgedANTHROPIC_API_KEY
CrewAIcrewaiAnthropicTools onlyThread-bridgedANTHROPIC_API_KEY
Google ADKgoogle-adkGoogle GeminiFullNative asyncGOOGLE_API_KEY
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.
uvx create-context-graph --domain healthcare --framework pydanticai --demo
uvx create-context-graph --domain healthcare --framework claude-agent-sdk --demo
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.
uvx create-context-graph --domain gaming --framework openai-agents --demo
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.
uvx create-context-graph --domain financial-services --framework langgraph --demo
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.
uvx create-context-graph --domain manufacturing --framework crewai --demo
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.
uvx create-context-graph --domain data-journalism --framework anthropic-tools --demo
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.
uvx create-context-graph --domain trip-planning --framework google-adk --demo
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.
uvx create-context-graph --domain wildlife-management --framework strands --demo

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:
FrameworkKey dependencies
PydanticAIpydantic-ai>=0.1
Claude Agent SDKclaude-agent-sdk>=0.1, anthropic>=0.30
OpenAI Agents SDKopenai-agents>=0.1
LangGraphlanggraph>=0.1, langchain-anthropic>=0.3
CrewAIcrewai[anthropic]>=0.1
Strandsstrands-agents[anthropic]>=0.1
Google ADKgoogle-adk>=0.1, nest-asyncio>=1.5
Anthropic Toolsanthropic>=0.30
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.
FrameworkRequired keyWhat happens without it
PydanticAIANTHROPIC_API_KEYAgent startup fails
Claude Agent SDKANTHROPIC_API_KEYAgent startup fails
OpenAI Agents SDKOPENAI_API_KEYAgent startup fails
LangGraphANTHROPIC_API_KEYAgent startup fails
Anthropic ToolsANTHROPIC_API_KEYAgent startup fails
StrandsANTHROPIC_API_KEYAgent startup fails
CrewAIANTHROPIC_API_KEYAgent startup fails
Google ADKGOOGLE_API_KEYAgent startup fails
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:
uvx create-context-graph --domain healthcare --framework openai-agents \
  --openai-api-key $OPENAI_API_KEY --demo

uvx create-context-graph --domain trip-planning --framework google-adk \
  --google-api-key $GOOGLE_API_KEY --demo

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.
# Original project
uvx create-context-graph my-app --domain healthcare --framework pydanticai --demo

# New project, same domain, different framework, same Neo4j
uvx create-context-graph my-app-langgraph --domain healthcare --framework langgraph \
  --neo4j-uri neo4j://localhost:7687

Build docs developers (and LLMs) love