/goal 命令设置一个完成条件,CodeBuddy 持续向其推进而无需您逐步催促。每轮(turn)结束时,由小模型(small-fast model)评估器判断条件是否成立——若不成立,CodeBuddy 自动开始下一轮,而不是把控制权交回给您。一旦条件满足,目标自动清除。/goal 命令要求 @tencent-ai/codebuddy-code 已包含 goal 功能(agent-cli 的 GoalService 模块)。/goal 跟踪有可验证终态的实质性工作:方式 | 下一轮何时开始 | 何时停止 |
/goal | 上一轮结束后立即开始 | 评估器确认条件已满足 |
/loop | 时间间隔触发 | 您主动停或模型判定工作结束 |
上一轮结束后立即开始 | 您的脚本或 prompt 自行决定 |
/goal 与 Stop hook 都在每轮之后触发。/goal 是会话级捷径——您输入条件,仅在当前会话内生效。Stop hook 写在 settings 里,对它作用域内的所有会话生效,并且既可以跑确定性脚本也可以跑模型评估的 prompt。/goal/goal 后跟您想满足的条件即可。如果当前已有 active goal,新的会替换旧的(旧 goal 的 hook 自动注销)。/goal all tests in test/auth pass and the lint step is clean
⊚ /goal active (Xs) 指示器,每秒刷新已运行时长,让您随时知道当前处于 goal 模式。isMeta=true 的内部消息形式注入对话历史,让模型在下一轮看到 evaluator 的视角,从而精准补做欠缺的部分,这是模型能“知道还差哪几步”的关键。/goal clear。运行 /goal(无参数)查看 turns / tokens 等统计。test/auth pass” 之所以可行,是因为 CodeBuddy 会自己跑测试,结果落在 transcript 里供评估器阅读。\\`npm test\\` exits 0 或 \\`git status\\` is cleanor stop after 20 turns,CodeBuddy 会在每轮里把当前进度对照该从句,evaluator 也能从对话中读出。/goal:/goal
/goal clear
clear 的同义词:stop、off、reset、none、cancel。仅在单 token 完全匹配时识别为清除指令——/goal stop using deprecated API 仍按“设置新 condition”处理,不会被吞掉。/clear 重启会话也会一并移除 active goal(hook 注销 + meta 清理)。--resume / --continue 恢复会话时,未完成的 goal 会被恢复(condition 与 scope 都还原)。/goal clear 再重新 /goal <condition>。已经达成或已被清除的 goal 不会被恢复(meta 已删)。codebuddy -p "/goal CHANGELOG.md has an entry for every PR merged this week"
Ctrl+C。/goal 是对会话级 prompt-based Stop hook 的一层封装。每当 CodeBuddy 主 agent 跑完一轮,当前 condition + 当前对话 会被一并发给配置好的小模型评估器。评估器返回一个“是 / 否 / 不可达”三态结果与简短 reason:ok: true):清除 goal、记录“已达成”事件,UI 显示 ✔ Goal achieved 状态条。ok: false):把 reason 作为 isMeta=true 的 user message 注入 history(让主模型看到下一步该补什么),让 CodeBuddy 继续工作。同时写入一条 goal-progress UI 状态条 ◯ Goal not yet met… continuing。ok: false, impossible: true):用于评估器判断“在当前会话里这个目标根本不可能完成”(条件自相矛盾、依赖的能力/资源不可用、模型已经穷尽合理尝试)。立即清除 goal,UI 显示 ✕ Goal could not be achieved,避免把循环陷死。lite 槽位的小模型(在不同 model provider 上分别映射到 gpt-5.1-codex-mini / gemini-2.5-flash / DeepSeek deepseek-v4-flash 等)。评估只看现有 transcript、不调用工具,所以走小模型既快又便宜。createdAt(ISO 8601)注入评估器的 user prompt,并明确指示:Evaluate ONLY the conversation that happened AFTER this timestamp. Earlier messages MUST NOT be used as evidence.
{"ok": false, "reason": "Goal was just set; no work has been done yet against the new condition."}。goal-result / goal-progress(goal 自身的 UI 状态项)summary / topic / ai-title / custom-titlefile-history-snapshotUnknown item type 警告。行为 | 状态 | 备注 |
设置 / 替换 / kick-off | ✔ | 设置后立即开始一轮,已有 active goal 时自动替换 |
/goal clear 别名 | ✔ | 支持 stop / off / reset / none / cancel 五种单 token 同义词 |
/clear 同步清除 active goal | ✔ | 重启会话时一并注销 goal hook 并清理 meta |
condition 上限 | ✔ | 4000 字符 |
reason 反馈进 history | ✔ | 注入格式: Stop hook feedback: [<condition>]: <reason> |
三态语义(ok / not-yet / impossible) | ✔ | 不可达时立即清除 goal,避免无效循环 |
evaluator 走小模型 | ✔ | 使用 lite 槽位绑定的模型(按 provider 分别映射) |
/goal 无参 → 状态视图 | ✔ | TUI / Web UI 面板 + headless 文本降级 |
持续运行指示器 ⊚ /goal active (Xs) | ✔ | 输入框右下方常驻显示运行时长,1Hz 刷新 |
--resume 时 turn / timer / token 重置 | ✖ | 当前沿用原 createdAt / turnCount,需“重新计时”请先 /goal clear |
-p 跑 /goal文档反馈