Minimalist Python framework for building AI agents
Project description
AgentFlow
The minimalist Python framework for building AI agents
AgentFlow is a production-ready framework that makes building AI agents simple, testable, and extensible. Inspired by FastAPI's philosophy of developer experience first.
🚀 Key Features
- 🧪 Best-in-class Testing - MockModel + AgentTestClient (FastAPI-inspired)
- 🔌 Native MCP Support - First Python framework with MCP integration
- ⚡ Async-First - Built on asyncio for maximum performance
- 🛡️ Production-Ready - Robust loop with JSON auto-repair, timeout protection, loop detection
- 🔧 Tool Ecosystem - Mix local Python tools with MCP servers seamlessly
- 📦 Multi-LLM - Ollama, OpenAI, Mistral support out of the box
- 💾 Flexible Memory - InMemory and FileMemory with custom backend support
📥 Installation
pip install agentflow
⚡ Quick Start
Basic Usage
import asyncio
from agentflow import Agent
async def main():
agent = Agent(model="llama3")
response = await agent.arun("What is Python?")
print(response)
asyncio.run(main())
With Tools
agent = Agent(model="gpt-4o")
@agent.tool
def calculate(expression: str) -> float:
"""Evaluate a mathematical expression."""
return eval(expression)
response = await agent.arun("What is 123 * 456?")
With MCP Servers
from agentflow.mcp import MCPClient
# Connect to filesystem server
async with MCPClient(
transport="stdio",
command=["npx", "@modelcontextprotocol/server-filesystem", "/tmp"]
) as mcp:
await agent.add_mcp_tools(mcp)
response = await agent.arun("List files in /tmp")
🧪 Testing (Killer Feature)
from agentflow.testing import MockModel, AgentTestClient
# Test without real LLM calls
model = MockModel(responses=["Hello! I'm an AI assistant."])
agent = Agent(model=model)
client = AgentTestClient(agent)
response = client.run("Hello")
client.assert_response_contains("Hello")
client.assert_tool_called("my_tool")
🆚 Why AgentFlow?
| Feature | AgentFlow | LangChain | CrewAI | AutoGen |
|---|---|---|---|---|
| Easy Testing | ✅ MockModel + TestClient | ❌ | ❌ | ❌ |
| Native MCP | ✅ First framework | ❌ | ❌ | ❌ |
| Async-First | ✅ | Partial | ❌ | ❌ |
| Minimalist | ✅ <700 LOC core | ❌ | ❌ | ❌ |
| Production-Ready | ✅ v1.0 | ✅ | Partial | Partial |
📚 Documentation & Examples
- Documentation - Comprehensive guides and API reference
- Examples - 8 complete examples covering all features
🏗️ Architecture
AgentFlow follows these principles:
- Explicit > Magic - Clear APIs, no hidden behavior
- Minimal by default - Start simple, add complexity when needed
- Testable - Built-in mocking and assertion helpers
- Async-first - Non-blocking I/O for performance
🔧 Requirements
- Python 3.9+
- httpx
📄 License
MIT License - see LICENSE file for details.
🙏 Credits
Created by Hamadi Chaabani
Inspired by:
- FastAPI's developer experience
- Anthropic's MCP vision
- The Python async ecosystem
🔗 Ecosystem
- agentflow - Main framework (this repo)
- agentflow-docs - Documentation
- agentflow-examples - Examples
⭐ Star History
If you find AgentFlow useful, please star it on GitHub!
AgentFlow v1.0 - Production-ready. Fully tested. Simply powerful.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentflow_ai-1.0.0.tar.gz.
File metadata
- Download URL: agentflow_ai-1.0.0.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25c60922a841d5c53b16cbbbab4cb672c70a138e15207a8e291447398dd991d2
|
|
| MD5 |
1febd289d0e23ea3e4ea253a34932402
|
|
| BLAKE2b-256 |
bc43c409b340112a5798aaedd1f4d9f5288a39d89e81369a240afbc4accf7359
|
File details
Details for the file agentflow_ai-1.0.0-py3-none-any.whl.
File metadata
- Download URL: agentflow_ai-1.0.0-py3-none-any.whl
- Upload date:
- Size: 14.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c61f4634af04ed43085758fd6b2ec4ac0950f2936e3c077111500d588377c0f
|
|
| MD5 |
a74875558d32cfea65b8bd01623341de
|
|
| BLAKE2b-256 |
889b5318709188a4b3fb1d1e3c551d7a6323ef11da03713ec3d728c90c6cdefc
|