Skip to content

agent.toml reference

agent.toml holds the agent’s model, run settings, and per-tool policy. It is the only required file in an agent folder.

Unknown keys are rejected — a typo is an error, not a silent no-op.

[agent]
model = "openai/gpt-4o-mini"
instructions_file = "instructions.md"
max_turns = 6
temperature = 0.2
[defaults.tool] # applied to every tool unless overridden
timeout_ms = 5000
memory_mb = 64
[tools.fetch-weather] # per-tool policy overlay (optional)
timeout_ms = 15000
http_allow = ["api.tfl.gov.uk", "*.metoffice.gov.uk"]
secrets = ["TFL_TOKEN"]
KeyTypeDefaultDescription
modelstring— (required)Provider-qualified model, provider/model-id (e.g. openai/gpt-4o-mini). See Choose a provider.
namestringfolder nameDisplay name for the agent.
instructionsstringInline system prompt. Mutually exclusive with instructions_file.
instructions_filestringinstructions.mdPath (relative to the folder) to read the system prompt from.
max_turnsinteger8Maximum model turns per message before the loop aborts.
temperaturefloat0.7Sampling temperature passed to the model.
memorybooleanfalseEnable built-in durable memory: adds the remember/recall tools and injects saved notes into every turn’s system prompt. See Memory.

If neither instructions nor instructions_file is set, maiden reads instructions.md if it exists, otherwise runs with an empty system prompt.

Baseline execution policy applied to every tool. Overridden per tool by a [tools.<name>] table.

KeyTypeDefaultDescription
timeout_msinteger5000Wall-clock deadline per tool call. Exceeding it traps the tool.
memory_mbinteger64Memory ceiling for the tool’s WASM instance.

Optional overlay for a specific tool, keyed by its name (the .wasm file stem). Any field omitted here falls back to [defaults.tool].

KeyTypeDescription
timeout_msintegerOverride the wall-clock deadline for this tool. Also bounds any request it makes.
memory_mbintegerOverride the memory ceiling for this tool.
http_allowstring[]Host globs this tool may reach. Exact (api.example.com) or single-label wildcard (*.example.com). Empty means no host is allowed.
secretsstring[]Credential names the tool may reference. The host resolves and injects the value; the value never crosses into the tool. See the security model.