DEVELOPER · HOMELAB · MCP

阑夜行
三台电脑,一个集群

我是 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.

3实体节点 · 2 种操作系统
13 TB集群总存储
72 GB集群总内存
0对外开放的入站端口
01 · ARCHITECTURE

大致结构:五层,一个入口

编排层只认识一个地址。请求带着 machine 参数进入边缘网关,鉴权后沿各自的加密隧道落到目标节点;节点之间再通过内网互相取数、交接产物。

编排层接入层传输层执行层数据层 内网 内网 AI 编排层 拆解任务 · 选节点 · 汇总验收 边缘聚合网关 鉴权 · 按 machine 路由 · 在线探测 HTTPS + Bearer 隧道 A隧道 B隧道 C ETHANRTX 3070 Ti · 32 GB算力与存储中枢Windows 11 LENOVO22 线程 · 32 GB并行执行与机动Windows · ThinkBook XIAOMIArch Linux · 常驻值守与调度systemd · linger Git 仓库 · 共享任务目录 · 产物与日志 —— 所有交接都落成文件,可追溯、可重放
LAYER 1编排层

理解需求、拆成子任务,按「能力标签」挑节点,最后汇总结果并验收。它不直接碰硬件,只发 MCP 调用。

LAYER 2接入层

边缘聚合网关:单一入口、统一鉴权,把一份工具清单扩展成「同一套工具 × 三台机器」,并提供节点在线探测。

LAYER 3传输层

每台机器一条出站加密隧道,令牌逐跳隔离;机器不开任何入站端口,换网络、出门在外也照样在线。

LAYER 4执行层

三台节点上的 MCP 服务:读写文件、执行命令、管理进程。Windows 走 PowerShell,Linux 走 bash,开机或登录即自启。

LAYER 5数据层

Git 与共享目录承载任务单、中间产物和日志。Agent 之间不靠「记忆」交接,而靠可检查的文件。

02 · NODE STRENGTHS

扬长避短:每台机器只干最擅长的

三台机器的硬件差异很大。与其让每台都「什么都干一点」,不如按长板给它们定岗:重算力归台式机,高并发归新笔记本,长时间值守归 Linux 小机器。

NODE 01 · WINDOWS 11 · DESKTOP

ETHAN

算力与存储中枢
CPUi5-12490F · 6C / 12T
GPURTX 3070 Ti
内存32 GB
存储≈ 13 TB
供电市电常开
GPU 推理
存储容量
并发线程
  • 本地大模型推理、向量化(Ollama + CUDA)
  • 图像与多媒体处理、批量转码
  • 大数据集、模型权重与归档仓库
  • 部署中枢:网关代码、发布与构建工具
NODE 02 · WINDOWS · THINKBOOK

LENOVO

并行执行与机动节点
CPUCore Ultra 7 155H · 16C / 22T
GPUIntel Arc 核显
内存32 GB
存储≈ 950 GB
供电电池 · 可随身
并发线程
机动性
GPU 推理
  • 多任务并行:编译、测试、批量脚本
  • 浏览器自动化与网页抓取
  • Windows 侧兼容性验证
  • 出门在外的「随身集群」入口
NODE 03 · ARCH · OMARCHY

XIAOMI

值守、调度与 Linux 原生
CPUSkylake-U 低压
GPUGeForce 940MX
内存≈ 8 GB
存储237 GB SSD
在线连续运行 12 天+
持续在线
Linux 原生
重计算
  • 定时任务、队列与心跳监控
  • 轻量常驻服务(Docker 容器、Webhook)
  • Linux 原生工具链与脚本
  • 小模型兜底推理,主节点离线时接管
03 · ROUTING

任务路由:按能力标签派单

编排层不按「哪台空闲」派单,而是先看任务需要什么能力,再看节点是否在线;主节点不可用时自动降级到备选。

任务类型需要的能力首选备选
本地 LLM 推理 / 向量化GPU 显存ETHANXIAOMI 小模型
图像、视频批处理GPU + 大容量存储ETHAN排队等待
编译、测试、批量脚本多核并发LENOVOETHAN
网页抓取、浏览器自动化并发 + 图形环境LENOVOETHAN
定时任务、监控、Webhook7×24 在线XIAOMIETHAN
Linux 工具链、容器原生 LinuxXIAOMIETHAN WSL
数据归档、模型权重存储容量ETHAN—
04 · SWARM

集群作业:长板如何接力

以一次典型的「资料调研 → 生成内容 → 发布」任务为例:编排层拆单,三台机器各接一段,产物以文件形式交接,最后由另一台机器交叉验收。

拆解

编排层把需求拆成子任务,写入共享任务单,标注每段需要的能力。

编排层

采集

多路并行抓取网页与资料,清洗成结构化文本落盘。

LENOVO

生成

本地模型做摘要、向量化与配图生成,大文件直接存在本机。

ETHAN

验收

跑校验脚本与回归检查,结果写回任务单;不过关就打回重做。

XIAOMI

交付

合并产物、提交 Git、触发发布;值守节点持续监控上线状态。

全体

扇出 / 汇聚FAN-OUT · FAN-IN

同一类任务切成多份,同时派给多台机器,完成后由编排层合并。适合批量抓取、批量处理。

流水线接力PIPELINE

上一段的输出就是下一段的输入:采集 → 生成 → 验收。每台机器只做自己最快的那一段。

采集生成验收

交叉验收MAKER · CHECKER

「做」和「验」分在不同机器、不同 Agent 上,避免自己检查自己。验收不过的产物会带着原因退回。

MakerChecker产物通过 / 退回

值守与接管WATCHDOG · FAILOVER

常驻节点定时探测其他节点;某台离线或卡住时,任务按路由表降级到备选节点继续跑。

值守主节点备选接管
零入站端口

全部走出站隧道,家里路由器不做任何端口映射。

令牌逐跳隔离

入口一把钥匙、节点各一把,任何一段泄露都不连坐。

开机即上线

计划任务与 systemd 用户服务自启,断电重启后自动回归集群。

一切可追溯

任务单、产物、日志都落成文件,出了问题能回放每一步。

05 · STACK

用到的东西

全部基于开放协议与免费基础设施。

Model Context ProtocolDesktop CommanderStreamable HTTPCloudflare WorkersCloudflare TunnelTailscaleOllama + CUDADockerWSLsystemdPowerShellNode.jsPythonGitHyprland