Agno:构建多模态 AI 智能体的轻量框架

360影视 日韩动漫 2025-03-11 08:00 3

摘要:在人工智能和大模型快速发展的今天,AI 智能体的构建成为了众多开发者关注的焦点。如果能够高效、灵活地构建 AI 智能体,大模型的应用将被大大加速。Agno,作为一个旨在为构建 AI 智能体提效提质的框架,为 AI 业界提供了一种全新的解决方案。

在人工智能和大模型快速发展的今天,AI 智能体的构建成为了众多开发者关注的焦点。如果能够高效、灵活地构建 AI 智能体,大模型的应用将被大大加速。Agno,作为一个旨在为构建 AI 智能体提效提质的框架,为 AI 业界提供了一种全新的解决方案。

Agno 是一个用于构建多模态智能体的框架,其代码仓库位于 https://github.com/agno-agi/agno 。Agno 可以用于构建高性能的 AI 智能体,能够处理文本、图像、音频和视频等,并能为智能体添加所需的记忆、知识和工具。Agno 是一个开源项目,能任意进行部署运行。

Agno 是一个 Python 项目,开发者能够使用熟悉的编程结构(如 if、else、while、for)来编写人工智能逻辑,避免使用图和链等复杂的抽象概念,提升开发速度。

Agno 的设计理念是简单、快速且与模型无关,并且有以下关键特性:

快速创建:智能体创建速度比 LangGraph 快约 10000 倍模型无关:可使用任何模型、任何提供商的服务,不存在任何绑定多模态支持:原生支持文本、图像、音频和视频等多模态内容多智能体协作:能够构建由多个智能体组成的智能团队记忆管理:能够将智能体的会话和状态存储在数据库中,构建有记忆的智能体知识存储:可使用向量数据库实现检索增强生成 RAG 或动态小样本学习结构化输出:智能体能够以结构化的数据形式进行输出,方便数据交互监控功能:可以实时跟踪智能体的会话和性能

Agno 是一个 Python 库,使用前通过 pip 进行安装:

pip install -U agno

安装完成后,还需要进行 LLM 大模型的 API Key 的配置,通过环境变量进行:

export OPENAI_API_KEY=sk-xxxx

配置完成后,就可以编写 Python 程序进行 AI 智能体的构建了,以下是一个基础的智能体例子:

from agno.agent import Agentfrom agno.models.openai import OpenAIChatagent = 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)

主体是 agno.agent 的 Agent 类,配置模型为 OpenAIChat,并提供这个智能体的描述,就完成了一个基本智能体的构建了。然后提供一个 prompt,就可以与这个智能体进行交互了。

Agno 提供了构建更为复杂智能体的功能。以下的例子为智能体提供了搜索互联网的工具:

from agno.agent import Agentfrom agno.models.openai import OpenAIChatfrom agno.tools.duckduckgo import DuckDuckGoToolsagent = 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)

通过配置 tools 为一个搜索引擎,这个智能体被赋予了使用搜索引擎查询互联网信息的能力。除了工具以外,Agno 还能给智能体提供知识库:

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)

在这个例子中,通过 PDFUrlKnowledgeBase 把一个 PDF 文件作为知识库提供给了智能体,智能体就能根据从中提取的知识,来更好地完成任务。

Agno 作为一个用于构建多模态智能体的框架,拥有丰富的工具集、灵活的智能体配置和强大的工作流支持。它为开发者提供了一个便捷高效的框架,使开发者可以更加专注于智能体的逻辑和功能实现,而无需过多关注底层的技术细节。

Agno 功能强大,能够构建多模态智能体,并赋予它们记忆、知识和工具,能在众多领域得到应用。在内容生成领域,可以利用 Agno 构建内容生成智能体,如博客文章生成器、研究报告生成器等,通过 RAG 等技术,智能体可以生成高质量的内容。在信息检索领域:Agno 的工具集可以利用现有的文档库作为知识库,快速构建知识检索应用。

来源:每日开源代码

相关推荐