> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qoder.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Goal 驱动

在 Quest 中选择 **Goal** 模式时，你只需描述想要达成的目标，Quest 会自主规划路径、持续迭代并验收结果，适合需要多步骤推进且希望「交付结果」而非「逐步指挥」的任务。

## 核心能力

<CardGroup cols={2}>
  <Card title="目标驱动的自主执行" icon="bullseye">
    * 你描述目标，Quest 自行拆解任务、规划执行路径并持续推进，无需逐步下达指令。
    * Quest 会在每轮执行后评估当前进度，判断目标是否达成，未达成则自动进入下一轮迭代。
  </Card>

  <Card title="灵活的过程控制" icon="sliders">
    * 支持在运行中随时暂停、编辑目标或删除任务，暂停后保留完整上下文与中间产物。
    * 编辑目标后，Quest 从下一轮开始按新目标继续执行，不会重置已有进度。
  </Card>
</CardGroup>

## 适用场景

* **长时间运行的编码任务**：具有明确的成功条件与验证循环，例如提升测试覆盖率、性能调优、跨文件一致性修改等。Quest 自主循环执行并验收，直至目标达成。
* **大型改造与重构**：代码迁移、整库框架升级、批量 API 替换等无法预先穷举每一步的任务。用 Goal 描述期望终态，Quest 自行规划路径、持续迭代推进。

## 如何使用

<Steps>
  <Step title="开启 Goal 模式">
    点击输入框「**+**」按钮，打开 **Goal** 开关；或在输入框中输入 `/goal`。
  </Step>

  <Step title="描述目标">
    用自然语言描述你想达成的最终状态。目标应描述**期望结果**而非具体步骤，Quest 会自行规划执行路径。

    示例：`/goal 将项目测试覆盖率提升至 80%`
  </Step>

  <Step title="自主执行">
    发送目标后，Quest 进入自主执行循环：

    * 输入框上方出现 Goal 进度卡片，显示当前目标与运行状态
    * Quest 每轮执行后评估进度，未达成则自动继续，直至目标达成后自动结束
  </Step>

  <Step title="过程中管理任务">
    Goal 进度卡片支持以下操作：

    * **编辑**：点击卡片右上角的编辑按钮修改目标描述。运行中编辑会在当前轮次结束后生效；暂停中编辑立即生效。
    * **暂停与继续**：暂停后保留完整上下文与所有中间产物，点击继续即从中断处恢复执行。
    * **删除**：删除当前目标任务，会话回到普通对话状态。已生成的文件和消息不会被删除。
  </Step>
</Steps>

<Note>
  目标驱动执行默认最多推进 10 回合，达到上限后自动结束。你可以在**设置 → 集成 → 内置能力 → 目标驱动执行**中调整最大回合上限，按任务复杂度自定义执行深度。
</Note>

## Goal 与 Spec 的区别

|          | Goal 驱动             | Spec 驱动             |
| -------- | ------------------- | ------------------- |
| **定位**   | 以目标为导向，Agent 自主规划路径 | 以规划为蓝图，按既定方案逐项实现    |
| **输入**   | 描述期望的最终状态           | 结构化的方案描述            |
| **执行方式** | Agent 自驱迭代，自行判断完成度  | 按 Spec 任务清单顺序执行     |
| **典型场景** | 测试覆盖率提升、代码重构、性能调优   | 新功能开发、按设计稿实现、明确需求交付 |

## 最佳实践

* **描述可验证的最终状态**：好的目标是「测试覆盖率达到 80%」而非「写一些测试」。Quest 需要明确的完成标准来判断是否达成。
* **加入关键约束**：如果有不希望被改动的部分，在目标中说明。例如「在不修改公共 API 的前提下优化内部实现」。
* **适当缩小范围**：过于宏大的目标（如「让整个项目变得更好」）会导致 Quest 难以聚焦。拆成具体的、可衡量的子目标效果更好。
* **结合定时任务执行**：耗时较长的 Goal 任务也适合安排在夜间执行，通过 `/schedule` 设置 [定时任务](./scheduled-tasks) 触发。
