Agenkit
The foundation for AI agents.
A production-ready framework for building distributed AI agent systems with cross-language support, comprehensive middleware, and full observability.
๐ Production Ready
All 5 development phases complete:
- โ Phase 1: Foundation & Core (100%)
- โ Phase 2: Transport Layer (100%)
- โ Phase 3: Middleware & Resilience (100%)
- โ Phase 4: Testing & Quality (100% - 867 tests passing)
- โ Phase 5: DevOps & Release (100% - Docker + Kubernetes ready)
โจ Key Features
Core Capabilities
- ๐๏ธ Minimal, Type-Safe Interfaces - Agent, Message, Tool primitives
- ๐ Orchestration Patterns - Sequential, Parallel, Router, Fallback, Conditional
- ๐ Cross-Language Support - Python โ Go with full compatibility
- ๐ Multiple Transports - HTTP, gRPC, WebSocket
- ๐ก๏ธ Production Middleware - Circuit breaker, retry, timeout, rate limiting, caching, batching
- ๐ Full Observability - OpenTelemetry tracing, Prometheus metrics, structured logging
- ๐ณ Container Ready - Docker images and Kubernetes manifests
- โก High Performance - <1% overhead, benchmarked and optimized
๐ Quick Start
from agenkit import Agent, Message
# Create a simple agent
class MyAgent(Agent):
@property
def name(self) -> str:
return "my-agent"
@property
def capabilities(self) -> list[str]:
return ["text-processing"]
async def process(self, message: Message) -> Message:
return Message(
role="agent",
content=f"Processed: {message.content}"
)
# Use it
agent = MyAgent()
response = await agent.process(Message(role="user", content="Hello!"))
print(response.content) # "Processed: Hello!"
package main
import (
"context"
"fmt"
"github.com/agenkit/agenkit-go/agenkit"
)
type MyAgent struct{}
func (a *MyAgent) Name() string {
return "my-agent"
}
func (a *MyAgent) Capabilities() []string {
return []string{"text-processing"}
}
func (a *MyAgent) Process(ctx context.Context, msg *agenkit.Message) (*agenkit.Message, error) {
return &agenkit.Message{
Role: "agent",
Content: fmt.Sprintf("Processed: %s", msg.Content),
}, nil
}
func main() {
agent := &MyAgent{}
msg := &agenkit.Message{Role: "user", Content: "Hello!"}
response, _ := agent.Process(context.Background(), msg)
fmt.Println(response.Content) // "Processed: Hello!"
}
๐ Learn More
-
Getting Started
New to Agenkit? Start here to learn the basics and build your first agent.
-
Architecture
Understand the layered architecture and design principles behind Agenkit.
-
Guides
Step-by-step guides for Python, Go, cross-language communication, and deployment.
-
Examples
28+ comprehensive examples covering all features and patterns.
๐๏ธ Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Application Layer โ
โ (Your agents, tools, and business logic) โ
โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Middleware Layer โ
โ Circuit Breaker โข Retry โข Timeout โข Rate Limiter โ
โ Caching โข Batching โข Tracing โข Metrics โ
โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Transport Layer โ
โ HTTP โข gRPC โข WebSocket โข Protocol Adapters โ
โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Core Interfaces โ
โ Agent โข Message โข Tool โข Patterns โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Performance
Agenkit is designed for production use with minimal overhead:
- Go HTTP: 18.5x faster than Python (0.055ms vs 1.02ms)
- Middleware overhead: <0.01% of total request time
- Transport overhead: <1% in realistic LLM workloads
- Message scaling: 10,000x size = 190x latency (excellent efficiency)
๐งช Testing
Comprehensive test coverage with 867 tests passing (100%):
- 76 tests - Cross-language integration (Python โ Go)
- 53 tests - Chaos engineering (network failures, crashes, slow responses)
- 37 tests - Property-based testing (invariant validation)
- 700+ tests - Unit and integration tests
๐ค Contributing
We welcome contributions! Check out our contributing guide to get started.
๐ License
Apache License 2.0 - See LICENSE for details.
๐ Links
- Website: agenkit.dev
- GitHub: github.com/scttfrdmn/agenkit
- Issues: Report a bug
- Discussions: Join the discussion
Built with โค๏ธ by the Agenkit team