Agno 不做更聪明的 Agent,它要把所有 Agent 框架包进同一个操作系统

Agent 框架已经够多了。LangGraph 搞图编排,Claude Agent SDK 搞工具调用,DSPy 搞 prompt 优化——各自都能用,但你想把它们串进同一个生产系统?每个框架一套 API、一套会话管理、一套日志体系,光胶水代码就够写一壶的。

Agno 这个 39.7k 星的项目就是冲着这件事去的。它不打算做更聪明的 agent 框架,而是把 Claude Agent SDK、LangGraph、DSPy 一起包进同一个 AgentOS,导出标准 FastAPI app,约 20 行代码换来 50+ 个 endpoint:run、SSE、sessions、memory、approvals、schedules,全部自带 per-user 隔离和 OpenTelemetry tracing。

本文提纲

  1. Agno 到底是什么——三层架构
  2. 20 行代码跑起来的 AgentOS
  3. 统一封装三大框架的秘密
  4. 50+ 端点里有什么
  5. 生产级的那些东西:隔离、审批、调度、可观测
  6. 和 LangChain/CrewAI 的本质区别

Agno 到底是什么——三层架构

Agno 的架构分三层,不是又一个 agent 框架,而是一个完整的 Agent 运行时操作系统:

职责
SDK 构建 Agent、Team、Workflow,带 Memory、Knowledge、Guardrails、100+ 工具集成
Runtime 无状态、session-scoped 的 FastAPI 后端,生产就绪
Control Plane AgentOS 管理界面(os.agno.com)

关键在于 Runtime 层。它不是给你一个新的 agent 编排范式,而是把不管你用什么框架写的 agent,统一包装成标准的 HTTP API 服务。你可以把 Agno 理解为 Agent 的 Kubernetes——不管容器里跑的是 Python 还是 Java,外面看到的都是标准的 Pod API。

20 行代码跑起来的 AgentOS

看这段代码,这是官方的 "Workbench" 示例:

from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.os import AgentOS
from agno.tools.workspace import Workspace

workbench = Agent(
    name="Workbench",
    model="openai:gpt-5.4",
    tools=[Workspace(
        ".",
        allowed=["read", "list", "search"],
        confirm=["write", "edit", "delete", "shell"]
    )],
    enable_agentic_memory=True,
    add_history_to_context=True,
    num_history_runs=3,
)

agent_os = AgentOS(
    agents=[workbench],
    tracing=True,
    db=SqliteDb(db_file="agno.db")
)

app = agent_os.get_app()

然后:

fastapi dev workbench.py

浏览器打开 localhost:8000/docs,50+ 个 OpenAPI 端点就出来了。SSE 流式输出、WebSocket、会话管理、记忆持久化、审批流、定时任务——全有。

这就是 Agno 的核心卖点:你不写 API 层,Agno 替你写。

统一封装三大框架的秘密

v2.6.0(2026-04-23)是转折点。Agno 引入了 AgentProtocol,把 Claude Agent SDK、LangGraph、DSPy 三家统一到一个接口下:

Claude Agent SDK → Agno:

from agno.agents.claude import ClaudeAgent

claude_agent = ClaudeAgent(
    name="Claude Worker",
    allowed_tools=["file_read", "file_write"],
    permission_mode="auto"
)

agent_os = AgentOS(agents=[claude_agent], db=db)
app = agent_os.get_app()

LangGraph → Agno:

from agno.agents.langgraph import LangGraphAgent
from my_graph import compiled_graph  # 你的 StateGraph

lg_agent = LangGraphAgent(
    name="Graph Worker",
    graph=compiled_graph
)

agent_os = AgentOS(agents=[lg_agent], db=db)
app = agent_os.get_app()

DSPy → Agno:

from agno.agents.dspy import DSPyAgent
import dspy

program = dspy.ChainOfThought("question -> answer")

dspy_agent = DSPyAgent(
    name="DSPy Worker",
    program=program
)

agent_os = AgentOS(agents=[dspy_agent], db=db)
app = agent_os.get_app()

三段代码的最后一行完全一样:AgentOS(agents=[...], db=..., tracing=True).get_app()。不管底层的 agent 是什么框架,导出的都是同一个 FastAPI app,同一套端点,同一套会话和记忆体系。

这个设计的好处是:你可以在同一个服务里混搭不同框架的 agent。一个 Claude agent 做对话,一个 LangGraph agent 做复杂编排,一个 DSPy agent 做 prompt 优化——它们共享同一个 API 入口、同一个数据库、同一套 tracing。不需要为每个框架各搭一套服务。

50+ 端点里有什么

完整的端点列表在 /docs 页面能看到,核心几类:

运行类:
- /runs — 同步/异步执行 agent
- SSE 端点 — 流式输出
- WebSocket 端点 — 实时双向通信
- /runs/{id}/resume — 恢复中断的运行(v2.6.0 新增)

会话类:
- /sessions — 创建/获取/删除会话
- /sessions/{id} — 会话详情和历史
- 会话按 user_id 隔离,支持多租户

记忆和知识:
- Agent Memory — enable_agentic_memory=True 自动开启
- Session Summary — SessionSummaryManager 自动压缩长对话
- Knowledge Base — RAG 知识库检索

审批流(HITL):
- 工具级审批:confirm=["write", "edit", "delete", "shell"] 配置哪些操作需要人工确认
- Team 级审批(v2.6.0)
- Workflow 级审批:执行后输出审核(v2.5.15)

调度:
- Cron 定时任务,不需要外部基础设施
- 后台任务执行

可观测:
- /info — agent/team/workflow 统计
- OpenTelemetry tracing — tracing=True 一行开启
- 审计日志
- 按 session_id 分组的 trace 统计

接口:
- Slack、Telegram、WhatsApp、Discord webhook
- AG-UI 协议
- A2A(Agent-to-Agent)协议

生产级的那些东西:隔离、审批、调度、可观测

光有 API 端点不算什么,Agno 真正花力气的是生产环境的那些"脏活":

Per-user 隔离。 JWT 认证 + RBAC,每个用户的会话、记忆、知识库完全隔离。多租户场景下,用 AgentFactoryTeamFactoryWorkflowFactory 动态创建 agent 实例——不同租户可以跑不同配置的 agent,但共享同一个 FastAPI 进程。

Human-in-the-Loop 审批。 这不是简单的"弹个确认框"。Workspace 工具的 confirm 参数把文件写入、编辑、删除、Shell 执行这些危险操作全部拦下来,暂停运行等人工确认后才继续。Team 级别的审批让多 agent 协作时也能插入人工检查点。Workflow 的输出审核让你在 agent 跑完后、结果发给用户前再过一遍。

Cron 调度。 内置 cron 调度器,不需要 Airflow 或 Celery。后台任务直接在 FastAPI 进程里跑,轻量场景够用了。

OpenTelemetry。 不是打 log,是标准的 OTEL trace。可以接 Jaeger、Zipkin、Datadog 任何一家。每个 agent run 自动关联 session_id,跨 agent 调用链路完整可追踪。

和 LangChain/CrewAI 的本质区别

一句话:LangChain/CrewAI 解决的是"怎么写 agent",Agno 解决的是"怎么跑 agent"。

LangChain 给你链式编排的抽象,CrewAI 给你角色扮演的编排范式,它们都假设你会用它们自己的 agent 实现。Agno 不在乎你的 agent 是谁写的——Claude SDK 的、LangGraph 的、DSPy 的、还是 Agno 自己 SDK 的——它只负责把它包装成生产级 API 服务。

打个比方:LangChain 是编程语言,Agno 是操作系统。你不会拿操作系统来写算法,也不会拿编程语言来管进程调度。它们不是竞品,是上下游。

如果你现在的痛点是"agent 能跑但上不了线",Agno 值得认真看看。20 行代码,50+ 端点,够用了。


作者: itech001
来源: 公众号:AI人工智能时代
主页: https://www.theaiera.cn,每日分享最前沿的AI新闻和技术。

本文首发于 AI人工智能时代,转载请注明出处。

posted @ 2026-05-01 03:46  iTech  阅读(15)  评论(0)    收藏  举报