Skip to content

Capability

A Capability is a self-contained unit of agent behavior that exposes its features as tools and prompt sections. Any LLM backend that supports tool calling can drive it.

The Capability interface follows the Component pattern: each feature (flows, triage, extraction, handoffs, guardrails) is a capability that plugs into a CapabilityHost. The host collects tools, builds prompts, and routes tool results — the LLM backend is irrelevant.

getPromptSections(): CapabilityPromptSection[];

What does this capability contribute to the system prompt?

CapabilityPromptSection[]


getTools(): ToolDeclaration<unknown, unknown>[];

What tools does this capability expose for the current state?

ToolDeclaration<unknown, unknown>[]


processToolResult(
toolName,
args,
result): CapabilityAction | null;

A tool was called and executed. Does this capability handle the result?

Parameter Type Description

toolName

string

The name of the tool that was called

args

unknown

The arguments passed to the tool

result

unknown

The result returned by the tool’s execute()

CapabilityAction | null

An action telling the host what to do, or null if this capability doesn’t handle this tool.