收藏!小白也能学会!LangChain.js智能体开发指南:10大编排模式详解与实战应用

LangChain.js智能体十大编排模式详解

前言

LangChain.js是一个智能体开发框架,可以实现很多功能。而且它提供了很多中间件,让智能体支持多种编排模式,学习这些编排模式,可以让你更好的理解智能体的搭建和设计过程。

📦 一、现代架构(基于 LangGraph + createAgent)

1️⃣ ReAct Agent(推荐)

最强大的现代 Agent 模式,基于 LangGraph 状态图。

const agent = createAgent({  model: "openai:gpt-4o",  tools: [searchTool, calculatorTool, weatherTool],  systemPrompt: "You are a helpful assistant.",});

特点

✅ 完整的状态管理(StateGraph)

✅ 中间件系统(17+ 内置中间件)

✅ 流式输出支持

✅ 结构化输出(Zod schema)

✅ 人机协作(HITL)

✅ 检查点持久化

✅ 时间旅行调试

执行流程

思考 → 行动 → 观察 → 思考 → 行动 → ... → 结束

2️⃣ Supervisor Pattern(监督者模式)

多 Agent 协作的经典模式。

// 子 Agentconst calendarAgent = createAgent({  model: llm,  tools: [createCalendarEvent, getAvailableTimeSlots],  systemPrompt: "You are a calendar assistant.",});const emailAgent = createAgent({  model: llm,  tools: [sendEmail],  systemPrompt: "You are an email assistant.",});// 将子 Agent 包装为工具const scheduleEvent = tool(  async ({ request }) => {    const result = await calendarAgent.invoke({      messages: [{ role: "user", content: request }],    });    return result.messages[result.messages.length - 1].text;  },  {    name: "schedule_event",    description: "Schedule calendar events",    schema: z.object({ request: z.string() }),  });// 监督者 Agentconst supervisorAgent = createAgent({  model: llm,  tools: [scheduleEvent, manageEmail], // 子 Agent 作为工具  systemPrompt: "You coordinate between calendar and email.",});

特点

🎯 一个监督者协调多个专业 Agent

🔄 子 Agent 通过工具接口调用

📋 适合任务分解和委派

🔐 支持人机审批(HITL)

使用场景

客服系统(路由到专业 Agent)

项目管理(任务分配)

复杂流程编排


3️⃣ Plan-and-Execute(通过中间件实现)

使用 todoListMiddleware 实现计划-执行模式。

const agent = createAgent({  model: "openai:gpt-4o",  tools: [searchTool, fileTool, analysisTool],  middleware: [    todoListMiddleware(), // 自动任务规划  ],});

执行流程

特点

📝 自动任务分解

📊 进度追踪

🔄 状态更新

🎯 适合复杂多步骤任务


4️⃣ Tool Selector Pattern(工具选择模式)

使用 llmToolSelectorMiddleware 进行智能工具筛选。

const agent = createAgent({  model: "openai:gpt-4o",  tools: [    // 100+ 个工具    searchTool, fileTool, databaseTool, apiTool, ...  ],  middleware: [    llmToolSelectorMiddleware({      model: "openai:gpt-4o-mini", // 轻量级模型筛选      maxTools: 5, // 最多选择 5 个工具      selectionPrompt: "Select the most relevant tools for the task",    }),  ],});

执行流程

用户查询  ↓1. 选择器 LLM 分析查询2. 从 100+ 工具中筛选出 5 个相关工具3. 主 LLM 只看到筛选后的 5 个工具4. 执行工具调用

特点

🎯 减少 token 消耗

⚡ 提高推理速度

🔧 支持大规模工具库

📊 避免工具选择困惑


5️⃣ 自定义 LangGraph构建复杂工作流

以前也说过,langchain的底层**依赖LangGraph实现智能体的编排。**而LangGraph特别搭建构建工作流。

下面是一个简单的案例。

import { StateGraph, END } from "@langchain/langgraph";const workflow = new StateGraph({  channels: {    messages: { reducer: (x, y) => x.concat(y) },    nextAgent: { reducer: (x, y) => y ?? x },  },});// 添加节点workflow.addNode("researcher", researcherAgent);workflow.addNode("writer", writerAgent);workflow.addNode("reviewer", reviewerAgent);// 添加边和条件路由workflow.addEdge("__start__", "researcher");workflow.addConditionalEdges("researcher", (state) => {  if (state.researchComplete) return "writer";  return "researcher";});workflow.addEdge("writer", "reviewer");workflow.addConditionalEdges("reviewer", (state) => {  if (state.approved) return END;  return "writer"; // 返工});const app = workflow.compile();

特点

🔄 完全自定义工作流

📊 复杂状态管理

🎯 条件分支路由

🔁 循环和反馈

💾 检查点支持


🎨 二、中间件增强的特殊模式

基于 createAgent + 中间件组合实现的高级模式:

1️⃣ Human-in-the-Loop(HITL)

让 AI Agent 在执行关键操作前暂停并等待人工审批,确保安全性和可控性。

humanInTheLoopMiddleware({  interruptOn: {    send_email: true, // 发送邮件前需要审批    delete_file: { allowedDecisions: ["approve", "edit", "reject"] },  },})

2️⃣ Model Fallback(模型降级)

用于在主模型调用失败时自动按顺序尝试备用模型,提高系统的容错性。

自动回退:主模型失败时,按顺序尝试备用模型

顺序执行:按传入顺序依次尝试,直到成功或全部失败

modelFallbackMiddleware(    "openai:gpt-4o",    "openai:gpt-4o-mini", // 备用    "anthropic:claude-3-5-sonnet", // 再备用)

3️⃣ Context Editing(上下文管理)

用于在对话超过 token 阈值时自动清理旧的工具结果,从而管理上下文大小。它参考了 Anthropic 的上下文编辑能力,可用于任何 LangChain 聊天模型。

自动清理:当 token 数超过阈值时,自动清理旧的工具结果

保留最近结果:保留最近的 N 个工具结果(默认 3 个)

可配置策略:支持自定义编辑策略,可扩展

工具排除:可排除特定工具,避免被清理

可选清理工具输入:可选择是否同时清理工具调用的参数

import { contextEditingMiddleware, ClearToolUsesEdit } from "langchain";const agent = createAgent({  model: "anthropic:claude-3-5-sonnet",  tools: [searchTool, calculatorTool],  middleware: [    contextEditingMiddleware({      edits: [        new ClearToolUsesEdit({          triggerTokens: 50000,      // 超过 50K tokens 时触发          clearAtLeast: 1000,         // 至少回收 1K tokens          keep: 5,                    // 保留最近 5 个工具结果          excludeTools: ["search"],   // 不清理 search 工具的结果          clearToolInputs: true,      // 同时清理工具调用参数        }),      ],      tokenCountMethod: "approx",     // 使用近似计数(或 "model")    }),  ],});

4️⃣ Summarization(历史压缩)

用于在对话历史接近 token 限制时自动总结历史消息,保留最近的消息并压缩旧消息,从而控制 token 使用并保持上下文连续性。

自动监控:在每次模型调用前检查消息的 token 数量

智能总结:当 token 超过阈值时,自动总结旧消息

保持上下文:确保 AI/Tool 消息对不被拆分,保持对话的完整性

保留最近消息:保留最近的 N 条消息(默认 20 条),确保最新上下文不丢失

summarizationMiddleware({  model: "openai:gpt-4o-mini",  maxTokensBeforeSummary: 50000,  messagesToKeep: 5,})

5️⃣ PII Redaction(敏感信息脱敏)

piiRedactionMiddleware({  redact: ["email", "phone", "ssn", "credit_card"],  model: "openai:gpt-4o",})

6️⃣ Tool Retry(工具重试)

toolRetryMiddleware({  maxRetries: 3,  retryOn: ["NetworkError", "Timeout"],})

7️⃣ Call Limit(调用限制)

callLimitMiddleware({  maxCalls: 10, // 最多 10 次模型调用})

8️⃣ Prompt Caching(提示缓存)

anthropicPromptCachingMiddleware({  cacheSystemPrompt: true,  cacheTools: true,})

📚 三、经典架构(langchain-classic)

这些是遗留的 Agent 类型,功能较简单但仍可用。

1️⃣ ReAct Agent(经典版)

import { createReactAgent } from "langchain/agents";const agent = createReactAgent({  llm: model,  tools: [searchTool, calculatorTool],  prompt: reactPrompt,});const executor = new AgentExecutor({ agent, tools });

2️⃣ Structured Chat Agent

import { createStructuredChatAgent } from "langchain/agents";const agent = createStructuredChatAgent({  llm: model,  tools: [complexTool],  prompt: structuredPrompt,});

3️⃣ OpenAI Functions Agent

import { createOpenAIFunctionsAgent } from "langchain/agents";const agent = createOpenAIFunctionsAgent({  llm: model, // OpenAI 模型  tools: [weatherTool],  prompt: functionsPrompt,});

4️⃣ Tool Calling Agent

import { createToolCallingAgent } from "langchain/agents";const agent = createToolCallingAgent({  llm: model,  tools: [searchTool],  prompt: toolCallingPrompt,});

5️⃣ XML Agent

import { createXMLAgent } from "langchain/agents";const agent = createXMLAgent({  llm: model, // Anthropic Claude  tools: [xmlTool],  prompt: xmlPrompt,});

6️⃣ 对话式 Agent

import { ConversationalRetrievalQAChain } from "langchain/chains";const chain = ConversationalRetrievalQAChain.fromLLM(  model,  vectorStore.asRetriever(),  { memory });

7️⃣ SQL Agent

import { createSQLAgent } from "langchain/agents/toolkits/sql";const toolkit = new SqlToolkit(db, model);const executor = createSQLAgent(model, toolkit);

最后

为什么要学AI大模型

当下,⼈⼯智能市场迎来了爆发期,并逐渐进⼊以⼈⼯通⽤智能(AGI)为主导的新时代。企业纷纷官宣“ AI+ ”战略,为新兴技术⼈才创造丰富的就业机会,⼈才缺⼝将达 400 万!

DeepSeek问世以来,生成式AI和大模型技术爆发式增长,让很多岗位重新成了炙手可热的新星,岗位薪资远超很多后端岗位,在程序员中稳居前列。

在这里插入图片描述

与此同时AI与各行各业深度融合,飞速发展,成为炙手可热的新风口,企业非常需要了解AI、懂AI、会用AI的员工,纷纷开出高薪招聘AI大模型相关岗位。
在这里插入图片描述
最近很多程序员朋友都已经学习或者准备学习 AI 大模型,后台也经常会有小伙伴咨询学习路线和学习资料,我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频 全系列的学习资料,这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

AI大模型系统学习路线

在面对AI大模型开发领域的复杂与深入,精准学习显得尤为重要。一份系统的技术路线图,不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点,还能提供一条高效、有序的学习路径。

img

但知道是一回事,做又是另一回事,初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性,在这基础上,找到高质量的学习资源,不浪费时间、不走弯路,又是重中之重。

AI大模型入门到实战的视频教程+项目包

看视频学习是一种高效、直观、灵活且富有吸引力的学习方式,可以更直观地展示过程,能有效提升学习兴趣和理解力,是现在获取知识的重要途径

在这里插入图片描述
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

海量AI大模型必读的经典书籍(PDF)

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。
在这里插入图片描述

600+AI大模型报告(实时更新)

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
在这里插入图片描述

AI大模型面试真题+答案解析

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下
在这里插入图片描述

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值