Agno:39k星的Python Agent框架,从Phidata到生产级运行时
如果你关注Python Agent框架,一定听过Phidata。2026年它更名为Agno,定位也从"框架"升级为"Agent运行时"——不只是帮你构建Agent,还要帮你跑Agent、管Agent、监控Agent。
39k+ GitHub Stars,424名贡献者,pypi月下载量持续增长。这不是一个实验性项目,而是一个已经在生产环境跑了很久的工具。
为什么需要"Agent运行时"?
大多数Agent框架(LangChain、CrewAI)解决的是"怎么构建Agent"的问题。但Agent一旦上线,新的问题来了:
- 调度:Agent什么时候跑?多久跑一次?
- 监控:Agent在干什么?哪一步卡住了?
- 权限:哪些Agent能访问哪些资源?
- 版本:Agent更新了怎么回滚?
Agno把这些都内置了。
核心特性
1. 极简API
Agno的Agent定义非常简洁:
from agno.agent import Agent
from agno.models.ollama import Ollama
from agno.tools.duckduckgo import DuckDuckGoTools
agent = Agent(
model=Ollama(id="gemma4"),
tools=[DuckDuckGoTools()],
markdown=True,
instructions="你是一个技术研究助手,搜索最新的AI技术动态"
)
agent.print_response("2026年最值得关注的AI Agent框架有哪些?")
10行代码,一个带搜索能力的Agent就跑起来了。
2. 多Agent团队
from agno.team import Team
researcher = Agent(
name="研究员",
model=Ollama(id="gemma4"),
tools=[DuckDuckGoTools()],
instructions="搜索并整理技术资料"
)
writer = Agent(
name="写手",
model=Ollama(id="gemma4"),
instructions="将技术资料写成通俗易懂的博客文章"
)
team = Team(
agents=[researcher, writer],
mode="route", # 或 "coordinate"
instructions="先研究再写作"
)
team.print_response("写一篇关于Ollama v0.31的博客文章")
3. 内置RAG
from agno.agent import Agent
from agno.models.ollama import Ollama
from agno.vectordb.qdrant import Qdrant
from agno.knowledge.pdf import PDFKnowledgeBase
agent = Agent(
model=Ollama(id="gemma4"),
knowledge=PDFKnowledgeBase(
path="./docs",
vector_db=Qdrant(collection="my-docs")
),
search_knowledge=True,
)
Agno vs 竞品对比
| 维度 | Agno | LangChain | CrewAI | Pydantic AI |
|---|---|---|---|---|
| 定位 | 运行时 | 框架 | 编排 | 类型安全 |
| 上手难度 | 低 | 高 | 中 | 中 |
| 内置调度 | ✅ | ❌ | ❌ | ❌ |
| 内置RBAC | ✅ | ❌ | ❌ | ❌ |
| Tracing | ✅ | LangSmith | ❌ | ❌ |
| 本地模型 | ✅ Ollama | ✅ | ✅ | ✅ |
| MCP支持 | ✅ | ✅ | ⚠️ | ⚠️ |
| FastAPI集成 | ✅ 原生 | 需自建 | 需自建 | ✅ 原生 |
实战:用Agno搭建51domino内容助手
以下是一个实际可用的例子——用Agno搭建一个能搜索网页、读取本地文件、生成博客文章的Agent:
from agno.agent import Agent
from agno.models.ollama import Ollama
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.file import FileTools
content_agent = Agent(
name="51domino内容助手",
model=Ollama(id="gemma4", host="http://localhost:11434"),
tools=[
DuckDuckGoTools(),
FileTools(base_path="/opt/51domino/blog_posts"),
],
instructions=[
"你是一个AI技术博客的内容助手",
"搜索最新的AI技术落地动态",
"用通俗易懂的技术语言撰写博客文章",
"输出Markdown格式,包含frontmatter",
],
markdown=True,
)
# 搜索并生成
content_agent.print_response(
"搜索最近一周的AI Agent新闻,写一篇500字的技术博客摘要"
)
安装和部署
# 安装
pip install agno
# 带Ollama支持
pip install agno ollama
# 带Qdrant RAG
pip install agno qdrant-client
# 启动AgentOS控制台
agno serve
Docker部署:
# docker-compose.yml
services:
agno:
image: agno/agno:latest
ports:
- 8080:8080
environment:
- OLLAMA_HOST=http://host.docker.internal:11434
volumes:
- ./agents:/app/agents
已知限制
文档质量:Agno的文档更新很快,但有些高级特性的文档还不够完善,需要读源码。
社区规模:相比LangChain的庞大生态,Agno的第三方集成还比较少。但核心功能都内置了,大多数场景不需要第三方。
内存占用:运行时比纯框架稍重,因为内置了监控、调度等组件。但对于服务器部署来说不是问题。
总结
Agno代表了Agent框架的下一个阶段:不只是构建,还要运行和管理。如果你的Agent需要上生产——需要调度、监控、权限控制——Agno目前是Python生态中最完整的选择。
对于51domino这种本地部署场景,Agno + Ollama的组合可以快速搭建出生产级的Agent服务,而且全程数据不出机器。