Shannon is a multi-agent orchestration framework built as a set of services in Go, Rust, and Python. A Go gateway handles the REST API, authentication, and rate limiting, a Go orchestrator runs Temporal workflows with task decomposition and budget management, a Rust agent core enforces token counting inside a WASI sandbox, and a Python service abstracts LLM providers and runs the agent loop with MCP tools. PostgreSQL, Temporal, and Redis back the stack, which is deployed with Docker Compose.
Tasks are routed automatically by estimated complexity across eight execution strategies: a simple single-agent response, a DAG with fan-out, fan-in, and dependency tracking, ReAct reasoning and tool loops, research with tiered models, exploratory tree-of-thoughts, Playwright-backed browser use, domain analysis, and a lead-orchestrated swarm with convergence detection.
Because orchestration runs on Temporal, any execution can be replayed step by step after a failure. Token budgets are hard limits set per task or agent, with automatic fallback to cheaper models as a budget nears exhaustion. Approval gates can be required through OPA policy or a workflow template, and approvals route to connected daemon clients over WebSocket.
Four interfaces reach the same orchestrator: a REST API with server-sent-event and WebSocket streaming, a Python SDK (shannon-sdk), an OpenAI-compatible endpoint that accepts existing OpenAI client code against a local base URL, and a Tauri desktop app for macOS, Windows, and Linux. Skills are named reusable task definitions, listed over the API, selectable per task, and extendable in a user config directory.
More than ten model providers are supported with automatic failover, including Anthropic, OpenAI, Google, xAI, DeepSeek, MiniMax, Groq, Qwen, Meta, Zhipu, and Kimi, along with local endpoints through Ollama, LM Studio, and vLLM.
Features
- Temporal workflows: orchestration runs as durable workflows, and any execution can be replayed step by step
- Execution strategies: simple, DAG, ReAct, research, exploratory, browser use, domain analysis, and swarm, chosen by task complexity
- Token budgets: hard per-task and per-agent limits with automatic fallback to cheaper models
- WASI sandbox: the Rust agent core runs code in a sandbox with token enforcement and a circuit breaker
- Approval gates: OPA policy or a workflow template can require a human decision, routed over WebSocket
- Observability: real-time event streaming, Prometheus metrics, and OpenTelemetry tracing
- Session continuity: a session id carries context across follow-up tasks
- Scheduled tasks: cron expressions drive recurring queries through /api/v1/schedules
- Skills system: named reusable skills listed over the API, with custom ones defined in a config directory
- Interfaces: REST with SSE, a Python SDK, an OpenAI-compatible endpoint, and a desktop app
- Provider range: Anthropic, OpenAI, Google, xAI, DeepSeek, MiniMax, Groq, Qwen, Meta, Zhipu, and Kimi, plus Ollama, LM Studio, and vLLM

