news 2026/4/16 17:14:35

三大主流智能体框架解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
三大主流智能体框架解析

一、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使用

    • 跟踪任务执行时间

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 11:03:16

AI写论文宝藏推荐!这4款AI论文写作工具,提升论文写作效率!

你是否在为写期刊论文、毕业论文或职称论文而感到苦恼?当我们面对浩瀚如海的文献资料时,常常无从下手,而繁杂的格式要求则让人感到焦虑。反复修改的过程又耗费了大量精力,使得写作效率低下,这对许多学术工作者来说真是…

作者头像 李华
网站建设 2026/4/16 13:42:43

AI写论文有妙招!推荐4款AI论文生成工具,助你快速完成论文

在学术论文写作中的困境与AI工具的解决方案 在撰写学术论文的过程中,像期刊论文、毕业论文或职称论文这样的任务,往往让研究者感到无比棘手。面对海量的文献资料,查找相关信息就像是在大海捞针一样困难。同时,各种复杂的格式要求…

作者头像 李华
网站建设 2026/4/16 13:41:51

开题卡住了?AI论文工具 千笔 VS 灵感ai,专科生专属神器!

随着人工智能技术的迅猛发展,AI辅助写作工具逐渐成为高校学生完成毕业论文的重要助手。无论是开题报告还是论文撰写,越来越多的学生开始借助AI工具提升效率、降低难度。然而,面对市场上功能各异、品质参差不齐的AI写作工具,许多学…

作者头像 李华
网站建设 2026/4/15 15:41:38

“自动驾驶控制器:毫米波雷达到车体坐标系标定工程——偏航角Yaw的标定与学习指南”

自动驾驶控制器,自动驾驶多传感器联合标定系列之毫米波雷达到车体坐标系的标定工程 , 本商品对毫米波雷达的偏航角yaw进行标定,分为粗略标定、静态目标识别和曲线拟合三个步骤。这个工程带有代码注释,帮助您对标定算法的的理解和学习。 实实在…

作者头像 李华
网站建设 2026/4/16 16:12:04

2025年OE SCI2区TOP,面向复杂三维海上风电海域救援的多无人机协同路径规划,深度解析+性能实测

目录1.摘要2.环境模型3.海洋多无人机路径规划4.结果展示5.参考文献6.代码获取7.算法辅导应用定制读者交流1.摘要 随着海洋经济的发展,海上救援任务日益频繁,多无人机协同搜索与救援为海上救援提供了新的技术途径。针对复杂三维海上风场环境下的多无人机…

作者头像 李华
网站建设 2026/4/15 16:38:01

AI应用架构师深度:AI在科研伦理审查中的辅助决策架构

AI应用架构师深度:AI在科研伦理审查中的辅助决策架构 1. 引入与连接 1.1 引人入胜的开场 想象一下,在一个先进的科研实验室里,研究人员正准备开展一项具有突破性的基因编辑实验。这项实验有可能治愈一种目前无法攻克的遗传疾病,但…

作者头像 李华