使用目标模式
目标(goal)让 Kimi Code 在多个轮次中持续朝一个明确结果工作——不同于普通提示词只说"下一步做什么",目标说的是"最终要达成什么状态"。当任务有清晰终点,但下一步取决于 Agent 工作中发现的信息时,使用 /goal,例如:修复一批失败的测试、追踪并修复构建失败的根因。
开始目标
在 /goal 命令后写目标:
代码块
Plain Text
/goal 修复项目的 GitHub 的 issues 中列出的 bug
Kimi Code 会保存该目标,把它作为下一条用户消息发送,并进入目标模式。每个轮次结束后,它会检查目标是「完成(complete)」、「阻塞(blocked)」、「暂停(paused)」,还是仍然「活跃(active)」。
好的目标应当说清楚具体的完成条件:
代码块
Plain Text
/goal 修复所有标签关于结算系统的回退的漏洞,为每个修复新增或更新测试,最后运行所有有关结算的测试套件
避免只写宽泛方向:
代码块
Plain Text
/goal 找出这个代码库中的所有 bug
这个目标没有说明什么算成功、要检查什么,也没有说明其他的停止条件。Agent 可能会因为一些问题立刻进入「阻塞(blocked)」状态,也可能工作得比预期更久。
何时使用目标模式
对有明确终点和可验证证据的工作使用目标模式。
代码块
Plain Text
/goal 修复所有失败的结算测试,并确保可以成功运行有关结算的测试套件
Kimi Code 可以检查测试输出、修改文件、重新运行检查,并判断什么时候可以标记为「完成(complete)」状态。
对可能需要多个轮次调查和修复的任务使用目标模式。
代码块
Plain Text
/goal 找出发行版构建失败的原因,修复最本质的原因,并确认构建通过
目标描述的是结果,因此当第一条线索不是根因时,Agent 也能调整方向。
对无需再次提示、应按顺序持续推进的工作使用目标模式。
代码块
Plain Text
当你已经知道完成前必须存在的检查或产物时,这种写法很有用。
何时不要使用目标模式
不要把目标模式用于宽泛主题或开放式讨论。
反例
代码块
Plain Text
/goal 你好!
对于并不构成目标的内容,Agent 会立即把该目标标记为「完成(complete)」状态。
不要把目标模式用于已知不可能或无法解决的任务。
反例
代码块
Plain Text
/goal 证明 1 + 1 = 3。
如果目标看起来不可能或无法解决,Agent 会把它标记为「阻塞(blocked)」状态。
不要使用含糊或过于复杂的目标。
反例
代码块
Plain Text
/goal 用单个 HTML 文件创建一个电子游戏。
Agent 有可能会完成该目标,但也可能在等待很久之后产出出人意料的结果。
管理生命周期
使用同一组命令查看或控制当前目标:
#IIwmwRgdEOaA text { white-space: pre; }#IIwmwRgdEOaA .fb0 { stroke: var(--N900-FG, 0.15); }#IIwmwRgdEOaA .fb0 {stroke: rgba(31,35,41, 0.15)}#IIwmwRgdEOaA .fx0 { stroke-miterlimit: 10; }#IIwmwRgdEOaA .fx0 {stroke-miterlimit: 10}#IIwmwRgdEOaA .fa1 { fill: rgb(187, 191, 196); }#IIwmwRgdEOaA .fa1 {fill: rgb(187, 191, 196)}#IIwmwRgdEOaA .fx1 { font: 400 12px MonospacedNumber, LarkHackSafariFont, LarkEmojiFont, LarkChineseQuote, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Tahoma, "PingFang SC", "Microsoft Yahei", Arial, "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }#IIwmwRgdEOaA .fx1 {font-style: normal}#IIwmwRgdEOaA .fx2 { text-anchor: middle; }#IIwmwRgdEOaA .fx2 {text-anchor: middle}#IIwmwRgdEOaA .fx3 { dominant-baseline: central; }#IIwmwRgdEOaA .fx3 {dominant-baseline: central}#IIwmwRgdEOaA .fx4 { stroke: none; }#IIwmwRgdEOaA .fx4 {stroke: none}#IIwmwRgdEOaA .fc0 { fill: var(--text-caption); }#IIwmwRgdEOaA .fc0 {fill: #646a73}#IIwmwRgdEOaA .fa2 { fill: var(--text-link-disabled); }#IIwmwRgdEOaA .fa2 {fill: rgb(187, 191, 196)}#IIwmwRgdEOaA .fb1 { fill: var(--N900-FG, 0.15); }#IIwmwRgdEOaA .fb1 {fill: rgba(31,35,41, 0.15)}#IIwmwRgdEOaA .fa3 { fill: var(--bg-body); }#IIwmwRgdEOaA .fa3 {fill: #fff}AB123456
目标有三种停止方式:
•
完成(complete):目标已完成,Kimi Code 会清除该目标,Agent 会总结它如何完成了这项工作
•
暂停(paused):你暂停了它、中断了当前轮次、恢复了原本有目标的会话,或遇到模型、供应商或运行时错误
•
阻塞(blocked):Kimi Code 需要输入、无法按当前表述完成目标,或达到预算上限。当 Agent 将目标标记为阻塞时,它会写一条简短消息说明原因。
停止条件需要写在目标本身里。/goal 没有单独用于描述停止限制的语法。
在 Web 界面中管理目标
Web 界面会在对话下方显示当前目标条。点击目标条可以展开或收起详细信息。配置 token 预算时,标题栏会显示预算进度;没有配置 token 预算的目标不会显示进度条。
使用目标条中的操作可以暂停进行中的目标、继续已暂停或已阻塞的目标,或取消当前目标。点击继续会启动下一轮目标工作,Agent 会继续处理该目标。取消操作需要确认,因为取消后无法继续。
安排后续目标
Agent 有时会很快完成一个目标。如果一次只能安排一个目标,用户可能会失望。很多人已经知道接下来想完成哪些后续目标,但原来需要等当前目标完成后,打开 TUI,再手动提交下一个目标。
如果已经准备好更多工作,但不想中断当前目标,使用 /goal next:
代码块
Plain Text
/goal next 测试通过后更新发布说明
当前目标运行期间,安排的后续目标对 Agent 不可见。当前目标完成后,Kimi Code 会用与 /goal
如果当前没有目标,/goal next
交互式管理后续目标:
代码块
Plain Text
/goal next manage
在管理器中,用 ↑ / ↓ 浏览,Space 选择一个目标以便移动,选中后用 ↑ / ↓ 调整顺序,E 编辑,D 删除,Esc 取消。编辑时,用 Shift-Enter 或 Ctrl-J 添加新行,用 Enter 保存。
如果当前目标被暂停、取消或阻塞,Kimi Code 不会开始下一个后续目标。当目标进入「阻塞(blocked)」状态且存在后续目标时,TUI 会提醒你,这些后续目标会等待当前目标完成。
谨慎使用目标模式
目标模式适合能通过文件、测试、命令输出、生成产物或明确报告验证的工作。对于一次性修改或只需要一个答案的问题,普通提示词通常更合适。
在 manual 权限模式下,目标工作可能会停下来等待工具调用审批。无人值守工作应选择与代码库风险和可运行命令相匹配的权限模式。
在非交互式 prompt 模式中,只支持创建目标:
代码块
Plain Text
kimi -p "/goal 修复 checkout 测试失败"
Prompt 模式在目标完成时以退出码 0 退出,在目标阻塞时以 3 退出,在目标暂停时以 6 退出。/goal next 和其它管理命令都是 TUI 控制命令。