WebAssembly isolation. Observable by design. Zero external dependencies. Build distributed, resilient multi-agent systems with < 50Ξs overhead.
Each agent runs in its own WebAssembly sandbox. When an agent crashes, the blast radius is zero. Like containers but 100x lighter.
Industry-standard agent communication protocols at the application layer. Semantic messaging that works across cluster boundaries.
Built-in OpenTelemetry from day one. Every message traced, every decision logged, every metric captured.
Designed for real workloads, not demos. Microsecond latencies, predictable resource usage, graceful degradation.
Purpose-built tools for 3 AM debugging. Trace conversations, replay events, inspect agent state, all without restarts.
MCP (Model Context Protocol) bridges to external tools. Connect your agents to databases, APIs, and services.
Built-in clustering with SWIM protocol. No external coordination service needed. Graceful handling of network partitions.
Every feature designed to be debugged in production
$ caxton trace --conversation-id abc123 --last 5m
[03:23:45.123] agent="OrderProcessor" message="propose" status="sent"
[03:23:45.567] agent="InventoryChecker" message="propose" status="received"
[03:23:50.568] agent="InventoryChecker" error="tool timeout" tool="database_query"
$ caxton debug agent InventoryChecker --show-metrics
Memory: 45MB/512MB | Queue: 1,523 messages | Tool calls: 15/s (p99: 5.2s)
$ caxton config set --agent InventoryChecker \
--circuit-breaker.timeout=10s \
--circuit-breaker.threshold=3
Caxton follows type-driven development with a functional core and imperative shell architecture. Every architectural decision prioritizes debuggability and operational excellence.
From zero to multi-agent system in 5 minutes
# Install with observability stack included
curl -sSL https://caxton.dev/install.sh | sh
caxton init my-system --with-observability
# Create an agent from template
caxton agent create order-processor \
--template request-handler \
--capability order-processing
# Start with full observability
docker-compose up # Includes Jaeger, Prometheus
caxton deploy
caxton monitor --dashboard
# agent-config.yaml
name: order-processor
version: 1.0.0
runtime: wasm
capabilities:
- order-processing
- inventory-checking
resources:
memory: 128MB
timeout: 30s
# Deploy your compiled WebAssembly agent
caxton agent deploy order-processor.wasm \
--config agent-config.yaml \
--replicas 3
# Verify deployment
caxton agent status order-processor
â Running (3/3 instances healthy)
// Using any language with the Caxton client
const client = new CaxtonClient('https://caxton.local');
const result = await client.invoke('order-processor', {
order: {
items: ['item-123', 'item-456'],
address: { street: '123 Main St', ... }
}
});
console.log(result.tracking_number);