Skip to Content
用户指南功能特性Goals

Goals

Goal 让 Qwen Code 跨轮次持续工作,直到满足指定条件。使用 /goal <objective> 设置一个 Goal;每轮结束后,一个独立的验证器会检查对话记录,会话会持续进行,直到目标被验证为完成、验证为受阻、暂停或清除。

命令

命令行为
/goal显示当前 Goal 及其状态。
/goal <objective>创建 Goal,或替换当前活动的 Goal。
/goal set <objective>与上面相同,显式形式。
/goal edit <objective>修改活动 Goal 的措辞,无需从头开始。
/goal pause / resume停止或继续循环,不会丢失 Goal。
/goal clear移除 Goal。
/goal-draft <intent>在设置之前让系统帮你编写目标(见下文)。

创建、编辑或恢复 Goal 需要 trusted workspace(/trust)。无头模式用法请参阅无头模式

Goal 如何判定

验证器不会自行运行命令或读取文件。它只能看到对话记录中已有的内容:

  • 可见的助手输出和工具结果算作证据。目标文本、你的 prompt 和模型的隐藏推理不算。
  • 打印的文本只能证明文本被打印了。关于测试通过、文件已更改或远程已更新的声明需要对话记录中有相应的工具结果。
  • 关于你确认、选择或批准了某事的声明需要来自你的真实消息;验证器会拒绝假设已确认的提案。
  • 当证据缺失时,判定结果为”尚未完成”,而非”已完成”。没有人能提供证据的条件会让循环持续运行,直到限制将其停止。

因此,目标必须让代理产出证据:运行指定的检查并展示决定性的输出。

编写一个好的目标

按以下顺序将这些部分写入目标:

部分要写的内容
Outcome:一句话:完成时什么是成立的。
Done when:编号的二进制检查。至少一项要指定命令及其预期退出码或输出行,并要求粘贴该行。
Must not:不要触碰的文件、不要弱化的测试或阈值、不要采取的不可逆操作(push、delete、publish)。
Budget:何时放弃:“stop as blocked after 20 turns”或时间限制。
On block:受阻时报告什么,以及人类必须做出什么决定。
Context:仅包含代理无法在工作区中找到的事实:分支、环境、早期决策。

保持一个目标,大致不超过 1,200 个字符。/goal set/goal edit 会将换行折叠为空格,因此请对条目编号,而不要依赖换行。

弱目标失败原因更强的目标
make checkout faster没有阈值,没有检查。Outcome: checkout p95 is below 250 ms. Done when: 1) npm run bench:checkout exits 0 and prints p95 < 250 (paste the line); 2) npm test exits 0. Must not: change the benchmark or skip tests. Budget: stop as blocked after 20 turns.
clean up the auth module”Clean”没有可观测的证据。思考什么是可观测的:src/auth 中零 lint 警告、覆盖率阈值、文件数量。
ship the release不可逆,且需要人类决定。缩小为可检查的预发布状态(tag 存在、npm run release:dry-run 退出码为 0),并将”do not publish”写入 Must not
after I confirm the design验证器无法看到从未发生过的确认。将其移至 On block: 作为人类必须做出的决定。

/goal-draft 帮你编写

/goal-draft <what you want done> 是一个内置 skill,可以帮你完成上述工作。它会检查请求是否是一个 Goal,读取工作区以获取真实的测试和 lint 命令而不是猜测,在答案会影响检查或范围时最多询问一轮多选题,按上述格式起草目标,运行自检,并打印一个可以直接运行的 /goal set … 行。它不会自行开始工作,也不会代你设置 Goal。

传入现有目标以使其更严谨:/goal-draft all tests pass and the lint is clean

该 skill 被指示为只读,且只有其非变更工具会被自动批准(get_goalread_fileglobgrep_search)。ask_user_question 故意不被自动批准,因此其问题对话框会在 skill 根据你的答案起草之前显示。与其他内置 skill 一样,名为 goal-draft 的项目或个人 skill 会覆盖它,skills.disabled 可以将其关闭。请参阅 Skills 了解内置 skill 的发现方式。

Last updated on