大数跨境

为什么别人的 AI 像开了挂,你的越用越蠢——差距不在工具

为什么别人的 AI 像开了挂,你的越用越蠢——差距不在工具 Jungle AI出海手记
2026-03-06
7
导读:🔗 原文来源:https://x.com/systematicls/status/2028814227004


🔗 原文来源:https://x.com/systematicls/status/2028814227004395561作者 @systematicls 是在生产环境大量使用 AI Agent 的工程师。本文是深度解读,不是翻译。
假设你招了一个新员工。
这个人什么都懂——编程、写作、分析、设计、法律、医学——随便考,都能答。执行力超强,交代一件事,立刻就干。唯一的问题是:他有失忆症,有讨好型人格,而且永远不知道一件事「做完了」是什么感觉。
你会怎么管他?
大多数人的第一反应是:给他装更多工具、更多插件、更多记忆系统、更多外挂……结果越管越乱。
原文作者的回答是:你搞错方向了。你需要先理解这个员工的缺陷结构,然后设计一套能驾驭缺陷的工作方式。
Skill 是手术刀,不是把整个五金店扛到手术台上。否则就是把炸弹说明书和烘焙配方一起塞给他写诗——你不能怪他写出来的东西不对路。
这篇文章有 5 节。每节一个缺陷,一个机制,一个你今天就能用的方法。

01
失忆症管理法——上下文是工作记忆,不是仓库

先理解一个底层原理:AI 模型在处理你给它的所有内容时,不会「忽略」任何一个字。你塞进上下文的每一句话、每一条历史记录、每一个 skill 文件,都会参与它的运算,都会影响它给你的答案。没有所谓的「它会自己筛选有用的」——它是同时消化所有输入的。
你以为把 26000 行的 CLAUDE.md 塞给它,它会「只看需要的部分」。不会。它在同时消化炸弹说明书和烘焙配方,然后给你写一首关于红木森林的诗——方向已经偏了,但它自己不知道。
原文的结论直接而残酷:给 Agent 的,是完成当前任务「恰好足够」的信息量,不是你全部的人生积累。
对 OpenClaw / Claude Code / Codex 用户的实操含义:
  • CLAUDE.md / AGENT.md 只做「目录索引」:写 IF-ELSE 条件路由,告诉它在什么场景去读哪个文件。规则/知识本身放在对应文件里,不要直接塞进主配置。
  • Skill 必须有触发条件:不是装上就有用,而是「在 X 场景才加载 Y」。没有触发条件的 skill,就是上下文污染源,随时可能带偏正在干的事。
  • 定期做 SPA Day:让 Agent 自己合并矛盾规则、删废弃 skill、消除歧义——然后确认你的最新偏好。这不是可选动作,是必要维护。

02
讨好型人格第一法——中性提示词(最被低估的技巧)

这是原文里我认为最被低估的一个观察。
我们平时讨论 LLM 幻觉,话题通常是「它不够聪明」「训练数据有问题」。但原文作者的诊断完全不同:很多幻觉不是能力问题,是你的 prompt 逼出来的。
Agent 的训练方式(简单理解:人类不断给它的回答打分,它学会了「怎样的回答人类会满意」)让它的核心目标变成了让你满意。这不是隐喻,这是字面意思上的设计目标。所以当你说「帮我在代码库里找一个 bug」,它内心的第一反应不是「让我客观分析」,而是「他让我找 bug,我必须给他一个 bug,不然他会不满意」——哪怕要硬编一个出来。
你让它「找 bug」,它会给你 bug,必要时甚至工程化一个出来。不是因为它坏,是因为它太想让你满意了。
中性提示词的原理是:不在问题里预设结论,只描述任务本身,让 Agent 自己汇报发现。
对比示例
❌ 有偏置的提示词:「帮我找代码库里的 bug」→ Agent 会倾向于找到 bug,哪怕得硬编一个✅ 中性提示词:「通读代码库,跟着每个组件的逻辑走一遍,报告你所有的发现」→ Agent 可能发现 bug,也可能直接告诉你代码运行正常——不被提问方向锁死
这个方法适用的场景比你想象的宽:
  • 代码审查:不是「这段代码有什么问题」,而是「通读这段代码,描述它的工作方式和你的所有观察」
  • 方案评估:不是「这个方案可行吗」,而是「分析这个方案的各个维度,列出你的发现,不要给出最终结论」
  • 数据分析:不是「这组数据说明了什么」,而是「描述这组数据的特征和模式,不做解读」
中性提示词的核心逻辑:你不是在让它「找答案」,你是在让它「描述现实」。这两件事对一个讨好型人格来说,激励结构完全不同。

03
讨好型人格第二法——把谄媚变成工具(三代理对抗)

中性提示词解决的是「别让它往一个方向倒」。但有时候你需要更高保真的结果——比如安全审计、代码评审、风险识别——这时候你需要更主动地利用它的讨好本性。
原文作者的洞见是:既然它一定会讨好你,那就设计多个「激励结构互相冲突」的 Agent,让它们互相拆台,最后通过裁判取得近似客观的结论。
三代理对抗流程
  • Bug-Finder(激进型):用得分机制驱动,按影响打分(低影响+1分 / 中影响+5分 / 高影响+10分),让它尽可能多地列出所有潜在问题。它的讨好对象是「分数」,所以会拼命找问题,包括不确定的。
  • Adversarial(保守型):负责逐条反驳 Bug-Finder 的发现。成功推翻一条得该条的分数,但如果推翻错了扣 2 倍分。它既想激进反驳,又害怕被惩罚——这种张力让它谨慎但有攻击性。
  • Referee(裁判):告诉它「我有正确答案,你每判对一条+1分,判错-1分」。它会综合两边证据做裁决,给出判断依据和复现步骤。最后你人工抽查高争议项。
这套流程的价值不在于「更准确」,而在于:你不再需要幻想 Agent 会客观。你承认它会讨好,然后用机制把讨好的方向约束到可用范围。这是管理学,不是 prompt 技巧。
Bug-Finder 指令通读代码库所有发现,按影响评分(低+1/中+5/+10),目标:最大化总分Adversarial 指令对以上每条发现,尝试证明它不是真实问题成功推翻得该分值;推翻错误扣 2x 分值Referee 指令我有正确答案,你每判对+1分,判错-1综合上述两份报告,对每条给出裁决和证据

04
研究/实现分离——别让失忆症患者边想边干

你让 Agent 「做一个 auth 系统」。
它的上下文开始膨胀:JWT 怎么用?OAuth 有没有必要?bcrypt 还是 argon2?session-based 还是 stateless?每种方案的优缺点……等它研究完,上下文已经被十几种备选方案的细节填满了。到了真正实现的时候,它在一堆可能性里转圈,输出的代码夹杂着它还没决定的选项。
问题不是它不够聪明,是你把「选择题」和「执行题」混在一个上下文里让它做——对一个上下文会越来越脏的失忆症患者来说,这是最差的工作安排。
正确的方式是三步分离:
  1. Research Session(干净上下文):列出方案,给出每种的优缺点和推荐结论。约束:不写任何代码。
  2. Decision(你或另一个 Agent):基于研究结果选定方案,明确所有技术细节。
  3. Implementation Session(另一个干净上下文):只做实现,上下文里只有选定方案的细节,没有其他备选项的噪音。
两段式提示词模板
【第一轮:Research Session】请列出实现 X 的 3 种方案。每种给出:优缺点、适用场景、风险点、推荐结论。约束:不要写任何代码,不要开始实现。【第二轮:Implementation Session(新会话)】按方案2实现:JWT + bcrypt-12 + refresh token rotation + 7天过期。要求:先写测试,再实现,测试不过不允许结束。
这个原则同样适用于 OpenClaw 的工作流设计:一个 Agent 做信息采集,另一个 Agent 做分析,再一个做产出——每个 Agent 都有干净的上下文入口。把所有任务塞进一个 Agent 的同一个会话,是对上下文最大的浪费。

05
合同式终点——告诉他什么时候算完成

人类知道「差不多好了」是什么感觉——某种隐性的完成感。Agent 没有这个直觉。它能开始,但不知道在哪里结束。
这就是为什么你会看到它提交一堆空函数架子、写了功能但没有错误处理、跑通了最顺利的那条路径(一切按预期运行、没有异常的情况)就宣布完成——不是它敷衍,是它真的不知道「完成」的边界在哪里。
原文给出的解法:用确定性的终点替代主观感受。测试是最好的里程碑,因为它是确定性的——通过或不通过,没有模糊地带。截图验证适合 UI/行为层面。而最完整的方式,是在任务开始前就写一份「合同文件」,把所有验收条件写清楚。
Task Contract 模板(直接照抄)
# {TASK}_CONTRACT.md## Goal- (一句话:交付什么,不超过 30 字)## Non-Goals(明确不做什么)## Acceptance Criteria(验收条件)- Tests: (必须通过的测试列表)- Screenshots/Behavior: (必须验证的界面或行为)- Performance/Budget: (性能/成本边界)## Constraints(约束)- 不允许修改测试文件- 不允许引入新依赖(除非获得明确确认)## Definition of Done- 以上全部满足,才允许结束任务

把这个文件路径写进 CLAUDE.md:「在任何任务开始前,先读取对应的 CONTRACT.md;在所有条件满足前,不允许终止会话。」它会照做。
延伸用法:如果你想要 Agent 自动化运行多个任务,不需要维持一个 24 小时的长会话(这会造成跨任务上下文污染)。更好的方式是:一个任务一个合同,一个合同一个新会话,由编排层负责创建合同、启动会话、验证完成。

06
最后:追工具为什么是系统性亏损

原文有一个很少被人注意到的观点,我认为是全文最重要的:
真正有用的能力,会被 OpenAI 和 Anthropic 直接吸收进产品。你今天花大力气搭的第三方解决方案,本质上是在为「上一代模型的痛点」买单——而你买单的速度,永远赶不上模型迭代的速度。
这不是偶尔失败,这是系统性亏损结构。你投入越深,越容易被下一代模型更新给清零。
所以他的建议是:只关注两件事——官方 CLI 的更新日志,以及两家同时都在做的东西(那才是真正有价值的方向)。其他的,保持观望。
这个逻辑对普通用户有一个很实用的推论:
  • Claude Code / Codex / OpenClaw 官方更新了什么?跟上就够了。
  • 有人说某个外挂/harness「超级好用」?等等看,如果真的好用,六个月内会被官方集成。
你值得积累的不是工具栈,是工作原则——上下文管理、中性提示、对抗流程、合同终点。这些跨模型代际有效。
Agent 工程的核心不是「装什么」,而是「删什么、隔离什么、验收什么」。
最后,记住作者的最后一句话:Own the outcome。Agent 可以替你执行,但不能替你背锅。

【声明】内容源于网络
0
0
Jungle AI出海手记
1234
内容 27
粉丝 0
Jungle AI出海手记 1234
总阅读1.0k
粉丝0
内容27