本文对比了传统AI开发与LangChain的效率展示了如何通过定义工具、配置系统提示和结构化输出等核心组件用极简代码实现具备记忆和多工具调用能力的Agent适合初学者快速入门大模型应用开发。简单来说快速开始只需 5 步定义工具 → 创建 Agent → 配置参数 → 运行测试 → 扩展功能。就像做一道菜准备食材工具→ 点火创建 Agent→ 调味配置→ 翻炒运行→ 摆盘扩展。 本节目标读完本节你将能够回答这些问题❓ 如何用 10 行代码创建一个会查天气的 Agent❓ 系统提示System Prompt有什么用如何写一个好的系统提示❓ 什么是结构化输出为什么要用它❓ 如何让 Agent 记住之前的对话❓ 真实世界的 Agent 需要哪些组件核心痛点与解决方案痛点AI 开发的起步困难症痛点传统做法有多痛苦不知从何开始面对一堆文档无从下手看了一天文档一行代码没写功能太简单只能调用模型不会用工具说是 AI 助手其实就是个聊天机器人难以扩展想加个功能要重写一半代码越写越复杂最后成了代码屎山没有记忆聊完就忘无法持续对话用户“我刚才问什么来着”传统做法 vs LangChain 效率对比举个例子 你想做一个能查天气的 AI 助手。传统做法1. **注册天气 API 账号** 2. **写天气 API 调用代码** 3. **写 OpenAI 调用代码** 4. **写逻辑用户问天气就调用天气 API** 5. **测试、调试、修复 bug** 6. **想加记忆功能重写一半代码**解决LangChain 一键生成import { createAgent, tool } fromlangchain; import * as z fromzod; // 1. 定义天气工具 const getWeather tool( (input) Its always sunny in ${input.city}!, { name: get_weather, description: Get the weather for a given city, schema: z.object({ city: z.string() }), } ); // 2. 创建 Agent const agent createAgent({ model: claude-sonnet-4-5-20250929, tools: [getWeather], }); // 3. 运行测试 const result await agent.invoke({ messages: [{ role: user, content: 东京天气怎么样 }], }); console.log(result.messages.at(-1)?.content); // Output: Its always sunny in Tokyo!效果对比指标传统做法LangChain代码量50 行10 行开发时间半天10 分钟功能完整度基础完整工具 推理 记忆可扩展性差好加工具就行生活化类比创建 Agent 就像开咖啡店创建 Agent 就像开咖啡店步骤类比LangChain 对应准备工具咖啡机、磨豆机、冰箱tool()定义工具设定规则咖啡店规则“微笑服务”systemPrompt设定行为配置原料咖啡豆、牛奶、糖model配置模型记住常客会员卡、偏好记录checkpointer添加记忆规范输出统一杯型、标签responseFormat结构化输出开始营业迎接客人invoke()运行 Agent步骤一创建基础 Agent10 行代码创建基础 Agent 流程完整代码import { createAgent, tool } fromlangchain; import * as z fromzod; // 1. 定义天气工具 const getWeather tool( (input) Its always sunny in ${input.city}!, { name: get_weather, description: Get the weather for a given city, schema: z.object({ city: z.string() }), } ); // 2. 创建 Agent const agent createAgent({ model: claude-sonnet-4-5-20250929, tools: [getWeather], }); // 3. 运行测试 const result await agent.invoke({ messages: [{ role: user, content: 东京天气怎么样 }], }); // 4. 查看结果 console.log(result.messages.at(-1)?.content); // Output: Its always sunny in Tokyo!代码解析行号代码人话解读5-14tool()定义“我创建了一个叫 get_weather 的工具能查指定城市的天气”6工具逻辑“工具被调用时返回一个固定的天气信息”8-12工具配置“告诉 Agent这个工具叫什么、能做什么、需要什么参数”17-20createAgent()“创建一个 AI 助手用 Claude 模型会使用天气工具”23-26invoke()“启动任务用户问东京天气Agent 会自己决定调用什么工具”29查看结果“从返回的消息中找到最后一条那是 Agent 的回答”❝ 人话解读tool()函数就像注册一个技能告诉 Agent 它会什么createAgent()就像雇佣一个员工给他技能和大脑invoke()就像给员工派任务他会自己想办法完成步骤二创建真实世界的 Agent真实世界 Agent 架构真实世界的 Agent 需要什么组件作用为什么需要系统提示设定角色和行为让 Agent 知道自己是谁该怎么说话多个工具扩展能力一个工具不够用需要多个工具配合模型配置控制输出调整温度、超时等参数让输出更稳定结构化输出格式统一让 Agent 返回固定格式的数据方便后续处理记忆持续对话记住之前的对话像人类一样聊天完整示例天气预报助手会说双关语import { createAgent, tool } fromlangchain; import { MemorySaver } fromlangchain/langgraph; import * as z fromzod; // 1. 定义系统提示 const systemPrompt You are an expert weather forecaster, who speaks in puns. You have access to two tools: - get_weather_for_location: use this to get the weather for a specific location - get_user_location: use this to get the users location If a user asks you for the weather, make sure you know the location. If you can tell from the question that they mean wherever they are, use the get_user_location tool to find their location.; // 2. 定义工具 const getWeather tool( ({ city }) Its always sunny in ${city}!, { name: get_weather_for_location, description: Get the weather for a specific location, schema: z.object({ city: z.string() }), } ); const getUserLocation tool( (_, config) { const { user_id } config.context; return user_id 1 ? Florida : SF; }, { name: get_user_location, description: Get the users current location, schema: z.object({}), } ); // 3. 定义结构化输出格式 const responseFormat z.object({ punny_response: z.string(), weather_conditions: z.string().optional(), }); // 4. 设置记忆 const checkpointer new MemorySaver(); // 5. 创建 Agent const agent createAgent({ model: claude-sonnet-4-5-20250929, systemPrompt, tools: [getUserLocation, getWeather], responseFormat, checkpointer, }); // 6. 运行 Agent const config { configurable: { thread_id: 1 }, context: { user_id: 1 }, }; // 第一次提问问外面的天气 const response1 await agent.invoke( { messages: [{ role: user, content: 外面天气怎么样 }] }, config ); console.log(First response:, response1.structuredResponse); // 第二次提问继续对话 const response2 await agent.invoke( { messages: [{ role: user, content: 谢谢 }] }, config ); console.log(Second response:, response2.structuredResponse);预期输出// 第一次回答 First response: { punny_response: Florida is still having a sun-derful day! The sunshine is playing ray-dio hits all day long!, weather_conditions: Its always sunny in Florida! } // 第二次回答 Second response: { punny_response: Youre thund-erfully welcome! Its always a breeze to help you stay current with the weather., weather_conditions: undefined }❝ 人话解读系统提示让 Agent 成为会说双关语的天气预报员get_user_location工具让 Agent 知道用户在哪里结构化输出让 Agent 返回固定格式的数据checkpointer让 Agent 记住之前的对话核心组件详解1. 系统提示System Prompt什么是系统提示 系统提示是给 Agent 的身份说明书告诉它你是谁角色你该怎么说话风格你有什么工具能力你该怎么使用工具规则好的系统提示的特点特点示例为什么重要具体“你是会说双关语的天气预报员”让 Agent 知道自己的定位可操作“如果不知道位置使用 get_user_location 工具”给 Agent 明确的行动指南简洁控制在 100-200 字避免占用太多上下文空间个性化“说话要幽默多用天气相关的双关语”让 Agent 有独特的人格2. 工具Tools工具的结构const myTool tool( (input, config) { // 工具逻辑接收输入返回结果 return工具执行结果; }, { name: tool_name, // 工具名字 description: 工具描述, // Agent 靠这个决定何时使用 schema: z.object({ // 参数验证 param1: z.string(), param2: z.number(), }), } );工具的参数参数类型说明例子inputobject工具的输入参数{ city: Tokyo }configobject上下文信息{ context: { user_id: 1 } }3. 结构化输出Response Format什么是结构化输出 让 Agent 返回固定格式的数据而不是自由文本。为什么要用✅ 格式统一方便后续处理✅ 类型安全减少错误✅ 前端展示更方便使用方法const responseFormat z.object({ name: z.string(), // 必需字段 age: z.number().optional(), // 可选字段 tags: z.array(z.string()), // 数组 }); const agent createAgent({ // ... responseFormat, // 告诉 Agent 返回这个格式 }); // 使用时 const result await agent.invoke({/* ... */}); console.log(result.structuredResponse); // 直接得到结构化对象4. 记忆Memory什么是记忆 让 Agent 记住之前的对话保持上下文连续性。如何使用import { MemorySaver } fromlangchain/langgraph; // 创建记忆存储 const checkpointer new MemorySaver(); const agent createAgent({ // ... checkpointer, // 添加记忆 }); // 运行时需要 thread_id const config { configurable: { thread_id: conversation_1 }, // 每个对话一个 ID }; // 第一次对话 await agent.invoke({/* ... */}, config); // 第二次对话用同一个 thread_id await agent.invoke({/* ... */}, config);❝⚠️ 注意MemorySaver是内存存储重启后会丢失。生产环境要用持久化存储比如数据库。业务场景不同类型的快速应用Agent 业务场景应用场景工具需求系统提示特色功能客服助手查询订单、查物流、处理退款“你是专业客服语气友好解决问题”结构化输出统一回复格式个人助手查天气、定闹钟、发邮件“你是贴心助手记住用户偏好”记忆功能记住用户习惯学习助手搜索资料、解答问题、生成练习“你是耐心老师讲解详细鼓励学生”多工具协作搜索 总结营销助手生成文案、分析数据、找客户“你是创意营销专家善于抓痛点”结构化输出营销文案模板代码助手搜索文档、生成代码、调试错误“你是资深程序员代码简洁注释清晰”工具集成查 API 文档示例客服助手工具query_order查询订单状态track_shipment查询物流信息process_refund处理退款系统提示You are a helpful customer service agent. Be friendly and patient. Always try to solve the customers problem. If you need order information, use the query_order tool. If you need shipping information, use the track_shipment tool. If the customer wants a refund, use the process_refund tool.使用const result await agent.invoke({ messages: [{ role: user, content: 我的订单 #12345 发货了吗 }] });常见问题与解决方案问题原因解决方案Agent 不知道用工具工具描述不够清晰写更详细的description说明什么时候用Agent 回答格式不对没有使用结构化输出添加responseFormatAgent 记不住对话没有添加记忆使用checkpointer和thread_idAgent 说话风格不对系统提示不够具体写更详细的系统提示指定风格运行速度慢模型参数设置不当调整temperature、timeout等参数API Key 错误环境变量没配置检查环境变量是否正确设置❝ 调试技巧先从简单的工具开始逐步添加功能用console.log打印中间结果检查 Agent 的思考过程总结对比表功能基础 Agent真实世界 Agent区别工具数量1 个多个能力更全面系统提示无详细行为更规范模型配置默认自定义输出更稳定结构化输出无有格式更统一记忆无有能持续对话代码量10 行50 行功能更完整适用场景快速测试生产环境更专业可靠核心要点回顾✅ 快速开始 5 步定义工具 → 创建 Agent → 配置参数 → 运行测试 → 扩展功能✅ 10 行代码tool()定义技能createAgent()创建助手invoke()启动任务✅ 系统提示给 Agent 设定角色、风格和规则越具体越好✅ 结构化输出用 Zod 定义格式让 Agent 返回固定结构的数据✅ 记忆功能用MemorySaver和thread_id让 Agent 记住对话✅ 真实世界多个工具、详细系统提示、自定义模型配置、结构化输出、记忆这些是生产级 Agent 的标配记住快速开始的目的不是写完美的代码而是快速体验 LangChain 的魅力。先跑起来再慢慢优化。你已经迈出了 AI 应用开发的第一步接下来的路会越来越精彩如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】为什么要学习大模型我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年人才缺口已超百万凸显培养不足。随着AI技术飞速发展预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。大模型入门到实战全套学习大礼包1、大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通2、大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。3、AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。4、大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。5、大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。适用人群第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
LangChain实战:10行代码创建智能Agent,小白也能看懂(建议收藏)
发布时间:2026/5/27 5:57:03
本文对比了传统AI开发与LangChain的效率展示了如何通过定义工具、配置系统提示和结构化输出等核心组件用极简代码实现具备记忆和多工具调用能力的Agent适合初学者快速入门大模型应用开发。简单来说快速开始只需 5 步定义工具 → 创建 Agent → 配置参数 → 运行测试 → 扩展功能。就像做一道菜准备食材工具→ 点火创建 Agent→ 调味配置→ 翻炒运行→ 摆盘扩展。 本节目标读完本节你将能够回答这些问题❓ 如何用 10 行代码创建一个会查天气的 Agent❓ 系统提示System Prompt有什么用如何写一个好的系统提示❓ 什么是结构化输出为什么要用它❓ 如何让 Agent 记住之前的对话❓ 真实世界的 Agent 需要哪些组件核心痛点与解决方案痛点AI 开发的起步困难症痛点传统做法有多痛苦不知从何开始面对一堆文档无从下手看了一天文档一行代码没写功能太简单只能调用模型不会用工具说是 AI 助手其实就是个聊天机器人难以扩展想加个功能要重写一半代码越写越复杂最后成了代码屎山没有记忆聊完就忘无法持续对话用户“我刚才问什么来着”传统做法 vs LangChain 效率对比举个例子 你想做一个能查天气的 AI 助手。传统做法1. **注册天气 API 账号** 2. **写天气 API 调用代码** 3. **写 OpenAI 调用代码** 4. **写逻辑用户问天气就调用天气 API** 5. **测试、调试、修复 bug** 6. **想加记忆功能重写一半代码**解决LangChain 一键生成import { createAgent, tool } fromlangchain; import * as z fromzod; // 1. 定义天气工具 const getWeather tool( (input) Its always sunny in ${input.city}!, { name: get_weather, description: Get the weather for a given city, schema: z.object({ city: z.string() }), } ); // 2. 创建 Agent const agent createAgent({ model: claude-sonnet-4-5-20250929, tools: [getWeather], }); // 3. 运行测试 const result await agent.invoke({ messages: [{ role: user, content: 东京天气怎么样 }], }); console.log(result.messages.at(-1)?.content); // Output: Its always sunny in Tokyo!效果对比指标传统做法LangChain代码量50 行10 行开发时间半天10 分钟功能完整度基础完整工具 推理 记忆可扩展性差好加工具就行生活化类比创建 Agent 就像开咖啡店创建 Agent 就像开咖啡店步骤类比LangChain 对应准备工具咖啡机、磨豆机、冰箱tool()定义工具设定规则咖啡店规则“微笑服务”systemPrompt设定行为配置原料咖啡豆、牛奶、糖model配置模型记住常客会员卡、偏好记录checkpointer添加记忆规范输出统一杯型、标签responseFormat结构化输出开始营业迎接客人invoke()运行 Agent步骤一创建基础 Agent10 行代码创建基础 Agent 流程完整代码import { createAgent, tool } fromlangchain; import * as z fromzod; // 1. 定义天气工具 const getWeather tool( (input) Its always sunny in ${input.city}!, { name: get_weather, description: Get the weather for a given city, schema: z.object({ city: z.string() }), } ); // 2. 创建 Agent const agent createAgent({ model: claude-sonnet-4-5-20250929, tools: [getWeather], }); // 3. 运行测试 const result await agent.invoke({ messages: [{ role: user, content: 东京天气怎么样 }], }); // 4. 查看结果 console.log(result.messages.at(-1)?.content); // Output: Its always sunny in Tokyo!代码解析行号代码人话解读5-14tool()定义“我创建了一个叫 get_weather 的工具能查指定城市的天气”6工具逻辑“工具被调用时返回一个固定的天气信息”8-12工具配置“告诉 Agent这个工具叫什么、能做什么、需要什么参数”17-20createAgent()“创建一个 AI 助手用 Claude 模型会使用天气工具”23-26invoke()“启动任务用户问东京天气Agent 会自己决定调用什么工具”29查看结果“从返回的消息中找到最后一条那是 Agent 的回答”❝ 人话解读tool()函数就像注册一个技能告诉 Agent 它会什么createAgent()就像雇佣一个员工给他技能和大脑invoke()就像给员工派任务他会自己想办法完成步骤二创建真实世界的 Agent真实世界 Agent 架构真实世界的 Agent 需要什么组件作用为什么需要系统提示设定角色和行为让 Agent 知道自己是谁该怎么说话多个工具扩展能力一个工具不够用需要多个工具配合模型配置控制输出调整温度、超时等参数让输出更稳定结构化输出格式统一让 Agent 返回固定格式的数据方便后续处理记忆持续对话记住之前的对话像人类一样聊天完整示例天气预报助手会说双关语import { createAgent, tool } fromlangchain; import { MemorySaver } fromlangchain/langgraph; import * as z fromzod; // 1. 定义系统提示 const systemPrompt You are an expert weather forecaster, who speaks in puns. You have access to two tools: - get_weather_for_location: use this to get the weather for a specific location - get_user_location: use this to get the users location If a user asks you for the weather, make sure you know the location. If you can tell from the question that they mean wherever they are, use the get_user_location tool to find their location.; // 2. 定义工具 const getWeather tool( ({ city }) Its always sunny in ${city}!, { name: get_weather_for_location, description: Get the weather for a specific location, schema: z.object({ city: z.string() }), } ); const getUserLocation tool( (_, config) { const { user_id } config.context; return user_id 1 ? Florida : SF; }, { name: get_user_location, description: Get the users current location, schema: z.object({}), } ); // 3. 定义结构化输出格式 const responseFormat z.object({ punny_response: z.string(), weather_conditions: z.string().optional(), }); // 4. 设置记忆 const checkpointer new MemorySaver(); // 5. 创建 Agent const agent createAgent({ model: claude-sonnet-4-5-20250929, systemPrompt, tools: [getUserLocation, getWeather], responseFormat, checkpointer, }); // 6. 运行 Agent const config { configurable: { thread_id: 1 }, context: { user_id: 1 }, }; // 第一次提问问外面的天气 const response1 await agent.invoke( { messages: [{ role: user, content: 外面天气怎么样 }] }, config ); console.log(First response:, response1.structuredResponse); // 第二次提问继续对话 const response2 await agent.invoke( { messages: [{ role: user, content: 谢谢 }] }, config ); console.log(Second response:, response2.structuredResponse);预期输出// 第一次回答 First response: { punny_response: Florida is still having a sun-derful day! The sunshine is playing ray-dio hits all day long!, weather_conditions: Its always sunny in Florida! } // 第二次回答 Second response: { punny_response: Youre thund-erfully welcome! Its always a breeze to help you stay current with the weather., weather_conditions: undefined }❝ 人话解读系统提示让 Agent 成为会说双关语的天气预报员get_user_location工具让 Agent 知道用户在哪里结构化输出让 Agent 返回固定格式的数据checkpointer让 Agent 记住之前的对话核心组件详解1. 系统提示System Prompt什么是系统提示 系统提示是给 Agent 的身份说明书告诉它你是谁角色你该怎么说话风格你有什么工具能力你该怎么使用工具规则好的系统提示的特点特点示例为什么重要具体“你是会说双关语的天气预报员”让 Agent 知道自己的定位可操作“如果不知道位置使用 get_user_location 工具”给 Agent 明确的行动指南简洁控制在 100-200 字避免占用太多上下文空间个性化“说话要幽默多用天气相关的双关语”让 Agent 有独特的人格2. 工具Tools工具的结构const myTool tool( (input, config) { // 工具逻辑接收输入返回结果 return工具执行结果; }, { name: tool_name, // 工具名字 description: 工具描述, // Agent 靠这个决定何时使用 schema: z.object({ // 参数验证 param1: z.string(), param2: z.number(), }), } );工具的参数参数类型说明例子inputobject工具的输入参数{ city: Tokyo }configobject上下文信息{ context: { user_id: 1 } }3. 结构化输出Response Format什么是结构化输出 让 Agent 返回固定格式的数据而不是自由文本。为什么要用✅ 格式统一方便后续处理✅ 类型安全减少错误✅ 前端展示更方便使用方法const responseFormat z.object({ name: z.string(), // 必需字段 age: z.number().optional(), // 可选字段 tags: z.array(z.string()), // 数组 }); const agent createAgent({ // ... responseFormat, // 告诉 Agent 返回这个格式 }); // 使用时 const result await agent.invoke({/* ... */}); console.log(result.structuredResponse); // 直接得到结构化对象4. 记忆Memory什么是记忆 让 Agent 记住之前的对话保持上下文连续性。如何使用import { MemorySaver } fromlangchain/langgraph; // 创建记忆存储 const checkpointer new MemorySaver(); const agent createAgent({ // ... checkpointer, // 添加记忆 }); // 运行时需要 thread_id const config { configurable: { thread_id: conversation_1 }, // 每个对话一个 ID }; // 第一次对话 await agent.invoke({/* ... */}, config); // 第二次对话用同一个 thread_id await agent.invoke({/* ... */}, config);❝⚠️ 注意MemorySaver是内存存储重启后会丢失。生产环境要用持久化存储比如数据库。业务场景不同类型的快速应用Agent 业务场景应用场景工具需求系统提示特色功能客服助手查询订单、查物流、处理退款“你是专业客服语气友好解决问题”结构化输出统一回复格式个人助手查天气、定闹钟、发邮件“你是贴心助手记住用户偏好”记忆功能记住用户习惯学习助手搜索资料、解答问题、生成练习“你是耐心老师讲解详细鼓励学生”多工具协作搜索 总结营销助手生成文案、分析数据、找客户“你是创意营销专家善于抓痛点”结构化输出营销文案模板代码助手搜索文档、生成代码、调试错误“你是资深程序员代码简洁注释清晰”工具集成查 API 文档示例客服助手工具query_order查询订单状态track_shipment查询物流信息process_refund处理退款系统提示You are a helpful customer service agent. Be friendly and patient. Always try to solve the customers problem. If you need order information, use the query_order tool. If you need shipping information, use the track_shipment tool. If the customer wants a refund, use the process_refund tool.使用const result await agent.invoke({ messages: [{ role: user, content: 我的订单 #12345 发货了吗 }] });常见问题与解决方案问题原因解决方案Agent 不知道用工具工具描述不够清晰写更详细的description说明什么时候用Agent 回答格式不对没有使用结构化输出添加responseFormatAgent 记不住对话没有添加记忆使用checkpointer和thread_idAgent 说话风格不对系统提示不够具体写更详细的系统提示指定风格运行速度慢模型参数设置不当调整temperature、timeout等参数API Key 错误环境变量没配置检查环境变量是否正确设置❝ 调试技巧先从简单的工具开始逐步添加功能用console.log打印中间结果检查 Agent 的思考过程总结对比表功能基础 Agent真实世界 Agent区别工具数量1 个多个能力更全面系统提示无详细行为更规范模型配置默认自定义输出更稳定结构化输出无有格式更统一记忆无有能持续对话代码量10 行50 行功能更完整适用场景快速测试生产环境更专业可靠核心要点回顾✅ 快速开始 5 步定义工具 → 创建 Agent → 配置参数 → 运行测试 → 扩展功能✅ 10 行代码tool()定义技能createAgent()创建助手invoke()启动任务✅ 系统提示给 Agent 设定角色、风格和规则越具体越好✅ 结构化输出用 Zod 定义格式让 Agent 返回固定结构的数据✅ 记忆功能用MemorySaver和thread_id让 Agent 记住对话✅ 真实世界多个工具、详细系统提示、自定义模型配置、结构化输出、记忆这些是生产级 Agent 的标配记住快速开始的目的不是写完美的代码而是快速体验 LangChain 的魅力。先跑起来再慢慢优化。你已经迈出了 AI 应用开发的第一步接下来的路会越来越精彩如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】为什么要学习大模型我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年人才缺口已超百万凸显培养不足。随着AI技术飞速发展预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。大模型入门到实战全套学习大礼包1、大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通2、大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。3、AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。4、大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。5、大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。适用人群第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】