|
|
---
|
|
|
language:
|
|
|
- en
|
|
|
tags:
|
|
|
- agents
|
|
|
- orchestration
|
|
|
- tool-calling
|
|
|
- controller
|
|
|
- planning
|
|
|
- routing
|
|
|
license: apache-2.0
|
|
|
pipeline_tag: text-generation
|
|
|
---
|
|
|
|
|
|
# 🎛️ Multi-Agent Orchestrator
|
|
|
|
|
|
`multiagent-orchestrator` is a small **planning & coordination** model built on **Llama3.2:1b** that acts as a _conductor_ for your AI **agents** and **tools**.
|
|
|
|
|
|
It is **not** a general chatbot. Instead, it reads a **task state** and an **agent/tool registry** and returns the **next action** as strict JSON:
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"action": "call_agent" | "call_tool" | "ask_user" | "finish",
|
|
|
"target": "agent_or_tool_name_or_null",
|
|
|
"arguments": { "any": "json" },
|
|
|
"final_answer": "string or null",
|
|
|
"reason": "short natural language rationale"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
You run your own loop that:
|
|
|
|
|
|
1. Calls this model to get the next action
|
|
|
2. Executes the chosen agent/tool
|
|
|
3. Updates task state
|
|
|
4. Repeats until action == "finish"
|
|
|
|
|
|
### Example (pseudo-usage)
|
|
|
|
|
|
```python
|
|
|
action = orchestrator(agents=agent_registry, state=task_state)
|
|
|
|
|
|
if action["action"] == "call_agent":
|
|
|
result = call_agent(action["target"], action["arguments"])
|
|
|
elif action["action"] == "call_tool":
|
|
|
result = call_tool(action["target"], action["arguments"])
|
|
|
...
|
|
|
|
|
|
task_state = update_state(task_state, action, result)
|
|
|
|
|
|
```
|
|
|
|
|
|
## Intended use:
|
|
|
|
|
|
As a controller in multi-agent / tool-using systems (researcher + coder agents, RAG pipelines, etc.), where you want a central brain choosing what happens next, not generating the final content itself. |