Files
2026-10-15 02:00:27 +08:00

7.0 KiB
Raw Permalink Blame History

name, description
name description
codex-brain 大脑分析、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 的完整指令;如果运行环境提供可靠的只读权限配置,可使用,但不得宣称仅靠提示词已实现硬隔离。

模型选择

大脑每个任务指定模型及选择理由,默认 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 写 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 执行记忆命令,调度员归档报告;不另建平行记忆库。