使用目标模式
目标(goal)让 Kiki 跨多个轮次(turn,Agent 处理一条消息的完整过程)朝一个结果持续推进。提示词说「下一步做什么」,目标说「最终要变成什么样」。当任务有清晰终点、但下一步取决于 Agent 途中发现什么时,用 /goal 进入目标模式,比如修复一批失败的测试,或找出构建失败的根因。
开始目标
在 /goal 命令后写目标:
/goal 修复项目的 GitHub 的 issues 中列出的 bugKiki 会保存该目标,把它作为下一条用户消息发送,并进入目标模式。每个轮次结束后,它会检查目标的四种状态:「完成(complete)」已达成、「阻塞(blocked)」无法继续推进、「暂停(paused)」被你或错误中断,以及仍然进行中的「活跃(active)」。
好的目标应当说清楚具体的完成条件:
/goal 修复所有标签关于结算系统的回退的漏洞,为每个修复新增或更新测试,最后运行所有有关结算的测试套件避免只写宽泛方向:
/goal 找出这个代码库中的所有 bug这样的目标没说什么算成功、要看什么、什么时候停。Agent 可能立刻进入「阻塞(blocked)」,也可能一直做到远超预期。
何时使用目标模式
对有明确终点和可验证证据的工作使用目标模式。
sh/goal 修复所有失败的结算测试,并确保可以成功运行有关结算的测试套件Kiki 可以检查测试输出、修改文件、重新运行检查,并判断什么时候可以标记为「完成(
complete)」状态。对可能需要多个轮次调查和修复的任务使用目标模式。
sh/goal 找出发行版构建失败的原因,修复最本质的原因,并确认构建通过目标描述的是结果,因此当第一条线索不是根因时,Agent 也能调整方向。
对无需再次提示、应按顺序持续推进的工作使用目标模式。
sh/goal 更新功能实现,补充文档,运行测试,并总结变更文件当你已经知道完成前必须存在的检查或产物时,这种写法很有用。
何时不要使用目标模式
不要把目标模式用于宽泛主题或开放式讨论。比如
/goal 你好!并不构成目标——Agent 会立即把它标记为「完成(complete)」。不要把目标模式用于已知不可能或无法解决的任务。如果 Agent 判断目标不可能完成,比如
/goal 证明 1 + 1 = 3。,它会标记为「阻塞(blocked)」并附上原因。不要使用含糊或过于复杂的目标。像
/goal 用单个 HTML 文件创建一个电子游戏。这样边界不清的目标,Agent 有可能完成,但也可能在等待很久之后产出出人意料的结果。
管理生命周期
使用同一组命令查看或控制当前目标:
| 命令 | 作用 |
|---|---|
/goal 或 /goal status | 显示当前目标及其进展 |
/goal pause | 暂停当前的目标,但不删除 |
/goal resume | 继续被暂停或被阻塞的目标 |
/goal cancel | 移除当前目标 |
/goal replace <objective> | 用新目标替换当前目标 |
目标有三种停止方式:
- 完成(
complete):目标已完成,Kiki 会清除该目标,Agent 会总结它如何完成了这项工作 - 暂停(
paused):你暂停了它、中断了当前轮次、恢复了原本有目标的会话,或遇到模型、供应商或运行时错误 - 阻塞(
blocked):Kiki 需要输入、无法按当前表述完成目标,或达到预算上限。当 Agent 将目标标记为阻塞时,它会写一条简短消息说明原因。
把完成条件写进目标。目标默认没有硬预算;如需限制目标轮次、输出 token 或活跃时间,请在 Web 目标编辑器中手动设置预算。在聊天中写下限额不会配置预算。
暂停目标会停止当前目标轮次和自动续轮,保留目标内容。已经启动的后台任务会继续,结果留到你的下一条消息;目标暂停时仍可发送普通消息。重启后重新打开会话,原本活跃的目标会变为暂停;你已暂停或取消的目标不会自动恢复,除非你明确继续或创建目标。
目标阻塞时不会取消它已经启动的工作。为它启动的任务完成后,结果会唤醒 main agent 处理这一次完成;目标本身仍是阻塞状态,要等你恢复。如果你取消了目标,或者预算用尽,同样会把这个结果留到你的下一条消息。
目标仍活跃时,main agent 空闲就会收到每个已完成后台任务的结果,包括还有别的任务在跑的时候。这次送达不等其余任务结束,也不是目标自己的续跑。目标续跑仍按它自己的时机。
在 Web 界面中管理目标
Web 界面会在输入框上方显示当前目标。目标活跃时,旁边始终显示暂停按钮,不必先展开详情。点击目标标题可以查看目标内容、完成条件、追加时机、预算用量和其它操作;编辑或加载详情时仍可暂停。
预算均为可选项,只能由你在此编辑器中设置或清除:
- 目标轮次:此目标累计执行的轮数,不是每轮允许执行的步骤数。
- 输出 token:模型为此目标累计生成的 token 数。
- 活跃时间(秒):目标处于活跃状态的累计时间,包含等待时间,不计暂停时间。
将预算留空可取消该项上限,也可点击清除上限一次取消三项。保存预算不会重置用量,也不会启动下一轮。以前保存的预算仍会显示,可以在这里清除。
点击继续可恢复已暂停或已阻塞的目标。如果预算导致目标阻塞,先提高或清除对应上限并保存,再点击继续,启动下一轮目标工作。点击取消可移除目标。取消操作需要确认,因为取消后无法继续。
安排后续目标
目标很快就完成、而你已经知道下一步要做什么时,可以直接排队,不必干等:
/goal next 测试通过后更新发布说明当前目标运行期间,Agent 看不到排队的目标。当前目标完成后,Kiki 启动第一个排队的目标,效果与你输入 /goal <objective> 完全一致。
如果当前没有目标,/goal next <objective> 会立即开始这个目标。它的效果与 /goal <objective> 相同,并会在目标开始前显示一条状态消息。
交互式管理后续目标:
/goal next manage在管理器中,用 ↑ / ↓ 浏览,Space 选择一个目标以便移动,选中后用 ↑ / ↓ 调整顺序,E 编辑,D 删除,Esc 取消。编辑时,用 Shift-Enter 或 Ctrl-J 添加新行,用 Enter 保存。
如果当前目标被暂停、取消或阻塞,Kiki 不会开始下一个后续目标。当目标进入「阻塞(blocked)」状态且存在后续目标时,TUI 会提醒你,这些后续目标会等待当前目标完成。
谨慎使用目标模式
目标模式适合可验证的工作:文件、测试、命令输出、生成产物,或一份明确的报告。一次性修改或只需要一个答案的问题,用普通提示词更合适。
权限模式决定工具调用是否等你审批。manual(手动)模式下目标工作会停下来等审批;要无人值守运行,就选一个与代码库风险和 Agent 将要执行的命令相匹配的权限模式。
在非交互式 prompt 模式(kiki -p,执行单条指令后直接退出)中,只支持创建目标:
kiki -p "/goal 修复 checkout 测试失败"prompt 模式结束时以退出码(程序返回给调用方的状态数字,方便脚本判断结果)区分结果:0 表示目标完成,3 表示目标阻塞,6 表示目标暂停。/goal next 和其它管理命令都是 TUI 控制命令。