Skip to main content
Capabilities are the integrations and actions that the Praxa Integration Gateway can invoke on behalf of a running mission. Before you submit a mission, you can search the gateway’s capability registry to discover what is available — letting you confirm that the tools your agent needs are present and healthy before committing to a run. Capability discovery is read-only and safe to call as often as you need.

What Are Capabilities

A capability represents a specific type of action the gateway knows how to perform. This could be anything the gateway’s operator has registered — web search, code execution, document retrieval, database queries, external API calls, browser automation, or custom integrations. Capabilities are organised by kind, which describes the underlying integration mechanism: The gateway owns all credential management for every capability. Your application code never handles provider API keys — the gateway injects credentials during execution as authorised by policy.

Searching Capabilities

Use client.searchCapabilities() to find capabilities that match a described need. You pass a CapabilityRequirement object that specifies the actionFamily (a broad action category), the purpose (why you need it), and the targetType (the kind of resource being acted on). The gateway returns a ranked list of matching CapabilityManifest entries that your tenant’s policy permits.
The search is a semantic match — the gateway ranks capabilities by how well they fit your requirement description. Receiving a result in the list means policy has determined that your principal may use it; it is not merely a directory listing. Results are capped at 256 entries per search. Note that principalId is injected automatically from your OAuth token and is forbidden from the CapabilityRequirement request body. You do not specify which principal is searching.

CapabilityManifest

Each result returned by searchCapabilities() is a CapabilityManifest that describes a single registered capability:
Check healthState before submitting missions that depend on a specific capability. If a required capability is unavailable or quarantined, your mission will likely fail or stall waiting for it.

Using Capabilities in Missions

You do not invoke capabilities directly from your application code. Instead, you describe your goal in the goalSpec of a mission, and the agent autonomously selects and invokes the appropriate capabilities as it executes steps toward that goal. The Integration Gateway routes each step to an eligible capability based on the agent’s intent, your tenant’s policy, and the capability’s current health state.
This design means your application logic is decoupled from the specific integrations the gateway supports. When new capabilities are added or updated on the gateway, your missions can benefit from them without any code changes on your end.
Capability availability depends on your gateway’s configuration and your tenant’s policy. The same searchCapabilities() call may return different results across different gateway deployments or after a gateway update. Always verify capability health at runtime rather than assuming a capability you saw yesterday is still available today.