Overview
Shannon’s tool execution system provides a secure, extensible framework for integrating external capabilities into AI agents. The architecture supports three tool types with unified execution semantics.Tool Types
MCP Tools
External HTTP APIs following Model Context Protocol
OpenAPI Tools
Auto-generated from OpenAPI 3.x specifications
Built-in Tools
Python tools with direct service access
- Unified JSON schema for parameters
- Consistent error handling
- Rate limiting and circuit breakers
- Cost tracking and budget enforcement
- Security validation
Architecture Layers
Tool Registry
Registration
Tools are registered at service startup with metadata:Discovery
Tools are exposed via HTTP API for runtime discovery:WASI Sandboxing
Python code execution happens in WebAssembly System Interface (WASI) sandboxes for security isolation.Architecture
Security Boundaries
No Network Access
No Network Access
WASI sandboxes have no network stack:
- ✅ Can compute, parse, transform data
- ❌ Cannot make HTTP requests
- ❌ Cannot open sockets
- ❌ Cannot access external resources
Read-Only Filesystem
Read-Only Filesystem
Filesystem is mounted read-only:
- ✅ Can read Python standard library
- ✅ Can read allowed data files
- ❌ Cannot write files
- ❌ Cannot modify system files
Memory Limits
Memory Limits
Memory usage is capped per execution:Use case: Prevent resource exhaustion attacks
Execution Timeouts
Execution Timeouts
Each execution has strict time limits:Use case: Prevent infinite loops and hanging processes
Setup
OpenAPI Tool Loader
Shannon dynamically generates tools from OpenAPI specifications.Spec Processing
1
Fetch Spec
Retrieve OpenAPI spec from URL or inline YAML:
2
Validate & Parse
Validate OpenAPI version and structure:
3
Generate Tools
Create tool for each operation:
4
Apply Vendor Adapter
If configured, load vendor-specific transformations:
Schema Resolution
Vendor Adapter Integration
Vendor adapters transform requests/responses for domain-specific APIs without modifying Shannon’s core.Execution Flow
Adapter Loading
Transformation Examples
Field Aliasing:Rate Limiting
Per-Tool Rate Limits
Global Rate Limits
Circuit Breakers
Prevent cascading failures when external services are unavailable.Configuration
States
Cost Tracking
Each tool execution tracks cost for budget enforcement.Per-Tool Costs
Budget Enforcement
Configuration
Error Handling
Error Categories
- Validation Errors
- Execution Errors
- Network Errors
- Circuit Breaker Errors
Retry Logic
Performance Optimizations
Connection Pooling
Response Caching
Parallel Execution
Security Considerations
Domain Allowlisting
Tool Permissions
API Key Management
- Environment Variables
- Docker Secrets
- Kubernetes Secrets
Monitoring & Observability
Metrics
Logging
Tracing
Next Steps
Adding Custom Tools
Learn how to add MCP, OpenAPI, and built-in tools
Vendor Adapters
Build domain-specific integrations
Configuration
Complete configuration reference
Security Best Practices
Harden your Shannon deployment