Reference

astra.yml Schema Reference

Complete field reference for every key in astra.yml. All fields are optional unless marked required. Fields not specified fall back to defaults.

settings

FieldTypeDefaultDescription
defaultProviderstringopenaiProvider used when agent doesn't specify one
defaultModelstringgpt-4oModel ID used when agent doesn't specify one
maxContextTokensnumber128000Default max context window
maxOutputTokensnumber4096Default max output tokens
temperaturenumber0.7Default sampling temperature (0–2)
logLevelstringinfodebug | info | warn | error
timezonestringUTCIANA timezone (e.g. America/New_York)
embeddingModelstringtext-embedding-3-smallEmbedding model for memory indexing

quotas

FieldTypeDefaultDescription
tokens.maxPerHournumber200000Max tokens per agent per hour
tokens.maxPerDaynumber1000000Max tokens per agent per day
cost.maxPerDaynumber10.00Max USD spend per agent per day
spawn.maxConcurrentnumber5Max simultaneously running sub-agents
spawn.maxDepthnumber2Max spawn nesting depth (max 3)

approval

FieldTypeDefaultDescription
requireApprovalarray[]List of {tool: name} or {agent: id} rules
timeoutMsnumber300000Milliseconds to wait for approval
defaultOnTimeoutstringdenydeny | allow

selfHealing

FieldTypeDefaultDescription
enabledbooleantrueEnable auto-restart on failure
maxConsecutiveFailuresnumber3Failures before agent is paused
restartDelayMsnumber2000Initial restart backoff in ms
compactionThresholdnumber0.85Context fill ratio to trigger compaction (0–1)

agents[*]

FieldTypeRequiredDescription
idstringYesUnique agent identifier (kebab-case)
displayNamestringNoHuman-readable name
tierstringNofree | standard | premium
model.providerstringYesProvider ID
model.modelIdstringYesModel identifier
model.maxContextTokensnumberNoOverride context window
model.maxOutputTokensnumberNoOverride max output tokens
model.temperaturenumberNoOverride temperature (0–2)
systemPromptTemplatestringNoHandlebars template for system prompt
skillsstring[]NoSkill IDs to activate
tools.allowstring[]NoAllowed tool names
tools.denystring[]NoDenied tool names (always wins)
spawn.enabledbooleanNoAllow this agent to spawn sub-agents
spawn.allowedTargetsstring[]NoAgent IDs this agent can spawn
spawn.maxDepthnumberNoMax spawn depth override
fileAccess.restrictedbooleanNoRestrict file access to allowedPaths
fileAccess.allowedPathsstring[]NoAllowed file system paths
fallback.providerstringNoFallback provider if primary fails
fallback.modelIdstringNoFallback model ID

Full example

yaml
settings:
  defaultProvider: openai
  defaultModel: gpt-4o
  timezone: America/New_York

quotas:
  tokens:
    maxPerHour: 200000
    maxPerDay: 2000000
  cost:
    maxPerDay: 20.00

selfHealing:
  enabled: true
  maxConsecutiveFailures: 3
  compactionThreshold: 0.85

channels:
  telegram:
    enabled: true
    defaultAgent: assistant

agents:
  - id: assistant
    displayName: Astra Assistant
    tier: standard
    model:
      provider: openai
      modelId: gpt-4o
    systemPromptTemplate: |
      You are Astra. Today is {{date}}.
    skills: [git_ops, web_search]
    spawn:
      enabled: true
      allowedTargets: [researcher]
      maxDepth: 2

  - id: researcher
    model:
      provider: claude
      modelId: claude-opus-4-6
    skills: [web_research]
    spawn:
      enabled: false