agent | pi-coding-agent | claude-code | pi-coding-agent | Agent runner type |
models | object with task-type keys | optional | Per-task-type model routing |
models.default | string[] | optional | Default model (required for non-claude-code agents) |
models.fast | string[] | optional | Fast model; falls back to 'default' |
models.thinking | string[] | optional | Extended-thinking model; falls back to 'default' |
models.coding | string[] | optional | Code-optimized model; falls back to 'default' |
models.image | string[] | optional | Image generation model (routes to image provider) |
profile | enum from PROFILE_NAMES | required | Personality profile |
providers | object | required | Maps each category to a provider name |
providers.memory | string | required | Memory provider (e.g., sqlite, mock) |
providers.security | string | required | Security provider (scanner + screener) |
providers.channels | string[] | required | Active channel providers |
providers.web | string | required | Web provider |
providers.credentials | string | database | Credentials provider (database-only) |
providers.skills | string | required | Skill store provider (only database supported) |
providers.audit | string | required | Audit provider (only database supported) |
providers.sandbox | string | required | Sandbox provider (docker, apple, k8s) |
providers.scheduler | string | required | Scheduler provider (none or plainjob) |
providers.storage | string | database | Storage provider (only database supported) |
providers.database | string | optional | Database provider (e.g., sqlite, postgresql) |
providers.eventbus | string | required | Event bus provider (e.g., inprocess, postgres) |
channel_config | Record<string, ChannelAccessConfig> | optional | Per-channel access policies |
max_tokens | number (256-200000) | 8192 | Max tokens for LLM calls |
sandbox | object | required | timeout_sec (1-3600), memory_mb (64-8192), cpus (0.1-16, default 1) |
scheduler | object | required | active_hours, max_token_budget, heartbeat_interval_min, optional agent_dir and defaultDelivery |
history | object | see below | Conversation retention and memory recall settings |
history.max_turns | number | 50 | Max conversation turns to retain |
history.thread_context_turns | number | 5 | Turns to include from parent thread |
history.summarize | boolean | false | Enable LLM-powered history summarization |
history.summarize_threshold | number | 40 | Turn count threshold to trigger summarization |
history.summarize_keep_recent | number | 10 | Recent turns to keep unsummarized |
history.memory_recall | boolean | false | Enable semantic memory recall injection |
history.memory_recall_limit | number | 5 | Max memory items to inject per turn |
history.memory_recall_scope | string | '*' | Memory scope to search (wildcard for all) |
history.embedding_model | string | 'text-embedding-3-small' | Model for embedding generation |
history.embedding_dimensions | number | 1536 | Embedding vector dimensions |
webhooks | object | optional | Inbound webhook configuration |
webhooks.enabled | boolean | false | Enable webhook endpoint |
webhooks.token | string | required if enabled | Authentication token for webhook calls |
webhooks.path | string | optional | Custom webhook URL path |
webhooks.max_body_bytes | number | optional | Max request body size |
webhooks.model | string | optional | LLM model for webhook transforms |
webhooks.allowed_agent_ids | string[] | optional | Restrict which agents webhooks can target |
admin | object | required | Admin dashboard: enabled (bool), token (string, optional), port (number) |
web_proxy | boolean | false | Enable HTTP forward proxy for agent outbound HTTP/HTTPS (npm install, curl, etc.) |
namespace | string | ax | K8s namespace for web proxy service discovery (ax-web-proxy.{namespace}.svc:3128) |
delegation | object | optional | max_concurrent (1-10, default 3), max_depth (1-5, default 2) |
plugins | PluginDeclaration[] | optional | Plugin declarations -- each maps a source to agents that use it. Auto-installed on startup. PluginDeclaration has source (string) and agents (string[]) fields |
shared_agents | SharedAgentConfig[] | optional | Shared agents started alongside default. Each has id, display_name, optional agent, models, slack_bot_token_env, slack_app_token_env, admins[], capabilities[], description. See src/types.ts SharedAgentConfig |