我让两个AI互相打配合:一个管调度,一个写代码
Hermes Agent 在 NAS 上跑着,远程调用我笔记本上的 Claude Code 写代码。中间隔着一层 Tailscale VPN,一段 SSH 隧道,和一个把我折腾了一晚上的脚本。最后效果:我在 NAS 上敲一行命令,笔记本上的 AI 就开始吭哧吭哧改代码,改完自动同步回来。
先说说为啥要这么大费周章
以前我写代码的模式是这样的:打开 Hermes Agent(跑在 NAS 上),跟它描述一个需求,它分析一圈,告诉我"建议用 Claude Code 来处理这个编码任务"——然后就没然后了。我得手动把代码文件复制出来,粘贴给 Claude Code,等它跑完,再把改好的文件复制回去。
这个过程说多烦有多烦。一次两次还好,一天十几次的时候你就开始想骂人了。复制漏了一行?缩进乱码了?改到一半发现忘了把某个文件拷过去?这些都是家常便饭。
更大的问题是,我的代码仓库在 NAS 上——那是所有项目的"家",版本管理、备份、部署都在那边。Claude Code 虽然好用,但它得在本地(笔记本上)跑。这就意味着我必须在大脑里维护一个"NAS 版"和"笔记本版"的同步状态。时间一长,连自己都搞不清哪个版本是最新的。
次数一多,你就开始琢磨了:同样是 AI,为什么不能让它们互相沟通?Hermes Agent 负责分析需求和调度,Claude Code 负责实际写代码,我负责在中间躺着看结果。
硬件基础:NAS + 笔记本 = 穷人的开发集群
- NAS(Linux 系统):跑着 Hermes Agent,7x24小时在线,所有项目代码都在这上面
- Windows 笔记本:本地装了 Claude Code,承担实际编码工作
- Tailscale VPN:把两台设备连在同一个虚拟局域网里
听起来挺像那么回事?其实就是一台 NAS 和一台旧笔记本,中间拉了条虚拟网线。没有昂贵的云 GPU,没有企业级的 CI/CD 管线——两个家用设备,硬生生搓出了一个 AI 协同开发流水线。
选择这套方案的核心原因就一个:代码仓库在我手里。不用把代码传到任何第三方服务器,所有数据在自家设备之间流动。
完整流程
第一步:把项目复制到笔记本。 NAS 上的代码打个包整个传过去。如果直接在 NAS 上让 Claude Code 操作,延迟和网络稳定性都不可接受。本地操作,本地速度。
第二步:生成任务指令。 告诉笔记本上的 Claude Code 要干什么活。这一步我踩了本文最大的一个坑,后面细说。
第三步:远程执行。 连上笔记本,让它开工。这一步就是纯等待——我到厨房倒杯水,回来活已经干完了。
第四步:把结果拉回来。 Claude Code 改完的代码自动传回 NAS。版本管理、部署全部基于 NAS 上的版本,不担心不同步。
整个过程封装成一个脚本,我只需要敲一行命令。
大坑:Windows 的引号地狱
如果你觉得一切都很顺利,那是我骗你的。真正让我卡了一晚上的,是一个特别蠢的问题。
一开始的设想很简单:SSH 过去,直接运行一条命令就行了。结果各种报错,Claude Code 收到的参数全是乱码。查了两个小时才反应过来——Windows 的命令行和 Linux 的 shell 对引号的处理完全不一样。
这就是跨平台开发的经典噩梦。你在 Linux 上写的命令,通过 SSH 传到 Windows 上,中间经过的每一层都可能对引号和特殊字符做"额外处理"。最终 Claude Code 收到的根本不是我想传的指令。
解决办法也很土——绕开直接传参。先动态生成一个批处理文件,把任务描述写死在文件里,然后把文件传过去再执行。这样引号从头到尾都在同一个文件里,不会被层层转义。
就这一个小改动,前后折腾了四个小时。解决之后回头看觉得特别简单,但踩坑的过程中你无数次怀疑自己:是不是方向就不对?是不是有更优雅的方案我没找到?后来想通了。跨平台的问题,很多时候没有优雅的解法,"土"就是最优雅的——能解决问题就行。
效果怎么样?
跑通之后,开发体验提升了一个档次。举几个实际场景:
改功能。 项目上线后要加个新特性。跟 Hermes 说"这个需求派给 Claude Code 处理一下",去倒杯水。回来的时候代码已经改好了,NAS 上的项目已经是最新版本。
修 bug。 从发现 bug 到 AI 改完代码,前后不到十分钟——其中八分钟是 AI 在分析代码和写代码,我只花两分钟描述问题和验收结果。
重构。 把一个模块从 A 模式改成 B 模式,涉及几十个文件。手动改会疯掉,但 Claude Code 最擅长的就是这种全局替换加逻辑调整的活。
最让我意外的是,这套方案反而比直接在笔记本上开发更符合我的工作流——因为代码仓库在 NAS 上,所有部署、备份、版本管理都在那边。Claude Code 只是"借调"过来干活的,干完活代码回到 NAS,干干净净。以前那种"改完了一拍脑袋,哎我笔记本上的版本和 NAS 上的版本是不是不一样了"的焦虑完全消失了。
横向对比
手动复制粘贴: 每次 5-10 分钟,还可能漏改、缩进乱、少文件。最可怕的是改完忘了同步回去,第二天发现 NAS 上还是旧代码。
Claude Code 本地: 又快又准,但代码得先同步到本地。你永远在跑"同步-改-同步回去"的循环。一次两次没问题,一天十次就烦了。
远程调度(我的方案): 一句命令全自动,改完自动回传。不需要脑内维护两个版本的同步状态。
核心差异不在技术,而在"AI 能不能主动触达你的代码"。本地用 AI 写代码,你是"把代码带给 AI";远程调度,你是"把 AI 派到代码面前"。后者才是真正的"AI 助理"。
认知升维:AI 编程的终极形态不是对话,是授权
大部分人用 AI 编程的方式还停留在"对话"阶段——打开聊天窗口,描述问题,AI 给你一段代码,你手动贴进去,跑一下看看行不行,不行再问一轮。
这不叫 AI 编程,这叫"用 AI 的搜索引擎"。你本质上还是在做复制粘贴的体力活,AI 只是帮你减少了一点搜索时间。
真正的变化发生在你让 AI 直接操作你的文件系统的那一刻。当 AI 可以直接读写你的代码文件、可以跑测试、可以检查结果,它才真正从一个"建议者"变成了"助理"。
这个转变的关键不在于技术有多复杂——实际上把文件权限给出去是最简单的一步。真正的难点在于你敢不敢放权。
Claude Code 有一个参数名字特别吓人,打开之后 AI 可以直接修改你的文件,不会再问你"我可以改这个文件吗"。第一次用的时候我全程盯着终端输出,手心冒汗,生怕它把我整个项目目录删了。
但跑了十几次之后,我开始放心了。不是因为我信任某个具体的工具,而是因为我明白了:AI 的错误模式和人类的错误模式不一样。人类会在你完全没想到的地方犯错,AI 的错误通常可预测、可回滚。而且代码有版本管理,大不了回退。
现在我感觉自己像是在管理一个开发团队:一个 AI 是项目经理,负责理解需求、拆解任务、分派工作;另一个 AI 是主程,到手就吭哧吭哧写代码;我扮演产品经理,提需求、验收结果。各司其职,谁也不抢谁的活。
这套方案适合谁?
适合你,如果:
- 你有两台设备,一台在线做调度,另一台有 GPU 做算力输出
- 你的代码仓库在远程服务器或 NAS 上,而不是本地
- 你经常需要 AI 帮你写代码、改代码、重构
- 你对数据隐私有要求,不希望代码传到第三方服务器
- 你愿意花几个小时折腾一次,换来长期的自动化收益
不太适合,如果:
- 你所有开发都在一台机器上完成
- 你觉得直接复制粘贴给 AI 聊天窗口已经够用了
- 你不想折腾跨平台的兼容问题
- 你更看重开箱即用,对"先配环境再干活"没有耐心
这套方案不是给所有人准备的。但一旦跑通,那种"AI 自动流"的体验,真的会上瘾。
最后说两句
在小县城做技术,很多外面看起来很光鲜的东西其实都够不着。没有大厂的 GPU 集群,没有专门的 DevOps 团队给你搭环境,连完整的 CI/CD 管线都是自己拿脚本凑的。
但反过来想,恰恰是因为资源有限,才会去琢磨"怎么用更少的东西做更多的事"。NAS 加旧笔记本的组合,硬是跑出了分布式 AI 开发的效果。两个 AI 协作干活的时候,我看着终端里的日志一行一行地滚过去——这个在分析代码,那个在写新文件,然后互相通知"搞定了"——就好像你同时在两个不同城市各请了一个远程员工,他们彼此不认识但配合默契,而你只需要说一声"今天把这个做了"。
这大概就是技术最本真的乐趣——不是你拥有什么,而是你能用你拥有的东西做些什么。
💬 你会让 AI 直接操作你的代码文件吗?还是更习惯把代码复制粘贴给 AI?你现在的开发流程里,AI 扮演什么角色?评论区聊聊。
三虫君 · 每天一篇技术精选 · 关注获取更多
🤖 本文由 AI 辅助创作,经人工编辑审核发布
夜雨聆风