myclaw:用 2000 行 Go 代码构建轻量 AI Agent Gateway
TL;DR myclaw 是一个用 Go 编写的开源 AI Agent Gateway,核心功能包括多通道消息路由(Telegram + 飞书)、持久化记忆系统和定时任务调度。约 2000 行核心代码实现了 OpenClaw 的核心 Gateway 架构,编译出来就一个二进制文件,适合想要自托管 AI 助手但不想折腾 Node.js 或 Python 环境的开发者。
AI Agent Gateway 赛道的现状
2026 年初,AI Agent 领域最火的项目非 OpenClaw 莫属。这个前身为 Clawdbot 🦞(后改名 Moltbot,最终定名 OpenClaw)的项目,在 GitHub 上已经积累了超过 17 万 Star。它的核心理念很直接:给 LLM 一双"手",让 AI 能操作你的本地系统——执行命令、读写文件、控制浏览器。
OpenClaw 的架构确实强大:
- • Gateway + Pi Agent:Gateway 是 Node.js WebSocket 服务(默认绑
ws://127.0.0.1:18789),内嵌 Pi(Mario Zechner 写的开源 Coding Agent)通过 JSON-RPC over stdio 做推理和工具调用 - • 多模型支持:通过 Pi 的统一 LLM API 接 Anthropic、OpenAI、Google、Ollama 等多家 Provider
- • 支持 WhatsApp、Telegram、Discord、iMessage、Slack、Signal 等消息通道
- • 沙箱模式、设备配对审批、加密凭据存储
但它也有明显的代价:43 万行 TypeScript 代码,Node.js 运行时,以及相当复杂的依赖链。
对于只想自托管一个 AI 助手的个人开发者来说,这个体量太重了。myclaw 想做的事情很简单——用 Go 写一个够用的轻量替代。
myclaw 是什么
myclaw 是一个 Go 编写的自托管 AI Agent Gateway。设计目标三条:
- 轻量:核心代码约 2000 行,单二进制部署,无运行时依赖
- 实用:覆盖日常场景——Telegram 和飞书双通道、定时任务、记忆持久化
- 可扩展:模块化架构,Channel 接口抽象清晰,加新通道写一个 struct 就行
架构上借鉴了 OpenClaw 的 Gateway 模式,但实现上砍掉了所有我用不到的东西。
架构设计
myclaw 的整体架构可以用一句话概括:消息总线驱动的服务编排。
┌─────────────┐ ┌──────────┐ ┌──────────────┐ │ Telegram │────▶│ │────▶│ Claude / │ │ Channel │ │ Message │ │ OpenAI │ └─────────────┘ │ Bus │ └──────┬───────┘ ┌─────────────┐ │ │ │ │ Feishu │────▶│ │◀───────────┘ │ Channel │ └──────────┘ └─────────────┘ │
▼ ┌─────────────┐ ┌──────────┐ │ Cron │ │ Memory │ │ Service │ │ System │ └─────────────┘ └──────────┘ │ ┌─────────────┐ │ Heartbeat │ │ Service │ └─────────────┘
核心组件包括:
1. Message Bus(消息总线)
消息总线是 myclaw 的中枢。两种消息类型:
- • InboundMessage:从通道流入,携带 Channel、SenderID、ChatID、Content、Timestamp 等字段
- • :从 Agent 流出,携带 Channel、ChatID、Content、ReplyTo 等字段


