乐于分享
好东西不私藏

土法炼钢:用Codex把家里的5台电脑,连成了一个本地分布式 Agent 自动协同系统

土法炼钢:用Codex把家里的5台电脑,连成了一个本地分布式 Agent 自动协同系统

继续更新四十老登死磕AI。

过去一段时间,我一直在折腾 Agent。最早是在 OpenClaw 里训练小龙虾干活,后来引入 Codex 做工程治理,再后来我给这些 Agent 在电脑里建了统一的办公室,里面有工单,有知识库,有工具,有审计,有交付区。

这几天,我又瞎搞出一个新东西:把家里的几台电脑连在一起,搭成了一个很朴素的本地 Agent 算力中心,让另外4台电脑的agent都到一台主力电脑里上班。

土法手搓了一个家庭作坊版 AI 工厂:

一台主电脑负责总控几台工人电脑负责干活共享文件夹负责发工单、收结果每台电脑本地跑自己的任务最后统一回传、验收、合并

我最开始,一直需要在各个电脑间来回传文件,实在是感到不胜其烦,于是让codex帮我在本地做了一套SMB,让5台电脑可以共享文件夹。这个东西做好以后,有一次一台电脑上的codex的API被我搞坏了,我肯定是修不好的,就让另一台电脑的codex远程来修,它搞的很快,跟自己本地文件比对一下,分分钟修好。

这给了我一个很大的启发,我都把路都修好了,是不是可以让它们一起协同干活?共享文件夹只是最低层的通道,完全没有被利用起来。于是就有了这篇文章。我会分3个部分介绍,第一部分介绍这套系统的基本结构。第二部分介绍它到底有多爽。第三部分是攻略。

一 、基本架构

如下图所示。

第一层,是路由器和固定 IP。

这层解决的是:每台电脑在家里的局域网里有一个稳定身份。否则今天这台电脑是 192.168.XX.11,明天变成 192.168.XX.18,访问路径、诊断命令、共享配置都会变得很混乱。固定 IP 不一定每天都会用到,但它像给每台电脑发了一个长期工牌。出问题时,我至少知道应该找谁。

第二层,是 SMB 文件共享。

这层解决的是:几台电脑能看到同一个工作区。主电脑上有一个共享目录,里面有工单、清单、工具、回传区、协调区。工人电脑可以进自己的房间领任务,也可以把结果交回去。SMB 本身并不神奇,它只是“大家能走进同一栋楼”的入口。但没有这一层,就没有后面的协作。

第三层,是远程控制。

这个是给我用的,因为我不只是让其他电脑能访问主电脑,我自己也能从主电脑直接操作其他电脑。对我这个人类来说,五台电脑开始像一台电脑的五个工作区。我坐在主电脑前,就能切到任意一台工人电脑上看进度、点确认、处理弹窗、查看日志。否则多电脑协作会很累,你得在几台机器之间来回跑。

第四层,是 Codex 的协同。

前面三层只是把机器连起来。真正让它变成一个小型智能组织的,是 Codex 在每台电脑上都有自己的工作身份、工单、协调区和回传规则。主电脑上的 Codex 做总控,工人电脑上的 Codex 按单执行,审计 Codex 做只读复核,Mac 上的 Codex 还能从异构环境角度发现问题。

第五层,是业务组织。

前面4层都是基础设施。这一层不关心电脑怎么连,也不关心共享路径怎么写。它的本质又回到了harness Engineering,又回到了商业世界:怎么让agent按照你的商业理解,高质量的干活。

二、爽在哪里?

对于我的工作来说,最爽的一点是,原来2个月工期的项目,现在可以缩短为2周。

其次,就是非常有序,非常清晰。以前我开一个窗口,盯着一个 Agent 跑任务,它卡住了,我也跟着卡住;它在处理慢任务,我就只能等。现在不一样了。主电脑像一个总控台,几台工人电脑各自领单,本地开工,做完回传。我这边不用一直盯着某一个窗口,只要看账本、看回传、看审计结论,就知道整个系统跑到哪一步了。一个电脑慢,不妨碍其他电脑继续推进。

还有一种爽,是五台电脑真的变成了一台电脑。但它又不是传统意义上的一台超级电脑。这根本不是“几台电脑能共享文件夹”,共享文件夹只是最低层的通道,它也不是性能简单叠加,而是任务能力叠加。以前一台电脑,跑2个长任务就不错了,现在五台电脑至少可以清爽的同时跑五条线。我睡觉前把工单发出去,醒来以后,系统已经往前推了一大截。

更重要的是,不用我做信息同步和agent管理,这真是把我彻底从无尽的任务中解脱了出来。我设置了一个主机电脑和工人电脑的沟通专区,工人电脑上的 Codex 遇到问题,可以直接把反馈写回主电脑的协调区;主电脑上的 Codex 也可以直接给它回复。很多时候,它们之间已经能自己完成“发现问题、解释问题、修正工单、确认边界”的沟通。我这个人类不需要站在中间一条一条转述,只需要在总控台上和主控 Codex 讨论架构、节奏和决策。

这种体验非常像一个可以自己进行日常运转的小公司。更有意思的是,四台工人电脑处理同类任务时,给出的反馈并不一样。以前我在一台电脑上折腾,只能得到一种反馈。现在同一个系统被四种环境同时摩擦,盲区一下子少了很多。很多流程问题,不是我坐在主电脑前凭空能想出来的,而是工人电脑真实跑一遍、卡一下、留言回来,才被发现。

最后,用远程控制也非常爽。我装的是UU远程,我坐在主电脑前,随时可以切到家里任何一台电脑上操作。主电脑是总控台,其他电脑是四个工位。我可以在主电脑上看账本、派工单,也可以随时远程过去看某台工人电脑跑到哪一步、有没有卡住、日志是什么状态。

下图是我主机电脑竖屏显示器,可以同时操作3台电脑,可以跨设备复制粘贴,可以传文件(但是没有我走SMB方便)

三、详细攻略

第一步,先选一台主电脑

多电脑协作的第一件事,不是看哪台电脑最强,而是先确定谁当“总控”。

我的理解是,主电脑不一定要性能最强,但一定要最稳定:

  • 文件最完整;

  • 硬盘空间最大;

  • 最常开机;

  • 网络最稳定;

  • 你最常操作;

  • 所有任务最终都能回到这里。

主电脑的职责不是亲自干所有活,而是负责发工单、收结果、维护账本、做验收。

这一步对我很重要。以前我总是让一个 Agent 既规划、又执行、又复盘、又修自己,结果很容易变成一锅粥。后来才意识到,一个系统要跑起来,必须先有总控。

第二步,路由器固定地址,让每台电脑有稳定身份

做好网络地基。

如果几台电脑今天一个地址、明天一个地址,那么后面所有共享路径、远程访问、网络诊断都会变得很混乱。做法很朴素:

  1. 所有电脑连到同一个路由器。

  2. 在路由器后台给每台电脑绑定固定 IP。

  3. 给每台电脑起一个容易识别的名字。

  4. 记录一张设备表。

比如:

主电脑:192.168.3.100电脑A:192.168.3.101电脑B:192.168.3.102电脑C:192.168.3.103电脑D:192.168.3.104

固定 IP 的价值不一定是每天都用它打开文件夹,而是出问题时能精准诊断。

比如某台电脑访问不了主电脑,你至少知道要测试的是哪一个地址;如果主机名访问有问题,也可以用 IP 判断到底是名字解析问题,还是网络本身不通。

这一层的目标不是“高级网络配置”,而是让每台电脑有工牌。

没有固定身份,就没有稳定协作。

这一层还要注意一个坑:如果家里用的是子母路由或 Mesh 路由,几台电脑虽然看起来在同一个 Wi-Fi 下,但可能挂在不同节点上。正常情况下它们应该互通,但现实里偶尔会出现节点之间互访异常。

所以如果主电脑长期承担共享服务器角色,最好接网线。至少要保证主电脑和工人电脑之间能稳定互相访问。

第三步:SMB 共享工作区,让几台电脑走进同一栋楼

第二步解决“电脑能找到彼此”。第三步解决“电脑能一起工作”。

这里用的是 SMB 文件共享。简单说,就是在主电脑上建一个共享工作区,让其他电脑都能访问。

这个工作区不只是一个文件夹,而是整套系统的办公楼。

我在主电脑上建类似这样的目录:

AI_FACTORY/  00_incoming/  01_working/  04_outputs/  06_tools/  08_worker_rooms/  09_host_office/  _manifests/  _logs/

这一步最重要的不是目录叫什么,而是把混乱的文件变成有组织的空间。

然后给每台工人电脑建房间(以我为例):

08_worker_rooms/  Computer-A/  Computer-B/  Computer-C/

每个房间里放(以我为例):

ROOM.mdjobs/queued_jobs/coordination/

这一层的核心不是“大家都能看同一个文件夹”,而是:

每台电脑都有自己的工位。每个任务都有自己的工单。每个结果都有自己的回传位置。

共享文件夹只是地板。真正有价值的是在地板上搭出办公室、工位、工单和交付区。

第四步:UU 远程统一操控,让五台电脑像一台电脑

有了 SMB,电脑之间可以互相访问文件。但对人来说,还不够爽。

如果每次要看某台电脑跑到哪一步,都要走到那台电脑前面,或者切显示器、换键盘,这个系统很快就会变得很累。

所以第三层是远程控制。

我用的是 UU 远程。装好以后,我坐在主电脑前,就可以直接操作其他几台电脑。

这带来的变化非常大。

以前五台电脑是五台散落的机器。现在它们像是一台大电脑上的五个工作区:

主电脑:看总账、派单、收结果电脑A:跑一个长任务电脑B:跑另一个长任务电脑C:做异构适配和任务处理电脑D:做测试或轻任务

我不用在几台机器之间来回跑。我可以在主电脑上直接切过去:

  • 看工人电脑有没有卡住;

  • 看日志跑到哪一步;

  • 处理弹窗;

  • 确认本地缓存有没有建好;

  • 检查结果有没有回传。

这层的价值是让人类从“多电脑搬运工”变成“总控台操作员”。

没有远程控制,多电脑协作很容易变成体力活。有了远程控制,几台电脑才真的像一个操作平面上的多个工位。

这一层还有一个隐藏好处:当某台电脑上的 Codex 遇到问题,你可以直接远程过去看它的现场,而不是靠它转述。很多问题看一眼就知道卡在哪里。

所以第三层解决的是:

机器可以分布,人类操作必须集中。

第五步:Codex 极致协同,让电脑开始像一个小公司

前面搭完,电脑已经连起来了,人也能统一操控了。但真正让这套系统产生质变的,是Codex 协同。

也就是说,每台电脑上都有自己的 Codex,每个 Codex 都不是随便乱干,而是有角色、有工单、有边界、有回传。

主电脑上的 Codex 负责总控:

  • 设计流程;

  • 切任务;

  • 派工单;

  • 回收结果;

  • 维护账本;

  • 判断下一步。

工人电脑上的 Codex 负责执行:

  • 进入自己的房间;

  • 读取 ROOM.md 和 WORK_ORDER.md;

  • 只处理自己的任务;

  • 把文件缓存到本地;

  • 本地执行长任务;

  • 完成后回传结果;

  • 遇到问题写到协调区。

审计 Codex 负责复核:

  • 工单能不能启动;

  • 结果能不能合并;

  • 文档有没有旧口径;

  • 路径和字段有没有冲突;

  • 工人电脑按说明能不能走通。

这就是为什么我说,本地互联绝对不只是共享文件夹。

如果只是共享文件夹,那只是大家能看到同一个柜子。如果只是多开几个 Agent,那只是多找几个人打零工。真正关键的是:它们有共同的工作空间、清晰的职责边界、统一的工单格式、可回传的结果、可审计的流程。

这里有个关键配置,让工人电脑上的 Codex 和主电脑上的 Codex 可以通过共享工作区里的协调区沟通。

比如工人电脑发现一个问题,它不是只在自己的窗口里说一句“我失败了”,而是把诊断写回自己的 coordination。主电脑的总控可以看到,审计也可以看到。问题就不再是一个孤立窗口里的事故,而变成整个系统可见的信号。

这带来的协同感非常强。

以前我和一个 Agent 卡住,就是两个人卡住。现在某台电脑卡住,它会反过来帮助我发现系统设计里的问题:

  • 工单是不是没写清楚?

  • 路径是不是有歧义?

  • 任务是不是太大?

  • 本地缓存是不是没做好?

  • Mac 和 Windows 的执行方式是不是不同?

  • 回传格式是不是缺字段?

于是每一次卡顿,都变成一次系统改进。

第五步真正解决的是:

电脑不只是被远程操控,而是开始有组织地协作。

这五层叠起来,会发生什么

把上面2-5这四层叠起来,效果如下:

固定 IP:让每台电脑有稳定身份SMB:让几台电脑共享同一个工作区UU 远程:让人类能统一操控所有电脑Codex 协同:让每台电脑变成可分工的 Agent 工位

这时候,家里的几台电脑就不再只是几台电脑。

它们开始像一个小型协同组织:

  • 有主控;

  • 有工人;

  • 有工单;

  • 有账本;

  • 有审计;

  • 有留言区;

  • 有回传区;

  • 有待办区;

  • 有归档区。

我最爽的地方也在这里。

晚上睡觉前,我可以把工单发出去。几台电脑各自领任务、本地处理、回传结果。第二天醒来,我不是从零开始,而是看哪些完成了,哪些失败了,哪些需要补跑,哪些可以进入下一步。

这不是“我多了几台电脑”那么简单。

这是我第一次感觉自己拥有了一套可以无人值守推进任务的本地智能生产系统。

新手最容易踩的坑

最后,总结几个我踩出来的坑。

第一,不要一开始就全自动。先让流程能跑通,再谈自动化。

第二,不要让多台电脑同时写同一个结果文件。每台电脑必须有自己的输出目录。

第三,不要让工人电脑长期直接读写共享盘。长任务要本地缓存,本地运行,最后回传。

第四,Agent 说完成了不算完成。能被主电脑验收,才算完成。

第五,旧文档要及时归档。多 Agent 协作最大的风险之一,是新 session 读到旧规则。

第六,审计不要只打勾。审计要能发现总控没列出来的问题。

第七,主电脑不要被长任务占死。主电脑最重要的职责是总控,不是亲自干所有活。

第八,不要为了显得专业而过度工程化。流程必须从真实问题里长出来,用不到的脚手架要及时收掉。

结尾:不是共享文件夹,是本地 Agent 协同系统

Codex说这相当于用土法炼制了一个家庭版 Airflow + Jenkins +DAM / MAM+ Agent 公司。这一堆单词我只认识1个。不过从业务的角度来说,我觉得还是很有收获的。我现在家里的电脑,某种意义上已经变成了一组无人值守的 Agent 工位。它们晚上也可以跑,早上我只看结果。

如果把这个思路放到公司里,可能也有想象空间。因为有人值守的电脑,其实也需要 Agent 帮忙处理一些底层的流程啊、跑数据啊、工单啊这些东西。很多时候,人都是活在流程里面的。当然,公司场景必须比家庭场景更谨慎。权限、数据安全、员工隐私、审计日志、任务边界都要先设计好。不能让 Agent 随便翻每个人的电脑,也不能影响员工正常工作。但在受控的工作区里,让一批电脑在空闲时间处理批量跑数据、传流程,这件事是有现实价值的。

相关学习资料