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

三大主流智能体框架解析

一、LangChain:AI应用的"瑞士军刀"

核心设计理念

LangChain的核心是模块化设计链式编排。它通过将复杂的AI应用拆解为可复用的组件,让开发者能够像搭积木一样构建应用。

上手步骤

1. 基础环境搭建
# 安装 pip install langchain langchain-openai # 基础配置 from langchain_openai import ChatOpenAI from langchain.prompts import ChatPromptTemplate from langchain.chains import LLMChain # 初始化模型 llm = ChatOpenAI(model="gpt-4", temperature=0.7)
2. 第一个简单应用:问答系统
# 创建提示模板 prompt = ChatPromptTemplate.from_template( "用中文回答:{question}" ) # 创建链 chain = LLMChain(llm=llm, prompt=prompt) # 执行 result = chain.run("什么是机器学习?") print(result)
3. RAG系统构建
from langchain.embeddings import OpenAIEmbeddings from langchain.vectorstores import Chroma from langchain.document_loaders import TextLoader from langchain.text_splitter import RecursiveCharacterTextSplitter # 1. 加载文档 loader = TextLoader("知识库.txt") documents = loader.load() # 2. 分割文本 text_splitter = RecursiveCharacterTextSplitter( chunk_size=1000, chunk_overlap=200 ) docs = text_splitter.split_documents(documents) # 3. 创建向量存储 embeddings = OpenAIEmbeddings() vectorstore = Chroma.from_documents(docs, embeddings) # 4. 创建检索链 from langchain.chains import RetrievalQA qa_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=vectorstore.as_retriever() ) # 5. 提问 answer = qa_chain.run("文档中提到了哪些关键技术?")
4. 智能体开发(使用LangGraph)
from langgraph.graph import StateGraph, END from typing import TypedDict, Annotated import operator # 定义状态 class AgentState(TypedDict): messages: Annotated[list, operator.add] next_step: str # 创建节点 def search_node(state: AgentState): # 搜索逻辑 return {"messages": ["搜索完成"], "next_step": "analyze"} def analyze_node(state: AgentState): # 分析逻辑 return {"messages": ["分析完成"], "next_step": END} # 构建图 workflow = StateGraph(AgentState) workflow.add_node("search", search_node) workflow.add_node("analyze", analyze_node) workflow.add_edge("search", "analyze") workflow.set_entry_point("search") # 编译并运行 app = workflow.compile() result = app.invoke({"messages": [], "next_step": "search"})

设计原理

LangChain的设计核心是组合性(Compositionality)和声明式编程。主要组件包括:

  1. Models: LLM接口抽象

  2. Prompts: 提示词管理

  3. Chains: 任务编排(顺序链、检索链等)

  4. Agents: 工具调用决策

  5. Memory: 对话状态管理

  6. Indexes: 文档检索系统

相关论文

  • ReAct: Synergizing Reasoning and Acting in Language Models(Yao et al., 2022)

  • Chain-of-Thought Prompting(Wei et al., 2022)

  • Retrieval-Augmented Generation(Lewis et al., 2020)


二、AutoGen:多智能体协作框架

核心设计理念

AutoGen采用对话编程(Conversational Programming)范式,通过定义多个具有特定角色的智能体,让它们通过对话协作解决问题。

上手步骤

1. 基础配置
pip install pyautogen import autogen from autogen import AssistantAgent, UserProxyAgent # 配置LLM config_list = [ { "model": "gpt-4", "api_key": "your-key" } ]
2. 创建两个智能体的对话
# 创建编码助手 assistant = AssistantAgent( name="Coder", system_message="你是一个Python专家,负责编写代码", llm_config={"config_list": config_list} ) # 创建用户代理(可以执行代码) user_proxy = UserProxyAgent( name="User", human_input_mode="NEVER", # 不等待人工输入 code_execution_config={"work_dir": "coding"} ) # 发起任务 user_proxy.initiate_chat( assistant, message="写一个Python函数,计算斐波那契数列的前n项" )
3. 多智能体协作(代码审查场景)
# 创建三个不同角色的智能体 coder = AssistantAgent( name="Coder", system_message="编写高效、可读的代码", llm_config={"config_list": config_list} ) reviewer = AssistantAgent( name="Reviewer", system_message="检查代码质量、潜在bug和优化建议", llm_config={"config_list": config_list} ) tester = AssistantAgent( name="Tester", system_message="编写测试用例,确保代码正确性", llm_config={"config_list": config_list} ) # 用户代理协调整个过程 user_proxy = UserProxyAgent( name="Manager", max_consecutive_auto_reply=10, human_input_mode="TERMINATE", code_execution_config={"work_dir": "coding"} ) # 定义群组聊天 from autogen import GroupChat, GroupChatManager groupchat = GroupChat( agents=[user_proxy, coder, reviewer, tester], messages=[], max_round=12 ) manager = GroupChatManager(groupchat=groupchat, llm_config={"config_list": config_list}) # 启动协作 user_proxy.initiate_chat( manager, message="我们需要一个股票数据分析工具,请协作完成" )
4. 自定义工具集成
import requests # 定义自定义工具 def get_stock_price(symbol: str): """获取股票价格""" # 模拟API调用 return f"{symbol} 当前价格: $150.25" # 注册工具 from autogen import register_function register_function( get_stock_price, caller=assistant, # 哪个智能体可以调用 executor=user_proxy, # 哪个智能体执行 name="get_stock_price", description="获取指定股票代码的当前价格" ) # 现在智能体可以自动使用这个工具 user_proxy.initiate_chat( assistant, message="请获取AAPL和GOOGL的股票价格,并计算总价值" )

设计原理

AutoGen的核心是对话状态机角色定义

  1. 对话管理:维护完整的对话历史

  2. 角色专业化:每个智能体有明确的系统提示

  3. 自动工具调用:根据对话上下文自动选择合适的工具

  4. 代码执行:支持在沙箱中运行生成的代码

相关论文

  • AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation(Wu et al., 2023)

  • Communicative Agents for Software Development(Qian et al., 2023)

  • The Rise and Potential of Large Language Model Based Agents(Xi et al., 2023)


三、CrewAI:企业级任务编排框架

核心设计理念

CrewAI采用企业组织架构的隐喻,将任务分解、分配、执行和汇总过程结构化,特别强调角色明确性任务依赖性

上手步骤

1. 环境设置
pip install crewai crewai-tools import os from crewai import Agent, Task, Crew, Process from crewai_tools import SerperDevTool, ScrapeWebsiteTool
2. 创建市场调研团队
# 定义工具 search_tool = SerperDevTool() scrape_tool = ScrapeWebsiteTool() # 创建研究员智能体 researcher = Agent( role="市场研究员", goal="深入研究行业趋势和竞争对手", backstory="你是资深市场分析师,擅长发现市场机会", tools=[search_tool, scrape_tool], verbose=True, allow_delegation=False ) # 创建策略师智能体 strategist = Agent( role="商业策略师", goal="基于研究数据制定商业策略", backstory="你是经验丰富的商业顾问,擅长制定可行策略", tools=[search_tool], verbose=True, allow_delegation=False ) # 创建报告员智能体 writer = Agent( role="报告撰写专家", goal="将研究和策略转化为专业报告", backstory="你是技术文档专家,擅长编写清晰专业的商业报告", verbose=True, allow_delegation=False )
3. 定义任务和依赖关系
# 研究任务 research_task = Task( description="""调研2024年AI智能体框架的发展趋势, 重点关注LangChain、AutoGen、CrewAI三个框架。 收集:1.市场份额数据 2.技术特点 3.用户反馈""", expected_output="详细的调研报告,包含数据来源和关键发现", agent=researcher, output_file="research_findings.md" ) # 分析任务(依赖研究任务) analysis_task = Task( description="""基于调研结果,分析三个框架的: 1.竞争优势 2.市场机会 3.潜在风险 为初创公司推荐最适合的框架""", expected_output="包含SWOT分析和具体建议的策略报告", agent=strategist, context=[research_task] # 明确依赖关系 ) # 报告任务(依赖前两个任务) report_task = Task( description="""综合研究和分析结果,撰写一份给CEO的 商业决策报告,包含:执行摘要、详细分析、推荐方案""", expected_output="专业的企业报告(约2000字)", agent=writer, context=[research_task, analysis_task] )
4. 创建并执行团队
# 组建团队 ai_crew = Crew( agents=[researcher, strategist, writer], tasks=[research_task, analysis_task, report_task], process=Process.sequential, # 顺序执行 verbose=True ) # 执行任务 result = ai_crew.kickoff() print("最终报告:\n", result)
5. 高级功能:层级式团队
# 创建子团队(专门处理技术调研) tech_researcher = Agent( role="技术研究员", goal="深度分析框架的技术实现", backstory="你是软件架构师,擅长技术细节分析", tools=[scrape_tool], verbose=True ) tech_analysis_task = Task( description="分析三个框架的架构设计、性能特点", expected_output="技术架构对比报告", agent=tech_researcher ) # 主团队协调子团队 manager = Agent( role="项目经理", goal="协调所有研究任务,确保按时交付", backstory="你是资深项目经理,擅长资源调配", verbose=True ) # 使用层级式流程 hierarchical_crew = Crew( agents=[manager, researcher, strategist, writer, tech_researcher], tasks=[research_task, tech_analysis_task, analysis_task, report_task], process=Process.hierarchical, manager_agent=manager, verbose=True )

设计原理

CrewAI的设计核心是组织隐喻

  1. 角色定义模板

Agent = { "role": "明确的职能描述", "goal": "可衡量的目标", "backstory": "赋予上下文和动机", "tools": "可用的能力", "allow_delegation": "是否允许委派任务" }
  1. 任务依赖图:通过context参数显式定义任务依赖关系

  2. 流程控制

    • sequential: 顺序执行

    • hierarchical: 层级管理

    • consensus: 共识决策

  3. 记忆管理:每个Agent有自己的短期记忆,Crew有共享的长期记忆

相关论文

  • CrewAI: Orchestrating Role-Playing Agents for Complex Task Solving(CrewAI Team, 2024)

  • Task-Driven Autonomous Agent(Yohei et al., 2023)

  • Hierarchical Planning and Task Decomposition in Multi-Agent Systems(Durfee, 1999)


四、对比总结与选择指南

特性对比

特性LangChainAutoGenCrewAI
学习曲线中等较陡平缓
多智能体支持需要LangGraph原生强大原生强大
企业集成需自定义一般优秀
任务编排基于图基于对话基于角色
社区生态最丰富快速增长专注企业
适合场景技术探索、复杂RAG学术研究、代码协作企业流程、商业分析

实战建议

  1. 起步学习:从LangChain开始,理解基础概念

  2. 多智能体项目

    • 学术/研究:选AutoGen

    • 商业/企业:选CrewAI

  3. 生产部署

    • 已有系统集成:LangChain

    • 新建企业系统:CrewAI

    • 研究原型:AutoGen

进阶学习路径

  1. 第一阶段(1-2周)

    • LangChain基础 + 简单RAG系统

    • 理解Chain、Agent、Memory概念

  2. 第二阶段(2-3周)

    • AutoGen多智能体对话

    • 实现代码审查流程

    • CrewAI角色定义和任务编排

  3. 第三阶段(3-4周)

    • 混合使用框架

    • 性能优化和监控

    • 部署到生产环境

生产注意事项

  1. 成本控制

    • 设置token限制

    • 使用缓存机制

    • 选择合适的模型层级

  2. 错误处理

# 通用错误处理模式 try: result = agent.run(task) except RateLimitError: # 重试逻辑 pass except TimeoutError: # 超时处理 pass
  1. 监控和日志

    • 记录所有LLM调用

    • 监控token使用

    • 跟踪任务执行时间

这些框架各有侧重,选择时最重要的是匹配你的具体需求和技术栈。建议先从小型原型开始,逐步扩展到复杂系统。

http://www.jsqmd.com/news/354627/

相关文章:

  • PHP中如何实现500M视频大文件的分片上传方案?
  • 无锡黑锋 HF4458 低电压启动 PWM 控制升压 DC-DC 电压调整器技术解析
  • 【网安必备】AWVS 漏洞扫描工具:安装流程 + 使用技巧全教学
  • 网安人必藏!5 款超实用漏洞挖掘扫描工具,实战封神
  • 无锡黑锋 HF2278 同步升压DC-DC变换器技术解析
  • 2026年评价高的德州伺服电动推杆/直线电动推杆人气实力厂商推荐 - 行业平台推荐
  • 主机厂基于Simulink MBD新能源电动汽车主驱电驱控制器算法模型及开发资料,量产模型,量...
  • 2026年口碑好的冲压生产线/焊接生产线厂家采购参考指南(必看) - 行业平台推荐
  • 开题卡住了?AI论文工具 千笔 VS 灵感ai,专科生专属神器!
  • 2026年靠谱的卧式开箱机/上海自动开箱机热门厂家推荐汇总 - 行业平台推荐
  • 2026年比较好的宁波攻丝亚克力产品加工/激光雕刻亚克力产品加工高口碑厂家推荐(评价高) - 行业平台推荐
  • 2026年质量好的钢制挂墙板/金属墙板厂家用户好评推荐 - 行业平台推荐
  • 无锡黑锋 HF3121 PWM控制DC-DC升压控制器技术解析
  • 科普|北京靠谱陪诊机构有哪些?2026年避坑指南+3家优质机构推荐 - 品牌排行榜单
  • 2026年质量好的半自动封箱机/全自动封箱机厂家信誉综合参考 - 行业平台推荐
  • 无锡黑锋 HF2304 同步升压DC变换器技术解析
  • 2026年热门的水性涂料/粉末涂料高口碑厂家推荐(评价高) - 行业平台推荐
  • 2026年长白山亲子酒店推荐:聚焦服务支持与合规标准评测,破解亲子游体验不佳核心痛点 - 品牌推荐
  • 北京守嘉陪诊|全业务覆盖,就医难题全解决,靠谱可信赖! - 品牌排行榜单
  • AI写论文有妙招!推荐4款AI论文生成工具,助你快速完成论文
  • 易优eyoucms文章发布助手1.0.0
  • 北京陪诊首选守嘉|全天陪同、全程代办,就医不用自己跑! - 品牌排行榜单
  • AI写论文有妙招!这4款AI论文写作工具,让毕业论文轻松过关!
  • 2026年评价高的自动灯杆焊接/灯杆焊接机高评分品牌推荐(畅销) - 行业平台推荐
  • Codeforces Round 700 (Div. 1)_B2. Painting the Array II
  • 2026年评价高的江苏重型螺母/江苏六角螺母厂家实力与用户口碑参考 - 行业平台推荐
  • 2026年长白山亲子酒店终极评测(权威机构双重背书)家庭选型避坑全指南 - 品牌推荐
  • 标题:北京加急就医|守嘉陪诊速约,急病不耽误,高效又省心 - 品牌排行榜单
  • 北京老年陪诊|守嘉陪诊贴心陪护,就医路上不孤单! - 品牌排行榜单
  • 2026年长白山亲子酒店推荐:多维实测与口碑评价,针对安全隐忧与性价比痛点精准指南 - 品牌推荐