我是 Ethan,一个折腾开发基础设施的开发者。这是我的 homelab:用 MCP 把一台台式机、两台笔记本连成一个统一编排的 Agent 集群——每台机器只做自己最擅长的事,再像一个团队一样协作交付。
A three-machine developer homelab: one entry point, capability-based routing, and agents that split, hand off and verify each other's work.
编排层只认识一个地址。请求带着 machine 参数进入边缘网关,鉴权后沿各自的加密隧道落到目标节点;节点之间再通过内网互相取数、交接产物。
理解需求、拆成子任务,按「能力标签」挑节点,最后汇总结果并验收。它不直接碰硬件,只发 MCP 调用。
边缘聚合网关:单一入口、统一鉴权,把一份工具清单扩展成「同一套工具 × 三台机器」,并提供节点在线探测。
每台机器一条出站加密隧道,令牌逐跳隔离;机器不开任何入站端口,换网络、出门在外也照样在线。
三台节点上的 MCP 服务:读写文件、执行命令、管理进程。Windows 走 PowerShell,Linux 走 bash,开机或登录即自启。
Git 与共享目录承载任务单、中间产物和日志。Agent 之间不靠「记忆」交接,而靠可检查的文件。
三台机器的硬件差异很大。与其让每台都「什么都干一点」,不如按长板给它们定岗:重算力归台式机,高并发归新笔记本,长时间值守归 Linux 小机器。
编排层不按「哪台空闲」派单,而是先看任务需要什么能力,再看节点是否在线;主节点不可用时自动降级到备选。
| 任务类型 | 需要的能力 | 首选 | 备选 |
|---|---|---|---|
| 本地 LLM 推理 / 向量化 | GPU 显存 | ETHAN | XIAOMI 小模型 |
| 图像、视频批处理 | GPU + 大容量存储 | ETHAN | 排队等待 |
| 编译、测试、批量脚本 | 多核并发 | LENOVO | ETHAN |
| 网页抓取、浏览器自动化 | 并发 + 图形环境 | LENOVO | ETHAN |
| 定时任务、监控、Webhook | 7×24 在线 | XIAOMI | ETHAN |
| Linux 工具链、容器 | 原生 Linux | XIAOMI | ETHAN WSL |
| 数据归档、模型权重 | 存储容量 | ETHAN | — |
以一次典型的「资料调研 → 生成内容 → 发布」任务为例:编排层拆单,三台机器各接一段,产物以文件形式交接,最后由另一台机器交叉验收。
编排层把需求拆成子任务,写入共享任务单,标注每段需要的能力。
编排层多路并行抓取网页与资料,清洗成结构化文本落盘。
LENOVO本地模型做摘要、向量化与配图生成,大文件直接存在本机。
ETHAN跑校验脚本与回归检查,结果写回任务单;不过关就打回重做。
XIAOMI合并产物、提交 Git、触发发布;值守节点持续监控上线状态。
全体同一类任务切成多份,同时派给多台机器,完成后由编排层合并。适合批量抓取、批量处理。
上一段的输出就是下一段的输入:采集 → 生成 → 验收。每台机器只做自己最快的那一段。
「做」和「验」分在不同机器、不同 Agent 上,避免自己检查自己。验收不过的产物会带着原因退回。
常驻节点定时探测其他节点;某台离线或卡住时,任务按路由表降级到备选节点继续跑。
全部走出站隧道,家里路由器不做任何端口映射。
入口一把钥匙、节点各一把,任何一段泄露都不连坐。
计划任务与 systemd 用户服务自启,断电重启后自动回归集群。
任务单、产物、日志都落成文件,出了问题能回放每一步。
全部基于开放协议与免费基础设施。