YAML Configuration Guide
MiroFlow uses a Hydra-based configuration system for customizing AI agents, tools, and benchmarks.
Configuration Structure
Configuration Directory
config/
โโโ agent_*.yaml # Agent configurations
โโโ agent_prompts/ # Prompt classes
โโโ benchmark/ # Benchmark settings
โโโ tool/ # Tool configurations
Quick Start
Run Benchmarks
# GAIA validation
uv run main.py common-benchmark \
--config_file_name=agent_gaia-validation \
output_dir="logs/gaia-validation/$(date +"%Y%m%d_%H%M")"
# GAIA text-only
uv run main.py common-benchmark \
--config_file_name=agent_gaia-validation-text-only \
output_dir="logs/gaia-validation-text-only/$(date +"%Y%m%d_%H%M")"
Single Task
uv run main.py trace \
--config_file_name=agent_quickstart_1 \
--task="Your task here" \
--task_file_name="data/file.xlsx"
Core Configuration
Basic Agent Setup
Basic Agent Configuration
defaults:
- benchmark: gaia-validation
- override hydra/job_logging: none
- _self_
main_agent:
prompt_class: MainAgentPromptBoxedAnswer
llm:
provider_class: "ClaudeOpenRouterClient"
model_name: "anthropic/claude-3.7-sonnet"
temperature: 0.3
max_tokens: 32000
openrouter_api_key: "${oc.env:OPENROUTER_API_KEY,???}"
tool_config: [] # Tools for main agent
max_turns: -1 # -1 = unlimited
sub_agents:
agent-worker:
prompt_class: SubAgentWorkerPrompt
llm:
provider_class: "ClaudeOpenRouterClient"
model_name: "anthropic/claude-3.7-sonnet"
tool_config:
- tool-reading
- tool-searching
max_turns: -1
output_dir: logs/
data_dir: "${oc.env:DATA_DIR,data}"
LLM Providers
Available Providers
- Claude:
ClaudeOpenRouterClient
,ClaudeAnthropicClient
- OpenAI:
GPTOpenAIClient
- MiroThinker:
MiroThinkerSGLangClient
- Qwen:
QwenSGLangClient
- DeepSeek:
DeepSeekNewAPIClient
(limited support)
See LLM Clients Overview for details.
Available Tools
Tool Options
tool-reasoning
: Enhanced reasoning capabilitiestool-searching
: Web search and retrievaltool-reading
: Document processingtool-code
: Python code executiontool-image-video
: Visual content analysistool-audio
: Audio processingtool-browsing
: Web browsing
See Tool Overview for configurations.
Advanced Features
GAIA Benchmark Configuration
GAIA-Optimized Setup
main_agent:
prompt_class: MainAgentPrompt_GAIA
tool_config:
- tool-reasoning
input_process:
o3_hint: true # Use O3 for task hints
output_process:
o3_final_answer: true # Use O3 for answer extraction
sub_agents:
agent-worker:
tool_config:
- tool-searching
- tool-reading
- tool-code
- tool-image-video
- tool-audio
Benchmark Settings
Benchmark Configuration
name: "your-benchmark"
data:
data_dir: "${data_dir}/your-data"
execution:
max_tasks: null # null = no limit
max_concurrent: 3 # Parallel tasks
pass_at_k: 1 # Attempts per task
Environment Variables
Required .env Configuration
# LLM Providers
OPENROUTER_API_KEY="your_key"
ANTHROPIC_API_KEY="your_key"
OPENAI_API_KEY="your_key"
# Tools
SERPER_API_KEY="your_key"
JINA_API_KEY="your_key"
E2B_API_KEY="your_key"
# Optional
DATA_DIR="data/"
CHINESE_CONTEXT="false"
Key Parameters
Parameter | Description | Default |
---|---|---|
temperature |
LLM creativity (0.0-1.0) | 0.3 |
max_tokens |
Response length limit | 32000 |
max_turns |
Conversation turns (-1 = unlimited) | -1 |
max_tool_calls_per_turn |
Tool calls per turn | 10 |
max_concurrent |
Parallel benchmark tasks | 3 |
Best Practices
Quick Tips
- Start simple: Use
agent_quickstart_1.yaml
as a base - Tool selection: Choose tools based on your task requirements
- API keys: Always use environment variables, never hardcode
- Resource limits: Set
max_concurrent
andmax_tokens
appropriately - Development: Use higher
temperature
and unlimitedmax_turns
for exploration
Documentation Info
Last Updated: September 2025 ยท Doc Contributor: Team @ MiroMind AI