综合介绍
Agno 是一个由 agno-agi 团队开发并托管于 GitHub 的开源 Python 库,致力于让开发者轻松构建具备记忆、知识和工具的 AI 智能体。它支持文本、图像、音频和视频等多模态处理,提供会话状态存储(memory)、知识库查询(knowledge)和工具扩展(tools)三大核心能力。Agno 以简单高效著称,官方称其智能体创建速度比 LangGraph 快约 10,000 倍,内存占用仅为其 1/50,且支持任意语言模型(如 GPT-4o、Claude 等),实现模型无关的灵活性。无论是任务自动化还是信息处理,Agno 都能通过直观代码快速实现。截至 2025 年 3 月,Agno 在 GitHub 上已获超 19,000 个星标,深受开发者欢迎。
功能列表
- 记忆管理:存储智能体会话状态至数据库,支持长期上下文追踪。
- 知识库支持:通过 Agentic RAG 技术查询内置知识库,提供精准回答。
- 工具集成:内置 DuckDuckGo 搜索、YFinance 金融查询等工具,并支持自定义扩展。
- 多模态处理:支持文本、图像、音频和视频的输入输出,适用多样场景。
- 模型无关性:兼容任何语言模型,无供应商限制,灵活性高。
- 快速实例化:智能体创建时间低至 2 微秒,适合高并发应用。
- 多智能体协作:组建专项智能体团队,处理复杂工作流。
- 结构化输出:生成表格等格式化数据,提升结果实用性。
- 实时监控:通过 agno.com 查看智能体运行状态和性能指标。
使用帮助
安装流程
Agno 是轻量级 Python 框架,安装简单,兼容多种操作系统。以下是详细步骤:
1. 环境准备
- 系统要求:支持 Windows、Linux 或 macOS,需 Python 3.10 或以上。
- 检查 pip:运行
pip --version
确认 pip 已安装。 - 克隆仓库(可选):若需最新源码,运行:
git clone https://github.com/agno-agi/agno.git cd agno
2. 安装 Agno
- 通过 pip 安装:在终端运行:
pip install -U agno
- 额外依赖:根据需求安装,例如
pip install openai
(支持 OpenAI 模型)。
3. 配置 API 密钥
部分功能需外部模型 API,以 OpenAI 为例:
- 获取密钥:登录 OpenAI 官网生成 API Key。
- 设置环境变量:
export OPENAI_API_KEY='你的密钥' # Linux/macOS set OPENAI_API_KEY=你的密钥 # Windows
4. 验证安装
运行以下代码测试:
from agno.agent import Agent
from agno.models.openai import OpenAIChat
agent = Agent(model=OpenAIChat(id="gpt-4o"))
agent.print_response("Agno 有什么特点?")
若返回响应,安装成功。
主要功能操作流程
使用记忆功能
Agno 的记忆管理可保存会话状态,以下是操作步骤:
- 编写代码:新建
agent_with_memory.py
,输入:from agno.agent import Agent from agno.models.openai import OpenAIChat agent = Agent( model=OpenAIChat(id="gpt-4o"), description="你是一个助手,能记住对话内容", markdown=True ) agent.print_response("我叫张三,你能记住吗?", stream=True) agent.print_response("我叫什么名字?", stream=True)
- 运行:在终端输入
python agent_with_memory.py
,智能体会记住并回答“张三”。
使用知识库
通过知识库提供专业回答,例如加载 PDF:
- 安装依赖:运行
pip install lancedb tantivy pypdf duckduckgo-search
。 - 编写代码:新建
agent_with_knowledge.py
,输入:from agno.agent import Agent from agno.models.openai import OpenAIChat from agno.knowledge.pdf_url import PDFUrlKnowledgeBase from agno.vectordb.lancedb import LanceDb from agno.embedder.openai import OpenAIEmbedder agent = Agent( model=OpenAIChat(id="gpt-4o"), description="你是泰式美食专家!", instructions=["优先使用知识库中的泰式菜谱"], knowledge=PDFUrlKnowledgeBase( urls=["https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"], vector_db=LanceDb( uri="tmp/lancedb", table_name="recipes", embedder=OpenAIEmbedder(id="text-embedding-3-small") ) ), markdown=True ) if agent.knowledge: agent.knowledge.load() # 首次加载知识库 agent.print_response("如何制作泰式椰奶鸡汤?", stream=True)
- 运行结果:智能体从 PDF 中提取菜谱生成回答。
使用工具扩展
为智能体添加搜索工具(如 DuckDuckGo):
- 安装依赖:运行
pip install duckduckgo-search
。 - 编写代码:新建
agent_with_tools.py
,输入:from agno.agent import Agent from agno.models.openai import OpenAIChat from agno.tools.duckduckgo import DuckDuckGoTools agent = Agent( model=OpenAIChat(id="gpt-4o"), tools=[DuckDuckGoTools()], show_tool_calls=True, markdown=True ) agent.print_response("纽约最近发生了什么?", stream=True)
- 运行结果:智能体会调用搜索工具返回最新资讯。
多智能体协作
组建团队处理复杂任务,例如市场分析:
- 安装依赖:运行
pip install duckduckgo-search yfinance
。 - 编写代码:新建
agent_team.py
,输入:from agno.agent import Agent from agno.models.openai import OpenAIChat from agno.tools.duckduckgo import DuckDuckGoTools from agno.tools.yfinance import YFinanceTools web_agent = Agent( name="Web Agent", model=OpenAIChat(id="gpt-4o"), tools=[DuckDuckGoTools()], instructions=["始终提供来源"], markdown=True ) finance_agent = Agent( name="Finance Agent", model=OpenAIChat(id="gpt-4o"), tools=[YFinanceTools(stock_price=True, analyst_recommendations=True)], instructions=["用表格展示数据"], markdown=True ) team_agent = Agent( team=[web_agent, finance_agent], instructions=["协作完成任务"], markdown=True ) team_agent.print_response("AI半导体公司的市场前景如何?", stream=True)
- 运行结果:Web Agent 提供新闻,Finance Agent 提供数据,协作输出报告。
特色功能操作
结合记忆、知识和工具
创建一个综合智能体:
- 编写代码:新建
full_agent.py
,输入:from agno.agent import Agent from agno.models.openai import OpenAIChat from agno.knowledge.pdf_url import PDFUrlKnowledgeBase from agno.vectordb.lancedb import LanceDb from agno.embedder.openai import OpenAIEmbedder from agno.tools.duckduckgo import DuckDuckGoTools agent = Agent( model=OpenAIChat(id="gpt-4o"), description="你是美食助手,能记住用户喜好并提供菜谱", instructions=["优先使用知识库,若不足则搜索网络"], knowledge=PDFUrlKnowledgeBase( urls=["https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"], vector_db=LanceDb( uri="tmp/lancedb", table_name="recipes", embedder=OpenAIEmbedder(id="text-embedding-3-small") ) ), tools=[DuckDuckGoTools()], markdown=True ) if agent.knowledge: agent.knowledge.load() agent.print_response("我喜欢辣味,推荐一道泰式菜", stream=True) agent.print_response("我刚才说了什么喜好?", stream=True)
- 运行结果:智能体会记住“喜欢辣味”,并推荐相关菜谱。
性能测试
验证 Agno 的高效性:
- 运行脚本:在 agno 目录下执行:
./scripts/perf_setup.sh source .venvs/perfenv/bin/activate python evals/performance/instantiation_with_tool.py
- 对比 LangGraph:运行
python evals/performance/other/langgraph_instantiation.py
,结果显示 Agno 启动时间约 2 微秒,内存占用约 3.75KiB。
结构化输出
生成格式化数据:
- 修改代码:在金融智能体中运行:
finance_agent.print_response("NVDA的分析师建议是什么?", stream=True)
- 运行结果:返回表格形式的分析师建议。
通过以上操作,用户可充分利用 Agno 的记忆、知识和工具功能,构建智能高效的 AI 应用。