Agno - 轻量级Python多智能体系统框架
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 BaseStorageclass 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 resultsreturn Nonedef 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()]
)
主要特性
- 极速性能: 智能体创建速度比LangGraph快10,000倍
- 模型无关: 支持OpenAI、Anthropic、Cohere、Ollama等多种模型
- 多模态支持: 原生支持文本、图像、音频和视频处理
- 轻量级: 内存占用仅为其他框架的1/50
- 灵活扩展: 易于添加自定义工具和知识库
应用场景
- 智能客服: 多代理协作处理客户咨询
- 内容创作: 自动化内容生成和优化
- 数据分析: 多角度数据分析和洞察提取
- 教育辅助: 个性化学习建议和资源推荐
- 医疗辅助: 病历分析和诊断支持
Agno框架以其简洁的API设计和卓越的性能表现,为开发者提供了构建复杂AI智能体系统的高效解决方案。