← 返回信息流
Agent SkillLINUX DO · AI·1 小时前

gpt-5.6-sol疯狂开subagent解决方法

速览

GPT-5.6 Sol存在两个问题:一是默认V2模式下hide_spawn_agent_metadata=true导致无法指定子代理模型,所有子代理均为Sol实例;二是子代理频繁嵌套自身,max_depth失效。解决方法包括关闭hide_spawn_agent_metadata或在AGENTS.md中约束fork_turns,或直接改用V1模式。V1虽缺少send_message等接口,但更稳定清晰。

AI 深度解读

背景

在 AI 辅助编程与多智能体协作场景中,OpenAI 的 Codex 系统(以及基于其上的 GPT‑5.6 Sol 模型)支持通过 subagent 机制并行或递归调用多个子模型任务,从而提升复杂问题处理能力。然而,实际使用中用户发现 GPT‑5.6 Sol 在 subagent 管理上存在两个严重的配置缺陷:一是无法指定 subagent 使用的模型,导致所有子代理强制沿用主模型的实例(如 Ultra 版本);二是 subagent 会不受控制地反复嵌套调用新的 subagent,形成深层递归,影响稳定性和可观测性。这些问题在 LINUX DO 社区的 AI 话题中被集中讨论,并给出了具体的配置修复方案。

核心内容

该帖子针对 GPT‑5.6 Sol 在多智能体版本(multi_agent_version)设置为 v2 时出现的两个问题提供了解决方案。

问题一:无法指定 subagent 模型

现象
GPT‑5.6 Sol 的 multi_agent_version 默认被设为 v2,并且 hide_spawn_agent_metadata = true 处于开启状态。该开关会从 JSON Schema 中移除 agent_typemodelreasoning_effortservice_tier 字段。结果主模型无法选择 ~/.codex/agents 中定义的 named agent,也无法设置 subagent 的模型。例如,使用 GPT‑5.6 Sol Ultra 时,其 spawn 出的 subagent 依然强制使用 GPT‑5.6 Sol Ultra 模型,而非用户指定的其他模型。

解决方法(参考 GitHub Issue #31814):

  1. 在配置中修改:
    [features.multi_agent_v2]
    hide_spawn_agent_metadata = false
    tool_namespace = "agents"
    
  2. 同时在 AGENTS.md 文件中约束 fork_turns 的值:禁止设为 all(传递全部对话上下文),默认使用 none3(仅传递最近 3 轮上下文)。
  3. 或者,直接禁用 v2 并回退到 v1:
    [features.multi_agent_v2]
    enabled = false
    
    此时让 Codex 操作生成 models-v1.json,然后设置 model_catalog_json = "~/.codex/models-v1.json"

问题二:subagent 多次嵌套 subagent

现象
即使修复了模型指定问题,GPT‑5.6 Sol 在作为 subagent 运行时,仍会非常积极地调用新的 subagent,这可能源于模型训练时的行为偏向。根本原因在于 v2 中的 max_depth 设置失效,无法限制嵌套深度。如果仅用提示词约束,subagent 仍会不断嵌套,导致调用链失控。

解决方法
直接改为使用 v1 版本。v2 相比 v1 提供了以下额外功能:

  • send_message:向一个已存在的子代理继续发送消息;
  • followup_task:向一个已存在的子代理继续分配下一个任务;
  • interrupt_agent:打断正在运行的子代理;
  • list_agents:列出当前有哪些代理。

但帖子指出,OpenAI 并未将这些接口写入全局提示词,Codex 实际也不会主动使用它们。若用户确实需要这些功能,需在 AGENTS.md 中显式提醒模型使用。对于绝大多数场景,v1 更加稳定且行为清晰,是推荐的配置。

关键要点

  • 多智能体版本 v2 默认开启 hide_spawn_agent_metadata,导致 subagent 的模型、agent 类型等元数据被隐藏,用户无法指定 subagent 的模型,所有 subagent 强制与主模型相同。
  • 修复方法:将 hide_spawn_agent_metadata 设为 false,并设置 tool_namespace = "agents";同时在 AGENTS.md 中约束 fork_turnsnone3
  • 备选方案:完全禁用 v2 并启用 v1,通过 models-v1.json 自定义模型目录。
  • 嵌套递归问题:v2 的 max_depth 限制失效,导致 subagent 会递归调用 subagent,无法靠提示词有效约束。
  • 解决方案:改用 v1,v1 虽然缺少 send_message 等进阶接口,但行为稳定、调用链清晰,且这些接口在 v2 中也未被真正集成到提示词中。
  • 建议:除非需要动态消息传递或中断 subagent 等高级功能,否则优先使用 v1 以获得更可靠的 subagent 管理。

意义与影响

该讨论揭示了 GPT‑5.6 Sol / Codex 多智能体系统在生产使用中的真实痛点:默认配置可能引入不可控的行为,且官方文档未充分说明 hide_spawn_agent_metadatamax_depth 的失效问题。用户通过手动调整配置文件([features.multi_agent_v2])和 AGENTS.md,能够有效恢复对 subagent 模型的指定权,并遏制递归嵌套。这一解决方案为其他使用类似架构的 AI 系统(如基于 OpenAI Codex 的其他 Agent 框架)提供了可复用的调试思路。同时,它也提醒开发者在设计多智能体协作时,应显式暴露 agent 元数据并可靠地实现深度控制,否则底层模型的“积极调用”行为可能导致资源失控。长远来看,社区反馈可能推动 OpenAI 在后续版本中修复 v2 的深层缺陷,或将 v1 的稳定性作为默认配置。

查看原文 →linux.do