Files
python-agent/docs/13-迁移心智陷阱清单.md
2026-09-22 15:42:25 +08:00

108 lines
9.8 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 迁移心智陷阱清单
> 所属:顶层学习方法论
> 定位:这是一份**元认知清单**。进阶到 AI Agent 开发栈后,最大的坑往往不是"不会新知识",而是"带着旧领域的思维惯性去套新问题"。本清单把最常见的"心智迁移陷阱"逐条摊开,并给出破解抓手。建议在读完全部阶段后通读一遍,并在实战/面试前回炉对照。
---
## 0. 为什么要单列这份清单:知识会迁移,但判断力不会
学完各阶段,你会带着混合的心智模型:Python 的、LLM 的、框架的、工程化的。其中**旧领域的成熟心智**是资产,可一旦用错场合,就会从"经验"退化为"偏见"。下面的陷阱分两类:
- **来源型陷阱**:由你"从哪里来"决定——Web 后端背景、传统 ML 背景、纯 Prompt 背景、学术背景各有各的惯性。
- **通用型陷阱**:不分背景,学 Agent 的人普遍会踩的思维误区。
每条都用"**陷阱表现 → 为什么危险 → 破解抓手**"的结构讲透。
---
## 一、来源型陷阱
### 陷阱 1:「把 LLM 当作确定性函数」
- **表现**:沿用"输入 → 输出,对给定输入必有唯一确定结果"的心智。写断言、做单测时要求同一段 prompt 永远输出同一 JSON;出错后第一反应是"是不是我代码写错了"。
- **为什么危险**:LLM 是**概率性采样器**,同样的输入在 temperature>0 时每次都可能不同,解析层天然要容忍噪声。它的"不确定性"不是 bug,而是特性。若把它当函数,你会反复"修"根本没 bug 的代码,还会在安全/一致性设计上漏掉随机失败的可能。
- **破解抓手**:建立"**抽取式确定性 + 生成式弹性**"心智——结构化出口(JSON/工具调用)用 Schema+校验+重试兜底,自由生成内容接受其不确定;凡要求"绝对一致"的点,一律改为"概率上高置信 + 失败可重试/可降级"。
### 陷阱 2:「把工程规模的『分层』直接套到 Agent 上」
- **表现**:从 Web/微服务背景来的人,习惯把系统拆成薄薄的服务、层层解耦。于是照搬到 Agent 项目,为每个工具建独立服务、把一次推理拆成十几层的抽象,引入大量 RPC 与序列化。
- **为什么危险**:Agent 的瓶颈常常不在"耦合度"而在 **token 成本、上下文窗口与循环次数**。过度拆分让每次循环多跳多个进程、多传几轮上下文,成本与延迟陡增,远超过它带来的"可维护性"收益。
- **破解抓手**:遵循"**进程内工具为主、跨进程仅留给强隔离**"的原则。先把逻辑放一个进程跑通,只有真需要独立伸缩/强安全隔离(如执行不可信代码的沙箱)时再拆服务。先量化一轮 Agent 循环的开销,再谈分层。
### 陷阱 3:「把『数据集思维』原样套进 Agent 评估」
- **表现**:传统 ML/数据背景的人,习惯先攒一个静态测试集、算一个离线分数(准确率/F1)就定胜负。于是给 Agent 也搞一个固定用例集,跑完报个平均分就当"评估过了"。
- **为什么危险**:Agent 是**有状态、有外部动作、随机性高**的交互系统。同一问题可能走不同工具路径;离线静态评估既测不到工具调用的真实副作用,也测不到多轮状态累积的错误,分数好看不等于真能用。
- **破解抓手**:采用"**离线基准筛选 + 在线/轨迹级验证**"双层评估(详见阶段五第4讲)。离线集只看回归与横比;真正把关要看**单条轨迹**里工具调用是否正确、终止是否在规定步数内,并配 LLM-as-judge 缓解纯规则判分失准。
### 陷阱 4:「把『组件数量』当成 Agent 的『能力』」
- **表现**:从做系统的背景来,以为"能力 = 堆功能"。于是给一个 Agent 挂上十几个工具、塞进 MCP 全家桶、接多个模型路由,以为越全越强。
- **为什么危险**:工具越多,模型越容易选错工具、暴露的 prompt-injection 面越大、维护与测试成本越高。真正决定 Agent 上限的是**少而精准的工具 + 可靠的调用约定**,不是数量。
- **破解抓手**:坚持"**够用即最小 + 按需新增**":每个工具都要有清晰的触发边界与失败语义;新增一个工具前,先证明现有工具无法完成,再评估其被误调用的风险。复杂度是负债,不是资产。
### 陷阱 5:「追逐论文范式而忽略落地收敛」
- **表现**:学术/AI 研究背景或信息焦虑的人,热衷于上 **ToT / GoT / Self-Refine / 大规模 MAS** 等前沿范式,觉得"用不上就不高级"。
- **为什么危险**:多数前沿范式以"sss质量上限"为目标,以**巨量 token 和不确定性**为代价,工业落地常因成本、时延、可观测性而失败。沉迷范式会错过更值钱的工程功底:可复现、可评估、可降级。
- **破解抓手**:用"**先在最朴素范式上跑通 + 证明瓶颈再升级**"做决策。每次引入新范式都要回答:它具体解决了我当前哪个可量化瓶颈?需要多少个 token 换多少点收益?性价比不达阈值就不上。
---
## 二、通用型陷阱
### 陷阱 6:「上下文越大越好」的囤积心态
- **表现**:觉得塞进更多资料、更大 chunk、更长的 system prompt,Agent 一定更聪明;舍不得做上下文压缩与裁剪。
- **为什么危险**:上下文过长会放大**迷失中间**(Lost in the Middle)问题,且 token 成本与延迟线性上涨;更重要的是,冗余上下文会稀释关键指令,反而降低遵循度。
- **破解抓手**:把上下文当**受限资源**来管理:检索只取高相关片段、用摘要迭代、把可离线化的规则从 prompt 挪到代码里。始终追问"这段上下文对当前这一步推理真的必要吗"。
### 陷阱 7:「相信模型自觉而不设边界」
- **表现**:过度信任 LLM 的"纪律",以为只要 prompt 里写了"不要删除数据/不要调危险工具",Agent 就永远不会越界或组合出危险动作。
- **为什么危险**:LLM 既会顺从被注入的指令,也可能在异常状态下做出未预期的工具组合。安全边界一旦交给"模型的自觉",坏结果往往不可逆(删数据、发消息、付费)。
- **破解抓手**:安全设计三原则(详见阶段六):**只读账号兜底 + 执行层强制鉴权 + 高危动作人工审批**。凡不可逆动作,权限判定必须在代码层,绝不能依赖 prompt 约束。
### 陷阱 8:「把『演示能跑』当作『产品能交付』」
- **表现**:Demo 跑通一个多智能体工作流、RAG 问答、监控告警,就觉得可以上线了;忽略数据一致性、可观测性、容错恢复、成本治理、灰度与回滚。
- **为什么危险**:Demo 与生产差的是"**不确定性下的可靠性**":模型抽风时怎么办?负载上来 token 成本能撑几天?挂了能否自动恢复?没有这些,一上线就翻车。
- **破解抓手**:用阶段七的工程化清单逐条过"上线可行性":熔断限流、优雅停机、trace 贯穿、Bad-case 回归、成本预算与告警。Demo 证明"能完成",生产要证明"在异常下仍能完成"。
### 陷阱 9:「只看单项指标下结论」
- **表现**:拿"任务成功率 90%"或"P95 3ms"等单个数字就断言系统好坏,不追问它是怎么测的、覆盖了什么场景。
- **为什么危险**:成功率可能只测了正常用例、P95 可能没覆盖长尾高延迟、准确率可能不含正确性校验。单项指标会掩盖真实短板,甚至会把你引向错误优化方向。
- **破解抓手**:评估一律"**多指标 + 分场景**":准确率要配工具调用准确率、在线正确性、成本;性能要用均值+分位数+长尾;且指标必须带清晰的定义与测量口径(详见阶段五第4讲、阶段七第3讲)。
### 陷阱 10:「用旧框架的『正确姿势』绑死新工具」
- **表现**:学会某个框架(LangChain/LangGraph/CrewAI)后,遇到任何问题都想着"这是不是某某框架缺个组件",而不是从"问题本身需要什么"出发选工具。
- **为什么危险**:工具是手段不是目标。被单一框架绑定会引入不必要的抽象、被困在生态的坑里(版本炸裂、API 变更),并错过更简单直接的原生写法。
- **破解抓手**:遇到问题先自问"**给不给我框架,这个问题怎么解**",再决定要不要用框架。手写与框架的边界(见阶段三)应以"可维护性与成本"为准,而不是"我会哪个框架"。
---
## 三、一页清单速查
| # | 陷阱(一句话) | 一句破解 |
|-|-|-|
| 1 | LLM 当确定性函数 | 抽取式确定性 + 生成式弹性,可靠出口用 Schema+重试兜底 |
| 2 | Web 分层思维套 Agent | 进程内工具为主,跨进程只留给强隔离 |
| 3 | 静态数据集思维评估 Agent | 离线基准筛 + 轨迹级/在线双层验证 |
| 4 | 组件数量当能力 | 少而精准的工具 + 可靠调用约定,复杂度是负债 |
| 5 | 追逐论文忽略工程收敛 | 朴素范式跑通 + 证明瓶颈再升级 |
| 6 | 上下文越大越好 | 把上下文当受限资源,按推理必要性裁剪 |
| 7 | 相信模型自觉 | 只读兜底 + 执行层鉴权 + 高危人工审批 |
| 8 | 演示能跑当产品能交付 | 用工程化清单验"异常下仍能完成" |
| 9 | 只看单项指标 | 多指标 + 分场景,指标必带口径 |
| 10 | 被单一框架绑死 | 先问"无框架怎么解",再决定要不要框架 |
---
## 四、怎么用这份清单
- 每人按自己的背景重点看对应的"来源型陷阱",其余做普查。
- 触发"要上新技术/要做出判断"时,回到"一页清单"问自己是不是踩了某条。
- 面试与复盘前重读一遍:能精准说出"这类陷阱在什么场合会害人",本身就是加分的专业判断力。