LangChain Agent 报 Missing Action?三类 Prompt 格式陷阱与根治方案
导航收藏不迷路—制造业数据与AI践行者老蒋的技术博客全系列文章汇总持续更新本文一次性解决以下三个连锁报错Invalid Format: Missing Action: after Thought:ValueError: Prompt missing required variables: {tool_names}ValueError: Prompt missing required variables: {agent_scratchpad}如果你正遇到其中任意一个这篇文章就能帮你彻底解决。 文章摘要构建 LangChain ReAct Agent 时常连续遇到 Missing Action: 格式错误、tool_names 变量缺失、agent_scratchpad 转义失效三类报错。本文深入拆解根因给出完整的正确 Prompt 模板和四条排查规则一次性根治所有 Prompt 格式类陷阱适用于所有 create_react_agent 项目本地小模型场景尤其适用。目录问题现象根因分析第一层Agent 不知道Action:是必须的第二层{tool_names} 是 create_react_agent 的强制要求第三层{agent_scratchpad} 被误转义了解决方案第一步在 Prompt 中增加明确的格式示例第二步确保 {tool_names} 存在于模板中第三步检查 {agent_scratchpad} 的写法完整正确模板修复后验证经验总结系列导航互动与交流关于作者问题现象兄弟们Case04 数据质量巡检 Agent 点击链接查看的开发过程中我遇到了一个老朋友——Case03 里就出现过的那种报错。Agent 构建成功了工具也注册了但一运行就报Invalid Format: Missing Action: after Thought:然后 Agent 就像卡住了一样反复尝试同样的无效输出直到触发迭代上限 Finished chain. Agent: Agent stopped due to iteration limit or time limit.我当时的第一反应是这不科学啊……明明在 Prompt 里写了格式要求Agent 怎么就输出不了正确的格式呢更气人的是改完一个报错又来一个ValueError: Prompt missing required variables: {tool_names}改完又报ValueError: Prompt missing required variables: {agent_scratchpad}同一个案例三个格式报错轮番轰炸。说实话我当时真的是把我给整没脾气了。但冷静下来之后我发现这三个问题的根因其实是一样的——Prompt 模板的格式没写对。根因分析第一层Agent 不知道Action:是必须的Invalid Format: Missing Action: after Thought:这个报错的字面意思是Agent 输出了Thought:但后面没有跟着Action:就直接结束了。LangChain 的ReActSingleInputOutputParser解析 Agent 输出时要求的格式是Thought: 你的思考 Action: 工具名称 Action Input: {参数: 值} Observation: 工具返回结果 Final Answer: 最终回复如果 Agent 只输出了Thought:就直接写Final Answer解析器就会报Missing Action:。根本原因Prompt 模板里虽然有格式要求的说明但没有给出具体的格式示例。模型不知道Action:是必须的它以为可以直接跳到Action Input:甚至Final Answer。第二层{tool_names}是create_react_agent的强制要求LangChain 的create_react_agent在构建 Agent 时会从 Prompt 模板中读取两个变量{tools}→ 工具描述列表{tool_names}→ 工具名称列表用于 ReAct 的 Action 选择两个变量缺一不可。只要少一个就会报Prompt missing required variables。很多开发者包括我会在 Prompt 里写{tools}但很容易忘记{tool_names}因为{tools}是显眼的大段内容而{tool_names}只是一行。第三层{agent_scratchpad}被误转义了{agent_scratchpad}是 LangChain 内部用来记录 Agent 推理过程的变量必须作为变量占位符存在。但在写 Prompt 时如果 JSON 示例里用了{}很容易顺便把{agent_scratchpad}也写成{{agent_scratchpad}}双花括号导致它被当成纯文本而不是变量。# ❌ 错误写法双花括号被当成纯文本 Thought: {{agent_scratchpad}} # ✅ 正确写法单花括号作为变量 Thought: {agent_scratchpad}很多人遇到这个报错的第一反应是我明明写了啊然后反复检查最后发现是多打了一对花括号。这个坑在 Case03 和 Case04 里反复出现了好几次。 可以参考之前碰到的排坑分享博客《离谱PromptTemplate 遇上 JSON花括号直接引发解析战争》、《LangChain Agent 反复调用工具死循环结构化返回 Prompt 规则让它学会跳过》解决方案第一步在 Prompt 中增加明确的格式示例在_get_prompt_template中用正确示例的形式展示完整格式而不是只写格式要求。def _get_prompt_template(self) - str: return 你是一个数据质量巡检专家。你有权使用以下工具 {tools} 工具名称列表: {tool_names} **格式要求必须严格遵守** - 你必须按照以下格式输出每一行都不能少 Thought: 你的思考过程 Action: 工具名称 Action Input: {{}} Observation: 工具返回结果 Final Answer: 最终回复 **正确的示例用户说空值检测时** Thought: 用户要求空值检测我先加载数据 Action: load_data Action Input: {{}} Observation: {{total_rows: 10000, columns: [...]}} Thought: 数据加载成功继续执行空值检测 Action: null_check Action Input: {{}} Observation: {{status: ok, alert_columns: [], message: 空值率正常}} Final Answer: 空值检测完成空值率正常无超标列。 开始 Question: {input} Thought: {agent_scratchpad} 关键点示例中完整展示了Thought → Action → Action Input → Observation → Final Answer的循环Action:行被明确展示模型知道它是必须的示例用双花括号{{}}转义避免被当成变量第二步确保{tool_names}存在于模板中在_get_prompt_template中必须有一行工具名称列表: {tool_names}位置不重要但必须有。建议放在{tools}后面逻辑上更连贯。第三步检查{agent_scratchpad}的写法确保结尾的Thought:行是Thought: {agent_scratchpad}而不是Thought: {{agent_scratchpad}}快速检查方法在模板中搜索{{如果看到{{agent_scratchpad}}立刻改成单花括号。完整正确模板def _get_prompt_template(self) - str: return 你是一个数据质量巡检专家。你有权使用以下工具 {tools} 工具名称列表: {tool_names} **核心工作流程** 1. 根据用户指令只执行用户要求的检测工具。 2. 执行任何检测之前先调用 load_data。 3. 根据检测结果给出清晰的中文结论。 **格式要求必须严格遵守** - 必须按照以下格式输出每一行都不能少 Thought: 你的思考过程 Action: 工具名称 Action Input: {{}} Observation: 工具返回结果 Final Answer: 最终回复 **正确的示例** Thought: 用户要求空值检测我先加载数据 Action: load_data Action Input: {{}} Observation: {{total_rows: 10000, columns: [...]}} Thought: 数据加载成功继续执行空值检测 Action: null_check Action Input: {{}} Observation: {{status: ok, message: 空值率正常}} Final Answer: 空值检测完成空值率正常。 开始 Question: {input} Thought: {agent_scratchpad} 修复后验证修改后Agent 的输出恢复正常‍ 你: 空值检测 Entering new AgentExecutor chain... Thought: 用户要求空值检测我先加载数据 Action: load_data Action Input: {} Observation: {total_rows: 10000, columns: [timestamp, line, temperature, vibration, current]} Thought: 数据加载成功继续执行空值检测 Action: null_check Action Input: {} Observation: {status: ok, alert_columns: [], message: 空值率正常} Final Answer: 空值检测完成空值率正常无超标列。 Agent: 空值检测完成空值率正常无超标列。经验总结怕你忘了我再啰嗦一遍LangChain ReAct Agent 的三个格式陷阱——缺少Action:、缺少{tool_names}、{agent_scratchpad}被误转义——本质都是 Prompt 模板不规范导致的。落到具体操作上就是四条排查规则Prompt 中必须有完整的格式示例不要只写格式要求要展示Thought → Action → Action Input → Observation → Final Answer的完整循环。模型学习示例比理解指令更有效。{tool_names}必须有create_react_agent强制要求{tools}和{tool_names}两个变量同时存在。少一个就报Prompt missing required variables。{agent_scratchpad}必须是单花括号写成{{agent_scratchpad}}会被当成纯文本导致Prompt missing required variables: {agent_scratchpad}。快速检查搜索{{看有没有误转义。JSON 示例用双花括号转义变量用单花括号{JSON 示例用双花括号{{。这个原则适用于所有 LangChain Prompt 模板。做制造业 AI 落地最终拼的是底层数据架构。数仓、数据湖、湖仓一体怎么选我将专门写一篇架构篇结合工厂真实场景讲透了选型逻辑感兴趣的兄弟可以延伸看看敬请期待。适用范围本文方案适用于所有使用create_react_agent构建 ReAct Agent 的 LangChain 项目尤其在使用本地小模型Qwen2.5-7B 等时更易触发格式问题。如果你使用的是 GPT-4 等大模型格式问题可能不明显但规范的模板依然是良好工程实践。再啰嗦一句该类问题在本地 7B/14B 级开源小模型上出现概率极高GPT-4 等闭源大模型因指令跟随能力强触发概率较低但规范的 Prompt 模板仍是工程化的必要要求。系列导航本文属于《数据与AI工程排坑笔记》系列上一篇智联工坊实战数据质量智能巡检Agent让AI帮你发现脏数据下一篇《数仓储不了视频数据湖管不好质量制造企业湖仓一体架构详解》本文问题源自《智联工坊实战数据质量智能巡检Agent》实战过程点击链接参考完整信息。 ReAct Agent 格式报错快速自检清单▢ Prompt 中是否包含完整的 Thought-Action-Observation 格式示例▢ 模板中是否同时存在 {tools} 和 {tool_names} 两个变量▢ {agent_scratchpad} 是否为单花括号未被误转义▢ JSON 示例是否用双花括号 {{}} 完成转义建议收藏遇到 LangChain Agent 格式报错时优先对照本文的三条排查规则检查 Prompt 模板。90% 的问题都出在这三个点上——Action:缺失、{tool_names}缺失、{agent_scratchpad}被转义。互动与交流兄弟们这三个格式坑你踩过几个A. 只踩过 Missing ActionB. tool_names 缺失卡过我C. agent_scratchpad 转义坑最隐蔽D. 三个全中简直是报错三连击评论区扣选项我选 3 位兄弟发 ReAct Agent 标准 Prompt 通用模板。关于作者制造业数据与 AI 践行者老蒋23 年 IT 老兵。聚焦制造业数据架构与 AI 融合落地。全流程实战全源码开源。标签#排坑笔记#LangChain#Agent#ReAct Agent#Missing Action报错#Prompt模板#agent_scratchpad#工具调用排坑

相关新闻

AutoHotkey v2.0全功能开发套件下载|含中文教程与高效工具集

AutoHotkey v2.0全功能开发套件下载|含中文教程与高效工具集

温馨提示:文末有联系方式 AHK v2.0全栈开发工具包——开箱即用,高效入门 AutoHotkey v2.0语言学习与项目开发所需全部核心工具已精心整合为单一体验包。 无需逐个搜索、安装或配置,所有组件均经实测兼容v2.0语范,支持Windows全平台…

2026/8/17 20:42:51 阅读更多 →
Obsidian主页终极指南:3步打造极简高效的柴犬主题首页

Obsidian主页终极指南:3步打造极简高效的柴犬主题首页

Obsidian主页终极指南:3步打造极简高效的柴犬主题首页 【免费下载链接】obsidian-homepage Obsidian homepage - Minimal and aesthetic template (with my unique features) 项目地址: https://gitcode.com/gh_mirrors/obs/obsidian-homepage Obsidian Home…

2026/8/17 20:42:51 阅读更多 →
短视频文案提取工具怎么选?免费软件和网页版实测记录

短视频文案提取工具怎么选?免费软件和网页版实测记录

作为做了半年多图文搬运整理的人,短视频文案提取工具是我每天都要碰的东西,抖音快手刷到好内容,最先做的就是想办法把文案抠出来。网上推荐的软件五花八门,我前后装过也卸过不少,这篇不吹不黑,把我实际用下…

2026/8/17 20:42:51 阅读更多 →

最新新闻

构建智能体专用查询引擎:从意图理解到执行优化的实战指南

构建智能体专用查询引擎:从意图理解到执行优化的实战指南

1. 项目概述:为智能体构建一个专属的“搜索引擎” 最近在折腾各种AI智能体(Agents)项目,无论是基于LLM的自主智能体,还是多智能体协作框架,我发现一个共通的痛点越来越明显: 智能体“知道”的很…

2026/8/18 23:49:24 阅读更多 →
9款AI写论文哪个好?2026实测:只有它能做到“真文献+真图表”,毕业季不踩雷

9款AI写论文哪个好?2026实测:只有它能做到“真文献+真图表”,毕业季不踩雷

aigcbiye官网:http://www.aigcbiye.com | 微信公众号 搜一搜 aigcbiye 你打开一篇AI生成的论文初稿,第一章读下来逻辑通顺、辞藻华丽,翻到参考文献列表却傻了眼——作者名字是虚构的,期刊名查无此刊,DOI点…

2026/8/18 23:49:24 阅读更多 →
Spark Streaming 核心原理与应用实践:从微批处理到实时计算

Spark Streaming 核心原理与应用实践:从微批处理到实时计算

1. 项目概述:从批处理到实时计算的跨越 在数据处理的江湖里,Spark 的批处理能力早已名声在外,但面对源源不断、实时涌入的数据流,传统的批处理模式就显得有些力不从心了。想象一下,你是一家电商平台的运维,…

2026/8/18 23:49:24 阅读更多 →
单片机毕业设计-基于 STM32/51 单片机的可校准便携式计价电子秤开发 基于 STM32/51 单片机的多档位单价切换称重设备设计(021103)

单片机毕业设计-基于 STM32/51 单片机的可校准便携式计价电子秤开发 基于 STM32/51 单片机的多档位单价切换称重设备设计(021103)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/18 23:49:24 阅读更多 →
单片机毕业设计-基于单片机的三通道红外传感器循迹小车硬件控制系统设计 基于 STM32 或 51 单片机的可充电式自主循迹智能小车开发(022203)

单片机毕业设计-基于单片机的三通道红外传感器循迹小车硬件控制系统设计 基于 STM32 或 51 单片机的可充电式自主循迹智能小车开发(022203)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/18 23:49:23 阅读更多 →
指令微调如何影响大语言模型的置信度与词汇多样性?

指令微调如何影响大语言模型的置信度与词汇多样性?

在自然语言处理领域,大语言模型(LLM)的指令微调(Instruction Tuning)已成为提升模型与人类意图对齐能力的关键技术。然而,在追求模型“听话”的同时,我们是否无意中改变了模型回答问题的内在特质…

2026/8/18 23:48:23 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →