Orchestrator
Routes requests to specialized agents based on intent analysis.
Agents are the workers in Maestro. Each agent is an LLM with a specific role, personality, and set of tools.
An agent combines:
Orchestrator
Routes requests to specialized agents based on intent analysis.
Personal Assistant
General conversation, questions, planning, and everyday tasks.
Coder
Programming tasks using Claude Code for file operations and commands.
Defined in YAML files under config/. Changes require a restart.
name: personal-assistantdescription: General-purpose assistant for everyday tasks
model: provider: anthropic name: claude-sonnet-4-20250514 temperature: 0.7 max_tokens: 4096
system_prompt: | You are a helpful personal assistant...
tools: - calculator - datetimeCreated through conversation. No restart required.
You: Create an agent called research-assistant that helps with researchMaestro: Created research-assistant. What system prompt should it use?
You: It should search for information, summarize findings, and cite sourcesMaestro: Updated. What tools should it have?
You: Give it calculator and datetimeMaestro: Done. research-assistant is now available.Dynamic agents are stored in SQLite and persist across restarts.
| Field | Required | Description |
|---|---|---|
name | Yes | Unique identifier |
description | Yes | What the agent does (for routing) |
model.provider | Yes | LLM provider (anthropic) |
model.name | Yes | Model ID |
model.temperature | No | Randomness (0-1) |
model.max_tokens | No | Max response tokens |
system_prompt | Yes | Agent instructions |
tools | No | Enabled tool names |
The orchestrator sees agent descriptions and decides routing:
Agents available:- personal-assistant: "General-purpose assistant for everyday tasks"- coder: "Programming and code execution via Claude Code"- research-assistant: "Research topics and summarize findings"
User message: "Help me debug this Python error"Orchestrator decision: Route to "coder"Use these tools to manage agents at runtime:
You: Create an agent called writer that helps with contentOr be explicit:
You: Use create_agent to make an agent called writer with description"Helps write blog posts, emails, and documentation"You: Update writer's system prompt to focus on technical writingYou: Add the calculator tool to writerYou: List all agentsYou: Show me the writer agent's configurationYou: Delete the writer agent