Orchestrator Index
aka Orchid
A SOLID, YAML-driven multi-agent framework built on LangGraph.
Intelligence as a Service
One agentic core.
Three ways to expose it.
Orchestrator Index builds the intelligence layer on top of any LLM. Your agents, tools, and skills are defined once — then exposed as an MCP gateway, a REST API, or embedded directly in Python code.
The Ecosystem
Five separable packages with a one-direction dependency graph.
Built on six pillars
Every design decision stems from these six principles.
YAML-first
Define agents, skills, tools, and prompts entirely in agents.yaml — no code required for most use cases.
Multi-LLM
OpenAI, Anthropic, Google Gemini, Groq, Ollama — switch providers by changing a single YAML field.
Customizable Agents
Full control over agentic behaviour, tools, skills, and mini-agents. Compose specialised agents via YAML or Python.
Event-Driven
Pollen and Bloom enable reactive, event-driven agent workflows — react to signals, not just prompts.
Hierarchical RAG
Five-level scoped retrieval (root→tenant→user→chat→agent) with pluggable query strategies and Qdrant / ChromaDB built-in.
MCP-native
Connect any MCP server. Supports none, passthrough, and OAuth auth modes out of the box.
What is Orchestrator Index?
Orchestrator Index is an open-source, YAML-driven multi-agent AI framework built on top of LangGraph. It lets you define autonomous agents, their tools, skills, and behavioural prompts entirely in configuration files — no Python or TypeScript required for the majority of use cases. Change a single YAML field and swap from OpenAI to Anthropic, Google Gemini, Groq, or a local Ollama model without touching a line of code.
At its core sits GenericAgent, a composable agent that delegates to specialised collaborators: a SkillDetector for intent matching, an MCPDispatcher for external tool calls, and a SkillExecutor for step-by-step reasoning. Each agent can be extended with custom Python classes while keeping the framework’s SOLID architecture intact — new behaviour is added by subclassing, never by modifying existing code.
Orchestrator Index ships with a five-level hierarchical RAG system (root → tenant → user → chat → agent) backed by Qdrant or ChromaDB, giving you fine-grained scoping of retrieved context across multi-tenant deployments. Documents are parsed once and indexed automatically, so your agents always have access to the most relevant knowledge without manual pipeline management.
External tool integration is handled through the Model Context Protocol (MCP). Orchestrator Index connects to any MCP server with three authentication modes — none for local development, passthrough for forwarding user tokens, and full OAuth 2.0 discovery for production-grade integrations. Capabilities are cached proactively at session start, so the supervisor never blocks on discovery RPCs during a conversation.
The framework exposes its intelligence layer through three runtimes: a REST API (FastAPI) for web and mobile backends, a command-line interface for quick prototyping, and an MCP gateway that lets any MCP-capable host LLM — Claude, GPT, Gemini, or custom — call your agents as tools. Chat history is persisted via a pluggable storage backend (PostgreSQL or SQLite), and every conversation can be resumed, shared, or summarised on demand.
Whether you are building a customer support bot, a knowledge-base assistant, or a multi-agent research pipeline, Orchestrator Index gives you the configuration-first abstraction layer to move fast without sacrificing extensibility. The entire ecosystem — library, API, CLI, frontend, and MCP gateway — is composable, independently deployable, and designed to grow with your project.
Two files. Four runtimes.
orchid.yml defines runtime settings (LLM, RAG, storage).agents.yaml defines agents, tools, and skills. Together they power the API, CLI, MCP gateway, and Python SDK.
version: "1"
defaults:
llm:
model: "ollama/llama3.2"
temperature: 0.2
agents:
basketball:
description: >
NBA basketball expert with player stats,
team rosters, and head-to-head comparisons.
tools:
- get_player_stats
- compare_players
- get_team_roster
psychologist:
description: >
Sports psychologist for player motivation,
mental toughness, and team dynamics.
tools:
- assess_motivation
- suggest_mental_strategycurl -X POST http://localhost:8000/chats/my-chat/messages \
-H "Content-Type: application/json" \
-d '{"content": "Tell me about LeBron James"}'Run it locally
One command starts the demo with Ollama-powered models.
docker compose -f docker-compose.demo.yml up --build