| name | alice-goal |
| description | 为当前会话设定并持续执行长期目标 |
Alice Goal
在当前 work session 中设定并自动迭代执行的长期目标。
命令
scripts/alice-goal.sh get - 查看当前目标
scripts/alice-goal.sh create '{"objective":"为项目补充单元测试","deadline_in":"48h"}' - 创建目标(deadline_in 可选,默认 48h)
scripts/alice-goal.sh delay <duration> <reason> - 每一轮对话必须调用,设置下一轮迭代的延迟唤醒时间
scripts/alice-goal.sh pause - 暂停
scripts/alice-goal.sh resume - 恢复
scripts/alice-goal.sh complete - 仅限 audit_completion subagent 调用,Main Agent 在任何情况下都不得直接调用此命令
scripts/alice-goal.sh clear - 删除目标
核心机制
自动循环原理
每次 Main Agent(即本次设定 alice-goal 的 Agent)迭代完成后,系统通过 delay 机制调度下一次唤醒。Main Agent 必须在每轮迭代结尾显式调用 alice-goal delay 来声明下一次唤醒时间。不调用 delay 的迭代视为违规。
三个合法出口(每轮迭代必须且只能选择其一):
| 出口 | 调用 | 效果 |
|---|
| 立即继续 | alice-goal delay 0s "继续推进 <具体任务>" | 当前有明确工作可做,立即进入下一轮 |
| 延迟等待 | alice-goal delay 17m "等待 <具体外部资源>" | 当前在等待外部资源就绪,延迟后再唤醒检查 |
| 目标完成 | 由 audit_completion 调用 alice-goal complete | 审计确认目标已全部完成 |
delay 命令详细说明
alice-goal delay <duration> <reason> 设置目标下一次被引擎唤醒的时间。
核心约束:delay 只能用于等待外部资源。
没有需要等待的外部资源(CI、构建、部署、数据文件、API 配额、第三方服务等),就必须用 0s 立即继续推进,或触发僵局重新规划。严禁用正延迟来偷懒或躲避工作。
参数:
duration(必填):Go duration 格式的相对延迟,类型为字符串
- 格式:
"Ns", "Nm", 可组合如 "1m30s"
- 范围:
"0s" 或 1m ~ 30m(引擎强制校验)
"0s" = 立即进入下一轮迭代(当前有明确工作可推进)
- 最小正延迟为
"1m",最大延迟为 "30m"(不在此范围内的 duration 会被拒绝)
reason(必填):用引号括起来的一句话,必须明确写明正在等待的具体外部资源
"0s" 时必须说明下一步具体要做什么
- 正延迟时 必须 写明等待的具体外部资源名称(如 CI pipeline、GitHub PR、构建系统、数据文件路径、API 端点等)
选取延迟的指导:
- 等待 CI/构建/部署完成 →
"7m" ~ "17m"(选 "8m" / "13m" / "17m" 等非整点值)
- 等待 code review / PR 状态更新 →
"13m" ~ "27m"(选 "13m" / "19m" / "27m" 等非整点值)
- 等待外部资源就绪(数据文件、权限、API 配额等) →
"7m" ~ "19m"(选 "8m" / "13m" / "19m" 等)
- 严禁选取的值:
- 不要选
"5m" "10m" "15m" "20m" "30m" 等整数边界值——选临近的非整点值如 "7m" "13m" "17m" "23m" "28m"
- 不要选
< 1m 的正值(引擎直接拒绝)
- 不要选
> 30m 的值(引擎直接拒绝)
- 严禁以下场景使用正延迟:
- "当前无实质工作可推进" → 触发僵局重新规划,而不是设一个延迟混过去
- "需要用户确认或输入" → 用户可能不会回复,设正延迟等于空转。此时应设
0s 并明确说明需要用户输入,或暂停目标
- "审计确认目标已完成" → 必须走 audit_completion → alice-goal complete 流程
reason 质量要求:
- reason 必须包含正在等待的具体外部资源名称
- 好的 reason:
"waiting for PR #225 CI checks to complete on GitHub", "waiting for data-team CSV file at /data/export/output.csv", "waiting for Docker build on Jenkins pipeline #4421"
- 坏的 reason:
"waiting", "继续", "delay", "等一下", "没什么可做的"—没有指明具体外部资源,会被日志标记为低质量 delay。尤其 "没什么可做的" 而设正延迟是严重违规
严格审计流程
Main Agent 严禁自行执行审计步骤或直接调用 alice-goal complete。所有审计和完成操作必须通过调用 subagent 完成,约定这个负责执行严格审计步骤的 subagent 叫做 audit_completion。
- 必须调用
audit_completion subagent 完成审计 — Main Agent 严禁自行执行任何审计步骤(列清单、核证据、判断缺口等),也严禁以任何形式调用 alice-goal complete。
audit_completion 必须执行的审计步骤:
- 明确目标为具体交付物/成功标准
- 列出检查清单(每个要求对应具体证据)
- 逐项核对真实证据(文件/输出/PR等,不凭记忆或猜测)
- 警惕假信号(测试通过/代码量大≠完成,必须覆盖每一项要求)
- 找出缺口(任何缺失、薄弱或未覆盖即为未完成)
- 不依赖意图、半成品、耗时等
- 仅当所有要求满足且无遗留工作时,方可进入下一步
- 标记完成(仅限
audit_completion):
- 只有
audit_completion 有权调用 alice-goal complete。成功后向用户报告总耗时。
- 绝对禁止因超时或 Main Agent 打算停止而标记完成。
- 绝对禁止在当前执行回合标记完成;必须在下一独立回合中由
audit_completion 重新完成审计后才可调用。
- 违规后果:Main Agent 若自行调用
complete、自行审计或绕过 audit_completion,视为严重违规,必须立即停止输出并进入下一次循环。
实用规则
- delay 强制且仅限外部资源:Main Agent 在每轮迭代结束前必须调用
alice-goal delay。正延迟只能用于等待具体的外部资源。没有外部资源需要等待时,必须用 0s 继续推进或触发僵局重新规划。不调用 delay 或用正延迟偷懒均为违规。
- 本轮迭代内如有需要等待的同步操作(如轮询 API 状态),仍在当前迭代内用
sleep 阻塞。但迭代之间的等待必须用 alice-goal delay,将调度权交还给引擎。不要在迭代内用长时间 sleep 来模拟跨迭代延迟。
- 单回合单步:Main Agent 每回合只推进一项具体任务(通常是调用一个 subagent 或一个原子操作),完成后立即退出。
- 极限并行与结果排序:
- 任何可拆分的独立子任务必须分给独立 subagent 并行执行。
- 汇总所有 subagent 结果时,严格按照结果对完成目标的重要性降序输出:最重要结果放在最前面详细描述,次要结果可缩减篇幅或后置。不要因为每个 subagent 都完成了任务就平均用力。
- 僵局重新规划:出现以下情况之一时,Main Agent 必须立即停止当前行动并执行重新规划:依赖缺失、任务无法拆分、连续多回合无实质推进、审计缺口不明确、外部接口不可用等。重新规划步骤:分析目标缺口→调整策略→重新拆解任务序列→在本回合或下一回合启动新的并行 subagent 群。严禁原地重试、空转或重复失败动作。