Skip to content

Capabilities

A capability is a unit of agent behaviour: tools the model can call, instructions that explain them, and hooks that run around each request or tool call. Everything an agent can do is a capability, and a profile is the allowlist of which ones an agent may have. A capability left out of the profile is never built, so no prompt can reach it.

A spec then configures the ones its profile allows, in a block named for the capability (shell:, memory:, …). Every key is in the spec reference.

The catalog

assistant, demo and secure are the three profiles you'd run an agent under. assistant is the one to give an everyday agent you write yourself (no shipped spec uses it), demo is assistant plus MCP, and secure is the locked-down set. ● means the profile includes it.

Conversations, memory and context. Conversations and memory · Context management

Capability What it's for assistant demo secure
StepPersistence Saves every run, step by step ● ● ●
ConversationSearch Search and re-read the full history ● ● ●
Memory A durable notebook of facts, written in the background ● ●
ThreadSummarizer The story of one conversation, as dated beats ● ●
Compaction Trims old messages and tool results to fit the window ● ● ●
ToolOutputLimits Moves oversized tool results out of the window ● ● ●
WarnOnCacheBusts Warns when prompt caching stops working ● ●

Files, code and commands. Files and code

Capability What it's for assistant demo secure
FileSystem Read, write, edit and search under one root ● ● ●
Shell Run commands, foreground or background ● ●
Python Run model-written Python in a throwaway container ●
Git Inspect and checkpoint a repository, safely ● ●
CodebaseMap Navigate a codebase without reading whole files ● ●
Vault A folder of Markdown notes, with links ● ●
Workspace Tells the model where each tool's paths start ● ● ●

Web and vision. Web and vision

Capability What it's for assistant demo secure
Web Search, and read allowlisted pages ● ●
Browser A real Chromium the agent can operate ● ●
Visual Describe images through a vision model ● ●

Orchestration and extensions. Orchestration

Capability What it's for assistant demo secure
Subagents Delegate jobs to other agents ● ●
Planning A task plan the model keeps up to date ● ●
Skills Load instructions on demand ● ●
KeywordCurator Per-turn pointers to relevant skills and notes ● ●
ScheduledTasks Run work on a cron schedule ● ●
Push Notify your phone ● ●
MCP Connect Model Context Protocol servers ●

Security. Security

Capability What it's for assistant demo secure
InjectionGuard Screens tool results for prompt injection ●
ToolGating Per-call allow, approve or block rules ●
Secrets Credential handles in, scrubbed values out ●

The guards are off in assistant and demo by design: they are for agents you want to constrain, and secure turns all of them on together. Approvals are not in the table because they're installed on every agent (an approval broker that denies when nobody is attached), and the shell command policy belongs to Shell: a spec's shell.command_policy turns it on.

Reading a page

Each page gives, per capability: its tools by name, what they do and don't do, the spec block that configures it, where its data lives under data/, and its limits. The tool names are the ones the model sees, so they match what you'll read in traces and in paf chat.

Adding one

A capability is a class with a toolset, instructions and hooks, registered in src/paf/capabilities/registry.py, built in build.py, and named in a profile. If it takes a spec block, add the parser in specs.py and a row in the spec reference (a test fails until you do).