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

FieldTypeDefaultDescription
agent.idstringhostnameUnique agent ID
agent.roleenumexecutorAgent role in the swarm
agent.modelstringglm-5.1Primary model alias
agent.fallback_modelstringglm-4.5-airFallback on primary failure
agent.max_tokensint8192Max response tokens
agent.timeout_secondsint120Request timeout
litellm.base_urlstringlocalhost:4000Proxy URL
memory.backendenummnemopiMemory persistence driver
beads.auto_doneboolfalseAuto-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

FieldTypeDescription
swarm.namestringHuman-readable swarm identifier
swarm.goalstringGoal statement passed to orchestrator
swarm.timeoutdurationWall-clock limit (1h, 30m)
agents[].idstringAgent instance identifier
agents[].presetstringPreset from presets.yml
agents[].nodestringTailscale hostname to run on
agents[].taskslistRoles this agent fulfils
routing.critic_thresholdfloat0–1, triggers review pass
routing.max_loopsintCircuit breaker for infinite loops
budget.total_usdfloatHard spend cap for the swarm