当前位置: 首页 > news >正文

Agno - 轻量级Python多智能体系统框架

Agno - 轻量级Python多智能体系统框架

项目概述

Agno是一个轻量级Python框架,专为构建多智能体系统(MAS)而设计。它支持开发具有不同能力级别的智能体:

  • 基础工具代理
  • 知识增强代理
  • 记忆与推理代理
  • 团队协作代理
  • 确定性工作流代理

框架提供完整的开发生态,包括知识管理、工具集成、向量数据库支持和可视化Playground。

核心特性

  • 多级智能体架构:支持从简单工具调用到复杂团队协作的5个开发级别
  • 知识管理:内置20+知识源连接器(网页/PDF/CSV/YouTube等)
  • 混合搜索:结合向量相似性和关键词搜索的混合检索
  • 多模态支持:处理文本、图像、音频等多种数据类型
  • 推理引擎:实验性分步推理和验证机制
  • 向量数据库集成:支持PgVector、LanceDB、Qdrant等主流向量库
  • 工具生态:预置DuckDuckGo搜索、YFinance等常用工具
  • 开发工具:内置Playground和CLI测试环境

安装指南

基础安装

# 创建虚拟环境
python3 -m venv .venv
source .venv/bin/activate# 安装核心依赖
pip install agno openai duckduckgo-search

可选组件

# 向量数据库支持
pip install pgvector lancedb qdrant-client# 多模态扩展
pip install elevenlabs opencv-python

开发环境配置

# 安装开发依赖
pip install -U agno[dev]# 运行Playground
python playground.py

使用示例

基础代理

from agno.agent import Agent
from agno.models.openai import OpenAIChatagent = Agent(model=OpenAIChat(id="gpt-4"),instructions="你是一个热情的新闻记者"
)
agent.print_response("分享一则纽约新闻")

知识增强代理

from agno.agent import Agent
from agno.knowledge.pdf import PDFKnowledgeBaseknowledge = PDFKnowledgeBase(path="data/docs")
agent = Agent(knowledge=knowledge)
agent.print_response("文档中提到哪些关键技术?")

工具集成代理

from agno.agent import Agent
from agno.tools.yfinance import YFinanceToolsagent = Agent(tools=[YFinanceTools()])
agent.print_response("苹果公司当前股价是多少?")

核心架构

智能体初始化

class Agent:def __init__(self,model: BaseModel,          # 语言模型 tools: List[BaseTool] = [], # 工具集knowledge: BaseKnowledge = None,  # 知识库storage: BaseStorage = None,      # 会话存储reasoning: bool = False    # 启用推理):self.components = {'model': model,'tools': ToolManager(tools),'knowledge': knowledge,'storage': storage}

知识检索流程

def search_knowledge(query):# 混合检索流程vector_results = vector_db.semantic_search(query)keyword_results = fulltext_search(query)# 结果重排序combined = hybrid_reranker(vector_results, keyword_results)# 上下文注入return format_for_prompt(combined[:5])

工具调用机制

async def execute_tool(tool_name, args):tool = self.tools.get(tool_name)# 异步执行result = await tool.execute(args)# 结果验证if not validate_result(result):raise ToolExecutionErrorreturn format_tool_output(result)
PYTHON 复制 全屏

应用场景

  • 智能问答系统:基于文档的知识代理
  • 数据分析助手:集成数据库和可视化工具
  • 自动化工作流:多代理协作完成任务
  • 实时信息代理:结合网络搜索和API工具
  • 个性化推荐:利用记忆和用户画像