在模型实验中,利用智能调度充分利用 GPU 资源

此前一直尝试使用 codex 或 claude code 帮忙写代码,写完直接同一个 session 中跑实验,这样自己的代码自己知道怎么修;但仍然存在两个问题:

  1. “忙等待”,agent 基本上是在前台轮询 gpu 运行情况和和实验 log 来监督实验或等实验运行结束。这虽然能及时发现告警和运行时 bug,但实验没运行几个 step,大量重复的 toolcall 会带来上下文污染
  2. “早退出”,除非有 /goal 或 /schedule 等 loop 强行让其循环,否则 agent 无法在实验结束时醒来分析结果,而是看个几分钟觉得实验正常运行,停止监督,回复一个“程序健康报告”。
  3. 无协作:多session 运行不同实验,共享 gpu 资源,默认情况下就是互相 kill (真的),加了 AGENTS.md 约束后不会杀别的实验,但发现当前无 gpu 资源后,要么“忙等待” gpu 资源,要么“早退出” 说跑不了。
  4. 高价值 token 浪费:“忙等待” 即轮询监督实验消耗的 token ,远大于代码分析和需求实现,同时这还是机械工作。给高智能模型塞这样的脏活明显不划算。
  5. GPU 资源浪费:小时级别的实验跑完还得人来跑下一轮。

现有方案:

  1. subagent 能隔离 session 来监督实验(还没试过 subagent 换模型),能部分解决问题 4;
  2. 此前我使用过 slurm 系统,能提交 pending task,能很好解决问题 3 ;

额外需求:

要解决 1 和 2 ,可能需要一个额外服务,这个服务最关键的功能是。回调:只在任务异常 / 结束后形成一份实验报告,返回并唤醒原 agent session (将 prompt 注入此前交互式的 cc 或 codex session 感觉有点困难)。最后将该服务嵌入到已有的类 slurm 系统中形成一个独立的 agent gateway,成为一个智能 slurm,从而解决全部问题。

可能日后要补 agent 开发和协作知识,才能实现这样的愿景;欢迎佬给出问题的建议和意见!(要是已有开源就更好了)

蹲一个更好的解决方案。
我在使用codex和claude code(glm5.2)的时候觉得ClaudeCode设计的Monitor差不多能满足我对于你提到的“忙等待”和“早退出”问题:


只有Monitor检测到结果变化之后才会再次唤醒模型。

Codex似乎没有一样的功能,gpt似乎很喜欢通过Wait for Background Terminal…来等待实验结束,感觉没有cc的monitor好用