Skip to content

使用目标模式

目标(goal)让 Kimi Code 在多个轮次中持续朝一个明确结果工作——不同于普通提示词只说"下一步做什么",目标说的是"最终要达成什么状态"。当任务有清晰终点,但下一步取决于 Agent 工作中发现的信息时,使用 /goal,例如:修复一批失败的测试、追踪并修复构建失败的根因。

说明

/goal 仍是实验功能,需要在启动 kimi 时设置相应的环境变量:

sh
KIMI_CODE_EXPERIMENTAL_GOAL_COMMAND=1 kimi

开始目标

/goal 命令后写目标:

sh
/goal 修复项目的 GitHub issues 中列出的 bug

Kimi Code 会保存该目标,把它作为下一条用户消息发送,并进入目标模式。每个轮次结束后,它会检查目标是「完成(complete)」、「阻塞(blocked)」、「暂停(paused)」,还是仍然「活跃(active)」。

好的目标应当说清楚具体的完成条件:

sh
/goal 修复所有标签关于结算系统的回退的漏洞,为每个修复新增或更新测试,最后运行所有有关结算的测试套件

避免只写宽泛方向:

sh
/goal 找出这个代码库中的所有 bug

这个目标没有说明什么算成功、要检查什么,也没有说明其他的停止条件。Agent 可能会因为一些问题立刻进入「阻塞(blocked)」状态,也可能工作得比预期更久。

何时使用目标模式

  1. 对有明确终点和可验证证据的工作使用目标模式。

    sh
    /goal 修复所有失败的结算测试,并确保可以成功运行有关结算的测试套件

    Kimi Code 可以检查测试输出、修改文件、重新运行检查,并判断什么时候可以标记为「完成(complete)」状态。

  2. 对可能需要多个轮次调查和修复的任务使用目标模式。

    sh
    /goal 找出发行版构建失败的原因,修复最本质的原因,并确认构建通过

    目标描述的是结果,因此当第一条线索不是根因时,Agent 也能调整方向。

  3. 对无需再次提示、应按顺序持续推进的工作使用目标模式。

    sh
    /goal 更新功能实现,补充文档,运行测试,并总结变更文件

    当你已经知道完成前必须存在的检查或产物时,这种写法很有用。

何时不要使用目标模式

  1. 不要把目标模式用于宽泛主题或开放式讨论。

    反例

    sh
    /goal 你好!

    对于并不构成目标的内容,Agent 会立即把该目标标记为「完成(complete)」状态。

  2. 不要把目标模式用于已知不可能或无法解决的任务。

    反例

    sh
    /goal 证明 1 + 1 = 3。

    如果目标看起来不可能或无法解决,Agent 会把它标记为「阻塞(blocked)」状态。

  3. 不要使用含糊或过于复杂的目标。

    反例

    sh
    /goal 用单个 HTML 文件创建一个电子游戏。

    Agent 有可能会完成该目标,但也可能在等待很久之后产出出人意料的结果。

管理生命周期

使用同一组命令查看或控制当前目标:

命令作用
/goal/goal status显示当前目标及其进展
/goal pause暂停当前的目标,但不删除
/goal resume继续被暂停或被阻塞的目标
/goal cancel移除当前目标
/goal replace <objective>用新目标替换当前目标

目标有三种停止方式:

  • 完成(complete:目标已完成,Kimi Code 会清除该目标
  • 暂停(paused:你暂停了它、中断了当前轮次,或恢复了原本有目标的会话
  • 阻塞(blocked:Kimi Code 需要输入、无法按当前表述完成目标、达到预算上限,或遇到运行时失败

停止条件需要写在目标本身里。/goal 没有单独用于描述停止限制的语法。

安排后续目标

Agent 有时会很快完成一个目标。如果一次只能安排一个目标,用户可能会失望。很多人已经知道接下来想完成哪些后续目标,但原来需要等当前目标完成后,打开 TUI,再手动提交下一个目标。

如果已经准备好更多工作,但不想中断当前目标,使用 /goal next

sh
/goal next 测试通过后更新发布说明

当前目标运行期间,安排的后续目标对 Agent 不可见。当前目标完成后,Kimi Code 会用与 /goal <objective> 相同的效果开始第一个后续目标。

如果当前没有目标,/goal next <objective> 会立即开始这个目标。它的效果与 /goal <objective> 相同,并会在目标开始前显示一条状态消息。

交互式管理后续目标:

sh
/goal next manage

在管理器中,用 / 浏览,Space 选择一个目标以便移动,选中后用 / 调整顺序,E 编辑,D 删除,Esc 取消。编辑时,用 Shift-EnterCtrl-J 添加新行,用 Enter 保存。

如果当前目标被暂停、取消或阻塞,Kimi Code 不会开始下一个后续目标。当目标进入「阻塞(blocked)」状态且存在后续目标时,TUI 会提醒你,这些后续目标会等待当前目标完成。

谨慎使用目标模式

目标模式适合能通过文件、测试、命令输出、生成产物或明确报告验证的工作。对于一次性修改或只需要一个答案的问题,普通提示词通常更合适。

manual 权限模式下,目标工作可能会停下来等待工具调用审批。无人值守工作应选择与代码库风险和可运行命令相匹配的权限模式。

在非交互式 prompt 模式中,只支持创建目标:

sh
KIMI_CODE_EXPERIMENTAL_GOAL_COMMAND=1 kimi -p "/goal 修复 checkout 测试失败"

Prompt 模式在目标完成时以退出码 0 退出,在目标阻塞时以 3 退出,在目标暂停时以 6 退出。/goal next 和其它管理命令都是 TUI 控制命令。