Files
skills-win/codex-brain/SKILL.md
T
2026-10-15 02:00:27 +08:00

64 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: codex-brain
description: 大脑分析、worker 执行的多 agent 循环。唯一大脑使用 GPT-6-Astra,任务子 agent 默认 GPT-6.1-sol,并由大脑按难度选择可用模型。用于用户要求 codex-brain、大脑模式、brain/worker loop 或主 agent 只分析不动手的任务;仅讨论或编辑本技能时不启动任务循环。
---
# codex-brain
参考 Claude Code 的 claude-brain,保留大脑、worker、调度员三角色及报告驱动循环,使用 Codex 的协作工具。
## 角色与模型
| 角色 | 数量 | 指定模型 | 职责 |
|---|---|---|---|
| 大脑(逻辑上的主 agent) | 全程唯一、持续复用 | `gpt-6-astra`(GPT-6-Astra) | 只读分析、拆解、决策、审查报告;不改文件、不执行命令、不调用业务 MCP、不派生 agent |
| worker(任务子 agent) | 按任务创建,可并行 | 默认 `gpt-6.1-sol`(GPT-6.1-sol) | 执行任务单、收集证据、写报告;不得再派生 agent |
| 调度员 | 当前 Codex 会话 | 当前会话模型 | 启动和联系 agent、机械转递、存档、更新名册、转达问题 |
大脑在运行时可作为一个独立子 agent 存在,以便显式指定 Astra;当前会话只承担调度,不是第二个大脑。技能文本不能切换当前会话模型,也不能保证模型参数实际生效。不要修改全局 Codex 模型配置。Astra 是用户指定的大脑模型,不因“最新模型”变化而自动替换。
调度员不要改写或优化任务单、替大脑判断完成,也不要亲自执行工程工作。允许它执行协作基础设施动作:创建记录目录、写协作记录、核对报告是否存在、管理 agent、读取模型审计元数据。路径错误、工具不可用、报告缺失等事实交给大脑重决策。
Codex 的提示词约束不是 Claude `tools: Read, Glob, Grep` 那种工具白名单。给大脑附上 [references/brain.md](references/brain.md) 的完整指令;如果运行环境提供可靠的只读权限配置,可使用,但不得宣称仅靠提示词已实现硬隔离。
## 模型选择
大脑每个任务指定模型及选择理由,默认 `gpt-6.1-sol`;难度、歧义、失败成本、结果可验证性决定是否调整:
- 常规实现、多步执行、测试与调试:默认 `gpt-6.1-sol`。
- 边界明确、容易独立验证的机械任务:可选 `gpt-6-luna`,仅限工具当前支持时。
- 高难推理、架构取舍、复杂故障或关键独立复核:可选 `gpt-6-astra`,仅限工具当前支持时。允许 worker 使用 Astra;大脑的角色仍全程唯一。
- 其他模型:仅使用本次运行工具公布的有效标识,不凭显示名称猜测参数。模型不可用时反馈大脑改派,禁止静默降级。
这些是选择标准,不要求为每个简单任务启动多个 worker。只并行独立任务;共享文件编辑应分配互不重叠的责任范围或顺序执行。
## 准备与工具适配
1. 读取当前工程 AGENTS.md 和适用的 bmem 记忆。确认工程根目录。
2. 查看本次运行提供的协作工具、有效模型与并发限制。若没有多 agent 能力,说明限制,不能声称已运行该模式。缺少 Astra 时不能以当前模型冒充大脑。
3. 创建 `./Notes/auto/<YYYYMMDD-HHMMSS>-<slug>/`,按 [references/templates.md](references/templates.md) 写 `00-goal.md`、`log.md`、`agents.md`。保留用户原话与已有约束,不添加调度员的方案。
4. 启动唯一大脑:`collaboration.spawn_agent` 使用 `task_name: "brain"`、`fork_turns: "none"`、`model: "gpt-6-astra"`,在 message 中附完整大脑指令、目标与运行目录绝对路径。指定 model/reasoning_effort 时使用 `fork_turns: "none"`,不要搭配全历史继承。若实际工具参数不同,以当前工具 schema 为准,不照搬 Claude 的 Agent/subagent_type 参数。
5. 保留返回 ID。运行中的 agent 用 `send_message` 联系;已经空闲或结束一轮的 agent 用 `followup_task` 触发下一轮。不要每轮重新创建大脑。并发限制包含当前会话和大脑,worker 按剩余名额排队。
## 每轮循环
1. 将大脑回复原文写入 `Rnn-brain.md`,追加流水。
2. `CONTINUE`:原样抽出每个任务至 `Rnn-Tk-task.md`,附报告格式;创建 worker,显式传任务指定模型(缺省 `gpt-6.1-sol`)、`fork_turns: "none"`,message 提供任务单路径、报告绝对路径、完整必要上下文、工程约束与“禁止派生 agent”。不依赖 worker 继承大脑上下文。
3. `ASK_USER`:转达原文问题并记录回答,用可用的用户输入工具;异步提问时依赖答案的工作保持等待,可继续独立任务。收到回答或用户中途插话后,原文存入 `Rnn-user.md` 并交给大脑。
4. worker 结束后核对报告存在。缺失时把其最终回复原文存为报告,注明“worker 未写报告,以下为最终回复”,不能补造证据。更新名册,向同一个大脑发送报告路径,请它读取原始报告并给下一轮决策。
5. `DONE`:只有目标达成且证据充分才成立。将大脑总结原文存入 `FINAL.md`,附轮数、模型审计和名册,向用户汇报结果与记录路径。
6. `BLOCKED`:如实保存未完成状态、原因和恢复条件,不把受阻写成完成。
所有协作记录仅在本次 `Notes/auto` 子目录内。工程交付文件按任务正常存放。不要在 Notes 根目录或其他目录另建协作 md。
每启动或结束一个 agent,更新 `agents.md` 并向用户显示完整名册:角色/任务、模型(请求)、模型(核实)、状态、开始/结束、报告。大脑永远第 1 行;历史 worker 行保留。请求模型依据 spawn 参数;实际模型仅依据工具返回或可信运行元数据,缺少证据写“未核实”,不能用 agent 自报或请求参数冒充核实结果。不要复用 Claude 的转录路径或 check_models.sh。
## 持续执行与恢复
- 保留原版默认 15 轮检查点:到达时由大脑审查进展、成本与下一步。已有持续工作授权且仍有有效进展则继续;用户设置了硬轮数/预算才按该限额停止,不为检查点重复索要许可。
- 同一任务连续 3 轮失败且任务单基本相同,向大脑报告事实,要求它重新决策,避免无变化重复派活。
- 用户要求“别问我”时,大脑自行裁定已授权范围内的普通选择,并逐轮记录依据;必要输入缺失或超出授权时报告具体阻塞,不能把自主模式当扩大权限。
- 大脑失联或终止后才创建接替实例,先确认旧实例不再运行;让接替大脑读取整个运行目录恢复状态,轮次继续递增,名册将旧实例记为“已接替”。
- 恢复任务时先确认目标运行目录、FINAL/日志及存活 agent,优先复用原大脑,不并存两个大脑。已完成运行只有用户要求新工作时才继续。
- 工作收尾按适用 AGENTS.md/bmem 协议归档,由 worker 执行记忆命令,调度员归档报告;不另建平行记忆库。