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

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

前言

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 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

AI大模型系统学习路线

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

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

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

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


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

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

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

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

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

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

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

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

http://www.cnnetsun.cn/news/4247960.html

相关文章:

  • Jeff Dean押注AI4S:从分布式系统到科学发现的基础设施革命
  • IntelliJ IDEA快捷键
  • 【AI大模型】腾讯屠榜MTEB,嵌入模型告别BERT,拥抱LLM
  • 智能体Agent:怎样用自然语言重构数据开发?看完这一篇你就懂了!!
  • 水下鱼类实例分割实战:从COCO数据集到YOLOv8训练全流程
  • 【大模型必备】位置编码终极指南:收藏学习RoPE如何改变Transformer架构
  • 7B扩散LLM,居然能跟671B的DeepSeek V3掰手腕,扩散vs自回归,谁才是未来?
  • C指针进阶:Beej‘s Guide to C指针运算与数组本质完整指南
  • WinDiskWriter:macOS上3步做出Windows启动盘
  • UUIDv1秒变v6的位运算魔法:uuid-creator TimeOrderedCodec源码剖析
  • 极简语言编年史:milliForth、sectorForth 与 sectorLISP 深度对比
  • 大模型应用开发全流程:从初始构思到实验、效果评估和产品化!
  • C语言内存管理
  • 多传感器模块设计指南:从选型到固件的可穿戴实践
  • 什么是Transformer?什么是视觉Transformer?与CNN的比较谁更胜一筹?
  • 【AI大模型】一文讲透 AI Agent 与 AI Workflow 的区别和深度解析:从自动化到智能化的演进
  • 2026北京GEO优化服务商推荐:企业出海如何同步布局AI搜索品牌资产
  • AI Agent工具调用安全加固:Pyshackle预执行门控实战
  • YOLO手语识别实战:开箱即用数据集与模型训练全流程
  • Qwen 2.5 Max与DeepSeek R1测试对比,看到就是赚到!!
  • 基于LoRA的Qwen-VL视觉语言模型指令微调实战指南
  • 商业园林机器人:智能运维才是核心,而非割草本身
  • AgentX与InferenceX:智能体推理基准如何评估多步推理与工具调用
  • 最新盘点:五大厂开源GitHub项目,开发者不容错过的技术宝藏!
  • RAG技术完全指南:从零开始构建大模型知识库问答系统!大模型应用开发实战
  • 2024 人工智能最前沿:分享几个大模型(LLMs)的热门研究方向
  • i.MX6ULZ无头嵌入式计算方案:DART模块开发实践
  • 2026年UI/UX设计界震撼!AI工具崛起,传统设计岗位需求锐减30%,AI体验设计师薪资却飙升50%!
  • GPT-4+GraphRAG:知识图谱如何让RAG系统更智能?
  • 为什么现在大家都把Agent叫“智能体“呢?