Files
AIPA/config/agents.yaml
T
2026-04-03 09:01:01 -07:00

223 lines
7.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# agents.yaml — AIPA Agent Configuration
# Defines named providers and assigns agents to them.
#
# API keys are NOT stored here.
# Use api_key_env to name the environment variable holding the key (.env).
# Use api_key only for local servers that don't require authentication.
#
# To add an agent: add an entry under `agents`.
# To add a provider: add an entry under `providers`, then reference it by name.
# ---------------------------------------------------------------------------
# System Roles
# Maps logical roles to the agent names defined under `agents` below.
# The orchestration code references roles only — never agent names directly.
# Change the name on the right to reassign a role to a different agent.
#
# orchestrator — primary interface to the Principal; routes all work
# auditor — independent quality reviewer; reports only to Principal
# recruiter — agent generator; creates, maintains, and optimises agents
# ---------------------------------------------------------------------------
roles:
orchestrator: miranda
auditor: vera
recruiter: evelyn
# ---------------------------------------------------------------------------
# Default Provider
# Used for any agent that does not specify a provider.
# Set to a name defined in the providers section, or "none".
# ---------------------------------------------------------------------------
default_provider: vastblueai
# ---------------------------------------------------------------------------
# Providers
# Named provider definitions. Agents reference these by name.
#
# Fields:
# type: anthropic | openai | openai_compatible | ollama
# api_key_env: environment variable name holding the API key
# api_key: literal key (local servers only — do not put real keys here)
# base_url: required for openai_compatible and ollama; omit for cloud
# ---------------------------------------------------------------------------
providers:
# --- Cloud ---
anthropic:
type: anthropic
api_key_env: ANTHROPIC_API_KEY
default_model: claude-opus-4-6
openai:
type: openai
api_key_env: OPENAI_API_KEY
default_model: gpt-4o
# --- OpenAI-compatible cloud APIs ---
groq:
type: openai_compatible
base_url: https://api.groq.com/openai/v1
api_key_env: GROQ_API_KEY
default_model: llama-3.3-70b-versatile
together:
type: openai_compatible
base_url: https://api.together.xyz/v1
api_key_env: TOGETHER_API_KEY
default_model: meta-llama/Llama-3.3-70B-Instruct-Turbo
mistral:
type: openai_compatible
base_url: https://api.mistral.ai/v1
api_key_env: MISTRAL_API_KEY
default_model: mistral-large-latest
anyscale:
type: openai_compatible
base_url: https://api.endpoints.anyscale.com/v1
api_key_env: ANYSCALE_API_KEY
default_model: ""
# --- Local servers ---
#
# Two variants of the same endpoint: one with Qwen3 thinking mode on, one off.
# Qwen3 recommended temperatures: 0.6 (thinking), 0.7 (non-thinking).
# Assign reasoning-heavy agents to vastblueai_thinking; procedural/creative
# agents to vastblueai.
#
vastblueai:
type: openai_compatible
base_url: http://10.250.50.54:9292/v1
api_key: local
default_model: "qwen3.5-35-a3b"
extra_body:
enable_thinking: false # Non-thinking mode — recommended temp 0.7
vastblueai_thinking:
type: openai_compatible
base_url: http://10.250.50.54:9292/v1
api_key: local
default_model: "qwen3.5-35-a3b"
extra_body:
enable_thinking: true # Qwen3 thinking mode — recommended temp 0.6
lmstudio:
type: openai_compatible
base_url: http://localhost:1234/v1
api_key: local
default_model: ""
llamacpp:
type: openai_compatible
base_url: http://localhost:8080/v1
api_key: local
default_model: ""
ollama:
type: openai_compatible # Ollama's OpenAI-compatible endpoint
base_url: http://localhost:11434/v1
api_key: local
default_model: ""
ollama_native:
type: ollama # Ollama's native API (no extra SDK required)
base_url: http://localhost:11434
# ---------------------------------------------------------------------------
# Agents
# Each agent entry defines a named agent in the hierarchy.
#
# Fields:
# prompt_file: filename in agents/prompts/
# provider: named provider from the providers section (or "none")
# model: model name exactly as the provider expects it
# temperature: 0.01.0 (see hierarchy spec for per-role guidance)
# max_tokens: maximum response length
# stateful: true = maintain conversation history; false = fresh each call
# ---------------------------------------------------------------------------
agents:
miranda:
title: Chief of Staff
color: cyan
prompt_file: miranda_chief_of_staff.md
provider: vastblueai_thinking # Routing and synthesis benefit from deep reasoning
model: ""
temperature: 0.6 # Qwen3 thinking-mode recommendation
max_tokens: 32768 # Synthesizes the longest outputs; needs headroom
stateful: true
vera:
title: Auditor
color: yellow
prompt_file: vera_auditor.md
provider: vastblueai_thinking # Careful auditing benefits from thinking
model: ""
temperature: 0.6 # Qwen3 thinking-mode recommendation
max_tokens: 16384
stateful: false
evelyn:
title: Director of Personnel & Systems
color: white
prompt_file: evelyn_director_of_personnel.md
provider: vastblueai # Procedural tasks; thinking overhead not warranted
model: ""
temperature: 0.7 # Qwen3 non-thinking recommendation
max_tokens: 16384
stateful: true
tools:
- list_tools
- list_agents
- read_agent_config
- upsert_agent_definition
- read_agent_prompt
- write_agent_prompt
- list_providers
atlas:
title: Director of Research
color: green
prompt_file: atlas_research_lead.md
provider: vastblueai_thinking # Research synthesis benefits from extended reasoning
model: ""
temperature: 0.6 # Qwen3 thinking-mode recommendation
max_tokens: 16384
stateful: true
cole:
title: Director of Operations
color: blue
prompt_file: cole_operations_lead.md
provider: vastblueai # Operational tasks are structured and procedural
model: ""
temperature: 0.7 # Qwen3 non-thinking recommendation
max_tokens: 16384
stateful: true
clio:
title: Director of Analysis
color: magenta
prompt_file: clio_analysis_lead.md
provider: vastblueai_thinking # Structured analysis benefits from thinking
model: ""
temperature: 0.6 # Qwen3 thinking-mode recommendation
max_tokens: 16384
stateful: true
iris:
title: Director of Interface & Experience
color: bright_cyan
prompt_file: iris_interface_director.md
provider: vastblueai # Creative/interface work; non-thinking is sufficient
model: ""
temperature: 0.7 # Qwen3 non-thinking recommendation
max_tokens: 16384
stateful: true