精选9天前340 投票
Show HN:我在每月7美元的VPS上部署AI代理,用IRC作为传输层
在AI聊天机器人泛滥的今天,大多数个人作品集网站只是简单地将简历喂给大模型,让访客换个方式提问——这本质上是个“客厅把戏”,模型无法提供简历之外的信息。为了打破这种局限,我构建了一个独特的AI代理系统,旨在提供更深入、更具体的答案。
架构设计:双代理与安全边界
这个系统由两个独立的代理组成,分别运行在不同的服务器上,形成明确的安全边界:
- nullclaw(公开代理):作为面向公众的“门卫”,运行在一个最小化的边缘服务器上。它是一个仅678 KB的Zig二进制文件,内存占用约1 MB。主要职责包括:处理问候、回答关于我项目的简单问题,并能克隆GitHub仓库来用实际代码佐证声明。
- ironclaw(私有代理):运行在另一台更强大的独立系统上,通过Tailscale仅在内网可达。它拥有访问电子邮件、日历和更深层个人上下文的权限,处理从nullclaw路由过来的复杂查询。
这种设计确保了公开服务器无法接触任何私人数据,从架构层面保障了隐私安全。
为什么选择IRC作为传输层?
在Discord、Telegram或自定义WebSocket等众多选项中,我选择了**IRC(互联网中继聊天)**协议,主要基于三个原因:
- 美学契合:我的作品集网站采用终端UI风格,嵌入IRC客户端完全符合品牌调性,而Discord则会显得格格不入。
- 完全自主可控:整个技术栈——从Ergo IRC服务器、gamja网页客户端到nullclaw代理——都运行在我的基础设施上。没有第三方API条款变更的风险,也没有平台可能随时弃用机器人访问权限的担忧。
- 协议成熟与开放:IRC是一个已有30年历史的协议,简单、易于理解,且零供应商锁定。同一个代理既可以通过网页客户端与访客对话,也能让我通过终端里的irssi客户端与之交互。
模型选择:速度与成本优先
在模型选择上,我没有盲目追求最大最强的模型,而是根据代理的角色进行了针对性设计:
- 对话层:使用Haiku 4.5处理问候、分流和关于我背景的简单问题。其亚秒级响应速度和每次对话仅需几分钱的成本,对于“门卫”角色来说至关重要——速度在这里比模型大小更有价值。
实际应用场景
设想一个招聘经理提问:“George如何处理测试覆盖率?”传统的简历聊天机器人可能只会回答“George重视全面测试。”而我的系统会:
- 克隆相关代码仓库
- 统计测试数量
- 读取CI配置
- 返回具体数据和细节
这种基于实际代码和配置的答案,远比泛泛而谈的简历摘要更有说服力。
行业启示
在AI应用日益同质化的当下,这个项目展示了几个值得思考的方向:
- 轻量化部署:证明AI代理不一定需要昂贵的GPU服务器或庞大的云服务账单,每月7美元的VPS也能承载有意义的AI交互。
- 协议复古创新:利用IRC这类古老但稳定的协议,可以避免现代平台API的频繁变更和锁定风险,为长期稳定运行提供保障。
- 安全边界设计:通过物理隔离和网络隔离(如Tailscale)来保护敏感数据,是构建可信AI系统的重要实践。
这个项目不仅是一个技术演示,更是一种对当前AI应用范式的反思——真正的价值不在于模型的参数规模,而在于如何将AI能力与具体场景、可靠架构和用户需求深度结合。


