Give your users an AI-powered way to use your product—with zero backend rewrites.
Quick Start · Why Extra · Documentation · Contributing
Extra gives your customers an AI-powered way to use your product.
It works with the APIs, business logic, and workflows you already have — without requiring you to redesign your product around AI.
-
No backend rewrite. Keep your existing APIs, services, and business logic as they are.
-
Specialized by design. Each AI specialist owns a specific part of your business.
-
Your backend stays in control. Business logic, data, credentials, and authorization remain in trusted code.
-
Explicit orchestration. Work moves between specialists through predictable and inspectable execution paths.
-
Built for your product. Expose Extra through an API or embed the assistant directly into your application.
Not just a chatbot. Extra doesn't stop at answering questions. It can execute real product workflows using your existing APIs and tools.
You need Docker and a language model.
Use a supported cloud provider with an API key, or run open-source models locally with Ollama.
Create agents.yml — an orchestrator that routes to two focused agents:
system:
name: "Support Assistant"
defaults:
model:
provider: anthropic
name: claude-sonnet-4-6
orchestrators:
support_router:
description: "Routes each request to the agent that owns it."
prompts:
orchestrator: prompts/support_router/orchestrator.md
agents:
orders_agent:
description: "Handles order status, shipping changes, and returns."
prompts:
system: prompts/orders_agent/system.md
billing_agent:
description: "Handles invoices, subscriptions, and refunds."
prompts:
system: prompts/billing_agent/system.md
# Indentation is the hierarchy: the orchestrator routes to both agents.
graph:
support_router:
orders_agent:
billing_agent:Scaffold the prompt and plugin stubs the YAML references. It never overwrites a file you already wrote:
docker run --rm -v "$(pwd):/workspace" -w /workspace \
ghcr.io/extra-org/extra:latest generate --config agents.ymlFill in the three prompt stubs it created:
<!-- prompts/support_router/orchestrator.md -->
Route orders, shipping, and returns to orders_agent.
Route invoices, plans, and refunds to billing_agent.
<!-- prompts/orders_agent/system.md -->
Handle order status, shipping changes, and returns using the available tools.
<!-- prompts/billing_agent/system.md -->
Handle invoices, subscriptions, and refunds using the available tools.Run it with Agent Manager, which serves the conversation API, history, and the chat widget:
docker run -p 8100:8100 -v "$(pwd):/workspace" -w /workspace \
-e ANTHROPIC_API_KEY=sk-... \
ghcr.io/extra-org/extra:latest \
agent-manager --config agents.yml --port 8100Talk to it in the browser at http://localhost:8100/playground, or over the API — create a conversation with an id you choose, then send it a message:
curl -X POST http://localhost:8100/conversations \
-H "Content-Type: application/json" \
-d '{"session_id":"readme-demo"}'
curl -X POST http://localhost:8100/conversations/readme-demo/messages \
-H "Content-Type: application/json" \
-d '{"message":"Tell me about my system"}'Tools, MCP servers, deeper routing, per-node authorization, and embedding the chat widget are covered in the Quickstart.
- AI specialists
- Workflow orchestration
- Authorization outside the LLM
- Local tools and MCP
- Human approvals
- Streaming API
- Embeddable chat widget
- Anthropic, OpenAI, Gemini, and Bedrock
- Langfuse tracing
Extra executes an explicit orchestration graph.
Orchestrators route requests to AI specialists. Each specialist owns its own prompts, tools, MCP servers, and authorization.
Your business logic stays in your backend. Extra only orchestrates execution.
flowchart TD
U([User request]) --> R{{Orchestrator}}
R --> A1[Billing specialist]
R --> A2[Orders specialist]
R --> A3[Docs specialist]
A1 --> T1[Business logic / APIs]
A2 --> T2[Business logic / APIs]
A3 --> T3[Business logic / APIs]
T1 --> RESP([Response])
T2 --> RESP
T3 --> RESP
Extra runs the graph. Your project's plugins hold the trusted business logic — tools, access checks, and the values resolved into prompts.
- Tutorial — build a complete multi-agent system step by step.
- YAML reference — every field you can declare.
- Architecture — how routing and execution work.
examples/— runnable specs, including an enterprise knowledge assistant.
This repository is agent-first — if you're an AI coding agent, read
AGENTS.md before making changes. Human contributors should
start there too, then run make check before opening a PR.