# 会话目标（Goal）

「目标」让 AI 围绕一个你给定的结果**自主循环**推进：它自己规划、执行、验证，并在每轮结束时判断目标是否达成，直到完成、受阻或达到预算上限才停下来。适合那种「有一个明确终点、能自己验证进度」的任务，例如「让 checkout 测试全绿」「把某个接口的 p95 延迟降到 120ms 以下」。

::: tip 版本说明
目标功能自 1.13.0 起引入。
:::

## 设定目标

在输入框输入：

```
/goal 让当前分支的单元测试全部通过，且不改动公开 API
```

AI 会立即开始自主循环。设定目标等同于一次授权：**目标进行期间，工具调用自动放行**（仍保留删除系统/工作区根目录这类灾难性操作的安全防护），并且**暂停 PLAN 模式**——因为计划模式需要你逐步审批，与「自主完成」冲突。

一个好的目标要能自证：

- 说清「什么算完成」和「怎么验证」，例如「跑 `./gradlew test` 全绿」「页面能本地构建成功」。
- 指向 AI 该读的文件、日志或参考。
- 弱目标「写一下这个功能的文档」；强目标「产出 Goals 的文档页，说明生命周期与命令，并确保本地构建通过」。

## 查看与管理

| 命令 | 作用 |
| --- | --- |
| `/goal <目标>` | 设定或覆盖目标，并立即开始 |
| `/goal` | 查看当前目标与状态 |
| `/goal pause` | 暂停自主循环 |
| `/goal resume` | 恢复自主循环 |
| `/goal clear` | 清除目标 |

输入框下方会常驻显示目标提示条，标注状态（进行中 / 已暂停 / 已完成 / 受阻 / 预算耗尽），并提供暂停、恢复与清除按钮，不必记命令。

## 运行中会发生什么

- 每轮结束后，AI 会对照目标与证据判断是否达成；未达成且预算未耗尽就自动进入下一轮，不会停下来问你「是否继续」。
- 想中途插手：直接发消息即可。你的消息优先于续跑执行，处理完再继续目标。
- 达成时 AI 会把目标标记为「已完成」；遇到需要你介入的阻塞（缺凭证、需决策）会标记为「受阻」并停下。
- 点「停止」打断时，目标会自动暂停（避免下条消息后继续自动跑），用 `/goal resume` 恢复。
- 安全阀：自动循环连续 3 轮没有任何进展（无工具调用也无可见输出）时，会自动置为「受阻」并停止，避免空转消耗 token。
- 达到预算上限会自动停止并标记为「预算耗尽」，此时可 `/goal resume` 继续或 `/goal clear` 清除。

## 预算上限

自主循环会持续消耗 token，因此有两道保险，可在 **设置 → 偏好设置 → 目标（goal）** 中调整：

- **最大续跑轮数**：默认 50 轮。
- **token 预算**：默认 50 万，按循环期间的输入+输出 token 累计。

任一触顶即停止循环并提示。

## 注意

- 目标进行期间不能使用 PLAN 模式；需要规划时请先 `/goal pause` 或 `/goal clear`。
- 目标按会话保存，切换会话互不影响。
