Goal

Goal 用于处理需要多轮推进的长任务。普通对话通常是一问一答;Goal 会把你的目标保存成当前会话里的长期任务锚点,让 Axiomate 在每个回合结束后判断目标是否完成,没完成就继续推进,完成、暂停或达到预算后停止。

适合使用 Goal 的场景:

  • 任务需要连续修改、验证、再修改,而不是一次回复就能完成。
  • 你担心长任务中 AI 忘记最初目标。
  • 你希望中途补充约束,但不想重新开始。
  • 你希望任务状态在 /resume 后还能继续保留。

不适合使用 Goal 的场景:

  • 只是问一个问题或做一个小改动。
  • 目标很模糊,例如“让这个项目变得更好”。
  • 你并不希望 Axiomate 在多个回合里自动继续工作。

设置一个 Goal

在对话里输入:

/goal 实现登录页错误提示优化,并跑通相关测试

Axiomate 会把这段目标写入当前会话状态。后续每个回合完成后,Goal 会判断当前结果是否已经满足目标:

  • 已完成:停止继续,并提示完成。
  • 未完成:在预算允许时继续下一轮。
  • 被暂停或达到预算:保留状态,等待你决定是否恢复或清除。

Goal 不会在你没设置时主动运行;只有使用 /goal <描述> 后才会开始。

常用命令

命令作用
/goal/goal status查看当前 Goal 状态。
/goal <描述>设置并启动一个 Goal。
/goal pause暂停当前 Goal,保留状态。
/goal resume恢复已暂停的 Goal。恢复后通常需要再发送一条普通消息,让下一轮继续。
/goal clear清除当前 Goal。
/goal list列出当前会话相关的 Goal 信息。

用 subgoal 补充条件

如果任务进行到一半,发现需要追加条件,可以使用 /subgoal

/subgoal 必须补充边界 case 测试
/subgoal 完成后说明实际跑过哪些命令

/subgoal 适合补漏,不适合急停。需要暂停时用 /goal pause,需要中断正在运行的回合时可以按 Ctrl+C

常用命令:

命令作用
/subgoal查看当前 Goal 和已有 subgoal。
/subgoal <文本>追加一条条件。
/subgoal remove <n>按编号删除一条条件。
/subgoal clear清空所有 subgoal,不影响主 Goal。

暂停、恢复和预算

Goal 有 turn budget,用来避免一个目标无限运行。默认预算通常足够完成中等任务;如果预算耗尽,Goal 会暂停而不是丢失。

暂停后可以选择:

  • /goal resume 恢复,然后发送普通消息继续。
  • /goal clear 结束当前 Goal。
  • 重新设置更明确的新 Goal。

如果退出 Axiomate,之后用 /resume 找回旧会话时,Goal 状态也会保留。也就是说,Goal 绑定在会话状态上,而不是只存在于当前进程里。

写好 Goal 的建议

好的 Goal 应该明确完成条件。例如:

/goal 实现 fib 函数,并让 fib.test.ts 的所有测试通过

不要写得太泛:

/goal 改善这个项目

更好的做法是写清楚目标、边界和验收方式。Goal 越明确,评审越容易判断什么时候该停。