AI个人学习
和实操指南
阿里绘蛙

Agno:构建具备记忆、知识和工具的多模态智能体框架

综合介绍

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 个星标,深受开发者欢迎。

Agno:构建具备记忆、知识和工具的AI智能体框架-1


 

功能列表

  • 记忆管理:存储智能体会话状态至数据库,支持长期上下文追踪。
  • 知识库支持:通过 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 的记忆管理可保存会话状态,以下是操作步骤:

  1. 编写代码:新建 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)
    
  2. 运行:在终端输入 python agent_with_memory.py,智能体会记住并回答“张三”。

使用知识库

通过知识库提供专业回答,例如加载 PDF:

  1. 安装依赖:运行 pip install lancedb tantivy pypdf duckduckgo-search
  2. 编写代码:新建 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)
    
  3. 运行结果:智能体从 PDF 中提取菜谱生成回答。

使用工具扩展

为智能体添加搜索工具(如 DuckDuckGo):

  1. 安装依赖:运行 pip install duckduckgo-search
  2. 编写代码:新建 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)
    
  3. 运行结果:智能体会调用搜索工具返回最新资讯。

多智能体协作

组建团队处理复杂任务,例如市场分析:

  1. 安装依赖:运行 pip install duckduckgo-search yfinance
  2. 编写代码:新建 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)
    
  3. 运行结果:Web Agent 提供新闻,Finance Agent 提供数据,协作输出报告。

特色功能操作

结合记忆、知识和工具

创建一个综合智能体:

  1. 编写代码:新建 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)
    
  2. 运行结果:智能体会记住“喜欢辣味”,并推荐相关菜谱。

性能测试

验证 Agno 的高效性:

  1. 运行脚本:在 agno 目录下执行:
    ./scripts/perf_setup.sh  
    source .venvs/perfenv/bin/activate  
    python evals/performance/instantiation_with_tool.py
    
  2. 对比 LangGraph:运行 python evals/performance/other/langgraph_instantiation.py,结果显示 Agno 启动时间约 2 微秒,内存占用约 3.75KiB。

结构化输出

生成格式化数据:

  1. 修改代码:在金融智能体中运行:
    finance_agent.print_response("NVDA的分析师建议是什么?", stream=True)
    
  2. 运行结果:返回表格形式的分析师建议。

通过以上操作,用户可充分利用 Agno 的记忆、知识和工具功能,构建智能高效的 AI 应用。

CDN1
未经允许不得转载:首席AI分享圈 » Agno:构建具备记忆、知识和工具的多模态智能体框架

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文