Codex 明明支持 Subagent,为什么却不会主动用?我做了个 Skill 来解决这个问题

最近在折腾 Codex 的 subagent 机制时,我发现了一个很有意思的问题:

Codex 是支持 subagent 的,但它永远不会主动提用 subagent。

也就是说,哪怕你给它一个非常适合拆分的任务,比如代码审查、复杂 bug 排查、代码路径分析、文档核对、多方案调研,它也会默认在主会话里自己硬啃。

这个设定有点反人类。

因为用过 agent 的都知道,主会话的上下文窗口其实很宝贵。任务越复杂,中间过程越多,主上下文就越容易被搜索记录、代码片段、文档信息、推理过程塞满。等会话越来越长,agent 就更容易开始忘事、跑偏,或者被前面的无关信息干扰。

所以我做了一个轻量级 Codex Skill:

cast-subagents

它的作用很简单:

让 Codex 在开始干活之前,主动判断当前任务是否值得拆给 subagent,并给出推荐的子代理阵容。

项目地址:

text 复制代码
https://github.com/917Dhj/cast-subagents

为什么需要这个东西?

subagent 的价值在于,它可以把一些相对独立的任务拆出去处理。

比如:

  • 一个 agent 负责代码路径梳理
  • 一个 agent 负责文档或 API 行为核对
  • 一个 agent 负责代码审查
  • 一个 agent 负责测试风险分析

这些子 agent 执行完后,只需要把最终结论返回给主会话。中间大量搜索、阅读、遍历、验证的过程,都不会污染主上下文。

这样主会话会轻很多,也更适合处理长任务。

但问题在于,Codex 不会主动帮你判断:

  • 这个任务该不该拆给 subagent
  • 应该拆成几个子任务
  • 每个子 agent 应该是什么角色
  • 哪些只读,哪些允许改代码
  • 是否需要先征求用户确认

这些都需要用户自己想清楚,然后主动告诉 Codex。

这就导致一个很现实的问题:

Codex 有能力使用 subagent,但用户经常忘了让它用。

cast-subagents 解决的就是这个问题。


cast-subagents 做了什么?

它不是一个自动派生 subagent 的调度系统。

它做的是一件更轻量、更安全的事:

在 Codex 执行任务前,先做一次任务判断。

  • 如果当前任务很简单,比如改一个 typo、解释一个报错、修改单文件小 bug,它会保持安静,让 Codex 正常执行。

  • 如果当前任务明显适合拆分,比如多角度代码审查、复杂代码库阅读、代码路径加文档验证、多方案技术调研,它会先停下来,给出一个推荐方案。

大概形式是这样:

只有在你确认之后,Codex 才会继续进行后续的 subagent 分工。

换句话说,它不是替你做决定,而是帮你把该不该拆、怎么拆这件事提前想好。


它是怎么实现的?

cast-subagents 主要由两部分组成:

text 复制代码
AGENTS.md gate + SKILL.md advisor

可以简单理解成:

  • AGENTS.md gate 负责常驻触发,让 Codex 在开始非简单任务前先检查是否值得拆分
  • SKILL.md 负责具体判断任务类型、选择角色阵容、决定工作模式,并生成建议内容

它的执行流程大概是这样:

text 复制代码
用户发出任务
    ↓
AGENTS.md gate 先判断任务形态
    ↓
如果是简单任务,保持安静,Codex 正常执行
    ↓
如果是可拆分任务,调用 cast-subagents skill
    ↓
skill 判断任务类型
    ↓
推荐 1-4 个 subagent 角色
    ↓
说明 work mode
    ↓
停止,等待用户确认

这个设计我觉得比较克制。

因为 subagent 会增加 token 消耗,不适合所有任务。如果一上来就自动派生,反而可能带来额外成本。

所以 cast-subagents 选择的是建议优先,而不是自动执行。


内置了哪些角色?

项目里打包了一组常用的 subagent 角色,可以直接安装使用:

角色 作用
code-mapper 梳理代码路径、模块边界和文件归属
reviewer 检查正确性、安全性、测试风险和可维护性
docs-researcher 核对官方文档、API 行为和框架约定
search-specialist 快速搜索代码或外部资料中的高价值信息
knowledge-synthesizer 汇总多个研究结果,生成可执行结论
task-distributor 把宽泛任务拆成清晰的子任务
test-automator 为风险点补充最小回归测试

常见组合比如:

任务类型 推荐阵容 模式
多角度 PR Review reviewer + code-mapper + docs-researcher read-only
代码路径加文档验证 code-mapper + docs-researcher read-only
多方案技术调研 search-specialist + knowledge-synthesizer read-only
大型代码库探索 code-mapper + search-specialist read-only
先探索再修改 code-mapper + reviewer + worker mixed
测试补全 reviewer + test-automator write-capable

三种工作模式

cast-subagents 会在建议中明确标注工作模式。

read-only

只读模式。

适合代码审查、代码路径分析、文档核对、调研总结。

这种模式下 subagent 只负责阅读、分析、汇报,不修改文件。

mixed

混合模式。

适合先调研再动手的任务。

一般是先让 subagent 做只读分析,等范围明确后,再决定是否进入修改阶段。

write-capable

可写模式。

适合测试补全、局部修复等明确需要改代码的任务。

这个模式会明确告诉你 subagent 可能修改文件,避免不知情的代码变更。


适合什么场景?

我觉得它最适合下面几类任务:

1. 复杂代码审查

比如:

text 复制代码
Review this branch against main for bugs, security issues, missing tests, and maintainability risks.

这种任务天然有多个审查角度,很适合拆给不同角色并行处理。

2. 大型代码库阅读

比如:

text 复制代码
先帮我梳理一下登录模块的完整调用路径,再判断这里能不能安全重构。

这类任务通常需要先看很多文件。如果都放在主会话里做,很容易把上下文撑大。

3. 代码路径加文档核对

比如:

text 复制代码
先查清楚这段 checkout 逻辑的代码路径,再核对框架文档里相关 API 的行为。

代码阅读和文档核对可以并行,所以适合拆分。

4. 多方案技术调研

比如:

text 复制代码
帮我调研三种后台任务重试方案,并比较它们的优缺点。

不同方案之间相对独立,可以让 subagent 分头查,最后再统一汇总。


安装方式

推荐直接让 Codex 读取安装说明:

text 复制代码
Fetch and follow instructions from https://raw.githubusercontent.com/917Dhj/cast-subagents/refs/heads/main/.codex/INSTALL.md

Codex 会根据安装说明完成:

  • 安装 skill
  • 安装 AGENTS gate
  • 根据当前环境推荐是否安装内置角色
  • 提醒你重启 Codex

也可以手动安装:

bash 复制代码
npx skills add 917Dhj/cast-subagents -a codex
CAST_SUBAGENTS_HOME="${AGENTS_HOME:-$HOME/.agents}/skills/cast-subagents"

然后安装全局 AGENTS gate:

bash 复制代码
python3 "$CAST_SUBAGENTS_HOME/scripts/install-agents-gate.py" --scope global

推荐再安装内置角色:

bash 复制代码
python3 "$CAST_SUBAGENTS_HOME/scripts/install-agent-roles.py" --scope global

最后重启 Codex,让新的 skill 和 AGENTS 规则生效。


这个项目适合谁?

如果你平时只是让 Codex 写小函数、改小 bug,那可能没必要装。

但如果你经常让 Codex 做这些事:

  • 阅读大型代码库
  • 做复杂 PR Review
  • 分析框架源码
  • 核对文档和实现
  • 调研多个技术方案
  • 在长会话里持续处理复杂任务

那 cast-subagents 会很有用。

它解决的不是"Codex 能不能用 subagent"的问题,而是:

让 Codex 在该提醒你用 subagent 的时候,主动提醒你。


总结

Codex 支持 subagent,但它永远不会主动提 subagent。

这就导致很多适合拆分的任务,最后都被主会话自己硬吞了。上下文越来越重,任务越做越乱。

cast-subagents 的思路很简单:

不强制自动派生,不打乱原有工作流,只在合适的时候主动给出 subagent 分工建议。

你仍然保留最终决定权。

Codex 负责判断任务是否值得拆。

cast-subagents 负责推荐阵容和模式。

你负责点头或拒绝。

这可能是我目前觉得比较舒服的一种 subagent 使用方式。

项目地址:

text 复制代码
https://github.com/917Dhj/cast-subagents

感兴趣可以试一下。如果你本来就经常用 Codex 处理复杂代码任务,这个 Skill 应该能明显改善你的工作流。

相关推荐
微光shimmer1 小时前
doc-chain skill:一站式控制 AI 变更边界的文档依赖网络
github·ai编程
irpywp17 小时前
合盖断网打断后台计算,Modafinil:一款防休眠菜单栏工具,让 Mac 闭眼继续跑 Agent
macos·ios·开源·github
_风满楼17 小时前
TDD 进阶:换个角度看会议室预约
前端·javascript·github
逛逛GitHub1 天前
GitHub 上狂揽 2.4 万 Star!输入一个用户名,就能查遍 3000+ 网站。
github
DogDaoDao1 天前
【GitHub】Ruflo:面向 Claude Code 的企业级多智能体编排平台深度解析
人工智能·深度学习·大模型·github·ai编程·claude·ruflo
小王的测试人生1 天前
sindresorhusp-queue JavaScript 异步并发控制器
github
用户1451692728441 天前
Chroma:AI应用的开源向量数据基础设施
github
lwf0061641 天前
GitHub Pages + Cloudflare 自定义域名完整配置
github
冴羽yayujs1 天前
GitHub 前端热榜项目 - 日榜(2026-05-11)
前端·github