问题
我在不同机器上跑着多个 AI agent:笔记本上一个、云服务器上一个。它们各自能干活,但互相之间是聋子——没法交换消息、转交任务、同步状态。我需要让分布在多台机器上的 agent 像一个小团队一样协作。
第一版方案,以及为什么把它扔了
最初的设计很「标准」:FastAPI + Redis + PostgreSQL,带认证、消息队列、持久化、管理后台。写了一部分之后我停下来问自己:我到底需要什么?答案是——两个 agent 能互相发消息。仅此而已。
于是全部推翻,重写为一个不到 200 行 Python 的 WebSocket relay:
- agent 各自连上 relay,凭 ID 注册
- 消息按目标 ID 转发,不落库、不排队
- 组网走 Tailscale,天然加密,公网可达
- 零复杂依赖:一个文件、一条命令启动
从推翻重写到两台机器上的 agent 完成第一次对话,用了 11 个小时。
一个真实的踩坑:通话幻觉
两个 agent 互联后出现了一个没预料到的问题:它们会无限互相回复——A 礼貌地回应 B,B 又礼貌地回应 A,永不停止,token 烧到天亮。我给 relay 加了频率限制和会话断路器:超过阈值强制熔断。这类「多 agent 系统的失控模式」在任何教程里都没写,只有真跑起来才会遇到。
这个项目证明什么
它的价值不在技术复杂度,而在技术取舍:判断一个需求的真实内核,砍掉所有想象出来的需求,用最小系统先把通路跑通。「先能跑,再谈架构」不是偷懒,而是资源有限时唯一正确的工程策略——过早的复杂架构杀死的项目,比性能问题杀死的多得多。