Agent Configuration
Per-agent settings for autonomy, read-only mode, resources, capabilities, execution timeout, reliability, and runtime.
The Settings Tab
The Agent Detail page has a Settings tab (visible to owners only) — a sectioned home for per-agent configuration. Current sections: Guardrails (see Agent Guardrails), Parallel Capacity (below), and Expose via MCP (publish the agent as a dedicated MCP tool — see MCP Integration). The remaining settings below are managed from the agent header controls, toggles on the Dashboard and Agents pages, or the API.
Parallel Capacity
How many tasks the agent may run concurrently (max_parallel_tasks, default 3). Work beyond the limit queues and drains as slots free up.
GET/PUT /api/settings/max-parallel-tasks-ceiling (default 10, range 1–32). Owners pick any value up to the ceiling. If an agent's stored value exceeds a later-lowered ceiling, the stored value is kept but the effective limit is clamped to the ceiling — the panel shows a notice when this applies.GET /api/agents/{name}/capacity returns the stored value, the ceiling, and the effective limit.Autonomy Mode
Master gate for the agent's scheduled operations.
GET /api/agents/{name}/autonomy and PUT /api/agents/{name}/autonomyRead-Only Mode
Prevents modification of source files (*.py, *.js, etc.) inside the agent container.
PreToolUse hooks to intercept Write, Edit, and NotebookEdit tool callsoutput/*, content/* (generated files are permitted)GET /api/agents/{name}/read-only and PUT /api/agents/{name}/read-onlyResource Allocation
Per-agent memory and CPU limits, enforced at the container level (Linux cgroups).
GET /api/agents/{name}/resources and PUT /api/agents/{name}/resourcesFleet-wide defaults (admin): the default CPU and memory for new agent containers are set platform-wide via GET/PUT /api/settings/agent-defaults/resources(admin-only; CPU 1/2/4/8/16, memory 1g–32g). Changes apply to new containers only — restart existing agents to pick up new defaults.
Execution Timeout
Configurable time limit for agent executions.
timeout_seconds is rejected with 400 error=agent_timeout_below_active_schedules. Conversely, creating or updating a schedule with timeout_seconds > agent.execution_timeout_seconds is rejected with 400 error=schedule_timeout_exceeds_agent_cap. Raise the agent cap first, then the schedule.GET /api/agents/{name}/timeout and PUT /api/agents/{name}/timeoutDispatch Circuit Breaker
Optional per-agent protection (default: off) that stops sending new work to an agent whose container repeatedly answers with authentication failures — for example, an expired API key. Instead of queueing tasks that are doomed to fail, the platform rejects new executions immediately with 503 and a Retry-After header, and fails any tasks already queued for that agent.
How it behaves when enabled:
Two switches must both be on for the breaker to engage: the per-agent toggle (owner-only) and the platform-wide DISPATCH_BREAKER_ENABLED environment variable (also off by default).
When a breaker is open, the agent header and the Dashboard network graph show a “⚡ circuit open” badge, and the Overview tab's health panel shows a “Circuit open” chip. Enabling or disabling the breaker is done via the API:
| Endpoint | Method | Description |
|---|---|---|
| /api/agents/{name}/circuit-breaker | GET | Current state of both breakers (dispatch + transport), plus config flags |
| /api/agents/{name}/circuit-breaker | PUT | Enable or disable the per-agent breaker ({"enabled": true}, owner-only) |
| /api/agents/{name}/circuit-breaker/reset | POST | Force both breakers closed without waiting for cooldown (admin-only) |
Per-Agent API Key
Controls which API key the agent uses for Claude.
Model Selection
Choose the Claude model used for tasks and scheduled executions.
localStorage; model_used is recorded in the execution audit trail.Runtime
Set via runtime.type in template.yaml.
claude-code (default)gemini-clicodex (OpenAI Codex)See Agent Runtimes for capability differences (session resume, cost reporting, MCP support).
For Agents
Agents inherit their configuration at container creation time. Changes to resource allocation, API key, or runtime trigger a container recreate. Changes to autonomy, read-only mode, timeout, circuit breaker, and model selection take effect on the next execution without restarting the container.