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技术!

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

相关文章
|
10月前
|
人工智能 物联网 PyTorch
SCEdit:轻量级高效可控的AI图像生成微调框架(附魔搭社区训练实践教程)
SCEdit是一个高效的生成式微调框架,由阿里巴巴通义实验室基础视觉智能团队所提出。
|
2月前
|
人工智能 开发框架 安全
Smolagents:三行代码就能开发 AI 智能体,Hugging Face 开源轻量级 Agent 构建库
Smolagents 是 Hugging Face 推出的轻量级开源库,旨在简化智能代理的构建过程,支持多种大语言模型集成和代码执行代理功能。
360 69
Smolagents:三行代码就能开发 AI 智能体,Hugging Face 开源轻量级 Agent 构建库
|
12天前
|
缓存 人工智能 自然语言处理
微软发明全新LLM语言,AI智能体交互效率翻倍!
微软发布DroidSpeak技术,优化大型语言模型(LLM)间的通信,显著提升AI智能体交互效率。该技术通过嵌入缓存和键值缓存重用,减少预填充延迟,降低高达50%的延迟,同时保持高质量生成。DroidSpeak适用于多种AI任务,提高协作效率,但在资源受限环境和处理模型差异性方面仍面临挑战。
38 3
|
2月前
|
人工智能 达摩院 并行计算
VideoRefer:阿里达摩院开源视频对象感知与推理框架,可集成 VLLM 提升其空间和时间理解能力
VideoRefer 是浙江大学与阿里达摩学院联合推出的视频对象感知与推理技术,支持细粒度视频对象理解、复杂关系分析及多模态交互,适用于视频剪辑、教育、安防等多个领域。
195 17
VideoRefer:阿里达摩院开源视频对象感知与推理框架,可集成 VLLM 提升其空间和时间理解能力
|
2月前
|
人工智能 开发者 Python
Chainlit:一个开源的异步Python框架,快速构建生产级对话式 AI 应用
Chainlit 是一个开源的异步 Python 框架,帮助开发者在几分钟内构建可扩展的对话式 AI 或代理应用,支持多种工具和服务集成。
275 9
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
CogAgent-9B:智谱 AI 开源 GLM-PC 的基座模型,专注于预测和执行 GUI 操作,可应用于自动化交互任务
CogAgent-9B 是智谱AI基于 GLM-4V-9B 训练的专用Agent任务模型,支持高分辨率图像处理和双语交互,能够预测并执行GUI操作,广泛应用于自动化任务。
156 12
CogAgent-9B:智谱 AI 开源 GLM-PC 的基座模型,专注于预测和执行 GUI 操作,可应用于自动化交互任务
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
Gemini 2.0:谷歌推出的原生多模态输入输出 + Agent 为核心的 AI 模型
谷歌最新推出的Gemini 2.0是一款原生多模态输入输出的AI模型,以Agent技术为核心,支持多种数据类型的输入与输出,具备强大的性能和多语言音频输出能力。本文将详细介绍Gemini 2.0的主要功能、技术原理及其在多个领域的应用场景。
525 20
Gemini 2.0:谷歌推出的原生多模态输入输出 + Agent 为核心的 AI 模型
|
3月前
|
人工智能 PyTorch 测试技术
【AI系统】并行训练基本介绍
分布式训练通过将任务分配至多个节点,显著提升模型训练效率与精度。本文聚焦PyTorch2.0中的分布式训练技术,涵盖数据并行、模型并行及混合并行等策略,以及DDP、RPC等核心组件的应用,旨在帮助开发者针对不同场景选择最合适的训练方式,实现高效的大模型训练。
111 8
|
5月前
|
人工智能 JSON 自然语言处理
开源模型+Orchestrating Agents多智能体框架,易用、强大且可控
本文采用开源Qwen2.5-14B-instruct-GGUF来体验多智能体编排和交接,希望在体验多智能体编排和交接框架的同时,一起评估中小参数规模的模型(14B)能否较好的完成多智能体任务。
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
【LLM】能够运行在移动端的轻量级大语言模型Gemma实践
【4月更文挑战第12天】可以运行在移动端的开源大语言模型Gemma模型介绍
379 0

热门文章

最新文章