标签 AI Agent Gateway 下的文章

转载:公众号[星纬智联技术],推荐中转站: https://nicecode.cc/
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 。设计目标三条:
1. 轻量:核心代码约 2000 行,单二进制部署,无运行时依赖
2. 实用:覆盖日常场景——Telegram 和飞书双通道、定时任务、记忆持久化
3. 可扩展:模块化架构,Channel 接口抽象清晰,加新通道写一个 struct 就行
架构上借鉴了 OpenClaw 的 Gateway 模式,但实现上砍掉了所有我用不到的东西。
架构设计:
myclaw 的整体架构可以用一句话概括:消息总线驱动的服务编排。
┌─────────────┐     ┌──────────┐     ┌──────────────┐
│  Telegram    │────▶│          │────▶│   Claude /   │
│  Channel     │     │ Message  │     │   OpenAI     │
└─────────────┘     │   Bus    │     │   Agent      │
                    │          │     └──────┬───────┘
┌─────────────┐     │          │            │
│  Feishu      │────▶│          │◀───────────┘
│  Channel     │     └──────────┘
└─────────────┘          │
                         ▼
┌─────────────┐     ┌──────────┐
│  Cron        │     │  Memory  │
│  Service     │     │  System  │
└─────────────┘     └──────────┘
       │
┌─────────────┐
│  Heartbeat   │
│  Service     │
└─────────────┘
核心组件包括:
1. Message Bus (消息总线)
消息总线是 myclaw 的中枢。两种消息类型:
• InboundMessage:从通道流入,携带 Channel 、SenderID 、ChatID 、Content 、Timestamp 等字段
• OutboundMessage:从 Agent 流出,携带 Channel 、ChatID 、Content 、ReplyTo 等字段
通过 Pub/Sub 模式( SubscribeOutbound / DispatchOutbound ),各服务之间实现松耦合的事件路由。缓冲区默认 100 条消息,Goroutine 安全。
2. Gateway (网关编排器)
Gateway 是顶层编排器,负责:
• 组装系统 Prompt (从 AGENTS.md + SOUL.md + 记忆上下文拼接)
• 处理入站消息,调用 Agent 运行时(支持 Anthropic 和 OpenAI 两种 Provider )
• 将 Agent 输出路由到对应的消息通道
• 处理 SIGINT / SIGTERM 优雅关闭
Provider 切换的逻辑很直接——配置里 provider.type 写 openai 就走 OpenAI ,其他情况默认 Anthropic 。不搞什么抽象工厂,一个 switch 解决。
3. Channel (消息通道)
Channel 接口定义了四个方法:Name()、Start()、Stop()、Send()。目前实现了两个通道:
Telegram 通道:
• 基于 telegram-bot-api/v5 长轮询
• Markdown → Telegram HTML 格式转换
• 消息分片( 4096 字符限制)
• 发送者白名单过滤
• 代理配置支持(方便国内网络环境)
飞书通道:
• Webhook 模式,启动一个 HTTP Server 监听 /feishu/webhook (默认端口 9876 )
• Tenant Access Token 管理,带缓存和双重检查锁
• URL Verification Challenge 自动应答
• 事件驱动的消息接收( im.message.receive_v1 )
• 发送者白名单过滤(基于 open_id )
• Verification Token 校验
飞书通道需要一个公网可达的 Webhook URL 。本地开发可以用 Cloudflared 临时隧道,生产环境建议配 DNS 。
4. Memory (记忆系统)
记忆系统分为两层:
• 长期记忆( MEMORY.md ):持久化的知识库
• 每日日记( YYYY-MM-DD.md ):按日期归档的交互记录
提供 ReadLongTerm()、WriteLongTerm()、ReadToday()、AppendToday() 和 GetRecentMemories(days) 方法。默认取最近 7 天的日记,和长期记忆一起组装进 LLM 的系统 Prompt 。
文件就是 Markdown ,想手动改也行。
5. Cron (定时任务)
支持三种调度模式:
• cron:标准 Cron 表达式(基于 robfig/cron/v3 )
• every:固定间隔(毫秒级)
• at:一次性定时执行
任务持久化为 JSON (存在 ~/.myclaw/data/cron/jobs.json ),支持状态追踪( LastRunAtMs 、LastStatus 、LastError )和执行后自动删除。任务的执行结果可以通过 deliver 字段指定是否推送到某个消息通道。
6. Heartbeat (心跳服务)
定期读取 HEARTBEAT.md 文件内容,触发 Agent 处理。Agent 返回 HEARTBEAT_OK 表示无需进一步操作。默认间隔 30 分钟,适合做周期性自检或主动提醒。
为什么用 Go:
选 Go 不是为了赶时髦,是几个实际的考量:
1. 单二进制部署:go build 产出一个可执行文件,不需要 Node.js 运行时或 Python 虚拟环境。scp 到服务器直接跑
2. 并发原语:Goroutine + Channel 天然适合消息总线架构。每个通道、每个定时任务、Webhook Server 都是独立的 Goroutine ,代码写起来比 async/await 回调链清爽
3. 内存占用:Go 运行时的内存开销远低于 Node.js / Python ,一个长期驻留的 Gateway 进程,这点差别会累积
4. 交叉编译:GOOS=linux GOARCH=arm64 go build 一行命令编译到任意平台
快速开始:
安装
go install github.com/stellarlinkco/myclaw/cmd/myclaw@latest
初始化
myclaw onboard
这会在 ~/.myclaw/ 下创建配置文件和工作空间:
~/.myclaw/
├── config.json          # 主配置
├── workspace/
│   ├── AGENTS.md        # Agent 角色定义
│   ├── SOUL.md          # 人格特质
│   ├── HEARTBEAT.md     # 心跳任务提示词
│   └── memory/
│       └── MEMORY.md    # 长期记忆
└── data/
    └── cron/
        └── jobs.json    # 定时任务持久化
配置
编辑 ~/.myclaw/config.json:
{
  "agent": {
    "model": "claude-sonnet-4-5-20250929",
    "maxTokens": 8192,
    "temperature": 0.7,
    "maxToolIterations": 20
  },
  "provider": {
    "type": "anthropic",
    "apiKey": "sk-ant-..."
  },
  "channels": {
    "telegram": {
      "enabled": true,
      "token": "your-bot-token",
      "allowFrom": ["123456789"],
      "proxy": ""
    },
    "feishu": {
      "enabled": true,
      "appId": "cli_xxx",
      "appSecret": "xxx",
      "verificationToken": "xxx",
      "port": 9876,
      "allowFrom": ["ou_xxx"]
    }
  },
  "gateway": {
    "host": "0.0.0.0",
    "port": 18790
  }
}
想用 OpenAI 兼容的 API ?把 provider.type 改成 "openai",填上对应的 Key 和 Base URL 就行。
也支持环境变量覆盖:
环境变量 用途
MYCLAW_API_KEY / ANTHROPIC_API_KEY Anthropic API Key
OPENAI_API_KEY OpenAI API Key (自动切换 Provider )
MYCLAW_BASE_URL / ANTHROPIC_BASE_URL API 地址(可接自定义 Endpoint )
MYCLAW_TELEGRAM_TOKEN Telegram Bot Token
MYCLAW_FEISHU_APP_ID 飞书 App ID
MYCLAW_FEISHU_APP_SECRET 飞书 App Secret
一个细节:如果只设了 OPENAI_API_KEY 而没有配 provider.type ,myclaw 会自动把 Provider 切到 OpenAI 。少一步配置。
运行
# REPL 模式(命令行交互)
myclaw agent

# 单条消息模式
myclaw agent -m "今天的任务清单"

# 完整 Gateway 模式(启动所有服务)
myclaw gateway

# 查看状态
myclaw status
部署
Docker
myclaw 提供了多阶段 Dockerfile ( golang:1.24-alpine 构建,alpine:3.21 运行),编译产物约 10MB
# 构建并启动
docker compose up -d --build

# 如果需要飞书 Webhook 的公网隧道
docker compose --profile tunnel up -d --build
Docker Compose 里包含一个可选的 Cloudflared 隧道服务,通过 --profile tunnel 激活。它会自动把飞书 Webhook 端口暴露到公网,省去自己配 Nginx 反向代理的麻烦。
本地开发也可以直接用 Make:
make tunnel  # 启动 cloudflared 临时隧道
拿到 *.trycloudflare.com 的 URL 后填到飞书开放平台的事件订阅里就行。
裸机部署
# 交叉编译
GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o myclaw ./cmd/myclaw

# 丢到服务器上
scp myclaw user@server:/usr/local/bin/
ssh user@server "myclaw onboard && myclaw gateway"
myclaw 证明了一件事:构建一个实用的 AI Agent Gateway 不需要 43 万行代码。2000 行 Go ,两个消息通道,一套记忆系统,一个 Cron 调度器——日常够用了。当然它也有明显的不足。没有 Web UI ,没有多用户会话隔离,飞书通道目前只支持纯文本消息。如果你的场景需要这些,OpenClaw 或者自己加功能。Go 的单二进制部署和低内存占用让它特别适合丢在一台小 VPS 上长期跑着。如果你认同"能用 2000 行解决的问题不要用 43 万行"这个理念,可以试试。
转载:公众号[星纬智联技术],推荐中转站: https://nicecode.cc/

Clawdbot:爆火的开源AI智能体网关,堪称AI助理完全体

最近,你的技术圈子是不是被一只“龙虾”(Clawdbot 的 Logo)刷屏了?甚至听说它让二手的 Mac Mini 价格都应声上涨?

作为一个刚入坑稀土掘金的新人,今天我就带大家扒一扒这个让无数极客彻夜未眠的开源项目——Clawdbot。它到底是什么?为什么它被称为“AI 助理的完全体”?以及,它真的能成为你的 Jarvis 吗?

🧐 什么是 Clawdbot?

简单来说,Clawdbot 是一个开源的 AI 智能体网关(Agent Gateway)。

如果不讲术语,你可以这样理解:
Clawdbot = 大模型的大脑 (Claude/GPT) + 即时通讯软件的嘴巴 (Telegram/WhatsApp) + 本地电脑的手脚 (Terminal/文件系统) + 永久记忆

与我们在网页上用的 ChatGPT 或 Claude 不同,Clawdbot 不是运行在浏览器里的,而是运行在你自己的服务器或电脑(如 Mac Mini、树莓派)上的一个后台程序。它就像一个住在你电脑里的“数字管家”,你通过聊天软件给它发指令,它在你的电脑上直接干活。

🌟 核心特点:为什么它如此特别?

Clawdbot 之所以能爆火,是因为它解决了当前 AI 应用的几个核心痛点:

1. 它是“活”在本地的 (Local First)

目前大多数 AI 都在云端,不仅有隐私顾虑,而且无法操作你的本地文件。Clawdbot 运行在你的本地设备上:

  • 数据隐私:除了与 LLM 对话的内容,你的记忆文件、配置、本地数据都存在自己硬盘里。
  • 本地权限:它可以直接读取你的文档、运行 Python 脚本、甚至执行终端命令(Terminal)。

2. 对话即交互 (ChatOps)

你不需要下载专门的 App。Clawdbot 接入了 WhatsApp, Telegram, Discord, Slack, iMessage 等几乎所有主流通讯软件。

  • 场景:你在外面用手机给家里的 Clawdbot 发微信:“帮我查一下服务器日志,把报错的部分发给我。”
  • 结果:它直接通过 SSH 连上服务器,跑完命令,把结果截图或文本回传给你。

3. 真正的“长短期记忆”

Clawdbot 使用本地的 Markdown 文件(通常是 MEMORY.md)来存储关于你的信息。
它记得你的偏好、你家人的生日、你的服务器密码(需谨慎)、你正在做的项目进度。
这种记忆是持久的,不会因为关闭窗口就消失。

4. 强大的工具调用能力 (Agentic Capabilities)

这是它最“炸裂”的地方。它不仅能陪聊,还能干活。通过 MCP (Model Context Protocol) 或内置工具,它可以:

  • 浏览网页:帮你查资料并总结。
  • 写代码并运行:它可以写一个 Python 脚本来处理 Excel 表格,然后直接在你电脑上运行这个脚本,最后把处理好的 Excel 发给你。
  • 管理日程:读取你的日历,帮你安排会议。

🛠 Clawdbot 能帮我们干什么?

这就是想象力发挥的地方了。目前社区里已经有了很多硬核玩法:

1. 24/7 个人秘书

  • 自动处理邮件:让它监控你的 Gmail,自动归档垃圾邮件,把重要邮件摘要发到 Telegram 给你。
  • 每日简报:每天早上 8 点,它会根据你的日历、关注的新闻源、天气情况,给你发一份定制的“早安简报”。

2. 也是最强的“结对编程”伙伴

  • 代码助手:你可以让它读取你整个项目的代码库(因为它在本地,读取速度极快),然后问它:“utils.py 里的那个函数怎么优化?”
  • 运维监控:当它检测到某个进程挂了,可以自动发消息报警,甚至在你授权下尝试重启服务。

3. 自动化繁琐任务

  • 文件整理:对它说“把 Downloads 文件夹里所有的 PDF 发票整理一下,按月份归档到 Documents/Invoices 目录里”。它会自己写 Shell 脚本瞬间完成。
  • 比价购物:让它去几个电商网站爬取价格,整理成表格给你。

⚠️ 风险提示(必读!)

虽然 Clawdbot 很酷,但它目前更像是一个极客的玩具,而不是普通用户的消费级产品。

  1. 安全风险(高危):你实际上是给了 AI 访问你电脑文件系统和终端(Terminal)的权限。虽然有权限控制,但如果 AI "幻觉"了,或者被提示注入攻击,理论上它能执行 rm -rf /(删库)。建议尽量在沙箱环境或独立的 Mac Mini/虚拟机中运行。
  2. 成本问题:虽然软件免费,但它背后调用的是 API(如 Claude 3.5 Sonnet 或 GPT-4o)。如果你让它处理大量任务,API 账单可能会让你肉疼。
  3. 配置门槛:需要懂一点 Docker、Node.js 或者命令行的知识才能部署起来。

🔚 总结

Clawdbot 代表了 AI 的下一个阶段:从“聊天机器人”进化为“智能代理(Agent)”。它不再是被动等待提问的百科全书,而是有了手脚、能主动帮你解决问题的数字员工。

如果你有一台闲置的电脑,并且喜欢折腾技术,Clawdbot 绝对值得一试。但请记得:能力越大,风险越大,请管好你的 API Key 和系统权限!

欢迎在评论区分享你的 Clawdbot 玩法!