Framework Comparison
JamJet vs LangGraph vs CrewAI vs AutoGen vs Google ADK — feature matrix across execution, durability, observability, eval, and scale.
Last updated: 2026-06-04 · Corrections welcome
Which one is best for what?
- Plain Python — fastest start, lowest guarantees. Great for prototypes and one-off scripts.
- LangGraph — graph orchestration, familiar patterns, optional durability via checkpointers.
- JamJet — Python mental model with durability by default and stronger runtime guarantees.
- CrewAI / AutoGen — useful abstractions for some multi-agent patterns, but different emphasis on reliability.
- Google ADK — tight Gemini integration, co-developed A2A, fast-moving with strong Google Cloud support. Best for teams building on Google's AI stack.
If you like LangGraph's Python workflow model but want durability, replay, typed validation, and runtime-enforced limits built in, JamJet is the closest conceptual move. See the LangGraph migration guide.
Core execution
| Feature | JamJet | LangGraph | CrewAI | AutoGen | Google ADK |
|---|---|---|---|---|---|
| Graph-based workflow | ✓ | ✓ | ~ Sequential/hierarchical | ✓ | ✓ Sequential, parallel, loop agents |
| Async execution | ✓ | ✓ | ✓ | ✓ | ✓ |
| Local in-process runner | ✓ | ✓ | ✓ | ✓ | ✓ |
| Typed state | ✓ Pydantic | ~ TypedDict | — Dict | ~ Dict | ~ |
| State validation at every step | ✓ | — | — | — | — |
| Conditional routing | ✓ Inline predicates | ✓ Edge functions | ~ Process type | ✓ | ✓ |
| Parallel branches | ✓ type: parallel | ✓ | — | ✓ | ✓ |
| Cycle / loop support | ✓ | ✓ | ~ | ✓ | ✓ |
Durability & reliability
| Feature | JamJet | LangGraph | CrewAI | AutoGen | Google ADK |
|---|---|---|---|---|---|
| Durable execution (crash recovery) | ✓ Rust runtime | ⚙ Checkpointers | — | — | — |
| Event sourcing | ✓ Native | — | — | — | — |
| Automatic retry with backoff | ✓ YAML config | ⚙ Manual | ⚙ Manual | ⚙ Manual | ~ Manual |
| Human-in-the-loop / pause | ✓ type: wait | ✓ interrupt_before | — | ~ | ✓ |
| Resume from any checkpoint | ✓ | ⚙ Requires saver | — | — | — |
| Timeout per step | ✓ | ~ | — | ~ | ~ |
Observability
| Feature | JamJet | LangGraph | CrewAI | AutoGen | Google ADK |
|---|---|---|---|---|---|
| Structured event log | ✓ Per-step events | ~ Callbacks | ~ verbose text | ~ | ✓ |
| Execution inspection CLI | ✓ jamjet inspect | — | — | — | — |
| Event timeline | ✓ | — | — | — | — |
| OpenTelemetry tracing | … | ⚙ LangSmith | ⚙ | — | ✓ Built-in |
| Time-travel debugging | … | — | — | — | — |
| Token/cost attribution | ✓ | — | — | — | ✓ |
| Web inspector/dashboard | ✓ Web Companion | — | — | — | ✓ ADK Web UI |
Tool & protocol integration
| Feature | JamJet | LangGraph | CrewAI | AutoGen | Google ADK |
|---|---|---|---|---|---|
| MCP client (use any MCP server) | ✓ Native | ⚙ Via adapter | ⚙ Via adapter | ⚙ Via adapter | ✓ Native |
| MCP server (expose your tools) | … | — | — | — | — |
| A2A cross-agent calls | ✓ Client + server | — | — | — | ✓ Co-developed spec |
| OpenAI function calling | ✓ | ✓ | ✓ | ✓ | ✓ |
| Custom Python tools | ✓ @tool decorator | ✓ | ✓ | ✓ | ✓ |
| Tool retry on error | ✓ Node-level config | ⚙ Manual | ⚙ Manual | ⚙ Manual | ~ |
Eval & testing
| Feature | JamJet | LangGraph | CrewAI | AutoGen | Google ADK |
|---|---|---|---|---|---|
| Built-in eval harness | ✓ | — | — | — | ✓ pytest-based |
| LLM-as-judge scoring | ✓ LlmJudgeScorer | — | — | — | — |
| Assertion scoring | ✓ AssertionScorer | — | — | — | — |
| Latency budgets | ✓ LatencyScorer | — | — | — | — |
| Cost budgets | ✓ CostScorer | — | — | — | — |
| Dataset replay | ✓ | — | — | — | ~ |
| CI exit code on regression | ✓ --fail-under | — | — | — | ~ |
| Eval as a workflow node | ✓ type: eval | — | — | — | — |
Developer experience
| Feature | JamJet | LangGraph | CrewAI | AutoGen | Google ADK |
|---|---|---|---|---|---|
| YAML workflow authoring | ✓ | — | — | — | — |
| Python decorator API | ✓ @wf.step | ✓ | ✓ | ✓ | ✓ |
| Project templates | ✓ jamjet init --template | — | — | — | — |
| Local dev server | ✓ jamjet dev | — | — | — | — |
| Workflow validation CLI | ✓ jamjet validate | — | — | — | — |
| Multi-model support | ✓ Any OpenAI-compat | ✓ | ✓ | ✓ | ~ Primarily Gemini |
| Local models (Ollama, etc.) | ✓ | ✓ | ✓ | ✓ | ~ |
Production & scale
| Feature | JamJet | LangGraph | CrewAI | AutoGen | Google ADK |
|---|---|---|---|---|---|
| Runtime language | Rust | Python | Python | Python | Python |
| Polyglot SDK | Python, TS, Java | Python, JS | Python | Python, .NET | Python |
| Kubernetes-ready | ✓ Stateless binary | ⚙ | ⚙ | ⚙ | ⚙ |
| Managed cloud offering | ✓ JamJet Cloud | ✓ LangGraph Cloud | — | — | ✓ Vertex AI |
| Streaming | ✓ | ✓ | ~ | ✓ | ✓ |
| Open source | ✓ Apache-2.0 | ✓ MIT | ✓ MIT | ✓ CC-BY-4 | ✓ Apache-2.0 |
note: See Benchmarks for measured latency comparisons with methodology and raw results. Migration guides: from LangGraph, from CrewAI, from OpenAI SDK.
REST API Reference
Complete HTTP API reference for the JamJet runtime — workflows, executions, agents, work items, audit, and tenants.
Control Map
Which JamJet component addresses each risk in the OWASP Top 10 for Agentic Applications 2026, the FINOS AI Governance Framework agentic catalogue, and the NIST NCCoE agent identity and authorization concept paper, with the status of each.