Codex cli 分屏并行运行

最推荐的方式是:tmux 分屏 + 每个任务一个独立 git worktree + 每个窗格一个 Codex 会话 。Codex CLI 本身是在终端中运行的本地 coding agent,可以读、改、运行所选目录里的代码;官方也支持用 --cd <path> 指定工作目录。

1. 最简单:一个项目目录里开多个 Codex 窗格

bash 复制代码
tmux new -s codex

常用快捷键:

text 复制代码
Ctrl-b %      左右分屏
Ctrl-b "      上下分屏
Ctrl-b o      切换窗格
Ctrl-b z      当前窗格最大化/还原
Ctrl-b d      退出但保持后台运行
tmux attach -t codex   重新进入

每个窗格里分别运行:

bash 复制代码
cd ~/your_project
codex

这种方式适合:一个窗口让 Codex 看 bug,一个窗口让 Codex 写实验脚本,一个窗口让 Codex 查代码结构。

但注意:多个 Codex 同时改同一个目录,容易互相覆盖或产生冲突


2. 更推荐:每个任务一个 git worktree

例如并行做三个任务:baseline、ablation、plot。

bash 复制代码
cd ~/your_repo

mkdir -p ../codex-worktrees

git worktree add ../codex-baseline -b codex/baseline
git worktree add ../codex-ablation -b codex/ablation
git worktree add ../codex-plot -b codex/plot

然后在 tmux 三个窗格中分别运行:

bash 复制代码
codex --cd ../codex-baseline
bash 复制代码
codex --cd ../codex-ablation
bash 复制代码
codex --cd ../codex-plot

这样每个 Codex 都在独立分支和独立目录里工作,互不污染。最后再分别检查 diff:

bash 复制代码
cd ../codex-baseline
git diff
git status

合并时:

bash 复制代码
cd ~/your_repo
git merge codex/baseline
git merge codex/ablation
git merge codex/plot

3. 非交互式并行:适合批量小任务

Codex 支持 codex exec 做非交互式任务,官方说明它会把最终计划和结果输出到 stdout,适合接进脚本。

例如:

bash 复制代码
mkdir -p logs

codex exec --cd ../codex-baseline "检查并修复 baseline 复现实验中的路径问题" > logs/baseline.log 2>&1 &
codex exec --cd ../codex-ablation "实现 ablation: remove uncertainty loss" > logs/ablation.log 2>&1 &
codex exec --cd ../codex-plot "根据 results.csv 生成论文图表脚本" > logs/plot.log 2>&1 &

wait

跑完看日志:

bash 复制代码
tail -n 80 logs/baseline.log
tail -n 80 logs/ablation.log
tail -n 80 logs/plot.log

4. Codex 内置并行:subagents

现在 Codex 也支持 subagent workflow:可以显式要求它"为每个方向 spawn 一个 agent 并行处理,等全部完成后汇总"。官方说明 subagents 会并行启动专门 agent,然后把结果汇总;默认启用,但只有你明确要求时才会启动,而且会消耗更多 token。

可以这样在一个 Codex 会话里说:

text 复制代码
请并行启动 4 个 subagents:
1. 一个检查数据加载和预处理问题;
2. 一个检查模型实现是否和论文一致;
3. 一个检查训练脚本和参数配置;
4. 一个检查评估指标和可视化脚本。

每个 agent 只读代码,先不要修改。等全部完成后,汇总问题、证据文件路径和建议修改顺序。

如果要让它们改代码,最好也限制范围:

text 复制代码
请 spawn 3 个 agents 并行修改,但每个 agent 只能修改自己负责的目录:
- agent A: src/data/
- agent B: src/models/
- agent C: scripts/plot/
完成后汇总所有 diff 和潜在冲突。

官方文档还提到可以用 /agent 在 CLI 里查看和切换 active agent threads;默认 agents.max_threads 是 6,可以在配置中控制并发线程数。


5. 多服务器分屏并行

在本地或服务器 A 上开 tmux:

bash 复制代码
tmux new -s multi-codex

不同窗格分别 ssh 到不同服务器:

bash 复制代码
ssh serverA
ssh serverB
ssh serverC

每台服务器进入对应项目目录后:

bash 复制代码
codex

更稳的方式是每台服务器承担不同职责:

text 复制代码
serverA: baseline / main experiments
serverB: ablation experiments
serverC: visualization / analysis / paper table

不要让多个服务器同时往同一个共享目录写结果。可以约定:

text 复制代码
results/serverA/
results/serverB/
results/serverC/

最后统一 rsync 或 git 合并。


推荐工作流

对于科研项目,直接这样用:

bash 复制代码
cd ~/your_repo

git worktree add ../wt-baseline -b codex/baseline
git worktree add ../wt-method -b codex/method
git worktree add ../wt-analysis -b codex/analysis

tmux new -s codex

三个窗格分别:

bash 复制代码
codex --cd ../wt-baseline
codex --cd ../wt-method
codex --cd ../wt-analysis

然后给每个 Codex 明确边界:

text 复制代码
你只负责 baseline 复现,不要修改 method 相关代码。先阅读 README、configs 和 scripts/train*.py,给出计划后再改。
text 复制代码
你只负责新方法实现,不要动 baseline 和 plotting。修改前先列出将要改的文件。
text 复制代码
你只负责结果分析和画图,不要改训练代码。所有输出放到 analysis_outputs/。

核心原则:分屏只是操作方式,真正避免混乱靠 worktree、任务边界、独立输出目录和最后人工 review diff。

相关推荐
Mr数据杨6 小时前
【Codex】我的工作配置统计数据可视化
codex
dangdanding6 小时前
防火墙 IP 分片测试套件-fragroute
linux·网络·网络协议·tcp/ip
happymade6 小时前
全网拓扑自动发现与服务器全维度监控的技术实践
linux·运维·服务器·网络·zabbix·路由器·prometheus
jianwuhuang826 小时前
豆包输出word
人工智能·ai·chatgpt·word·deepseek·ai导出鸭
米高梅狮子7 小时前
01.CentOS-Stream-8-packstack安装OpenStack
linux·云原生·容器·kubernetes·centos·自动化·openstack
小飞侠hello7 小时前
Claude Code 扩展体系Marketplaces · Plugins · Skills 概念、关系与实战
ai
xiaoye-duck7 小时前
《Linux系统编程》Linux基础开发工具 (二):详解自动化构建 make / Makefile
linux
cui_ruicheng7 小时前
Linux网络编程(五):基于UDP实现DictServer
linux·服务器·网络·udp
Terasic友晶科技7 小时前
答疑解惑|为DE25-Nano开发板配置Linux kernel时.config文件没有起作用是什么原因?
linux·服务器·fpga开发·linux kernel·de25-nano