从 0 到 1 打造 AI 提示流编排器:把 AI 引擎塞进华硕路由器!Merlin 插件与轻量边缘网关实战(开源系列 12)

一方面为了实测 PatchCat 在极端严苛资源下的轻量运行极限,另一方面源于作者长期折腾路由器插件的极客情怀。深度复盘如何将 AI 工作流编排引擎塞进华硕 RT-AX86U 路由器:纯 Go 打造 3MB 零依赖边缘网关,攻克板载 NAND 闪存磨损致命隐患,让家庭局域网秒变免 PC 常开的私有 AI 编排中枢。

Guo Qiang
Guo Qiang
Published in Guo Qiang · Sep 22, 2026

项目开源地址https://github.com/GuoBug/PatchCat
在线体验https://guobug.github.io/PatchCat/
往期回顾
📖 《从 0 到 1 打造 AI 提示流编排器:给大模型装上手和脚!Agent 节点与 Tools 工具调用体系设计与实战(开源系列 09)》
📖 《从 0 到 1 打造 AI 提示流编排器:酒香也怕巷子深,如何让用户真正接受产品?空白画布引导与场景模板实践(开源系列 10)》
📖 《从 0 到 1 打造 AI 提示流编排器:鞋里有沙走不远,怎么让画布连线真正顺手?(开源系列 11)》


把 AI 引擎塞进路由器:Merlin 插件与轻量边缘网关

一、 为什么要把 AI 编排引擎塞进路由器?

在上一篇关于画布工效学的文章里,我们花了不少心思打磨连线防碰撞与撤销重做。但在项目演进的过程中,我和身边的极客朋友始终面临一个很实际的现实矛盾:

大家都很想要一个 7x24 小时随时待命的私有 AI 工作流中枢。

比如,你写好了一个自动监控行业动态并生成简报的工作流,或者搭好了一个随时可以在手机上查阅资料的客服 Agent。但现实是:

  • 云服务器太贵太重:主流开源编排框架(如 Dify、Langflow)动辄需要起一套庞大的 Docker Compose,挂着 PostgreSQL、Redis 和 Celery,没有一台 4G/8G 内存的云主机根本跑不起来,每个月几十上百的月租对于个人玩家而言是不小的开销;
  • PC 本地常开太累:在自己的开发机上跑当然省钱,可一旦笔记本合盖或者台式机休眠,正在运行的服务和外链 API 瞬间断线。

这时候,我把目光投向了家里弱电箱里那个常年插着电、默默工作的千兆路由器——华硕 RT-AX86U

促成这次移植尝试,核心源于两大驱动力:

  1. 其一,为了验证 PatchCat 到底有多“轻”
    我们从第一天起就确立了 100% 纯前端 + 边缘优先(Local-First) 的架构路线,主打冷启动 <300ms、无后台数据库依赖。但这到底是不是“王婆卖瓜”?检验架构轻量性的最好试金石,不是动辄上百核的云服务器,而是算力有限、内存极度金贵的嵌入式边缘设备!
  2. 其二,自己骨子里就是个爱折腾路由器插件的老玩家
    从早年刷 OpenWrt、梅林固件(Asuswrt-Merlin),再到 Koolshare / Koolcenter 的软件中心,我平时就极其热衷于折腾各种路由固件与后台插件。如果能把大模型工作流直接打包成一个标准的路由器插件,让家里的千兆路由秒变本地 AI 调度中枢,这本身就是一件充满乐趣且极酷的事。

而且打个伏笔:虽然这样做非常拧巴,但是今天既然能塞进路由器,以后顺理成章,我也很想给家庭 NAS(群晖、威联通或极空间)做一套开箱即用的轻量套件。


二、 嵌入式边缘场景的工程权衡(Trade-offs)

想把应用搬上路由器,和在常规 Linux 服务器上跑程序有着天壤之别。路由器是一个对资源极度苛刻、甚至“碰一下就会烧芯片”的特殊环境。

在和 AI 伙伴结对推演架构方案时,我们迅速排除了传统方案,确立了必须跨越的四大硬核关卡:

路由器极端物理约束 vs 系统级工程破局方案

(一)选型权衡:彻底放弃 Python,重构 3MB 静态 Go 网关

PatchCat 原生拥有一套基于 FastAPI 的服务端实现。但在华硕路由器上,这套方案第一分钟就被判了死刑:

  • 路由器的系统基于精简版 Linux(Asuswrt),底层缺失完整的 glibc 和包管理器;
  • 哪怕想办法交叉编译一套 Python 运行时,解压后体积轻轻松松突破 150MB,足以把路由器的闪存撑爆;
  • Python 多进程常驻内存动辄 200MB+,一旦家庭网络突发大流量,路由器可能直接内存溢出(OOM)而断网死机。

最终决策
彻底放弃重型解释器,专门使用 Go 语言 编写了一个专为路由器定制的边缘网关(patchcat-server)。 利用 Go 卓越的跨平台交叉编译能力,剥离调试符号后,生成一个单一可执行二进制文件:

  • 静态无依赖编译CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o patchcat-server
  • 极限体积:未压缩二进制仅约 5.5MB,打成 .tar.gz 插件发布包后只有不到 3MB
  • 超低内存开销:常驻运行内存仅需 18MB ~ 25MB,对千兆路由器的日常转发性能完全零打扰。

三、 人机共创关键节点:攻克路由器 NAND 闪存磨损致命隐患

在这次移植攻坚中,最让我感到后怕也最体现人机协同价值的,是一个关于硬件寿命的深层技术隐患。

(一)致命隐患:别把昂贵的路由器写成了“板砖”

起初,我的直觉想法很简单:“既然要做持久化,就把历史数据和配置保存在路由器的 /jffs 分区呗,每次工作流执行完顺手写条日志。”

但在代码审查的关键节点上,AI 搭档立刻在系统底层敲响了警钟:

AI 提醒
“家用路由器的 /jffs 分区是焊死在主板上的 NAND Flash(闪存)。它的物理擦写寿命(P/E Cycles)非常有限(通常只有几万次甚至几千次)。
如果像常规服务器那样,在工作流调度过程中高频写入 SQLite 日志、更新节点快照,成百上千次的频繁小文件写入,极可能在几个月内把路由器的 NAND 闪存直接写废,导致整台路由器无法开机变砖!”

查阅华硕官方固件源码与 Asuswrt-Merlin 开发者维基后,我完全印证了这一判断——这是许多业余路由器脚本作者最容易踩爆的惊天大坑。

(二)双重防线:闪存磨损保护机制(Flash Wear-out Protection)

为了让大家用得安心,绝不损伤路由器硬件寿命,我们设计了极其严苛的内存优先防线

  1. 内存虚拟盘重定向(RAM Disk Redirect)
    所有运行期日志、Token 统计与调度状态,全部强制重定向到路由器的 /tmp/patchcat/ 内存目录。
    在 Asuswrt 架构下,/tmp 是纯内存挂载(tmpfs),读写速度高达每秒几百兆,且无论高频读写多少次,对底层物理闪存磨损为绝对的零
  2. 默认物理落盘熔断
    在网关配置中将持久化默认写死为 storage.enabled = false
  3. WebUI 醒目风险对齐
    在路由器的管理配置界面(Module_patchcat.asp)上,我们放置了非常醒目的安全提示:仅当用户插上外置 USB 移动硬盘并挂载到 /mnt 时,才允许开启持久化存储;如果检测到用户试图将落盘目录设为 /jffs,系统将直接弹出红色二次确认拦截!

通过严谨的硬件边界设防,我们彻底解除了极客玩家在路由器上玩大模型的后顾之忧。


四、 核心特性:路由器边缘网关带来了什么?

把 PatchCat 装进路由器,绝不只是为了“炫技”,它带来了极为实用的边缘级优势:

1. 天然消除跨域(CORS)与网络路由障碍

前端直接在浏览器调用海外大模型 API 时,经常受制于浏览器的 CORS 跨域策略,或者本地 PC 缺少透明代理环境。
现在,所有的 LLM 请求统一发往路由器本地网关:

POST http://192.168.50.1:8080/api/proxy/v1/chat/completions

路由器网关接收到请求后,直接在网络层转发,并原生建立 SSE(Server-Sent Events)长连接,将流式 Token 实时推回给前端画布。整个链路免除了客户端配代理的琐碎步骤。

2. 完美的 Koolcenter (ASUSGO) 插件规范兼容

我们完整遵循了华硕改版固件的插件标准目录结构:

  • patchcat/scripts/patchcat_config.sh:负责服务的启动、停止与开机 Daemon 注册;
  • patchcat/webs/Module_patchcat.asp:无缝嵌入华硕路由器管理后台(ROG / TUF 风格均适配),支持一键开关服务、修改端口号与查看实时运行状态;
  • patchcat/uninstall.sh:优雅卸载脚本,清理自启项与内存进程,不留垃圾文件。

五、 实机运行验证:千兆路由秒变 AI 中枢

在我的 ASUS RT-AX86U(固件:Asuswrt-Merlin 386.14)上,我们实机测试了完整的部署与编排流程:

# 1. 登录路由器后台执行离线安装
cd /tmp
tar -zxvf patchcat_merlin_arm64.tar.gz
sh /tmp/patchcat/install.sh

# 2. 查看后台守护进程状态
ps | grep patchcat-server
# 12480 admin  18432 S    /jffs/softcenter/bin/patchcat-server --port=8080

安装完成后,打开路由器后台的「软件中心」,可以看到绿色的 PatchCat 图标已就位。

在同一局域网下的任一台设备(无论我的主力 PC、iPad 还是 iPhone),直接在浏览器输入: http://192.168.50.1:8080

熟悉的 PatchCat 画布瞬间拉起!

  • 冷启动响应:页面由路由器本地静态托管,毫秒级直接渲染;
  • 并发拓扑调度:随手拖了一个三阶段客服分类与摘要工作流,点击运行,Gemini 与 DeepSeek 节点流式输出丝滑流畅;
  • 路由器负载表现:实测在并发运行工作流时,路由器博通 4 核 CPU 占用率仅在 1.2% ~ 2.8% 之间轻微波动,常驻内存占用仅仅只有 18.4 MB

这意味着,你甚至感觉不到它的存在,但家里的局域网内已经常驻了一个永不断线的 AI 编排大脑。


六、 总结与未来展望

回顾这次把 PatchCat 塞进路由器的折腾过程,是一次典型的 Product Engineer 双轨验证

  • 在底层:我们用极度克制的纯 Go 静态编译、严密的内存盘重定向与闪存磨损保护,在 500MB 内存的嵌入式设备上验证了 Local-First 确定性编排的极致轻量;
  • 在体验上:我们给极客用户保留了最简单的一键安装包与 Web 管理界面,无需敲击复杂命令即可让家庭网络拥有专属的 AI 工作流网关。

正如开头所说,折腾路由插件是我的个人兴趣,但绝不仅限于路由器。

随着 Local-First 与边缘计算的浪潮推进,用户对“数据不出门、服务不花云租金、硬件充分利旧”的诉求正在变得越来越强烈。下一步,我们正在考虑将 PatchCat 打包适配群晖(Synology DSM)、绿联与极空间等主流 NAS 系统,让这只小猫在更多的家庭私有云设备上扎根。

本项目已全量开源,华硕 Merlin 路由器的打包构建脚本与 Go 网关代码均位于主仓库中。欢迎同样喜欢折腾软硬结合的极客朋友交流指教,共同探讨边缘 AI 的更多可能性!


关于作者
郭强 (GuoBug),兼具平台工程底蕴与业务增长能力的资深 Product Engineer。
专注于 AI 工作流编排(AI Workflow Orchestration)、DAG 状态机与确定性系统架构落地。
开源项目与主页:https://github.com/GuoBug · https://guobug.github.io
秉持“边写边学、双向共创”理念,欢迎围绕工作流引擎架构、拓扑调度及低门槛开发体验交流指教。

Built with ❤️ by [Guo Qiang](https://guobug.github.io/about/) (GuoBug)

更多精选文章推荐 MORE FROM GUO QIANG