十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

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

收藏!小白也能学会!LangChain.js智能体开发指南:10大编排模式详解与实战应用 前言LangChain.js是一个智能体开发框架可以实现很多功能。而且它提供了很多中间件让智能体支持多种编排模式学习这些编排模式可以让你更好的理解智能体的搭建和设计过程。 一、现代架构基于 LangGraph createAgent1️⃣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-LoopHITL让 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 Agentimport { createStructuredChatAgent } from langchain/agents;const agent createStructuredChatAgent({ llm: model, tools: [complexTool], prompt: structuredPrompt,});3️⃣OpenAI Functions Agentimport { createOpenAIFunctionsAgent } from langchain/agents;const agent createOpenAIFunctionsAgent({ llm: model, // OpenAI 模型 tools: [weatherTool], prompt: functionsPrompt,});4️⃣Tool Calling Agentimport { createToolCallingAgent } from langchain/agents;const agent createToolCallingAgent({ llm: model, tools: [searchTool], prompt: toolCallingPrompt,});5️⃣XML Agentimport { createXMLAgent } from langchain/agents;const agent createXMLAgent({ llm: model, // Anthropic Claude tools: [xmlTool], prompt: xmlPrompt,});6️⃣对话式 Agentimport { ConversationalRetrievalQAChain } from langchain/chains;const chain ConversationalRetrievalQAChain.fromLLM( model, vectorStore.asRetriever(), { memory });7️⃣SQL Agentimport { 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大模型开发的读者来说阅读经典书籍是非常有必要的。600AI大模型报告实时更新这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。AI大模型面试真题答案解析我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
返回列表