godotz.ai Agent Configuration
godotz.ai agents are fully declarative. Three YAML files govern every agent’s identity, model choices, and swarm membership. By convention they live in ~/.config/omp/ (per-user) or /etc/omp/ (system-wide).
config.yml
The primary agent configuration file.
# ~/.config/omp/config.yml
agent:
id: executor-01 # Unique agent identifier across the fleet
role: executor # orchestrator | executor | reviewer | critic
hostname: pi-04 # Physical or Tailscale hostname
# Model assignment (resolved via models.yml)
model: glm-5.1
fallback_model: glm-4.5-air
# Execution limits
max_tokens: 8192
timeout_seconds: 120
max_retries: 3
# Context window management
context:
strategy: sliding # sliding | truncate | summarize
reserve_tokens: 2048 # Tokens reserved for response
litellm:
base_url: http://localhost:4000
api_key: sk-omp-executor-01
timeout: 30
memory:
backend: mnemopi # mnemopi | sqlite | none
session_ttl: 3600 # Seconds before session memory expires
persist_facts: true # Write durable facts to long-term store
beads:
enabled: true
db: ~/.beads/db.sqlite
auto_done: true # Mark tasks done on clean agent exit
logging:
level: info # debug | info | warn | error
format: json # json | text
file: /var/log/omp/executor-01.log
Field Reference
| Field | Type | Default | Description |
|---|---|---|---|
agent.id | string | hostname | Unique agent ID |
agent.role | enum | executor | Agent role in the swarm |
agent.model | string | glm-5.1 | Primary model alias |
agent.fallback_model | string | glm-4.5-air | Fallback on primary failure |
agent.max_tokens | int | 8192 | Max response tokens |
agent.timeout_seconds | int | 120 | Request timeout |
litellm.base_url | string | localhost:4000 | Proxy URL |
memory.backend | enum | mnemopi | Memory persistence driver |
beads.auto_done | bool | false | Auto-close tasks on clean exit |
presets.yml
Reusable agent templates. Reference a preset in config.yml with preset: <name> — fields in config.yml override preset values.
# ~/.config/omp/presets.yml
presets:
fast-executor:
role: executor
model: glm-4.5-air
max_tokens: 2048
timeout_seconds: 30
memory:
backend: none
deep-analyst:
role: reviewer
model: claude-opus
max_tokens: 32768
timeout_seconds: 300
context:
strategy: summarize
reserve_tokens: 8192
memory:
backend: mnemopi
persist_facts: true
lightweight-router:
role: executor
model: glm-4.5-air
max_tokens: 512
timeout_seconds: 10
beads:
enabled: false
Apply a preset:
# config.yml
preset: fast-executor
agent:
id: router-02 # Overrides preset defaults
model: glm-5.1 # Overrides preset model
models.yml
Defines all model aliases and their provider routing. The LiteLLM proxy resolves aliases from this file.
# ~/.config/omp/models.yml
models:
glm-5.1:
provider: z.ai
model_name: glm-5.1-flash
max_input_tokens: 128000
max_output_tokens: 8192
cost_per_1k_input: 0.0007
cost_per_1k_output: 0.0009
concurrency_limit: 10
glm-4.5-air:
provider: z.ai
model_name: glm-4.5-air
max_input_tokens: 32768
max_output_tokens: 4096
cost_per_1k_input: 0.0001
cost_per_1k_output: 0.0002
concurrency_limit: 20
claude-opus:
provider: anthropic
model_name: claude-opus-4-6
max_input_tokens: 200000
max_output_tokens: 16384
cost_per_1k_input: 0.015
cost_per_1k_output: 0.075
concurrency_limit: 5
claude-sonnet:
provider: anthropic
model_name: claude-sonnet-4-5
max_input_tokens: 200000
max_output_tokens: 8192
cost_per_1k_input: 0.003
cost_per_1k_output: 0.015
concurrency_limit: 10
swarm.yaml Schema
A swarm defines a group of agents working toward a shared goal. Place swarm.yaml in the project root or .omc/.
# swarm.yaml
version: "1"
swarm:
name: fleet-upgrade-swarm
goal: "Upgrade all fleet nodes to NixOS 25.05"
timeout: "4h"
agents:
- id: orchestrator
preset: deep-analyst
model: claude-opus
role: orchestrator
tasks:
- plan
- coordinate
- verify
- id: executor-a
preset: fast-executor
role: executor
node: pi-04 # Pin to specific fleet node
tasks:
- execute
- report
- id: executor-b
preset: fast-executor
role: executor
node: pi-05
tasks:
- execute
- report
- id: critic
preset: deep-analyst
model: claude-sonnet
role: critic
tasks:
- review
- approve
routing:
default_executor: glm-5.1
critic_threshold: 0.8 # Confidence below this triggers critic
max_loops: 5 # Max orchestrator→executor→critic cycles
budget:
total_usd: 10.00
per_agent_usd: 3.00
alert_at_pct: 80
hooks:
on_complete: "/opt/omp/hooks/swarm-done.sh"
on_budget_alert: "/opt/omp/hooks/budget-alert.sh"
on_failure: "/opt/omp/hooks/swarm-failed.sh"
Swarm Field Reference
| Field | Type | Description |
|---|---|---|
swarm.name | string | Human-readable swarm identifier |
swarm.goal | string | Goal statement passed to orchestrator |
swarm.timeout | duration | Wall-clock limit (1h, 30m) |
agents[].id | string | Agent instance identifier |
agents[].preset | string | Preset from presets.yml |
agents[].node | string | Tailscale hostname to run on |
agents[].tasks | list | Roles this agent fulfils |
routing.critic_threshold | float | 0–1, triggers review pass |
routing.max_loops | int | Circuit breaker for infinite loops |
budget.total_usd | float | Hard spend cap for the swarm |