Framework Integration Overview
Agent Kernel supports multiple AI agent frameworks through a unified adapter pattern.
Supported Frameworks
Framework Comparison
| Framework | Best For | Complexity | Multi-Agent |
|---|---|---|---|
| OpenAI Agents | Production apps with OpenAI | Low | Yes |
| CrewAI | Role-based collaboration | Medium | Yes |
| LangGraph | Complex workflows | High | Yes |
| Google ADK | Google ecosystem | Low | Yes |
| Smolagents | Lightweight tool-driven agents | Medium | Yes |
| Pydantic AI | Multi-provider apps, provider failover, typed structured output | Low | Yes |
| LiveKit Agents (coming soon) | Real-time voice/video agents | Medium | Yes |
Capability Matrix
Not every Agent Kernel capability is available on every framework:
| Capability | OpenAI Agents | CrewAI | LangGraph | Google ADK | Smolagents | Pydantic AI |
|---|---|---|---|---|---|---|
Token streaming (execution.mode: stream) | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ |
Structured output (AgentReplyAny) | ✅ output_type | ✅ module-level output_pydantic/output_json | ✅ response_format | ✅ output_schema | ✅ dict/Pydantic final_answer | ✅ output_type |
Portable tools (ToolBuilder) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Multimodal attachments | ✅ | ✅* | ✅* | ✅ | ✅* | ✅* |
| Hooks / guardrails / sessions / deployments | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Native multi-provider models | ⚠️ OpenAI-first | via LiteLLM | via LangChain | via LiteLLM | via LiteLLM | ✅ many providers + FallbackModel |
* Multimodal preprocessing (the attachment pre-hook and analyze_attachments tool) is framework-agnostic; direct image/file input via the REST API is currently documented for OpenAI Agents SDK and Google ADK. CrewAI and Smolagents raise NotImplementedError for streaming; use the default synchronous mode (or rest_sync on AWS) with those frameworks.
Choosing a Framework
OpenAI Agents SDK
- Official OpenAI support
- Simple API
- Built-in function calling
- Good for production
CrewAI
- Role-based agents
- Built-in collaboration patterns
- Easy task delegation
- Great for teams
LangGraph
- Graph-based orchestration
- Maximum flexibility
- Complex state management
- Best for sophisticated workflows
Google ADK
- Gemini models
- Google Cloud integration
- Simple agent creation
- Good for Google ecosystem
Smolagents
- Lightweight and composable design
- ToolCalling and CodeAgent support
- Managed-agent routing patterns
- Great for fast experimentation and mixed-agent setups
Pydantic AI
- Native multi-provider models (OpenAI, Anthropic, Google, Bedrock, Groq, Mistral, …)
FallbackModelfor automatic provider failover- Typed, self-correcting structured output via
output_type - Delegation-via-tool for multi-agent routing (no
handoffs=primitive)
LiveKit Agents (coming soon)
- Real-time audio and video agent framework
- Voice-enabled AI applications
- Low-latency media pipelines
- Ideal for conversational voice assistants and live-streaming AI bots
Migration Between Frameworks
Agent Kernel makes it easy to migrate:
# Original CrewAI implementation
from crewai import Agent
from agentkernel.crewai import CrewAIModule
agent = Agent(role="assistant", ...)
CrewAIModule([agent])
# Migrate to OpenAI (change 2 lines)
from agents import Agent
from agentkernel.openai import OpenAIModule
agent = Agent(name="assistant", ...)
OpenAIModule([agent])
Your execution code (CLI, API, deployment) remains unchanged!
Portable Tool Functions
Agent Kernel lets you write tool functions as plain Python and bind them to any framework using a ToolBuilder. The same tool works across all supported frameworks:
def get_weather(city: str) -> str:
"""Returns the weather for a given city."""
return f"Weather in {city}: sunny"
# Same function, any framework
from agentkernel.openai import OpenAIToolBuilder
from agentkernel.crewai import CrewAIToolBuilder
from agentkernel.smolagents import SmolagentsToolBuilder
openai_tools = OpenAIToolBuilder.bind([get_weather])
crewai_tools = CrewAIToolBuilder.bind([get_weather])
smolagents_tools = SmolagentsToolBuilder.bind([get_weather])
Framework Portability
Available soon!
Features:
- Switch the underlying agentic framework without affecting the agent logic
- Effortless migration of already existing agents to the unified portable implementation
