3589 字
约 11 分钟
19
1.5 常见误区:Agent 不是「更长的提示词」
2026-10-25
无标签

1.5 常见误区:Agent 不是「更长的提示词」

一句话结论:模型从来不会「执行」任何东西——它只会输出一段结构化文字,真正动手的是你的框架代码。理解这一点,能一次性拆掉关于 Agent 的一大半误解。

读这篇之前

这一篇是第 1 章的总复盘,建议先读完 1.1–1.4。在这里我们集中处理那些在讨论中反复出现、并且会直接导致技术选型错误的误解。


一、先破除最根本的一个误解

模型不会真的执行代码。

这句话值得反复强调,因为它是几乎所有 Agent 误解的源头。

模型做的只有一件事:输出一段结构化文字(通常叫 tool_calls)。真正解析这段文字、去调 API、去读文件的,是你写的框架代码。

所谓「Agent 调了天气 API」,真实流程是这样的:[原文 4615]

① messages[0] · system
   role: system,content: "你可以使用以下工具…",tools: [get_weather, send_email]
② messages[1] · user
   "北京明天天气怎么样?"
③ ← 第 1 次模型调用完成
④ messages[2] · assistant
   content: null
   tool_calls: [{ name: "get_weather", id: "call_abc123", arguments: {...} }]
   ← 模型到这里就停了,它没有执行任何东西
⑤ 你的代码:解析 tool_calls → 真的去调 get_weather → 拿到结果
⑥ messages[3] · tool
   role: tool,tool_call_id: "call_abc123",content: "{明天晴,28℃}"
⑦ ← 第 2 次模型调用,模型看着这条结果继续

看清这条链路,你就能理解两件事:

  1. 模型只是"提要求",执行能力在你手里。 所以工具的安全性完全由你控制——这也是第 14 章「人在环」能成立的基础。
  2. 每次调用之间都是断开的。 模型没有"记忆",它只是每次都被喂一整份消息列表。上下文是你拼好交给它的,不是它自己记住的。

二、八个常见误区,逐个拆掉

误区 1|Agent 就是「更长的提示词」

错。 提示词再长,模型能看到的仍然只有上下文里的东西。Agent 的关键不在于"说得多",而在于能通过工具把上下文之外的信息拿进来。

判据很简单:把工具全去掉,它还剩下什么?如果只剩"更长的一段文本生成",那它从来就不是 Agent。

误区 2|连续对话就是 Agent

错。 连续聊天只是历史消息越攒越多,模型始终没有"做"的能力,也没有"根据结果调整判断"的循环。[原文 538]

一个很实用的测试:看它有没有「根据行动结果改变判断」的能力。 聊了二十轮但从没执行过任何动作的系统,本质上是多轮对话;只调两次模型但两次中间真的读了文件的系统,反而更接近 Agent 的实质。

误区 3|Agent 越自主越好

错,而且危险。 自主性是有代价的:不可预测、难调试、成本不可控。

生产系统里更可靠的往往是受约束的 Agent——在关键节点插入人工确认、把不可逆动作单独把关。这也是第 14 章「人在环(HITL)」的出发点。

误区 4|用了 Agent 框架就算 Agent

错。 框架只是把循环、工具、上下文管理这些零件封装好了。如果流程里模型根本没在做判断(只是按固定顺序走),那你用的是 Workflow,套了层框架的皮。

判断方法还是 1.4 的那句:下一步由谁决定?

误区 5|Agent 能解决模型幻觉

不能根治。 Agent 能通过工具获得真实信息,从而降低幻觉概率——但如果工具返回的内容本身有错,或者模型读错、总结错,幻觉照样发生。

Agent 改变的是"信息从哪来",不是"模型一定说得对"。这是第 13 章「评估」存在的理由。

误区 6|上下文越长,Agent 越聪明

错。 超过一定长度后,关键信息被淹没、注意力被稀释,表现反而下降。长上下文不是免费能力,而是要管理的资源。

所以真正的工程问题不是"能塞多少",而是"该塞哪些"——这是第 5 章的主题。

误区 7|让模型一次输出多个工具调用,就不用多轮了

部分正确,容易误解。 模型确实可以在一次回复里请求多个工具调用(并行执行),但结果回来之后仍然要再推理一次才能利用它们。

并行减少的是"决策轮次",不是"结果回填后的推理"。所以成本不会因此降到零。

误区 8|先做 Agent,不行再降级

顺序反了。 降级比升级难得多——一旦业务逻辑长在模型的自由决策上,想改成固定流程基本等于重写。

正确顺序是 1.4 那张复杂度阶梯:从单次调用开始,不够再加检索,再不够用 Workflow,最后才上 Agent。


三、把 Agent 与 Chatbot 的系统性差异摆在一起

前面拆的是零散误区,这一张表给出整体的对照,可以作为自查清单:[原文 297][原文 4615]

维度 Chatbot Agent
输入 一次对话 一个目标
决策 单轮 prompt → 答 多轮规划 → 执行 → 反思
记忆 仅当前会话上下文 短期 + 长期 + 程序记忆
行动 纯文本输出 调用工具、改文件、发 API
边界 用户每轮触发 自主循环到目标达成
工作链路 输入 → 输出 任务 → 规划 → 调工具 → 观察 → 纠错 → 完成

用一句话概括这条鸿沟:LLM 是会说话的模型,Agent 是会干活的助手。 同一句话,LLM 回答完就结束;Agent 会拆任务、调工具、看结果、错了再来,直到把事办成。[原文 4615]

还有一条贯穿全系列的主线,也在这里点明:

模型负责聪明,工程负责稳定。 [原文 4615]

Agent 的效果上限由模型决定,但它的可靠性、成本、安全性、可维护性几乎全部由工程决定。这也是为什么本系列后面七部,大部分篇幅都在讲工程而不是讲模型。


四、把一个误区放到实际项目里看后果

抽象讲误区没用,看一个具体项目会怎么被这些误区毁掉。

一个典型的失败项目

需求:给销售团队做一个"自动跟进潜在客户"的助手
做法:上 Agent 框架,配 15 个工具(查 CRM、发邮件、查日历、
      查公司信息、写备注…),让它自主决定

三个月后的实际情况:

现象 对应哪个误区
每月 Token 账单从预估的 500 涨到 8000 误区3(越自主越好)、误区7(先做再降级)
销售说"它有时候发两封一样的邮件" 状态没外显(2.2)+ 无幂等(10.4)
出了个错发给客户的事故,无法复现 误区2(连续对话≠Agent)、无轨迹
想改成固定流程,发现改不动 误区8(先做 Agent 再降级)
老板问"这功能值多少钱",答不出来 成本不可预测(1.4 六维度)

五个现象全部落到第 1 章讲的误区上。

正确的做法应该是什么

第一步:Workflow 三步
  ① 查 CRM 拿潜在客户状态(代码)
  ② 判断是否该跟进(规则 + 一次模型调用分类)
  ③ 生成跟进邮件草稿(一次模型调用)

第二步:把"发送"做成人工确认
  → 草稿进待发队列,销售点确认

第三步:跑一个月,看数据
  → 如果规则判断准确率不够,才考虑在②里加自主查询

这个做法成本可预测、行为可复现、事故可避免。 而且第一步两周就能上。

"销售确认"这一步还有个额外好处:它顺便给了你训练数据——哪些草稿被改了,就是改进的依据(第 13 章)。


五、一份自查清单:你的项目有没有踩这些坑

# 自查项 踩了说明
1 我问过"为什么不能用 Workflow"吗? 可能过度设计
2 我能说出每次任务的平均轮数吗? 成本不可控
3 出问题时我能拿到完整轨迹吗? 不可维护
4 所有"写"的动作都有审批或幂等吗? 会重复执行
5 我的提示词里有没有"更长的提示词就能解决"的幻想? 没理解 Agent 本质
6 我能说清"这一步为什么让模型决定"吗? 可能在用错工具
7 有没有哪个环节"模型其实没做判断"? 那里该用代码

六、一个经常被忽略的判断:你到底在造什么

拆完误区,还剩一个更根本的问题值得问:你正在做的产品,用户是"每轮触发"还是"给个目标自己跑"?

这两者的工程重心完全不同:

  • 每轮触发(Chatbot 形态):重心在单轮质量——提示词、检索准确率、响应速度。优化空间集中在一处,容易量化。
  • 给目标自己跑(Agent 形态):重心在循环的稳定性——工具成功率、错误恢复、终止条件、成本上限。优化是系统性的,单点改进常常看不出效果。

这个判断会直接决定你后面该读哪一部:

你的形态 优先读 原因
单轮问答为主 第 2、3、7 章 提示词 + 检索 + 模型边界
多步流程但路径固定 第 4、12 章 工具 + 编排
自主循环为主 第 5、10、13、14 章 上下文 + 运行时 + 评估 + 安全

先认清形态,再挑技术栈——顺序反了,通常会做出一个"什么都有、什么都不精"的系统。

七、一个补充误区:以为"提示词质量"决定上限

这一个单独拎出来,因为它最普遍。

很多团队在 Agent 效果不好时,第一反应是"再改改提示词"。 改了二十版,效果还在原地。

原因在 1.3 的结论:模型只能看见上下文里有的东西。 提示词写得再好,也变不出它没看到的信息。

判断"是提示词问题还是别的问题"的一句话测试

把正确答案直接放进上下文,看模型能不能答对。

结果 说明
能答对 不是提示词问题——是信息供给问题(补检索/补上下文)
答不对 才是提示词或模型能力问题

这个测试 5 分钟就能做,能省掉几天改提示词的时间。

一个常见的误诊链条

现象:Agent 说错了一个业务规则
误诊:提示词没说清楚 → 加三句说明 → 还是错
再误诊:模型不行 → 换更大模型 → 还是错
真因:那条业务规则根本不在上下文里

"那条规则在哪?"这个问题,应该在改提示词之前问。

一个实践建议

在项目里保留一个"上下文清单":

模型需要知道什么 现在从哪来 是否有
业务规则 ? ❌
项目约定 CLAUDE.md ✅
当前数据 工具查询 ✅
历史决策 无 ❌

两个 ❌ 就是你的真实瓶颈——比任何提示词优化都值得先补。


八、第 1 章小结

把这一章的五篇压缩成一张图:

flowchart LR
    A["1.1 从聊天到干活<br/>为什么 Agent 出现"] --> B["1.2 四模块 + 四步闭环<br/>零件与结构"]
    B --> C["1.3 为什么必须多次调用<br/>能力天花板在上下文"]
    C --> D["1.4 三者的边界<br/>什么时候不该用 Agent"]
    D --> E["1.5 常见误区<br/>拆掉错误直觉"]

五个可以带走的结论:

  1. Agent = LLM + 上下文 + 工具 + 循环(再加规划与终止条件)。四个零件缺一不可。
  2. 闭环的"回边"是灵魂——上一轮行动的结果成为下一轮判断的依据。
  3. 多次调用不是选择,是必然——因为工具结果只能通过新调用进入上下文。
  4. 上下文是能力天花板——提效果先补上下文,再考虑换模型。
  5. 大多数场景不需要 Agent——先走复杂度阶梯,别一步登天。


九、下一篇

第 1 章回答的是「Agent 是什么」。但要判断一个 Agent 设计得好不好,你还缺一块基础知识:模型本身到底能干什么、不能干什么?

为什么模型必须依赖工具才能做事,而不是直接就把事办了?为什么它有时会一本正经地胡说?为什么同一个提示词,有时有效有时失灵?

第 2 章从模型的工作方式讲起,第一个要讲的就是那个决定 Agent 一切上限的东西——Token 与上下文窗口。

1.5 常见误区:Agent 不是「更长的提示词」
https://clxhxhhr.top/posts/4871/
作者
clxstart
发布于
2026-10-25
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。