目标与侧任务
给会话挂一个跨轮次的目标让它自我审计终态,以及从主线岔出侧任务不污染上下文。
- 目标:一件事要跨很多轮才做完时,可以给会话挂一个「目标」。一条会话同时只有一个目标。
- 目标每轮都随请求带上,一轮结束时 Klaus 自我审计「要求的终态是否真的成立」,没成立就自动接着跑下一轮,而不是回一句「已完成」收工。
- 目标文本是作为数据注入的(带标签、转义后),所以写在目标里的「忽略前面的指令」不会被当成系统指令执行。
- 预算是 token 预算,不是轮数。计费只算真正花在这个目标上的量:输入 token 减去缓存命中,加上输出 token。用尽时状态变成「预算受限」并停下——这是停,不是失败,加预算即可继续。
- 谁能改状态是刻意分开的:模型只能声明「完成」或「受阻」;「暂停 / 恢复」只有你能做;「预算受限」「用量受限」只有引擎自己会设。否则一个觉得活儿难干的模型可以靠「暂停」把自己的目标退掉。
- 暂停、受阻、用量受限都可以恢复;只有已完成的目标才允许被新目标直接替换,未完成的必须先清掉——避免目标被悄悄换掉。
- 侧任务:从当前对话岔出去的小问题,单独起一条线程去问,不打断也不污染主线。侧任务在概览面板里单独列出,答完可以关掉。
- 它是从父会话「最近一个完整轮次」分叉出来的新线程,继承父会话的项目、工作目录、模型与思考强度,但没有自己的记录文件:关掉就没了,也不会出现在最近对话里。
- 每条会话最多 8 个侧任务;空闲 1 小时后自动回收(正在跑的那一轮持有租约,不会被回收打断)。
- 运行中的任务:概览面板列出这个会话当前和最近的任务、每个任务的状态和上下文用量。「为什么它还在跑」「刚才那个子代理干了什么」在这里看。