AgentOven

Why AgentOven?

See how AgentOven compares to CrewAI, LangChain/LangSmith, and other agent frameworks — with real code examples.


AgentOven is not another agent framework. It's an agent control plane — the Kubernetes for AI agents. While frameworks like LangChain and CrewAI help you build an agent, AgentOven helps you deploy, route, observe, govern, and orchestrate agents regardless of which framework built them.


The Core Difference
LangChain / LangSmithCrewAIAgentOven
What it isAgent framework + observability platformAgent framework + orchestrationAgent control plane (framework-agnostic)
Lock-inBest experience requires LangChain/LangGraphBest experience requires CrewAIWorks with any framework equally
ProtocolInternal (open-source code, custom format)Internal (open-source code, custom format)Open standards (A2A + MCP)
Multi-model routingBasic fallback (.with_fallbacks())Per-agent LLM config (no unified router)✅ 5 strategies (fallback, cost, latency, round-robin, A/B split)
Agent-to-AgentVia LangGraph subgraphsVia CrewAI crews/flowsA2A protocol (cross-framework, cross-org)
Tool protocolLangChain tool format (many integrations)CrewAI + LangChain toolsMCP (universal tool standard)
Cost trackingLangSmith (per-seat pricing — free tier is 1 seat only)Token usage metrics only✅ Built-in, zero per-seat cost
Multi-tenantWorkspaces (per-seat paid plans)❌✅ Kitchens (workspace isolation, no seat fees)
Deployment lifecycleLangSmith Deployment (paid)CrewAI Enterprise (paid)✅ Built-in: draft → bake → ready → cool → retire
Pricing modelPer-seat SaaS (LangSmith: $39/seat Plus, custom Enterprise)CrewAI Enterprise: per-seat✅ Self-hosted — license cost only, zero per-seat fees
Open sourceLangChain/LangGraph: MIT. LangSmith: proprietary SaaSCrewAI framework: MIT. Enterprise: closed✅ Full Apache 2.0 core

Example 1: Register and Deploy an Agent
The LangChain Way

With LangChain, you build an agent and can deploy via LangSmith Deployment (paid). There's no built-in registry or A2A discovery.

python

# LangChain — build an agent, deploy via LangSmith or DIY
from langchain.agents import create_agent
from langchain_openai import ChatOpenAI

agent = create_agent(
    model="gpt-4o",
    tools=[get_weather],
    system_prompt="You are a helpful assistant",
)
result = agent.invoke({"messages": [...]})

# Deployment options: LangSmith Deployment (paid) or DIY.
# No built-in agent registry or A2A discovery protocol.
# Other teams can't discover your agent via a standard protocol.
The CrewAI Way

CrewAI gives you a crew abstraction. CrewAI Enterprise offers managed deployments, but the open-source version requires manual deployment.

python

# CrewAI — orchestration within CrewAI agents
from crewai import Agent, Task, Crew

researcher = Agent(
    role="Senior Researcher",
    goal="Research the topic thoroughly",
    backstory="You are an expert researcher.",
    llm="gpt-4o",
)
crew = Crew(agents=[researcher], tasks=[task])
result = crew.kickoff()

# Enterprise plan offers managed deployment.
# OSS version: agent is ephemeral, no registry or A2A discovery.
# Can't mix non-CrewAI agents (e.g., a LangChain agent) into a crew.
The AgentOven Way

Register once, deploy anywhere, discover via A2A. Works with any framework.

python

# AgentOven — register, deploy, discover, route, observe
from agentoven import Agent, Ingredient, AgentOvenClient

agent = Agent("research-bot", ingredients=[
    Ingredient.model("gpt-4o", provider="openai"),
    Ingredient.tool("web-search", protocol="mcp"),
])

client = AgentOvenClient()
client.register(agent)       # → Agent in registry with A2A card
client.bake(agent)            # → Deployed, health-checked, discoverable

Or via CLI in 10 seconds:

terminal

$ agentoven agent register --name research-bot --framework langchain
✓ Agent 'research-bot' registered

$ agentoven agent bake research-bot
✓ Agent deployed → https://your-oven.dev/.well-known/agent.json

Key difference: Your LangChain agent, CrewAI crew, OpenAI SDK agent, or custom agent — they all get the same lifecycle, discovery, and governance through AgentOven.


Example 2: Multi-Agent Workflows
The CrewAI Way

Crews work with CrewAI agents. You can set different LLMs per agent, but you can't include a non-CrewAI agent (e.g., a LangChain agent) in the same crew.

python

# CrewAI — different LLMs per agent, but all must be CrewAI agents
from crewai import Agent, Task, Crew

researcher = Agent(role="Researcher", llm="gpt-4o", ...)
writer = Agent(role="Writer", llm="claude-sonnet-4-20250514", ...)  # Different LLM ✅

# What if your best summarizer is a LangChain agent?
# What if another team built a validator with the OpenAI SDK?
# They can't join this crew — all agents must be CrewAI agents.

crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, write_task],
    process="sequential",
)
The AgentOven Way — Recipes

AgentOven Recipes are framework-agnostic DAGs. Mix LangChain, CrewAI, OpenAI SDK, and custom agents in the same workflow.

python

from agentoven import Recipe, Step, AgentOvenClient

recipe = Recipe("content-pipeline", steps=[
    # Step 1: LangChain researcher
    Step.agent("research", agent_ref="research-bot"),

    # Step 2: Human approval gate
    Step.human_gate("review", notify=["slack:#content-review"]),

    # Step 3: CrewAI writer (different framework, same workflow)
    Step.agent("write", agent_ref="content-writer"),

    # Step 4: OpenAI SDK validator (yet another framework)
    Step.agent("validate", agent_ref="quality-checker"),
])

client = AgentOvenClient()
run_id = client.bake_recipe(recipe, input={"topic": "AI in healthcare"})

Or define it declaratively:

yaml

# recipe.yaml — framework-agnostic DAG
name: content-pipeline
steps:
  - id: research
    agent: research-bot          # LangChain agent
  - id: review
    kind: human-gate
    notify: ["slack:#reviews"]
  - id: write
    agent: content-writer        # CrewAI agent
    depends_on: [review]
  - id: validate
    agent: quality-checker       # OpenAI SDK agent
    depends_on: [write]

Key difference: Any agent, any framework, same workflow engine — with human gates, retries, fan-out/fan-in, and conditional branching built in.


Example 3: Model Routing & Failover
The LangChain Way

python

# LangChain — basic fallback support via .with_fallbacks()
from langchain_openai import ChatOpenAI
from langchain_anthropic import ChatAnthropic

primary = ChatOpenAI(model="gpt-4o")
fallback = ChatAnthropic(model="claude-sonnet-4-20250514")
llm = primary.with_fallbacks([fallback])

# ✅ Basic failover works.
# ❌ No cost-optimized routing (pick cheapest provider).
# ❌ No latency-optimized routing (pick fastest).
# ❌ No round-robin load balancing.
# ❌ No A/B split testing between models.
# ❌ No per-request cost tracking at the infrastructure level.
The AgentOven Way

python

from agentoven import Agent, Ingredient, AgentOvenClient

agent = Agent("smart-router", ingredients=[
    # Primary model
    Ingredient.model("gpt-4o", provider="openai", role="primary"),
    # Automatic failover
    Ingredient.model("claude-sonnet-4-20250514", provider="anthropic", role="fallback"),
    # Local fallback (zero cost)
    Ingredient.model("llama3", provider="ollama", role="fallback"),
])

client = AgentOvenClient()
client.register(agent)
client.bake(agent)

# The Model Router handles:
# ✅ Automatic failover if OpenAI is down
# ✅ Cost-optimized routing (picks cheapest provider)
# ✅ Latency-optimized routing (picks fastest)
# ✅ Round-robin load balancing
# ✅ A/B split testing between models
# ✅ Per-request cost tracking

Or configure via API:

bash

# Register providers with the control plane
curl -X POST http://localhost:8080/api/v1/providers -d '{
  "name": "openai-primary",
  "kind": "openai",
  "model": "gpt-4o",
  "priority": 1,
  "cost_per_1k_input": 0.005
}'

curl -X POST http://localhost:8080/api/v1/providers -d '{
  "name": "anthropic-fallback",
  "kind": "anthropic",
  "model": "claude-sonnet-4-20250514",
  "priority": 2,
  "cost_per_1k_input": 0.003
}'

# Route with strategy
curl http://localhost:8080/api/v1/models/route -d '{
  "strategy": "cost-optimized",
  "messages": [{"role": "user", "content": "Summarize this doc"}]
}'

Example 4: Tool Integration
The LangChain Way

python

# LangChain — rich tool ecosystem, but LangChain-specific format
from langchain.tools import tool

@tool
def search_docs(query: str) -> str:
    """Search internal documents."""
    return db.search(query)

# Great within LangChain — many built-in integrations.
# But this tool format is LangChain-specific.
# A CrewAI agent can use LangChain tools, but an OpenAI SDK
# agent or a custom Go agent would need an adapter.
The AgentOven Way — MCP Protocol

bash

# Register a tool once via MCP — every agent can use it
curl -X POST http://localhost:8080/api/v1/tools -d '{
  "name": "search-docs",
  "description": "Search internal documents",
  "input_schema": {
    "type": "object",
    "properties": {
      "query": { "type": "string" }
    }
  }
}'

python

# Any agent, any framework, same tool
from agentoven import Agent, Ingredient

agent = Agent("doc-helper", ingredients=[
    Ingredient.model("gpt-4o", provider="openai"),
    Ingredient.tool("search-docs", protocol="mcp"),  # MCP tool
    Ingredient.tool("slack-notify", protocol="mcp"),  # Another MCP tool
])

# MCP tools are universal — they work with LangChain agents,
# CrewAI agents, OpenAI SDK agents, or your custom code.

Example 5: Observability
LangSmith (Framework-Agnostic, Freemium SaaS)

python

# LangSmith — framework-agnostic observability (free tier available)
import os
os.environ["LANGSMITH_TRACING"] = "true"
os.environ["LANGSMITH_API_KEY"] = "ls_xxx"

# ✅ Traces LangChain, CrewAI, OpenAI, Anthropic, AutoGen, and more
# ✅ Powerful evaluation and prompt engineering tools
# ⚠️  Free tier: 5k traces/month, 1 seat — unusable for teams
# ⚠️  Plus: $39/seat/month — 50-person team = $23,400/year just for observability
# ❌ Proprietary SaaS — not self-hostable on free/plus plans
# ❌ Per-seat pricing scales linearly with team size
# ❌ No built-in model routing or agent lifecycle management
AgentOven (Built-in, Open Source)

terminal

# Every agent gets traces automatically — zero per-seat cost
# Self-hosted: your infra, your data. No per-seat SaaS fees.
$ agentoven trace get run-abc123

Run: run-abc123
Agent: research-bot
Status: ✅ completed
Duration: 2.3s
Tokens: 1,847 (in: 412, out: 1,435)
Cost: $0.0089
Provider: openai/gpt-4o (fallback from anthropic — 429 rate limit)

Steps:
  1. 📥 Input received              0ms
  2. 🔧 Tool: search-docs          180ms
  3. 🤖 LLM: gpt-4o               1,800ms
  4. 📤 Output returned            320ms

$ agentoven trace cost --kitchen prod --last 24h
Kitchen: prod
Period: last 24 hours
Total Cost: $12.47
  openai/gpt-4o:        $8.23 (66%)
  anthropic/claude:     $3.91 (31%)
  ollama/llama3:        $0.33  (3%)
Requests: 1,847
Avg latency: 1.2s

Example 6: RAG Pipeline
The LangChain Way

python

# LangChain — flexible RAG, but requires assembling multiple packages
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.chains import RetrievalQA

# Powerful and flexible, but each piece is a separate dependency.
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(docs, embeddings)
chain = RetrievalQA.from_chain_type(llm, retriever=vectorstore.as_retriever())
# You choose your own vector store, embedder, and retrieval chain.
# No built-in quality evaluation (RAGAS) or ingestion pipeline.
AgentOven — Batteries Included

bash

# 1. Embeddings auto-discovered from your providers — zero config
# 2. Ingest documents
curl -X POST http://localhost:8080/api/v1/rag/ingest -d '{
  "documents": [{"id": "doc1", "text": "..."}],
  "chunk_size": 512,
  "chunk_overlap": 50
}'

# 3. Query with 5 built-in retrieval strategies
curl -X POST http://localhost:8080/api/v1/rag/query -d '{
  "query": "How does agent deployment work?",
  "strategy": "hyde",
  "top_k": 5
}'

# 4. Built-in RAGAS evaluation — no extra setup
curl http://localhost:8080/api/v1/rag/evaluate -d '{
  "query": "How does deployment work?",
  "answer": "...",
  "contexts": ["..."]
}'
# → { "faithfulness": 0.92, "relevancy": 0.87, "precision": 0.95 }

5 retrieval strategies out of the box: Naive, Sentence Window, Parent Document, HyDE, and Agentic.


Example 7: Agent Discovery (A2A Protocol)

This is something neither LangChain nor CrewAI can do at all.

bash

# Every baked agent automatically gets an A2A Agent Card
$ curl https://your-oven.dev/.well-known/agent.json
{
  "name": "research-bot",
  "description": "Researches topics using web search and summarization",
  "url": "https://your-oven.dev/a2a/research-bot",
  "capabilities": {
    "streaming": true,
    "pushNotifications": true
  },
  "skills": ["web-search", "summarization"],
  "version": "1.0.0"
}

# Other agents (even from different orgs) can discover and call yours
$ curl -X POST https://your-oven.dev/a2a/research-bot -d '{
  "jsonrpc": "2.0",
  "method": "tasks/send",
  "params": {
    "message": {
      "role": "user",
      "parts": [{"text": "Research quantum computing trends"}]
    }
  }
}'

No SDK required. Any HTTP client, any language, any framework can call an AgentOven agent via the A2A standard.


Side-by-Side: Building a Production Agent
StepLangChainCrewAIAgentOven
Build✅ LangChain SDK✅ CrewAI SDK✅ Any SDK (Python, Rust, TS, Go)
Register❌ No agent registry❌ No agent registryagentoven agent register
Version❌ Manual❌ Manual[email protected] semantic versioning
DeployLangSmith Deployment (paid)CrewAI Enterprise (paid)agentoven agent bake (built-in)
Discover❌ No standard protocol❌ No standard protocolA2A Agent Card auto-generated
Route modelsBasic fallbackPer-agent LLM config5 routing strategies + failover
Connect toolsLangChain tool formatCrewAI + LangChain toolsMCP (universal)
OrchestrateLangGraphCrewAI crews/flowsRecipes (any framework)
ObserveLangSmith (per-seat SaaS)Logging + LangSmithBuilt-in traces + cost (no seat fees)
Multi-tenantWorkspaces (paid)❌Kitchens (workspace isolation)
Govern❌❌Guardrails, approval gates, audit trail
Pause/Resume❌❌cool / rewarm lifecycle
Retire❌❌agentoven agent retire

When to Use What

Use LangChain if you want a mature, flexible agent framework with a huge ecosystem of integrations and LangSmith for observability. Great for teams building within the LangChain/LangGraph ecosystem.

Use CrewAI if you want an opinionated multi-agent framework with built-in role-based collaboration, memory, and knowledge sources. Great for teams that want a batteries-included crew orchestration experience.

Use AgentOven when you need:

AgentOven doesn't replace LangChain or CrewAI — it completes them. Build your agent in any framework, then register it with AgentOven for the production lifecycle: deploy, route, observe, govern, and retire.

Enterprise cost comparison: LangSmith Plus at $39/seat/month for a 50-person engineering team = $23,400/year — and that's just observability. AgentOven gives you observability + routing + lifecycle + governance for a flat license fee with zero per-seat costs.