多Agent开发笔记:为什么4个Codex加1个Claude会把cpu跑满

发布时间:2026/9/29 8:50:07

多Agent开发笔记:为什么4个Codex加1个Claude会把cpu跑满
700X跑满好家伙,vscode里开了四个codex拓展 一个 claude把我cpu吃满了,不是哥们,我9700X啊按理说,8 核 16 线程的桌面 CPU,日常开发应该不算弱.但我同时开了:4 个 Codex1 个 Claude然后 CPU 直接跑到 100%.因为这些 agent 背后的大模型推理,又不是在我本机 CPU 上跑.那为什么还会这么吃性能?排查了一圈以后,我发现问题不在聊天模型推理.真正重的是:多个 agent 同时驱动本地工具链.这篇就把这个问题整理一下.0.先说结论:不是9700X弱我看到本机当时的情况大概是:codex.exe 4 个claude.exe 2 个VS Code 子进程 30 多个VS Code 相关内存 6GB多个 vite / pnpm dev / go run多个 language server多个 file watcher多个 extension host任务管理器里看到的:Visual Studio Code (71)这不是一个单独的 VS Code.它其实是一组进程.里面可能有:Codex / Claude agentVS Code extension hostterminal pty hostrenderer / webviewTypeScript language serverGo language serverfile watcherGit refreshvite dev serverpnpm devgo run所以 CPU 跑满的时候,不能简单理解成:VS Code 太卡也不能简单理解成:Codex 本地推理把 CPU 吃满更准确的说法是:agent VS Code dev server language server file watcher 同时被触发.这才是峰值来源.1.Agent不是普通聊天窗口如果只是开 5 个网页聊天窗口,本地 CPU 压力不会这么夸张.但 Codex / Claude agent 不一样.它不是只在聊天.它会干这些事:搜索文件读取代码分析目录修改文件跑测试跑构建执行 shell 命令生成 diff触发 Git 状态变化触发 language server 重新分析比如一个 agent 在项目里搜索:rg TODO另一个 agent 在跑测试:python -m unittest第三个 agent 改了前端文件.第四个 agent 又触发了 vite 热更新.Claude 那边也在读文件或改文件.这些事情叠起来,就不是聊天开销了.可以看这张图:这张图里最关键的是:agent 一动文件,本地工具链就会跟着动.比如:agent 改 TypeScript- VS Code watcher 发现变化- tsserver 重新分析- Git refresh- Vite 热更新- agent 又跑测试如果是 1 个 agent,问题还好.如果是 5 个 agent 同时做这些事,8 核 16 线程被打满就不奇怪了.2.为什么VS Code插件模式更吃资源我后面又问了一个问题:在 VS Code 的 Codex 插件里跑,是不是比终端 CLI 更吃资源?答案是:通常是的.不是因为插件模式的模型更大.而是因为插件模式多了一层 VS Code 环境.大概可以这样理解:VS Code 插件模式- VS Code window- extension host- codex.exe app-server- powershell / conhost- file watcher / language server / git refresh- webview / renderer而终端 CLI 更接近:codex.exe- powershell helper- conhost结构差异大概是这样:插件模式的优点也很明显:交互舒服diff 展示直观权限提示清楚和编辑器集成好但如果要高并发跑 4-5 个 agent,插件模式的额外开销就会明显.因为每个 VS Code 窗口可能都带着:extension hostrendererwebviewfile watcherlanguage serverGit 状态刷新这就是为什么:一个 VS Code 插件 agent 还好.四五个 VS Code 插件 agent 同时跑,本地会明显重很多.3.如果我就是要跑4到5个agent怎么办可以跑.但是要换跑法.核心原则是:把 agent 干活 和 你看代码/Git diff 拆开.不要让每个 agent 都挂在一个完整 VS Code 窗口里.更推荐:Windows Terminal:tab1: codex -C C:\proj1tab2: codex -C C:\proj2tab3: codex -C C:\proj3tab4: codex -C C:\proj4VS Code:一个 multi-root workspace同时打开 4 个项目只负责看代码和 Git diff结构大概是这样:这样做的好处是:agent 仍然可以并发跑.但 VS Code 只启动一套主 UI.你依然能在 VS Code 里看 4 个项目的 Git 状态.但不用开 4 个完整窗口.可以用这个命令打开:code C:\proj1 C:\proj2 C:\proj3 C:\proj4或者做一个.code-workspace.以后直接打开这个 workspace.4.如果是同一个项目多个agent怎么办如果是同一个项目,不要让 5 个 agent 同时改同一个工作区.更稳的方式是:每个 agent 一个 git worktree.比如:git worktree add ..\repo-agent-1 -b agent-1git worktree add ..\repo-agent-2 -b agent-2git worktree add ..\repo-agent-3 -b agent-3git worktree add ..\repo-agent-4 -b agent-4然后分别跑:codex -C ..\repo-agent-1codex -C ..\repo-agent-2codex -C ..\repo-agent-3codex -C ..\repo-agent-4这样每个 agent 都有自己的工作区.好处是:不会互相踩文件不会互相污染 Git 状态方便最后分别 review 和合并坏处是:磁盘占用会增加项目依赖可能重复安装需要管理分支但如果你真的要高并发 agent,这个成本是值得的.5.给agent降优先级和绑核如果机器还会被拖死,可以给 agent 降低优先级.比如当前已经启动了 Codex / Claude:Get-Process codex,claude -ErrorAction SilentlyContinue | ForEach-Object {$_.PriorityClass BelowNormal$_.ProcessorAffinity 0xFFF0}这里要注意:BelowNormal 是降低进程优先级.ProcessorAffinity 是限制进程能跑在哪些逻辑线程上.0xFFF0这个值不要死记.它只是一个例子.在 16 个逻辑线程的机器上,可以理解成:避开前 4 个逻辑线程把一部分响应空间留给 VS Code、浏览器和系统.这样做不一定能让 agent 更快.但能让桌面更稳.也就是说:宁愿 agent 慢一点,也不要整台机器卡死.6.dev server要单独管我这次看到的另一个问题是:多个 vite多个 pnpm dev多个 go run这些开发服务平时没什么感觉.但 agent 一改文件,它们就可能热更新、重建、重新编译.如果 4 个 agent 同时在 4 个项目里改文件,那就很容易出现:agent 在跑watcher 在跑dev server 在重建language server 在分析Git 在刷新所以高并发 agent 时,我建议:单开cmd控制服务进程只保留当前真正要看的 dev server.不用的 vite / pnpm dev / go run 先停掉.不要觉得 dev server 空在那里就没成本.只要文件在变,它就可能被触发.7.VS Code也要做workspace excludeVS Code 的文件监控和搜索范围也要收一下.比如可以在 workspace settings 里加:{files.watcherExclude: {**/node_modules/**: true,**/dist/**: true,**/build/**: true,**/.git/**: true,**/coverage/**: true,**/tmp/**: true,**/*.log: true},search.exclude: {**/node_modules/**: true,**/dist/**: true,**/build/**: true,**/coverage/**: true,**/tmp/**: true}}这不是解决所有问题.但能减少 VS Code 在大目录里反复监控和搜索.尤其是:node_modulesdistbuildcoverage日志目录临时目录这些目录没必要让 agent 和 VS Code 一直盯着.8.CPU再跑满时怎么定位任务管理器只能看到一个大概.比如:Visual Studio Code (71)这时候你很难知道到底是:extension hosttsservergoplsgitwebviewterminal某个 dev server某个 agent更适合的方法是:VS Code - Developer: Open Process Explorer打开后按 CPU 排序.这样更容易看到是哪个 extension、哪个 renderer、哪个 language server 在吃 CPU.如果发现是某个语言服务一直高占用,就去看对应项目.如果发现是 extension host 高占用,就考虑关闭不必要扩展.如果发现是 dev server,就停掉不用的服务.9.我现在会怎么配置如果我就是要同时跑 4 到 5 个 agent,我会这样配置:1. 主 VS Code 只保留一个窗口2. 4 个 agent 用 Windows Terminal 跑3. 每个 agent 一个项目目录4. 同一个 repo 多 agent 时用 git worktree5. VS Code 用 multi-root workspace 看代码和 Git diff6. 插件模式只保留 1-2 个需要强交互的 agent7. 不用的 dev server 关掉8. 给 agent 降优先级或绑核9. CPU 异常时用 Process Explorer 定位也就是:高并发任务交给 CLI.强交互体验交给 VS Code 插件.看代码和 Git diff 交给一个 multi-root workspace.这样 9700X 当然还是会忙.但桌面不会那么容易被拖死.10.总结这次问题的核心不是:9700X 不行.也不是:Codex 或 Claude 在本地跑大模型推理.更准确地说是:多个 agent 同时驱动本地开发工具链.VS Code 插件模式又叠加了 extension host、webview、watcher、language server.dev server 和 Git refresh 再一起触发.所以 CPU 跑到 100% 并不奇怪.我现在会先记住这句话:Agent 不是聊天窗口,而是会动本地工程的自动化进程.高并发跑法要换思路:少开完整 VS Code 窗口.多用 CLI agent.用 multi-root workspace 看代码.用 git worktree 隔离同仓库任务.停掉不用的 dev server.用 Process Explorer 定位真正吃 CPU 的进程.

相关新闻

告别打码平台!Python + ddddocr 实现验证码全自动识别(滑块/文字/点选)实战

告别打码平台!Python + ddddocr 实现验证码全自动识别(滑块/文字/点选)实战

2026/9/7 1:01:46

摘要:在爬虫开发中,验证码一直是绕不开的坎。以前我们要么手动识别,要么花钱接打码平台API。随着深度学习模型的轻量化,本地OCR识别已经成为主流方案。本文将以 ddddocr 为核心,从原理到实战,手把手教你搭建…

ResNet-18/34/50/101/152 模型部署:PyTorch 转 ONNX 再转 TensorRT 的 5 步优化

ResNet-18/34/50/101/152 模型部署:PyTorch 转 ONNX 再转 TensorRT 的 5 步优化

2026/8/23 0:50:17

ResNet-18/34/50/101/152 工业级部署实战:从PyTorch到TensorRT的5步性能优化在计算机视觉领域,ResNet系列模型作为里程碑式的架构,至今仍是许多工业场景的首选基准模型。但当我们将实验室训练的模型部署到实际生产环境时,往往会遇…

谷歌旧将 Nick Desaulniers 重返,提交补丁助力 Linux 内核发展

谷歌旧将 Nick Desaulniers 重返,提交补丁助力 Linux 内核发展

2026/8/23 0:50:17

Nick Desaulniers 回归:Linux 内核贡献者的“二进宫” 曾是 Linux 内核 LLVM 支持维护者的 Nick Desaulniers,在 2025 年 2 月离开谷歌加入特斯拉后停止了对 Linux 内核的贡献。如今,他重返谷歌,并宣布再次为 Linux 内核做贡献。此…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/28 4:08:17

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/28 16:01:49

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/28 2:15:29

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/28 3:14:54

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/28 3:58:00

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/28 3:47:14

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/28 16:01:48

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/28 5:05:21

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/28 16:01:48

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…