Skip to content

Agent Config (TOML)

Every Wireclaw agent is defined by a TOML configuration. This page covers all sections and fields.

[agent]
name = "research-bot"
model = "claude-sonnet-4-5"
[agent.personality]
role = "Research Assistant"
instruction = "You help users research topics by browsing the web and summarizing findings."
[channels.telegram]
token = "YOUR_BOT_TOKEN"
allowed_users = ["@username"]
[tools]
enabled = ["web_search", "browser", "pdf_read", "file_read", "file_write"]
[memory]
backend = "persistent"
ttl = "30d"
[cost_limits]
daily_usd = 5.00
FieldTypeRequiredDescription
namestringYesUnique agent name (per user). Lowercase, hyphens allowed.
modelstringYes (for deploy)Model ID. See Supported Models.
FieldTypeRequiredDescription
rolestringNoShort role description shown in system prompt.
instructionstringNoDetailed instruction for agent behavior. Markdown supported.

System prompts can also be defined in separate files: AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, BOOTSTRAP.md.

One subsection per channel type. An agent can serve multiple channels simultaneously.

[channels.telegram]
token = "123456:ABC-DEF..."
allowed_users = ["@alice", "@bob"] # optional, allows all if omitted

See the Connect Telegram, Connect Discord, and Connect Slack guides for setup steps.

FieldTypeDescription
enabledstring[]List of tool names to enable. See Built-in Tools.
allowliststring[]If set, restricts agent to only these tools.
autonomystring"supervised", "guided", or "autonomous" (default).
[tools]
enabled = ["web_search", "browser", "shell", "file_read", "file_write"]
autonomy = "autonomous"
[tools.shell]
sandbox = "landlock" # Options: landlock, bubblewrap, firejail, docker
timeout_secs = 30
[tools.browser]
domain_allowlist = ["*.wikipedia.org", "arxiv.org"]
[tools.web_fetch]
domain_allowlist = ["api.github.com", "*.stackoverflow.com"]
FieldTypeDefaultDescription
backendstring"persistent"Memory backend. Currently: "persistent".
ttlstring"30d"Time-to-live for memory entries. Format: "7d", "30d", "90d".

Memory persists across sessions, restarts, and redeployments. The agent can use memory_store, memory_recall, and memory_forget tools.

Connect external MCP servers for additional tool capabilities.

[mcp_servers.docs_search]
url = "https://your-mcp-server.com"
transport = "sse" # or "stdio"
[mcp_servers.internal_api]
command = "npx"
args = ["-y", "@your-org/mcp-server"]
transport = "stdio"
FieldTypeDefaultDescription
daily_usdfloatNo limitMaximum daily spend in USD. Agent pauses if exceeded.

See Billing & Cost Limits for details on the pay-as-you-go model.

[env]
CUSTOM_API_KEY = "your-value"
DATABASE_URL = "postgresql://..."

Environment variables are available to the agent at runtime. Values are stored securely and never exposed in API list responses.

[advanced]
# Raw RayCore config.toml fields — use with caution
provider_timeout_secs = 120