allowedTools controls the optional tools available to an agent. It is an allowlist, but two groups have special defaults:
vault_get,vault_list,register_outcome,http_fetch, andhttp_downloadare always registered. Vault tools are kept for legacy agent-scoped secrets; use Connections for new external API keys and integrations.- If
allowedToolsis omitted or empty, Polpo also registers the baseline coding tools:read,write,edit,bash,glob,grep, andls. - If
allowedToolsis non-empty, include every coding tool the agent still needs. Optional tool categories and custom tools are never enabled implicitly.
Built-in catalog
Connections add explicit GitHub, Slack, Google Drive, remote MCP, channel, and API-key-backed tools. Project custom tools are enabled by their exact snake-case name.
Wildcards
The runtime expands these category wildcards:Tool loading
Configure how an agent exposes its effective runtime tool palette withtoolLoading.mode:
polpo_tool_listandpolpo_tool_searchdiscover available tools.polpo_tool_loadadds exact tool schemas to the active set for the next model step.- Loaded tools are then called directly with their native schemas.
allowedTools remains the source of truth. Progressive loading can only discover and
execute tools already granted to the agent; it does not expand permissions or
expose secrets. The loading decision runs after execution-mode, Loop step,
request, Route, and trusted-grant policies have narrowed the palette. Client-side
OpenAI-compatible tools and provider-native tools remain directly exposed and do
not count toward the automatic runtime-tool threshold.
The legacy self-hosted router uses tool_read and tool_call as an execution indirection.
Self-hosted deployments can still configure it with
POLPO_TOOL_ROUTER=auto|on|off, POLPO_TOOL_ROUTER_THRESHOLD, and
POLPO_TOOL_ROUTER_DIRECT_TOOLS. The two strategies are mutually exclusive for
one request.
Audio providers
Audio tools use the model configured on the agent.audio_transcribe reads
transcribe_model; audio_speak reads tts_model. Both fields use the
provider/model format.
OpenAI, Deepgram, and ElevenLabs audio models call the provider directly and
require the matching provider credential. Prefer managed routing or Connections
where available; legacy direct-provider paths can still use the agent vault.
edge/edge-tts runs in the agent sandbox and does not require a key. Audio
traffic does not currently use the managed Model Gateway.
For US English, start with deepgram/nova-3 for transcription and
deepgram/aura-2-thalia-en for speech. Add a deepgram provider credential
once; both tools reuse it.
Filesystem access
allowedPaths restricts filesystem tools to selected paths. Relative paths resolve from the agent working directory; in Polpo Cloud that directory is /home/daytona/project/workspace.
allowedPaths is omitted, access defaults to the workspace. Paths do not grant tools: the agent still needs the corresponding entries in allowedTools.