Skip to content

Configuration Reference

Complete reference for OmniAgent configuration options.

Configuration File

OmniAgent uses YAML or JSON configuration files:

omniagent gateway run --config omniagent.yaml

Gateway

Field Type Default Description
gateway.address string 127.0.0.1:18789 WebSocket server address
gateway.read_timeout duration 30s Read timeout
gateway.write_timeout duration 30s Write timeout
gateway.ping_interval duration 30s WebSocket ping interval
gateway:
  address: "127.0.0.1:18789"
  read_timeout: 30s
  write_timeout: 30s
  ping_interval: 30s

Agent

Field Type Default Description
agent.provider string anthropic LLM provider
agent.model string claude-sonnet-4-20250514 Model name
agent.api_key string - API key (or use env var)
agent.temperature float 0.7 Sampling temperature
agent.max_tokens int 4096 Max response tokens
agent.system_prompt string - Custom system prompt
agent:
  provider: openai
  model: gpt-4o
  api_key: ${OPENAI_API_KEY}
  temperature: 0.7
  max_tokens: 4096
  system_prompt: "You are OmniAgent, responding on behalf of the user."

Supported Providers

Provider Models
openai gpt-4o, gpt-4-turbo, gpt-3.5-turbo
anthropic claude-sonnet-4-20250514, claude-3-opus-20240229
gemini gemini-2.0-flash, gemini-1.5-pro

Channels

WhatsApp

Field Type Default Description
channels.whatsapp.enabled bool false Enable WhatsApp
channels.whatsapp.db_path string whatsapp.db Session database
channels:
  whatsapp:
    enabled: true
    db_path: "whatsapp.db"

Telegram

Field Type Default Description
channels.telegram.enabled bool false Enable Telegram
channels.telegram.token string - Bot token
channels:
  telegram:
    enabled: true
    token: ${TELEGRAM_BOT_TOKEN}

Discord

Field Type Default Description
channels.discord.enabled bool false Enable Discord
channels.discord.token string - Bot token
channels:
  discord:
    enabled: true
    token: ${DISCORD_BOT_TOKEN}

Skills

Field Type Default Description
skills.enabled bool true Enable skill loading
skills.paths []string [] Additional skill directories
skills.disabled []string [] Skills to skip
skills.max_injected int 20 Max skills in prompt
skills:
  enabled: true
  paths:
    - ~/.omniagent/skills
    - /opt/shared-skills
  disabled:
    - experimental-skill
  max_injected: 20

Storage

Field Type Default Description
storage.type string memory Backend type: memory, sqlite
storage.path string - Database path (for sqlite)
storage:
  type: sqlite
  path: /data/omniagent.db

Storage Backends

Type Persistence Use Case
memory None Development, testing
sqlite Disk Production, single instance

Sessions

Field Type Default Description
sessions.enabled bool true Enable session persistence
sessions.ttl duration 168h Session time-to-live (7 days)
sessions:
  enabled: true
  ttl: 168h  # 7 days

Programmatic Configuration

Storage and sessions are currently configured programmatically:

backend, _ := sqlite.New(sqlite.Config{Path: "data.db"})
agent.New(config, agent.WithSessionsFromStorage(backend))
YAML configuration support is planned.

Voice

Field Type Default Description
voice.enabled bool false Enable voice processing
voice.response_mode string auto auto, always, never
voice.stt.provider string - STT provider
voice.stt.model string - STT model
voice.tts.provider string - TTS provider
voice.tts.model string - TTS model
voice.tts.voice_id string - TTS voice ID
voice:
  enabled: true
  response_mode: auto
  stt:
    provider: deepgram
    model: nova-2
  tts:
    provider: deepgram
    model: aura-asteria-en
    voice_id: aura-asteria-en

Voice Providers

Provider STT Models TTS Models
deepgram nova-2 aura-asteria-en, aura-luna-en
openai whisper-1 tts-1, tts-1-hd
elevenlabs - Various voice IDs

Tokens

OAuth token management for services requiring refresh tokens.

Field Type Default Description
tokens.vault_uri string - Vault URI for storing tokens
tokens.services map - Service configurations
tokens:
  vault_uri: "op://MyVault"
  services:
    google:
      credentials_name: "google-oauth"
      scopes:
        - "https://www.googleapis.com/auth/calendar"
    zoom:
      credentials_name: "zoom-oauth"

Service Configuration

Field Type Description
credentials_name string Credential name in vault (defaults to service name)
scopes []string OAuth scopes to request
auto_refresh bool Auto-refresh tokens (default: true)

Observability

Field Type Default Description
observability.enabled bool false Enable observability
observability.service_name string omniagent Service name for traces
observability.provider string - Provider: otlp, jaeger
observability:
  enabled: true
  service_name: "my-agent"
  provider: otlp
  otlp:
    endpoint: "localhost:4317"

Environment Variable Expansion

Configuration values support environment variable expansion:

agent:
  api_key: ${OPENAI_API_KEY}
  model: ${OMNIAGENT_MODEL:-gpt-4o}  # With default

Vault-Backed Credentials

Credentials can be stored in password managers using URI schemes:

Scheme Provider Example
op:// 1Password op://MyVault/item/field
bw:// Bitwarden bw://org-id/item-name
keeper:// Keeper keeper://folder/record/field
file:// File file:///path/to/secret
env:// Environment env://VAR_NAME
agent:
  api_key: "op://MyVault/anthropic/api-key"

channels:
  telegram:
    token: "bw://org-id/telegram-bot-token"
  discord:
    token: "keeper://Discord/bot-token"

Credentials are resolved once at startup. Plain string values still work.

Complete Example

# omniagent.yaml
gateway:
  address: "127.0.0.1:18789"
  read_timeout: 30s
  write_timeout: 30s

agent:
  provider: anthropic
  model: claude-sonnet-4-20250514
  api_key: ${ANTHROPIC_API_KEY}
  temperature: 0.7
  max_tokens: 4096
  system_prompt: |
    You are OmniAgent, an AI assistant responding on behalf of the user.
    Be helpful, concise, and professional.

storage:
  type: sqlite
  path: /data/omniagent.db

sessions:
  enabled: true
  ttl: 168h  # 7 days

channels:
  whatsapp:
    enabled: true
    db_path: "whatsapp.db"
  telegram:
    enabled: false
    token: ${TELEGRAM_BOT_TOKEN}
  discord:
    enabled: false
    token: ${DISCORD_BOT_TOKEN}

skills:
  enabled: true
  paths:
    - ~/.omniagent/skills
  max_injected: 20

voice:
  enabled: true
  response_mode: auto
  stt:
    provider: deepgram
    model: nova-2
  tts:
    provider: deepgram
    model: aura-asteria-en
    voice_id: aura-asteria-en