https://github.com/agno-agi/agno#
https://docs.agno.com/introduction/quickstart
1. Agno 简介
- Agno 是一个高性能、多代理(multi-agent)框架 + 运行时 + UI 组合,用于构建具有记忆、知识、工具使用、人机交互等能力的智能体系统。(docs.agno.com)
- 它支持将多个 Agent 组织为团队 (Team) 或工作流 (Workflow),以便处理更复杂的任务。(Medium)
- Agno 强调性能:Agent 的实例化非常快、内存开销小(以减少框架本身的开销)(GitHub)
- 它支持多模态(text / image / audio / video)输入输出,以及任意模型提供商(模型无锁定)(Analytics Vidhya)
- Agno 带有一个名为 AgentOS 的运行时 + UI 层(内置 FastAPI app + 前端界面),便于在云端部署、调试、监控 Agent。(docs.agno.com)
简单示意代码(摘自官方文档):
from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.models.anthropic import Claude
from agno.os import AgentOS
from agno.tools.mcp import MCPTools
agno_agent = Agent(
name="Agno Agent",
model=Claude(id="claude-sonnet-4-5"),
db=SqliteDb(db_file="agno.db"),
tools=[MCPTools(transport="streamable-http", url="https://docs.agno.com/mcp")],
add_history_to_context=True,
markdown=True,
)
agent_os = AgentOS(agents=[agno_agent])
app = agent_os.get_app()
if __name__ == "__main__":
agent_os.serve(app="agno_agent:app", reload=True)
(见官方 “What is Agno?” 页面)(docs.agno.com)
2. 关键理念与设计原则
理解 Agno 的核心设计思路,有助于更好地使用与扩展。
- 简单 (Simplicity):不使用复杂的图、链式结构等模式,而是希望通过干净的 Python 代码定义 Agent。(PyPI)
- 高性能 (Performance):Agent 实例化快、内存占用小。官方宣称“Agent instantiation ~3 微秒”级别的开销。(GitHub)
- 模型无关 (Model-Agnostic):支持多种模型提供商、不同模型种类,无锁定。(PyPI)
- 原生多模态:支持文本、图像、音频、视频输入输出,不需额外 hack。(Analytics Vidhya)
- 组合式 / 插件化:各个子模块(工具、记忆、知识、推理模块等)是可插拔的,可以灵活定制。(workos.com)
- 可观测性与监控:设计时考虑内置追踪、日志、调试、可视化。(workos.com)
- 私有部署优先 & 数据隐私:AgentOS 运行在你自己的云里,控制面板通过浏览器连接,不需要外部服务。(docs.agno.com)
3. 核心组件与模块
下面分别介绍 Agno 的核心子系统与它们在 Agent 构造与运行中的职责。
3.1 Agent(智能体)
-
Agent 是 Agno 的核心抽象。它代表一个自主 AI 实体,由一个语言模型(LLM)驱动决策,同时可以调用工具 (Tools)、访问记忆 (Memory)、访问知识 (Knowledge)、执行推理 (Reasoning) 等。(Medium)
-
创建 Agent 时,通常要配置以下组件 / 参数(部分可选):
model
:选择使用的 LLM,例如 OpenAIChat / Claude / Groq / 其他支持的模型。(Medium)tools
:给 Agent 提供可调用的外部能力(详见下文 Tools 部分)。(workos.com)memory
/db
/storage
:处理对话状态、长期记忆或持久存储。(workos.com)knowledge
:如果有知识库或向量检索模块,可让 Agent 做检索增强推理 (RAG) 等操作。(Medium)instructions
/description
:为 Agent 提供系统提示或角色说明,影响其行为风格。(workos.com)- 其他控制参数:如是否显示工具调用、是否以 Markdown 格式输出、中间推理步骤控制等。(workos.com)
-
Agent 执行流程(高层):
- 接收输入(用户 query 或任务)
- 模型判断下一步:直接生成回答、调用某个工具、先进行思考/推理
- 若调用工具,则执行工具,获取结果
- 将工具返回结果与上下文整合,再让模型生成最终输出
- 更新记忆 / 存储 / 知识状态(如果有)
- 返回响应给调用者
-
Agent 可串联调用多个工具、中间步骤可推理、也可以与其他 Agents 协作。(Medium)
3.2 工具 (Tools)
- Tools 是 Agent 与外部系统 / API /资源交互的能力接口。Agent 可以在推理过程中决定调用哪个工具完成某子任务。
- Agno 提供很多内置工具(或工具 wrapper),如 Web 搜索 (DuckDuckGoTools)、金融数据 (YFinanceTools)、推理工具 (ReasoningTools) 等。(workos.com)
- 自定义工具也很简单,可以将 Python 函数或类封装成 Tool 接口,给 Agent 使用。(workos.com)
- 在 Agent 响应过程中,模型可以输出一个工具调用(包括工具名 + 参数),框架自动将其执行并带回结果,再继续后续生成。(Medium)
- 工具调用可异步、多并发执行(视实现)以提高效率。(GitHub)
3.3 记忆 (Memory) 与 存储 (Storage / DB)
- 短期记忆 / 会话状态:用于在一次对话过程中追踪上下文、历史提问与模型输出。Agent 在推理时可以选择将历史上下文(消息、工具调用等)加入当前上下文。(docs.agno.com)
- 长期记忆 / 持久存储:用于跨会话、跨用户地保存 Agent 的状态、用户偏好、知识、历史经验等。可通过数据库(如 SQLite、Postgres)来实现。(docs.agno.com)
- 在 Agent 创建时可以指定
db
、storage
等参数,将记忆或历史写入持久化存储。(docs.agno.com) - 记忆策略、过滤、压缩、摘要能力对性能和质量至关重要(特别是在长期对话中)。Agno 提供一些辅助机制(例如控制上下文长度等)——具体细节可以在文档里查。
3.4 知识 (Knowledge / 向量检索 / RAG)
- “知识”在 Agno 中通常指向量数据库 + 文档检索 + 检索增强 (Retrieval-Augmented Generation, RAG) 功能,帮助 Agent 在执行时检索与任务相关的背景信息、领域知识等。
- Agent 可以在推理过程中调用知识模块,从数据库或索引中检索相关内容,并将其作为上下文提供给 LLM。(Medium)
- 知识模块通常依赖外部向量存储(如 Postgres + PgVector、其他向量库)或检索系统。Agno 将知识模块设计为可插拔组件。(workos.com)
- 通过知识检索,Agent 可以避免只靠 prompt 提供的上下文来回答问题,从而提升事实正确性、可解释性。
3.5 推理 (Reasoning)
- 推理 (Reasoning) 模块是指那些辅助 Agent 执行推理过程(例如链式思考 / 分步推理 / 中间 “思考” 步骤等)的功能。
- 有些任务需要 Agent 先“思考 /规划 /拆解”然后再调用工具,或分阶段输出中间结果。Agno 支持将这种推理过程作为 Agent 执行逻辑的一部分。(Medium)
- 推理模块可以包含定制的思考 prompt、控制中间步骤输出方式、是否展示给用户等选项。
3.6 多代理协作:Team 与 Workflow
- 当单个 Agent 无法胜任更复杂的任务时,可以将多个 Agent 组合为 Team 或定义为 Workflow / 工作流 形式。(Medium)
- Team:多个 Agent 各司其职、协同工作,通常有协调者 /治理机制。可以让某些 Agent 负责资料检索,有些负责分析,有些负责生成报告。(Medium)
- Workflow / 工作流:定义 Agent 按步骤执行、阶段性控制流程。比 Team 更具可控性。(docs.agno.com)
- 多代理系统可以提升任务的模块化、可扩展性、可调试性,但也带来协调、通信、错误处理等复杂性。
- 在 Team / Workflow 中,Agent 之间可能需要交换中间结果、调用顺序、回溯、判断分支等机制,这部分是高级用法。
3.7 运行时 / AgentOS / 部署
- AgentOS 是 Agno 自带的运行时 + UI 层。它为 Agent / Team / Workflow 提供 API 接入、运行环境、前端界面用于调试和监控。(docs.agno.com)
- AgentOS 自带一个 FastAPI 应用,你可以直接将定义好的 Agents / Teams 部署在这个环境中。(docs.agno.com)
- 在部署时,你可以将 AgentOS 部署在你自己的云 /服务器上,前端 UI 通过浏览器连接。数据流程与 Agent 执行都留在你控制的环境中,有利于隐私与安全。(docs.agno.com)
- 在生产环境,可能还需要考虑水平扩展、负载均衡、并发处理、容错、审计日志、API 网关等。
3.8 监控、评估与可视化
- Agno 支持观测 Agent 的运行情况、调用日志、状态、性能指标等。(workos.com)
- 在创建 Agent / Team 时可以启用监控 / 日志选项,以便在 UI 或仪表板里查看其行为、工具调用、中间状态等。(Medium)
- 你也可以将 Agno 与第三方监控 /可视化平台(如 AgentOps)集成,以便更强的链路追踪、仪表板展示、指标统计等。(docs.agentops.ai)
- 在 Agent 开发或调试阶段,可以打开 “debug 模式”,让系统在终端打印所有内部流程、工具调用等信息用于排查问题。
4. 快速上手示例
下面是一个较为完整但简洁的示例,它展示了如何用 Agno 创建一个 Agent,集成 Web 搜索工具,并让它回答实时查询。
from dotenv import load_dotenv
import os
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.duckduckgo import DuckDuckGoTools
# 加载 API Key(例如 OPENAI_API_KEY)
load_dotenv()
agent = Agent(
name="NewsAgent",
model=OpenAIChat(id="gpt-4o"),
tools=[DuckDuckGoTools()],
description="You are a news summarizer",
instructions=["When answering, provide summary and links"],
show_tool_calls=True,
markdown=True,
)
agent.print_response("请给我今天的硅谷科技新闻", stream=True)
进一步,如果你想使用知识检索 (RAG)、或多个 Agent 协作、部署为服务,可参照以下思路:
- 为 Agent 添加
memory
/storage
,让它能记住对话历史 - 添加
knowledge
模块,使其能在文档库 / 向量索引中查找背景知识 - 构建多个 Agent(如检索 Agent、分析 Agent、写报告 Agent)组成 Team
- 使用 AgentOS 将其部署为 HTTP API + 前端 UI
- 启用监控 / 日志以观察 Agent 运行时行为
你也可以参考 Agno GitHub 上的 Examples / Cookbook。(GitHub)
此外,这里有一个视频教程示例:使用 Agno 构建一个用于股票研究的多代理系统:
Build a Multi‑Agent AI System for Stock Research with Agno
5. 优势、挑战与对比
优势
- 极高性能 / 轻量开销:Agent 实例化快、内存占用低。适合大规模并发使用。(GitHub)
- 简洁的编程模型:无需复杂链条、图结构,仅 Python 写就 Agent 定义。(PyPI)
- 灵活可扩展:模块化、可插拔设计,方便定制工具 / 存储 / 知识层等。(workos.com)
- 多模态与模型无锁定:支持文本 / 图像 / 音频 / 视频,以及各种模型服务商。(Analytics Vidhya)
- 自带运行时 + UI:便于部署与调试,无需从零架构 HTTP /前端界面。(docs.agno.com)
- 隐私与数据控制:数据流全在你控制的环境中,不依赖外部托管服务。(docs.agno.com)
- 可观测性 & 监控支持:方便调试、日志追踪、错误排查。(workos.com)
挑战或限制
- 复杂代理协作的治理:Team / Workflow 的设计、通信、冲突处理、失败恢复等,需要额外设计,容易出错
- 记忆 / 知识模块设计难度:长期记忆管理、检索效率、上下文压缩、过期处理等问题,需要谨慎设计
- 资源瓶颈在模型推理:即使框架轻量,模型推理仍然是瓶颈(延迟、成本、吞吐量)
- 学习曲线:虽然编程模型简洁,但要掌握多个模块(工具、知识、Team、监控)仍需投入
- 文档 / 社区成熟度:相比更成熟的生态,某些高级用例、插件或边缘场景支持可能尚不完善
- 可扩展性 / 并发控制:在高并发、分布式部署等场景下,需自行处理扩展、负载均衡、状态同步等问题
对比其他框架(如 LangChain / LangGraph / AutoGen 等)
- 与 LangChain 相比,Agno 去掉许多链式 / 模板层,追求简单、纯 Python 编程体验
- 与 LangGraph、AutoGen 等 Agent 框架相比,Agno 更强调性能、轻量、内存效率
- 在一些博客/测评中,有对比称 Agno 在实例化速度、内存使用等方面比 LangGraph 有显著优势。(Analytics Vidhya)
- 在治理 / 控制 /流程定义灵活性方面,某些框架可能提供更强的 DSL 或可视化流程支持(但也更复杂)
6. 实践建议与注意事项
- 从简单 Agent 开始:先搭建一个能调用一个工具的 Agent,验证基本流程,再逐步加复杂性
- 控制上下文窗口:对话历史、工具调用等上下文要管理(截断、摘要、过滤)以防超长输入
- 设计合理的 Memory 策略:不要把所有历史都保留,考虑有用摘要、过期清理
- 知识检索要配好向量数据库:选择适合的向量索引、检索策略(语义检索 + 精确检索混用)
- 在 Team / Workflow 设计上,要考虑错误恢复、重试机制、超时处理等
- 对工具调用的输入 / 输出要做校验 / 容错,以防工具失败导致整个 Agent 崩溃
- 调试模式极其有用:在开发阶段开启 verbose / debug 输出以理解内部流程
- 监控与日志不可少:在部署阶段要记录关键指标(延迟、错误率、调用频次、资源消耗等)
- 安全性与隐私:不要在 Agent prompt 中硬编码敏感密钥或数据,网络通信要加密
- 资源预算控制:模型推理成本可能占主导,考虑批处理、缓存、异步等策略
7. 拓展方向与研究前沿
- 在更大规模的 Agent 网络中,如何优化调度、分布式执行、负载均衡
- Agent 间通信协议 /协作模型(消息传递、黑板机制、协商机制等)
- 自适应 / 自演化 Agent 架构,让 Agent 能动态生成 /分裂 /合并
- 更高效的记忆压缩 /摘要 /检索策略
- 跨模态融合能力更强的 Agent(同时处理图像、视频、文本、音频)
- 安全、对抗性、鲁棒性:如何让 Agent 抵抗错误输入 /对抗样本 /恶意攻击
- Agent 的可解释性 / 审计性:让系统输出可追踪的思考链与调用路径
- 与其他 Agent 框架或标准的互操作性 /联合使用
- 在特定行业(如金融、医疗、法律)中嵌入专业知识、法规约束等
在最近的一篇学术综述论文 《Agentic AI Frameworks: Architectures, Protocols, and Design Challenges》 中,也有对 Agno 及其它主流 Agent 框架的体系结构比较与挑战分析。(arXiv)
8. 参考资料
- Agno “What is Agno?” 官方文档页面 (docs.agno.com)
- Agno 在 GitHub 上的库与 README 描述 (GitHub)
- “The agent framework for Python teams (WorkOS 博客)” — 对 Agno 的介绍与用法讲解 (workos.com)
- 各类社区 / 博客 /教程,对 Agno 的实践经验、对比、评价等 (Medium)
- AgentOps + Agno 集成示例 (docs.agentops.ai)
- 学术综述《Agentic AI Frameworks: …》 (arXiv)