Core Concepts
Understanding Agenkit's fundamental concepts and design philosophy.
Overview
Agenkit is built on three core principles:
- Minimal Interfaces - Only what's required for interoperability
- Layered Architecture - Independent, composable layers
- Language Agnostic - Identical APIs across Python and Go
Key Concepts
Architecture
Learn how Agenkit's five layers work together to provide a complete agent framework.
Interfaces
Understand the core contracts: Agent, Message, Tool, and ToolResult.
Design Principles
Explore the philosophy behind Agenkit's design decisions.
The Foundation
At its heart, Agenkit defines just four primitives:
# 1. Agent - processes messages
class Agent:
def process(message: Message) -> Message
# 2. Message - universal data format
@dataclass
class Message:
role: str
content: Any
metadata: dict
# 3. Tool - executable functions
class Tool:
def execute(**kwargs) -> ToolResult
# 4. ToolResult - tool execution results
@dataclass
class ToolResult:
success: bool
data: Any
Everything else in Agenkit builds on these four primitives.
Design Philosophy
"Make the simple things simple, and the complex things possible."
Agenkit achieves this through:
- Minimal core - Four interfaces, that's it
- Decorator pattern - Stack middleware like LEGO bricks
- Protocol adapters - Same interface, multiple transports
- Type safety - Full typing in both Python and Go
- Production ready - Error handling, observability, security
Learning Path
- Start with Architecture to understand the big picture
- Deep dive into Interfaces to learn the contracts
- Review Design Principles for the philosophy
- Explore Features to see what's built on top
Ready to dive in? Start with the Architecture Guide →