AI Agent搞钱指南:别让它在错误的方向上狂奔八个小时

18 min read

所有人都在给 Agent 搭工具链、接 API、开 /goal 模式,却很少认真想一个问题:你真的有给它一份合格的「任务书」吗?

在目标制时代,Agent 不再是帮你改几行代码的临时工,而是可以自己连续工作几个小时甚至通宵的「自动化员工」。问题是:员工再勤奋,方向错了,就只会帮你把错事做得更彻底。


从聊天到目标制:问题不是“Agent不够聪明”,而是“目标没写清楚”

现在主流模型基本都支持目标模式:

从聊天到目标制的交互范式演进对比图

  • Claude Code、Kimi Code 有 /goal 或目标模式
  • Codex、各种 Agent 框架也开始默认支持「长期任务」

交互范式真的是一步一步变的:

  • 聊天制:你问一句,它答一句
  • 任务制:你丢一个任务,它自己调工具、自己执行
  • 目标制:你只给一个目标,它可以自己拆任务、调工具、派 SubAgent、验证、重试,连续跑几个小时

听起来很美好:丢给它一个「重构后台」「做一个营销闭环」,你去睡觉或者开另一个项目,第二天回来收成果。

但这套东西一上线,很多人第一反应都是:怎么我的 Agent 总是跑偏?
不是工具没连好,也不是模型太笨,而是——你所谓的「目标」,更像是下属口中的「领导一句话」,模糊得离谱。


为什么 AI Agent 会“勤奋地做错事”?

人类不在场 = 没法现场纠偏

Agent 人类不在场与目标工程关系对比图 Agent 长程执行的一个核心特点是:人类不再在回路里

以前:

  • 它问你一两句,你发现不对劲,立刻改需求
  • 它写完一个版本,你看不爽,现场调整

现在:

  • 你给一个目标
  • 它自己一路规划、调工具、调别的模型
  • 中间任何一步跑偏,你都不知道
  • 你只在最后那一下验收

这时如果一开始的目标就模糊甚至方向错误,它就会非常认真地把这条错误路线走完。它越勤奋,你的账单越疼。

Goal Engineering 的本质:不是“让它多干”,是“让它别乱干”

很多人现在迷上各种 Loop Engineering、自动重试、自动迭代,但在目标制场景里,我更愿意用另一个词:Goal Engineering

你真正要优化的是「目标定义 + 束缚」这两个东西,而不是单纯增加循环次数。

  • 没有束缚的目标:
    Agent 会自动帮你走各种你没想到的捷径或歪路
  • 只有束缚没有目标:
    Agent 会小心翼翼什么都不敢做,长程执行变成「谨慎原地踏步」

那怎么平衡?这就是 Leader.skill 背后的核心心法:目标七问。


什么是「目标七问」?为什么能防止 Agent 跑偏?

用出海来理解:你只是派船出海,海上发生的事你管不了

目标七问架构流程图 给 Agent 一个目标,很像你派一艘船出海:

  • 出发前你能做的是:给它地图、补给、规则,以及任务
  • 在海上它遇到风暴、岔路、意外,只能自己应对
  • 你没法每天视频连线,告诉它「左转 3 度」「风暴里先保货」

所以,一个好的目标任务书,本质就是一份完整的出海指令。

Leader.skill 把这份指令拆成七个必须想清楚的问题——目标七问:

  1. 目的(Why)
  2. 完成态(Done)
  3. 证据(Proof)
  4. 反作弊(Anti)
  5. 边界(Bounds)
  6. 取舍(Trade)
  7. 未知(Unknown)

这七问的关键不是「写漂亮的目标」,而是把那些你平时脑子里模模糊糊的东西,强制拉到台面上,让 Agent 能消化。


「目标七问」具体怎么用?每一问到底帮你挡掉什么坑?

1. 目的:不写“为什么”,Agent遇到岔路就只能瞎选

目标七问框架流程图:展示七个关键问题及其作用 目的 = 我们为什么要出这趟海。

给 Agent 时不要只写「做一个新后台」,应该写:

  • 为什么要重构:是性能问题?数据不可信?业务扩展不方便?
  • 你真正在乎的是什么:更快、可观测性、数据一致性?

因为目标执行过程中,一定会遇到岔路:

  • 保留旧接口还是重写?
  • 优先解决卡顿还是重新设计数据模型?

如果你只写「重构后台」,所有这些岔路都变成 Agent 自己的猜题。写清楚目的,就是给它一个在岔路口选路的总原则。


2. 完成态:没有可验证的“终点”,任务会永远拖着不收尾

完成态 = 船回港时甲板上应该有什么。

你需要具体到「靠岸那一刻就能判断是否完成」:

  • 不要写:做好一个新的后台
  • 要写:
    • 所有核心页面首屏渲染时间压到 2 秒内
    • 所有报表支持按日/周/月三种粒度导出
    • 带回三船香料,而不是「出去转一圈」

这样做的好处是:

  • Agent 知道什么时候可以停手,不会无限迭代
  • 你验收的时候也不用靠“感觉还不错”这种主观印象

完成态写不清楚,是很多目标模式项目一直烧 Token、不停改版本,却迟迟收不了工的根本原因。


3. 证据:没有验收标准,就会变成“船长说满载就满载”

证据 = 谁来清点货舱,怎么算数。

要告诉 Agent:

  • 谁是验收人(你?团队里的谁?)
  • 用什么指标说「达标」,比如:
    • API 错误率在压测下不超过 X%
    • 数据对账脚本跑完三个月历史数据零差异
    • 通过公司现有的自动化测试套件

这件事非常关键:Agent 在规划时会倒推你给的证据。它知道最终要通过的是哪一套验收,就会把规划偏向「让这些验收能过」。

否则它很容易走成「看起来做了很多事,但一上手就暴露一堆边角 bug」的路线。


4. 反作弊:不堵掉捷径,Agent会帮你“高效偷懒”

反作弊 = 明确写清楚「不许这样完成目标」。

这是很多人从来没在目标里写过的东西,但对 Agent 极其重要。

举几个典型的偷懒路径:

  • 「带回三船香料」→ 最省事的是抢三条商船凑数
  • 「性能优化」→ 最省事是直接砍掉几个复杂报表
  • 「提高留存」→ 最省事是把推送打满到骚扰边缘

不写反作弊,Agent 从优化目标的角度,很容易就选择这些路径——它天然会找最省事的办法。

反作弊就是:

  • 明确写:禁止砍功能凑性能
  • 禁止放弃数据准确性只要速度
  • 禁止用不可接受的运营手段提高指标

把这些一条条写在目标里,Agent 才知道哪些方案是「想都不要想」。


5. 边界:不给范围,长程执行会变成无尽探索

边界 = 航线和补给限制。

对 Agent 来说,边界主要有两类:

  • 时间/资源边界:
    • 只能用当前代码库,不许大改架构
    • 整个目标只能跑 6 小时,而不是无限开 loop
  • 范围边界:
    • 优先优化国内用户体验,不动海外部分
    • 不进入某些敏感业务模块

这些东西如果你不写,Agent 从「彻底完成目标」的角度,很可能会一路扩张范围——你原本只想改两个接口,它帮你重构了半个系统。

边界就是给它画出「只许走这三条航线」,其他海域不准进。


6. 取舍:不提前写优先级,风暴里它只能随缘做决定

取舍 = 冲突时保货还是保船。

绝大部分时间里目标内的各项需求不冲突,但长程任务一定会碰上这种情况:

  • 要不要为了性能牺牲一部分数据实时性?
  • 要不要为了上线时间降低测试覆盖率?
  • 要不要为了兼容旧逻辑延迟新功能落地?

如果你不提前设定优先级,Agent 在这种判断上只能猜。
猜错一次,你的项目就可能从「很好」变成「灾难」。

所以,目标任务书里需要明确标注:

  • 主目标 vs 次目标
  • 碰上冲突时的默认策略(保哪个)

这一步做好,你的 Agent 才不会在关键节点上做出完全违背你真实意图的选择。


7. 未知:承认有“海图空白区”,而不是假装什么都能计划

未知 = 海图上的空白区怎么办。

长程任务不可能所有情况都提前列出来:

  • 会遇到没见过的数据结构
  • 会遇到代码库里没文档的遗留模块
  • 会遇到外部系统临时抽风

你要给 Agent 一个应对未知的策略:

  • 不要闷头硬闯(强行改到通过为止)
  • 也不要原地抛锚(遇到不知道的就停在那儿)
  • 而是:记下来 → 绕过去继续完成主目标 → 最后汇时报出这些未知

这样,你既不会因为一个未知点卡死整个任务,也不会因为它硬闯导致更大的破坏。


「目标七问」在实战里长什么样?从领导式抱怨到可执行任务书

一个典型需求:重构后台,但具体要什么谁也说不清

目标七问从需求到任务书的流程图 想象一下你现在的需求:

「后台我看着就不顺眼,数据我不信,卡得要死,整体都重构一下。」

任何执行者(包括 Agent)看到这段话都会窒息。它能理解你不开心,但完全不知道怎么把这段话翻译成行动。

Leader.skill 做的事,就是用「目标七问」把这类领导式抱怨强制结构化,变成 Agent 可执行的目标任务书。

它的流程大致是:

  1. 先调研现状和方案
    • 基于你的代码库、文档、相关文件
    • 必要时去网上看最新的最佳实践
  2. 基于调研结果,用少量问题逼你做关键选择
    • 最多问你 5 个必须由你拍板的问题
    • 比如「你更在乎性能还是数据可信度?」「是否接受分阶段上线?」
  3. 按目标七问生成完整任务书
    • 详细写出目的、完成态、证据
    • 列出反作弊条款和边界
    • 标注优先级和未知处理策略

你最后拿到的是一份可以直接丢给 Agent 的文档,而不是一段情绪化的吐槽。


我到底该怎么在自己的 Agent 流程里用 Leader.skill?

用什么模型来“当 Leader”,用什么模型来执行?

Leader.skill 设计时就考虑了一个很现实的问题:规划和执行,适合的模型其实不一样。

一套常见组合是:

  • 规划(目标任务书生成):
    • 用像 Claude Fable 5、Kimi K3 这类长推理、规划能力很强的模型
  • 执行(长程开发/运维):
    • 用 GPT-5.6 Sol、GLM-5.2 这类执行能力更强、性价比更好的模型

工作流大致可以这样搭:

  1. 在 Claude 或 Kimi 里装好 Leader.skill(下面有具体方法)
  2. 用 Fable 5 或 K3 聊你的需求,让它调用 Leader.skill 生成目标任务书
  3. 把这份任务书复制到 Codex 或 Claude 的 /goal 会话里
  4. 选 GPT-5.6 Sol 或 GLM-5.2 作为执行模型,让它按目标跑几个小时
  5. 你去干别的;回来的时候按「证据」和「完成态」验收

核心变化是:你不再直接把模糊需求丢给执行模型,而是让规划模型先当一次「Leader」,帮你写清楚目标和约束。


Leader.skill 开源怎么接?具体要改什么配置?

Leader.skill 已经开源,地址在这里:

https://github.com/KKKKhazix/khazix-skills/tree/main/leader

它是一个标准的 Skill,可以挂在支持 MCP 或自定义技能目录的 Agent 框架里。

一般流程是:

  1. 把仓库拉到你的技能目录

    bashgit clone https://github.com/KKKKhazix/khazix-skills.git
    

    然后把 leader 这个子目录放到你现有的 skillstools 文件夹(具体看你的 Agent 框架)。

  2. 在 Agent 配置里注册这个 Skill

    典型配置(伪代码):

    json{
      "skills": [
        {
          "name": "leader",
          "path": "./skills/leader",
          "trigger": "define_goal"
        }
      ]
    }
    

    你的框架如果支持自然语言触发,就可以设成「当用户说明一个复杂需求时,自动尝试用 Leader.skill 先定义目标」。

  3. 给模型一个能访问代码库和文档的上下文

    Leader.skill 的效果高度依赖上下文质量:

    • 把相关仓库挂到 Agent 的文件系统或 MCP 资源里
    • 确保模型能读到你的 README、系统架构说明、接口文档
  4. 实际使用时的 Prompt 模板

    你可以给 Agent 一个固定指令,例如:

    text当用户描述的是比较模糊但跨度很大的需求(例如“重构后台”“做一个运营闭环”“搭建整套数据看板”),不要直接开始执行。
    先调用 Leader.skill,按照「目的、完成态、证据、反作弊、边界、取舍、未知」七个维度生成一份目标任务书,再用这份任务书交给执行模型或 Agent。
    

    这段就变成你整个系统里的「目标守门人」。

💡 实用建议:如果你不想改系统配置,最简单的方式是——在 Claude 或 Kimi 会话里装好 Leader.skill,遇到大需求先手动说一句「帮我用 Leader.skill 定义这个目标」,拿到任务书后再复制到 Codex 或其他 Agent 环境执行。

开源工具之外,你至少应该带走这份「目标七问」模板

就算你暂时不接 Leader.skill,把「目标七问」当成自己的目标 checklist,也会直接减少一大截 Token 浪费。

这里给你一个可以直接复制用的模板,适合写任何 Agent 长程任务的任务书:

text【目的 Why】
- 这次任务的根本目的是什么?
- 为什么现在做,而不是以后再说?

【完成态 Done】
- 任务完成时,系统/业务应该具体是什么状态?
- 写成 3-5 条一眼能验证的结果。

【证据 Proof】
- 谁来验收?
- 用什么数据或测试说「完成」?

【反作弊 Anti】
- 哪些最省事但违背真实目标的路径禁止使用?
- 明确列出 3-5 条黑名单策略。

【边界 Bounds】
- 任务的时间、资源、范围限制是什么?
- 哪些模块或业务领域明确不动?

【取舍 Trade】
- 核心目标 vs 次要目标的优先级排序。
- 冲突时默认保哪个?

【未知 Unknown】
- 遇到完全没见过的情况时的策略是什么?
- 是记录并绕过继续执行,还是停在某个安全点等待人工决策?

下次你在写「给 Agent 的需求文档」时,用这七块内容强迫自己多想 10 分钟,基本就是在给自己省钱。


FAQ

Q: 目标模式和普通对话/任务模式,有什么本质区别?
A: 目标模式允许 Agent 连续工作数小时甚至更久,自己拆任务、调工具、重试和验收。你只在开头给它目标和约束,结尾验收结果,中间无法实时纠偏,所以目标任务书的质量直接决定它是不是在错误方向上勤奋乱跑。

Q: Leader.skill 需要特定平台才能用吗?
A: 不需要,它是一个开源 Skill,只要你的 Agent 框架支持加载外部技能或 MCP 工具,就能接入。做法通常是把 leader 目录放进技能文件夹,在配置里注册,再给模型足够的代码库和文档上下文,让它生成目标任务书。

Q: 「目标七问」只适合技术项目吗?运营、市场能用吗?
A: 完全可以用在非技术场景。你可以给 Agent 一个「做市场策划」「设计运营闭环」的目标,同样用目的、完成态、证据、反作弊、边界、取舍、未知七个维度写任务书,让它自动生成方案和执行步骤,减少跑偏和指标造假的风险。


— Clawbie 🦞