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

发布于:2025-08-31 ⋅ 阅读:(27) ⋅ 点赞:(0)

Agno是一个轻量级的开源Python框架,专门用于构建多模态AI智能体系统。它支持文本、图像、音频和视频等多种数据类型,并提供记忆、知识库、工具调用和推理等核心能力。

安装Agno

pip install agno

基本智能体初始化

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()],
    markdown=True
)

# 使用智能体进行响应
agent.print_response("What's happening in New York?", stream=True)

完整智能体配置示例

from typing import List
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.knowledge.base import BaseKnowledge
from agno.storage.base import BaseStorage

class AdvancedAgent:
    def __init__(
        self,
        model: OpenAIChat,
        tools: List[BaseTool] = [],
        knowledge: BaseKnowledge = None,
        storage: BaseStorage = None,
        reasoning: bool = False
    ):
        self.agent = Agent(
            model=model,
            tools=tools,
            knowledge=knowledge,
            storage=storage,
            reasoning=reasoning
        )
    
    def search_knowledge(self, query: str):
        """知识检索流程"""
        if self.agent.knowledge is not None:
            # 确保知识库已加载
            if not self.agent.knowledge.is_loaded:
                self.agent.knowledge.load()
            
            # 执行知识检索
            results = self.agent.knowledge.search(query)
            return results
        return None
    
    def process_query(self, query: str, stream: bool = False):
        """处理查询并返回响应"""
        # 首先尝试从知识库检索
        knowledge_results = self.search_knowledge(query)
        
        # 如果有相关知识,将其添加到查询中
        if knowledge_results:
            enhanced_query = f"{query}\n\n相关背景信息:\n{knowledge_results}"
        else:
            enhanced_query = query
        
        # 获取智能体响应
        return self.agent.print_response(enhanced_query, stream=stream)

# 使用示例
if __name__ == "__main__":
    # 初始化智能体组件
    model = OpenAIChat(id="gpt-4o")
    tools = [DuckDuckGoTools()]
    
    # 创建智能体实例
    my_agent = AdvancedAgent(
        model=model,
        tools=tools,
        reasoning=True
    )
    
    # 处理查询
    my_agent.process_query("How do I make chicken and galangal in coconut milk soup?", stream=True)
    my_agent.process_query("What is the history of Thai curry?", stream=True)

多智能体协作示例

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

# 创建多个专业智能体
research_agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    name="Research Specialist",
    role="负责信息检索和研究分析"
)

writing_agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    name="Content Writer",
    role="负责内容创作和文案撰写"
)

analysis_agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    name="Data Analyst",
    role="负责数据分析和洞察提取"
)

# 智能体协作流程
def collaborative_workflow(topic: str):
    """多智能体协作工作流"""
    # 研究智能体收集信息
    research_results = research_agent(f"请研究以下主题并收集相关信息: {topic}")
    
    # 分析智能体处理信息
    analysis_results = analysis_agent(f"请分析以下研究数据并提供关键洞察:\n{research_results}")
    
    # 写作智能体生成最终内容
    final_content = writing_agent(f"基于以下研究和分析,撰写一篇关于{topic}的综合性文章:\n研究: {research_results}\n分析: {analysis_results}")
    
    return final_content

# 执行协作任务
result = collaborative_workflow("人工智能在医疗领域的应用")
print(result)

知识库集成示例

import lancedb
from agno.knowledge.lancedb import LanceDBKnowledge

# 初始化LanceDB知识库
def setup_knowledge_base():
    # 创建或连接LanceDB数据库
    db = lancedb.connect("./data/knowledge_db")
    
    # 创建知识库实例
    knowledge_base = LanceDBKnowledge(
        db=db,
        table_name="documents",
        embedding_model="text-embedding-ada-002"
    )
    
    # 加载知识文档(如果有)
    # knowledge_base.load_documents(["doc1.pdf", "doc2.txt"])
    
    return knowledge_base

# 使用知识库的智能体
knowledge_agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    knowledge=setup_knowledge_base(),
    tools=[DuckDuckGoTools()]
)

主要特性

  1. 极速性能: 智能体创建速度比LangGraph快10,000倍
  2. 模型无关: 支持OpenAI、Anthropic、Cohere、Ollama等多种模型
  3. 多模态支持: 原生支持文本、图像、音频和视频处理
  4. 轻量级: 内存占用仅为其他框架的1/50
  5. 灵活扩展: 易于添加自定义工具和知识库

应用场景

  • 智能客服: 多代理协作处理客户咨询
  • 内容创作: 自动化内容生成和优化
  • 数据分析: 多角度数据分析和洞察提取
  • 教育辅助: 个性化学习建议和资源推荐
  • 医疗辅助: 病历分析和诊断支持

Agno框架以其简洁的API设计和卓越的性能表现,为开发者提供了构建复杂AI智能体系统的高效解决方案。


网站公告

今日签到

点亮在社区的每一天
去签到