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.
Methods
Section titled “Methods”getPromptSections()
Section titled “getPromptSections()”getPromptSections(): CapabilityPromptSection[];What does this capability contribute to the system prompt?
Returns
Section titled “Returns”getTools()
Section titled “getTools()”getTools(): ToolDeclaration<unknown, unknown>[];What tools does this capability expose for the current state?
Returns
Section titled “Returns”ToolDeclaration<unknown, unknown>[]
processToolResult()
Section titled “processToolResult()”processToolResult( toolName, args, result): CapabilityAction | null;A tool was called and executed. Does this capability handle the result?
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
|
|
|
The name of the tool that was called |
|
|
|
The arguments passed to the tool |
|
|
|
The result returned by the tool’s execute() |
Returns
Section titled “Returns”CapabilityAction | null
An action telling the host what to do, or null if this capability doesn’t handle this tool.