CapiscioSecurityExecutor¶
Full-featured security wrapper that wraps an A2A agent executor with protection.
Overview¶
CapiscioSecurityExecutor provides:
- Request validation - Validates incoming requests
- Signature verification - Verifies JWS signatures on requests
- Agent card validation - Validates caller's agent card
- Response signing - Signs all outgoing responses
- Rate limiting - Optional rate limiting
- Audit logging - Logs all security events
Basic Usage¶
from capiscio_sdk import CapiscioSecurityExecutor, SecurityConfig
# Wrap your existing executor
secured_executor = CapiscioSecurityExecutor(
wrapped_executor=my_agent_executor,
config=SecurityConfig.production()
)
# Use it like your original executor
result = await secured_executor.execute(context, event_queue)
Wrapper Functions¶
secure()¶
Minimal pattern for wrapping an agent:
from capiscio_sdk import secure, SecurityConfig
secured = secure(my_agent, config=SecurityConfig.production())
secure_agent()¶
Decorator pattern:
from capiscio_sdk import secure_agent, SecurityConfig
@secure_agent(config=SecurityConfig.production())
class MyAgent:
def execute(self, context, event_queue):
pass
API Reference¶
capiscio_sdk.executor.CapiscioSecurityExecutor ¶
Security wrapper for A2A agent executors.
Provides runtime validation, rate limiting, and security checks for A2A agent interactions. Implements the AgentExecutor interface.
__init__ ¶
Initialize security executor.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
delegate | Any | The agent executor to wrap (must implement AgentExecutor interface) | required |
config | Optional[SecurityConfig] | Security configuration (defaults to production preset) | None |
execute async ¶
Execute agent with security checks.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
context | RequestContext | RequestContext with message and task information | required |
event_queue | Any | EventQueue for publishing events | required |
Raises:
| Type | Description |
|---|---|
CapiscioValidationError | If validation fails in block mode |
CapiscioRateLimitError | If rate limit exceeded in block mode |
cancel async ¶
Cancel task with passthrough to delegate.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
context | RequestContext | RequestContext with task to cancel | required |
event_queue | Any | EventQueue for publishing cancellation event | required |
validate_agent_card async ¶
Validate an agent card from a URL.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url | str | URL to the agent card or agent root | required |
Returns:
| Type | Description |
|---|---|
ValidationResult | ValidationResult with scores |
Functions¶
capiscio_sdk.executor.secure ¶
Wrap an agent executor with security middleware (minimal pattern).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
agent | Any | Agent executor to wrap | required |
config | Optional[SecurityConfig] | Security configuration (defaults to production) | None |
Returns:
| Type | Description |
|---|---|
CapiscioSecurityExecutor | Secured agent executor |
capiscio_sdk.executor.secure_agent ¶
secure_agent(config: Optional[SecurityConfig] = None) -> Callable[[type], Callable[..., CapiscioSecurityExecutor]]
Decorator to secure an agent executor class (decorator pattern).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config | Optional[SecurityConfig] | Security configuration (defaults to production) | None |
Returns:
| Type | Description |
|---|---|
Callable[[type], Callable[..., CapiscioSecurityExecutor]] | Decorator function |