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
| Framework | CLI flag value | LLM provider | Streaming | Async model | API key required |
|---|---|---|---|---|---|
| PydanticAI | pydanticai | Anthropic (configurable) | Full | Native async | ANTHROPIC_API_KEY |
| Claude Agent SDK | claude-agent-sdk | Anthropic | Full | Native async | ANTHROPIC_API_KEY |
| OpenAI Agents SDK | openai-agents | OpenAI | Full | Native async | OPENAI_API_KEY |
| LangGraph | langgraph | Anthropic (configurable) | Full | Native async | ANTHROPIC_API_KEY |
| Anthropic Tools | anthropic-tools | Anthropic | Full | Native async | ANTHROPIC_API_KEY |
| Strands | strands | Anthropic | Tools only | Thread-bridged | ANTHROPIC_API_KEY |
| CrewAI | crewai | Anthropic | Tools only | Thread-bridged | ANTHROPIC_API_KEY |
| Google ADK | google-adk | Google Gemini | Full | Native async | GOOGLE_API_KEY |
Choosing a framework
Best for most users: PydanticAI or Claude Agent SDK
Best for most users: PydanticAI or Claude Agent SDK
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.Best for OpenAI users: OpenAI Agents SDK
Best for OpenAI users: OpenAI Agents SDK
If you’re already using OpenAI’s API and models, this framework integrates naturally using
@function_tool decorators and Runner.run() / Runner.run_streamed().An OPENAI_API_KEY is required. The CLI will warn you if it is not set.Best for the LangChain ecosystem: LangGraph
Best for the LangChain ecosystem: LangGraph
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.Best for multi-agent workflows: CrewAI
Best for multi-agent workflows: CrewAI
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.Best for understanding agentic loops: Anthropic Tools
Best for understanding agentic loops: Anthropic Tools
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.Best for Google Cloud: Google ADK
Best for Google Cloud: Google ADK
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.Strands
Strands
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
- Full streaming (6 frameworks)
- Tools-only streaming (CrewAI, Strands)
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:tool_startevents fire when a tool is invoked — the timeline shows a live spinner.text_deltaevents stream each text token to the frontend as it arrives.tool_endevents fire when a tool completes — graph data is included and the visualization updates incrementally.- A final
doneevent closes the stream.
Framework-specific dependencies
The CLI injects the correct dependencies into the generated project’spyproject.toml automatically. For reference:
| Framework | Key dependencies |
|---|---|
| PydanticAI | pydantic-ai>=0.1 |
| Claude Agent SDK | claude-agent-sdk>=0.1, anthropic>=0.30 |
| OpenAI Agents SDK | openai-agents>=0.1 |
| LangGraph | langgraph>=0.1, langchain-anthropic>=0.3 |
| CrewAI | crewai[anthropic]>=0.1 |
| Strands | strands-agents[anthropic]>=0.1 |
| Google ADK | google-adk>=0.1, nest-asyncio>=1.5 |
| Anthropic Tools | anthropic>=0.30 |
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.| Framework | Required key | What happens without it |
|---|---|---|
| PydanticAI | ANTHROPIC_API_KEY | Agent startup fails |
| Claude Agent SDK | ANTHROPIC_API_KEY | Agent startup fails |
| OpenAI Agents SDK | OPENAI_API_KEY | Agent startup fails |
| LangGraph | ANTHROPIC_API_KEY | Agent startup fails |
| Anthropic Tools | ANTHROPIC_API_KEY | Agent startup fails |
| Strands | ANTHROPIC_API_KEY | Agent startup fails |
| CrewAI | ANTHROPIC_API_KEY | Agent startup fails |
| Google ADK | GOOGLE_API_KEY | Agent startup fails |
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.
