Skip to main content

Agent Goal

Flow

外部交互循环:

ask -> work -> result -> wait
  • ask:用户给出目标、边界和验收期望。
  • work:Agent 自主拆解、执行、验证。
  • result:Agent 汇报结果、证据、风险和下一步。
  • wait:等待用户确认、补充上下文,或进入下一轮目标。

内部迭代循环:

work -> check -> continue or complete
  • work:做一小步可回滚、可验证的改动。
  • check:运行测试、构建、审查 diff 或收集证据。
  • continue:如果未达到目标,记录当前状态并继续下一轮。
  • complete:如果满足完成定义,输出结果、验证证据和交接信息。

SMART

SMART 可以作为写 Goal 的检查框架,但不需要把任务写得过度官僚化。

维度含义在 Agent Goal 中的落点
Specific目标具体OutcomeBoundariesNon-goals
Measurable可衡量Definition of DoneVerification surface
Achievable可完成ContextConstraintsBlocked stop condition
Relevant相关ContextOutcome
Time-bound有时间/轮次边界Iteration policyBlocked stop condition

实践上最重要的是:目标要可验证、边界要清楚、失败时要知道何时停止

Goal Spec

Context:
当前背景、相关路径、已有状态、为什么要做。
尽量包含能让新 agent 接手的最小上下文,但不要塞入无关历史。

Outcome:
完成后应该是什么状态。
描述用户真正想要的结果,而不是只描述要执行的命令。

Definition of Done:
可验收的完成标准。
例如:功能行为、文档形态、CI 状态、数据迁移结果、性能指标等。

Verification surface:
用什么证据证明完成了。
例如:测试命令、构建输出、截图、日志、CI 链接、diff 摘要、人工检查点。

Constraints:
必须遵守什么,不能做什么。
例如:不要改公共 API、不要提交 secrets、不要触碰某些目录、保持兼容性。

Boundaries:
允许修改哪里,不应该扩展到哪里。
用于避免 agent 把任务扩大成重构、顺手修复或无关优化。

Non-goals:
明确这次不解决什么。
这比只写 Boundaries 更直接,适合排除容易跑偏的方向。

Iteration policy:
怎么一轮一轮推进。
例如:每次只做小范围修改;先跑相关测试,再跑全量检查;每轮记录已完成、失败项、下一步。

Blocked stop condition:
什么时候不要继续硬做。
例如:需要业务确认、外部凭证,或者同一测试连续 3 轮无法修复。
停止时报告 blocker、错误日志、已尝试方案和建议下一步。

Handoff:
如果任务中断,下一位 agent 应该从哪里继续。
包含当前状态、关键文件、验证命令、剩余问题和风险。

Example

Context:
当前仓库是 Docusaurus 文档站,最近新增 Java 版本笔记后 CI 构建失败。
相关路径:notes/java/version、site、.github/workflows/build.yaml。

Outcome:
修复 CI 构建失败,并保持 Java 版本笔记可读、链接有效、Markdown 表格正常。

Definition of Done:

- GitHub Actions Build 成功。
- 本地或 CI 中 Docusaurus build 不再因 frontmatter、Markdown 表格或链接格式失败。
- 修改范围只限相关文档和必要配置。

Verification surface:

- `git diff --check`
- `cd site && pnpm run build`
- GitHub Actions run URL 和最终状态。

Constraints:

- 不提交 secrets、缓存、构建产物。
- 不无关重构 Docusaurus 配置。
- JEP 链接使用 reference link,避免表格过宽。

Boundaries:
只处理 Java 版本笔记和导致构建失败的 Markdown 元数据问题。

Non-goals:
不重新设计整站导航,不调整主题,不迁移 Docusaurus major version。

Iteration policy:
每轮先定位一个构建错误,修复后重新验证;如果出现新错误,再进入下一轮。

Blocked stop condition:
如果失败依赖 GitHub secret、部署 token 或外部服务权限,停止并报告所需权限。

Handoff:
记录失败 run、修复文件、验证命令、剩余 warnings 和下一步建议。