Agno:18.7K Star!快速构建多模态智能体的轻量级框架,运行速度比LangGraph快5000倍!

本文涉及的产品
图像搜索,任选一个服务类型 1个月
简介: Agno 是一个用于构建多模态智能体的轻量级框架,支持文本、图像、音频和视频等多种数据模态,能够快速创建智能体并实现高效协作。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


大家好,我是蚝油菜花,今天跟大家分享一下 Agno 这个用于构建多模态智能体的轻量级框架。

🚀 快速阅读

Agno 是一个用于构建多模态智能体的轻量级框架。

  1. 核心功能:支持文本、图像、音频和视频等多种数据模态,创建智能体的速度比传统框架快 5000 倍。
  2. 技术原理:基于 Python 实现,无依赖性设计,支持与向量数据库集成,实现高效的检索增强生成(RAG)或动态少样本学习。

Agno 是什么

Agno

Agno 是一个用于构建多模态智能体的轻量级框架。它支持多种数据模态(如文本、图像、音频和视频),并且可以快速创建智能体。Agno 提供了内存管理和知识库支持,能够将用户会话和智能体状态存储在数据库中,基于向量数据库实现动态少样本学习。此外,Agno 支持多智能体协作,帮助用户实时跟踪智能体会话和性能。

Agno 的设计目标是简化开发流程,提升性能,并确保灵活性。通过无依赖性架构和纯 Python 实现,开发者可以轻松上手并快速构建高效的智能体应用。

Agno 的主要功能

  • 极速智能体创建:创建智能体的速度比传统框架(如 LangGraph)快 5000 倍。
  • 模型无关性:支持任何模型和提供商,用户可以根据需要选择不同的模型,无需担心供应商锁定。
  • 多模态支持:原生支持文本、图像、音频和视频等多种数据模态。
  • 多智能体协作:支持将任务分配给多个专业化的智能体,实现高效的分工和协作。
  • 内存管理:将用户会话和智能体状态存储在数据库中,确保数据的持久化和安全性。
  • 知识库支持:基于向量数据库实现检索增强生成(RAG)或动态少样本学习,提升智能体的知识检索能力。
  • 结构化输出:智能体支持结构化数据格式响应,方便与其他系统集成。
  • 实时监控:在 agno.com 上实时跟踪智能体会话和性能,便于管理和优化。

Agno 的技术原理

  • 纯 Python 实现:Agno 基于 Python 编写,避免复杂的图结构、链式调用或其他复杂的模式,让代码更加简洁易懂,同时也便于开发者快速上手。
  • 无依赖性架构:用无依赖性设计,支持任何模型、任何提供商和任何模态。
  • 向量数据库集成:支持与向量数据库集成,利用向量数据库的高效检索能力,实现检索增强生成(RAG)或动态少样本学习。
  • 多智能体协作机制:基于任务分配和分工,将复杂任务分解为多个子任务,由不同的专业智能体分别处理。

如何运行 Agno

1. 安装 Agno

pip install -U agno

2. 创建基本智能体

from agno.agent import Agent
from agno.models.openai import OpenAIChat

agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    description="You are an enthusiastic news reporter with a flair for storytelling!",
    markdown=True
)
agent.print_response("Tell me about a breaking news story from New York.", stream=True)

要运行该智能体,请安装依赖项并导出 OPENAI_API_KEY

pip install agno openai

export OPENAI_API_KEY=sk-xxxx

python basic_agent.py

3. 创建带有工具的智能体

from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.duckduckgo import DuckDuckGoTools

agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    description="You are an enthusiastic news reporter with a flair for storytelling!",
    tools=[DuckDuckGoTools()],
    show_tool_calls=True,
    markdown=True
)
agent.print_response("Tell me about a breaking news story from New York.", stream=True)

安装依赖项并运行智能体:

pip install duckduckgo-search

python agent_with_tools.py

4. 创建带有知识库的智能体

from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.embedder.openai import OpenAIEmbedder
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.knowledge.pdf_url import PDFUrlKnowledgeBase
from agno.vectordb.lancedb import LanceDb, SearchType

agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    description="You are a Thai cuisine expert!",
    instructions=[
        "Search your knowledge base for Thai recipes.",
        "If the question is better suited for the web, search the web to fill in gaps.",
        "Prefer the information in your knowledge base over the web results."
    ],
    knowledge=PDFUrlKnowledgeBase(
        urls=["https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"],
        vector_db=LanceDb(
            uri="tmp/lancedb",
            table_name="recipes",
            search_type=SearchType.hybrid,
            embedder=OpenAIEmbedder(id="text-embedding-3-small"),
        ),
    ),
    tools=[DuckDuckGoTools()],
    show_tool_calls=True,
    markdown=True
)

# Comment out after the knowledge base is loaded
if agent.knowledge is not None:
    agent.knowledge.load()

agent.print_response("How do I make chicken and galangal in coconut milk soup", stream=True)
agent.print_response("What is the history of Thai curry?", stream=True)

安装依赖项并运行智能体:

pip install lancedb tantivy pypdf duckduckgo-search

python agent_with_knowledge.py

5. 创建多智能体协作

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",
    role="Search the web for information",
    model=OpenAIChat(id="gpt-4o"),
    tools=[DuckDuckGoTools()],
    instructions="Always include sources",
    show_tool_calls=True,
    markdown=True,
)

finance_agent = Agent(
    name="Finance Agent",
    role="Get financial data",
    model=OpenAIChat(id="gpt-4o"),
    tools=[YFinanceTools(stock_price=True, analyst_recommendations=True, company_info=True)],
    instructions="Use tables to display data",
    show_tool_calls=True,
    markdown=True,
)

agent_team = Agent(
    team=[web_agent, finance_agent],
    model=OpenAIChat(id="gpt-4o"),
    instructions=["Always include sources", "Use tables to display data"],
    show_tool_calls=True,
    markdown=True,
)

agent_team.print_response("What's the market outlook and financial performance of AI semiconductor companies?", stream=True)

安装依赖项并运行智能体团队:

pip install duckduckgo-search yfinance

python agent_team.py

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
14天前
|
人工智能 缓存 监控
使用LangChain4j构建Java AI智能体:让大模型学会使用工具
AI智能体是大模型技术的重要演进方向,它使模型能够主动使用工具、与环境交互,以完成复杂任务。本文详细介绍如何在Java应用中,借助LangChain4j框架构建一个具备工具使用能力的AI智能体。我们将创建一个能够进行数学计算和实时信息查询的智能体,涵盖工具定义、智能体组装、记忆管理以及Spring Boot集成等关键步骤,并展示如何通过简单的对话界面与智能体交互。
360 1
|
1月前
|
机器学习/深度学习 人工智能 计算机视觉
让AI真正"看懂"世界:多模态表征空间构建秘籍
本文深入解析多模态学习的两大核心难题:多模态对齐与多模态融合,探讨如何让AI理解并关联图像、文字、声音等异构数据,实现类似人类的综合认知能力。
216 6
|
25天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1629 89
|
3月前
|
存储 运维 数据挖掘
革新智能驾驶数据挖掘检索效率!某国内新能源汽车未来出行领导者选择阿里云Milvus构建多模态检索引擎
在智能驾驶技术快速发展中,数据成为驱动算法进步的核心。某新能源汽车领军企业基于阿里云Milvus向量数据库构建智能驾驶数据挖掘平台,利用其高性能、可扩展的相似性检索服务,解决了大规模向量数据检索瓶颈问题,显著降低20%以上成本,缩短模型迭代周期,实现从数据采集到场景挖掘的智能化闭环,加速智能驾驶落地应用。
革新智能驾驶数据挖掘检索效率!某国内新能源汽车未来出行领导者选择阿里云Milvus构建多模态检索引擎
|
3月前
|
人工智能 自然语言处理 API
构建可落地的企业AI Agent,背后隐藏着怎样的技术密码?
三桥君深入解析企业AI Agent技术架构,涵盖语音识别、意图理解、知识库协同、语音合成等核心模块,探讨如何实现业务闭环与高效人机交互,助力企业智能化升级。
209 6
|
11天前
|
人工智能 缓存 自然语言处理
Java与多模态AI:构建支持文本、图像和音频的智能应用
随着大模型从单一文本处理向多模态能力演进,现代AI应用需要同时处理文本、图像、音频等多种信息形式。本文深入探讨如何在Java生态中构建支持多模态AI能力的智能应用。我们将完整展示集成视觉模型、语音模型和语言模型的实践方案,涵盖从文件预处理、多模态推理到结果融合的全流程,为Java开发者打开通往下一代多模态AI应用的大门。
158 41
|
4月前
|
数据采集 机器学习/深度学习 搜索推荐
利用通义大模型构建个性化推荐系统——从数据预处理到实时API部署
本文详细介绍了基于通义大模型构建个性化推荐系统的全流程,涵盖数据预处理、模型微调、实时部署及效果优化。通过采用Qwen-72B结合LoRA技术,实现电商场景下CTR提升58%,GMV增长12.7%。文章分析了特征工程、多任务学习和性能调优的关键步骤,并探讨内存优化与蒸馏实践。最后总结了大模型在推荐系统中的适用场景与局限性,提出未来向MoE架构和因果推断方向演进的建议。
612 10
|
13天前
|
存储 人工智能 数据可视化
从零构建能自我优化的AI Agent:Reflection和Reflexion机制对比详解与实现
AI能否从错误中学习?Reflection与Reflexion Agent通过生成-反思-改进循环,实现自我优化。前者侧重内容精炼,后者结合外部研究提升准确性,二者分别适用于创意优化与知识密集型任务。
215 9
从零构建能自我优化的AI Agent:Reflection和Reflexion机制对比详解与实现
|
4月前
|
自然语言处理 前端开发 Java
JBoltAI 框架完整实操案例 在 Java 生态中快速构建大模型应用全流程实战指南
本案例基于JBoltAI框架,展示如何快速构建Java生态中的大模型应用——智能客服系统。系统面向电商平台,具备自动回答常见问题、意图识别、多轮对话理解及复杂问题转接人工等功能。采用Spring Boot+JBoltAI架构,集成向量数据库与大模型(如文心一言或通义千问)。内容涵盖需求分析、环境搭建、代码实现(知识库管理、核心服务、REST API)、前端界面开发及部署测试全流程,助你高效掌握大模型应用开发。
424 5

热门文章

最新文章