Orchard ships with a small standard library of tool packs, a set of model providers, and a table of default constants and limits that wrap every run. The defaults are chosen so an agent is safe and useful with no policy block at all, and the host can only tighten them. This page lists what comes built in.
Built-in tool packs
You do not write every tool yourself. use <pack> at the top of an agent pulls in a set of ready-made tools the model can call. A pack tool is dispatched exactly like one you declared yourself, with the same validation, the same redaction, and the same accounting against the budget.
use calculator // a built-in pack: gives you calculate- calculator
- adds a single
calculatetool that does exact arithmetic, which is worth having because models are unreliable at math and this is not. - http
- outbound HTTP requests, subject to the policy's domain allowlist and the egress guard.
- web
- keyless web search and readable page fetching.
- browser
- drives a real headless Chrome over the DevTools Protocol:
browser_open,browser_read(the rendered page, after JavaScript runs),browser_click,browser_type,browser_eval, andbrowser_screenshot. - files
- reading, writing, and listing files under a root directory you choose with
use files { root: "." }. - shell
- running shell commands, gated by the policy's
allow_shellsetting, which is off by default. - time
- the current date and time.
- mcp
- connecting to a Model Context Protocol server and exposing its tools to the loop.
Providers
The provider enum selects which model backend a model call routes to. The mock and ollama providers are free and offline-friendly, so an agent can be developed and tested with no API key and no network.
- anthropic
- Claude models.
- openai
- OpenAI models.
- ollama
- local models, free and offline-friendly.
- groq
- models served on Groq.
- together
- models served on Together.
- openrouter
- models routed through OpenRouter.
- mock
- the offline test provider, free and deterministic, available to every binding.
The default model set is the latest Claude models, claude-opus-4-8 and claude-sonnet-4-6.
Defaults and limits
These are the constants the runtime ships with. Unless a policy block or a host override tightens them, these are the values in force.
- max_tokens
- 4096
- conversation window
- 40
- top_k
- 5
- max_steps
- 25
- max_tool_calls
- 100
- max_requests_per_run
- 50
- allow_shell
- never
- on_violation
- stop
- max_gen_retries
- 2
- max_delegate_depth
- 4
- unattended-serve spend cap
- $5.00
- tool-result cap
- 48 KiB
- shell-stream cap
- 24 KiB
- HTTP body cap
- 8 MiB
- MAX_REDIRECTS
- 5
- circuit breaker
- 3
- embed batch
- 64
- chunk size / overlap
- 1200 / 150
- MCP protocol
- 2025-06-18
Safety mechanisms
Several mechanisms wrap every run so that untrusted content, secrets, and runaway loops are handled before they cause harm.
- sentinels
- external content is wrapped in
<<<external>>>and<<<end-external>>>so the model can tell host instructions from data it fetched. - redaction
- secret values are replaced with
«VAR»in output and in event payloads. - egress guard
- outbound HTTP is checked against the policy's allowed domains before a request leaves.
- shell gating
- the shell pack is off unless
allow_shellpermits it. - circuit breaker
- repeated tool failures trip a breaker rather than spinning.
- unattended spend cap
- an unattended
serverun stops at the spend cap so a loop cannot run up an unbounded bill.
min: the host can only tighten them, never loosen them. See the policy section in the API Reference for how a host supplies its own budgets and gates.