返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

如何使用 Agno 构建一个基础的 AI 智能体?

[复制链接]
链载Ai 显示全部楼层 发表于 2 小时前 |阅读模式 打印 上一主题 下一主题

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.2em;display: table;border-bottom: 1px solid rgb(248, 57, 41);">什么是 Agno?

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;letter-spacing: 0.1em;">ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;font-weight: bold;">Agno[1]是一个用于构建具备记忆、知识与推理能力的多智能体系统(Multi-Agent Systems)的全栈框架。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;letter-spacing: 0.1em;">你可以使用 Agno 构建具备以下五个等级的智能体系统:

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;list-style: circle;">•Level 1:拥有工具和指令的智能体•Level 2:具备知识和存储能力的智能体•Level 3:具备记忆和推理能力的智能体•Level 4:能够协作与推理的智能体团队•Level 5:具有状态管理与确定性的智能体流程

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.1em;border-left: 4px solid rgb(248, 57, 41);">示例:Level 1 的金融推理智能体

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;letter-spacing: 0.1em;">以下是一个使用 YFinance API 回答问题的 Level 1 推理智能体示例代码:

fromagno.agent importAgentfromagno.models.anthropic importClaudefromagno.tools.reasoning importReasoningToolsfromagno.tools.yfinance importYFinanceTools
reasoning_agent =Agent( model=Claude(id="claude-sonnet-4-20250514"), tools=[ReasoningTools(add_instructions=True),YFinanceTools( stock_price=True, analyst_recommendations=True, company_info=True, company_news=True),], instructions="使用表格展示数据。", markdown=True,)

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;letter-spacing: 0.1em;">📎 示例视频:reasoning_finance_agent.mp4[2]

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.2em;display: table;border-bottom: 1px solid rgb(248, 57, 41);">快速开始

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;letter-spacing: 0.1em;">如果你是 Agno 的新手,建议先阅读官方文档,学习如何构建你的第一个智能体[3](Agent),并在Playground[4]中与其对话,还可以在agno.com[5]上实时监控。

完成入门后,前往示例库[6],开始使用 Agno 构建实际应用程序。

为什么选择 Agno?

Agno可以帮助你构建一流、高性能的智能体系统,节省大量的调研和样板代码时间。以下是 Agno 的核心优势:

•🚀模型无关:Agno 提供统一的接口,支持 23+ 个模型提供商,无需被某一个平台锁定。•⚡高性能:智能体实例化时间仅约3 微秒,平均内存占用约为6.5 KiB。•🧠推理为核心能力:推理能力是构建复杂自主智能体的关键,能显著提高系统可靠性。Agno 提供三种推理方案:推理模型推理工具自定义思维链方法。•🎥原生多模态支持:Agno 智能体原生支持多模态输入输出,包括文本、图像、音频和视频。•🧑‍🤝‍🧑多智能体架构:提供业界领先的多智能体架构(Agent Teams),具备推理、记忆和共享上下文能力。•🔍内建 Agentic 搜索:支持 20+ 种向量数据库,智能体可在运行时搜索信息。Agno 提供先进的 Agentic RAG,异步执行,性能优异。•🧠内建记忆与会话存储:智能体自带存储与记忆驱动器,实现长期记忆与会话追踪。•📦结构化输出:智能体可返回完全类型化的响应,支持模型原生结构化输出或json_mode格式。•🌐预构建 FastAPI 路由:创建智能体后,使用内置的 FastAPI 路由即可将其上线,从开发到部署仅需几分钟。•📊实时监控:你可以在agno.com[7]上实时监控智能体的会话与性能表现。

安装方式

pipinstall-Uagno

示例:推理智能体

让我们来构建一个推理智能体,以此感受 Agno 的强大能力。

📄第一步:保存代码:reasoning_agent.py

fromagno.agent importAgentfromagno.models.anthropic importClaudefromagno.tools.reasoning importReasoningToolsfromagno.tools.yfinance importYFinanceTools
agent =Agent( model=Claude(id="claude-sonnet-4-20250514"), tools=[ReasoningTools(add_instructions=True),YFinanceTools( stock_price=True, analyst_recommendations=True, company_info=True, company_news=True),], instructions=["使用表格展示数据","只输出报告内容,不要输出其他文本",], markdown=True,)
agent.print_response("请撰写一份关于 NVDA(英伟达)的报告", stream=True, show_full_reasoning=True, stream_intermediate_steps=True,)

第二步:创建虚拟环境,安装依赖,将sk-ant-api03-xxxx替换为你自己的 Anthropic API 密钥,并运行智能体。

uv venv --python 3.12source.venv/bin/activate
uv pip install agno anthropic yfinance
exportANTHROPIC_API_KEY=sk-ant-api03-xxxx
python reasoning_agent.py

执行以上代码后,你将看到智能体如何进行推理,使用ReasoningToolsYFinanceTools来收集信息、生成报告。这一过程将在控制台中以流式方式展示中间推理步骤。

📎示例输出视频:reasoning_finance_agent.mp4[8]

示例:多智能体团队

在 Agno 中,Agent 是最小的工作单元。每个 Agent 最适合承担专一任务,工具数量较少时效率最佳。

当你需要使用大量工具,或者处理多个领域的知识时,推荐使用Agent 团队(Team)将任务负载进行分工协作。

📄示例代码:agent_team.py

fromagno.agent importAgentfromagno.models.openai importOpenAIChatfromagno.tools.duckduckgo importDuckDuckGoToolsfromagno.tools.yfinance importYFinanceToolsfromagno.team importTeam
# 网络搜索智能体web_agent =Agent( name="Web Agent", role="搜索互联网上的信息", model=OpenAIChat(id="gpt-4o"), tools=[DuckDuckGoTools()], instructions="始终附上信息来源", show_tool_calls=True, markdown=True,)
# 财经数据智能体finance_agent =Agent( name="Finance Agent", role="获取金融数据", model=OpenAIChat(id="gpt-4o"), tools=[YFinanceTools( stock_price=True, analyst_recommendations=True, company_info=True)], instructions="使用表格展示数据", show_tool_calls=True, markdown=True,)
# 多智能体团队agent_team =Team( mode="coordinate",# 协作模式 members=[web_agent, finance_agent], model=OpenAIChat(id="gpt-4o"), success_criteria="生成一份内容全面、结构清晰、数据驱动的 AI 半导体公司财经新闻报告", instructions=["始终附上信息来源","使用表格展示数据"], show_tool_calls=True, markdown=True,)
# 执行任务agent_team.print_response("请分析 AI 半导体公司的市场前景和财务表现", stream=True)

⚙️安装依赖,运行示例

pipinstall duckduckgo-search yfinance
python agent_team.py

📘查看完整示例: 请参考Agno 官方文档中的 Cookbook 章节[9]

性能表现

Agno,我们对性能极度执着。为什么?因为即使是最简单的 AI 工作流,也可能生成成千上万个智能体(Agent)。当你将系统规模扩展到一定数量的用户时,性能立刻成为瓶颈

Agno 的设计目标就是构建高性能的智能体系统(Agentic Systems)

•📦 智能体实例化时间:平均约3 微秒•💾 内存占用:平均约6.5 KiB

✅ 测试环境:Apple M4 芯片的 MacBook Pro

虽然智能体的运行时间最终取决于模型的推理性能,但我们仍要尽可能优化执行速度、减少内存使用并实现工具调用的并行化。虽然这些数据看起来微不足道,但在实际运行中,即使是小规模使用也会快速积累成本

🧪 实例化时间测试

我们将测量一个带有 1 个工具的智能体的启动时间。我们运行 1000 次评估,以获得基准测量值。

⚠️ 建议你在自己的机器上运行此测试,不要直接参考以下结果。

# 使用官方脚本设置虚拟环境./scripts/perf_setup.shsource.venvs/perfenv/bin/activate
# 或者手动安装依赖# pip install openai agno langgraph langchain_openai
# Agnopython evals/performance/instantiation_with_tool.py
# LangGraphpython evals/performance/other/langgraph_instantiation.py

此评估在 Apple M4 MacBook Pro 上运行,并作为 GitHub Action 集成在官方仓库中。

右侧运行的是 LangGraph,我们提前启动它以让它领先

左侧是 Agno,但你会注意到:Agno 在 LangGraph 完成一半运行时间测量前就已经完成整个任务;更关键的是,LangGraph 甚至还没有开始测量内存使用,而 Agno 早已完成全部流程。

🎬 演示视频:agno_vs_langgraph_perf.mp4[10]

内存使用情况

为了评估内存使用情况,我们使用了 Python 的tracemalloc库。

•首先运行一个空函数,计算基准内存占用;•然后运行智能体(Agent)1000 次;•最后计算两者的差值。

这种方法可以(相对)独立地测量单个 Agent 的内存占用

⚠️建议你在自己的机器上亲自运行该测试,并深入阅读相关代码,了解实现机制。如果你发现了任何问题,欢迎反馈给我们!

🧾 总结

Agno 智能体是专为高性能而设计的。虽然我们与其他框架进行了部分性能对比,但我们始终认为:

⚠️准确性和可靠性,永远比纯粹的速度更重要。

由于每个框架的架构差异较大,我们无法像优化 Agno 那样优化其他框架。因此,未来我们将只与自身历史版本进行性能对比。

🖱️ 在 Cursor 中使用 Agno 文档

使用Cursor[11]编写 Agno 智能体时,加载官方文档能显著提高开发效率。

1.打开 Cursor 设置(Settings)或偏好设置(Preferences);2.找到“管理文档源”(Manage Documentation Sources);3.添加以下 URL:https://docs.agno.com;4.保存设置。

完成后,Cursor 就可以直接访问 Agno 的文档内容,助你更高效地开发智能体。

📚 文档资源与社区支持

官方文档:docs.agno.com[12]示例 Cookbook:Cookbook[13]社区论坛:community.agno.com[14]官方 Discord:加入 Discord[15]

🤝 贡献指南

我们欢迎社区开发者的参与!
请阅读贡献指南(Contributing Guide)[16]来开始参与贡献。

📡 遥测信息

Agno 会记录每个智能体使用了哪个模型,以便我们优先为最受欢迎的模型提供支持。

如果你希望禁用此功能,请在环境变量中设置:

AGNO_TELEMETRY=false

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ