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

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()]
)

主要特性

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

应用场景

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

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

http://www.dtcms.com/a/358852.html

相关文章:

  • Python可视化与交互-matplotlib库
  • 后台技术方案设计经验之谈
  • C读写xlsx库xlsxio的编译和测试
  • 第2.3节:AI大模型之Claude系列(Anthropic)
  • k8s 定时任务需求模板
  • 直流无刷电机2
  • 【计算机408计算机网络】第四章:自底向上五层模型之网络层
  • Linux IO复用
  • DeepConf:基于置信度提高LLM表现
  • Tomcat 企业级运维实战系列(五):Tomcat 优化和安全加固
  • Tiptrans转运 | 免费5国转运地址
  • Java中不太常见的语法-总结
  • static静态文件和requests请求对象
  • 内网穿透系列十二:一款基于 HTTP 传输和 SSH 加密保护的内网穿透工具 Chisel ,具备抗干扰、稳定、安全特性
  • PromptPerfect-将你的提示词提升到完美
  • 【Java基础知识 19】继承
  • BGP路由协议(三):路径属性
  • Cybero: 1靶场渗透
  • 2021-11-10 C++不变初心数
  • 从咒语到意念:编程语言的世纪演进与人机交互的未来
  • Carrier Aggregation Enabled MIMO-OFDM Integrated Sensing and Communication
  • 并发编程——09 CountDownLatch源码分析
  • 信息系统架构
  • Java面试-MyBatis篇
  • 【后端数据库】MySQL 索引生效/失效规则 + 核心原理
  • oha:一款轻量级HTTP负载测试工具
  • XHR 介绍及实践
  • 论文介绍:《Small Language Models are the Future of Agentic AI》
  • SSR降级CSR:高可用容灾方案详解
  • 使用axios封装post和get