开源 MIT · Vercel 零成本部署

免服务器的群聊
全能 Agent 网关

跑在 Vercel Functions 上的多渠道 AI 机器人网关。接入 QQ、Telegram,基于只追加事件流驱动, 自带联网搜索、跨群长期记忆、表情包斗图与 Linux 代码沙盒——有消息才运行,平时零开销。

往下滚,看一条消息怎么走完全程
大肥鱼
老王@大肥鱼 今天美元对人民币多少
  1. #40user/message老王 @你:今天美元对人民币多少
  2. #41turn/start第 12 轮 · 抢到锁
  3. #42developer/message待处理:第40条(老王,@你)
  4. #43assistant/message思维链 ··· → web_search
  5. #44tool/callweb_search("美元 人民币 汇率")
  6. #45tool/result1 USD ≈ 7.12 CNY
web_search send_message end_turn
7.12。这种东西自己不会搜吗
一次问完行不行
表情包
01

Webhook 进来,立即回执。

验签、解析,马上返回 200。平台要求很快拿到回执,剩下的事交给 waitUntil 在后台继续。

02

一切都写进事件流。

每个聊天一条只追加的事件流:消息、模型输出(含思维链)、工具调用和结果全部入库,模型输入从中推导。

03

一个会用工具的 agent。

每一步:读事件流 → 调用模型 → 把输出和工具结果原样写回。同一个聊天同一时刻只有一个 agent 在跑。

04

从原渠道回复,然后挂断。

分几条连发、回复指定消息、发表情包,说完调用 end_turn。回复过程中来的新消息,下一步就能看到。

不需要服务器。

部署在 Vercel Functions 上,有消息才运行,没人说话就不花钱。

0102030405

有消息才运行

没有常驻进程。Webhook 触发一个函数,回执之后在后台跑 agent,临近 300 秒时限自动收尾或接力给新的函数实例,中途被杀也能从事件流恢复。

部署免费

Vercel Hobby 加 Supabase 免费版就够:Supabase 不限 API 请求次数,Vercel Sandbox 超额只会暂停、不会扣费。不用买服务器,也不用维护。

模型按用量付费

免费的是部署和存储,模型调用按用量付给 OpenRouter 等供应商。事件流只追加、前缀稳定,线上一轮对话的缓存命中率在 97% 以上,这部分开销也压得很低。

0台需要维护的服务器
0函数时限,到点自动接力
0线上一轮对话的缓存命中率
¥0部署与存储费用

像一个真的群友,
而不是一个问答框。

  1. 01

    多渠道接入

    QQ(单聊、群聊、频道,Ed25519 验签)、Telegram、通用 HTTP。所有渠道实现同一个适配器接口,新增渠道只需写一个对象。

  2. 02

    一个聊天一个 agent

    收消息和跑 agent 解耦。几个人同时发消息只会有一个 agent 回答;锁是会话行上的租约,每一次写库都要确认仍持有锁。

  3. 03

    像真人一样聊天

    分几条连发、回复指定消息、主动挂断、发表情包;在群里旁观没 @ 它的消息,自己判断要不要插话。

  4. 04

    看图、听语音

    图片缩小后入库,以前的图片也能再看;QQ 语音使用平台自带的转写文字。

  5. 05

    长期记忆

    基于 Upstash Vector 的语义检索,所有聊天共用一个记忆库,并记录每条记忆的来源。

  6. 06

    沙盒工作区

    在 Vercel Sandbox 里跑 bash、Python、Node,每个聊天有一块自己的持久盘,能读图、能把文件发回聊天。

  7. 07

    联网

    搜索和网页抓取,另有余额和额度查询工具。

  8. 08

    任意 Responses API 模型

    直接调用 POST /responses,默认走 OpenRouter。请求体可透传任意参数,比如锁定供应商、设置推理强度。

  9. 09

    上下文自动压缩

    到 20 万 token 自动压缩成摘要,之前的内容由摘要替代;思维链原样回传,缓存持续命中。

三步跑起来。

1

部署

点击 Deploy 按钮,或者克隆仓库后在终端里:

$ 
2

配置

最少需要模型 Key、一个渠道的凭据,以及在 Vercel Marketplace 添加 Supabase 后执行一次 schema.sql。

OPENROUTER_API_KEY
QQ_APP_ID / QQ_APP_SECRET
SUPABASE_URL / SUPABASE_SECRET_KEY
3

检查与接入

访问 /api/health 确认模型、渠道和工具都已就绪,再到平台后台填上回调地址。

GET /api/health
{ "store": "supabase", "channels": { "qq": true } }

想换成自己的机器人?人设在 src/agent/system-prompt.ts,工具在 src/tools/,渠道在 src/channels/。改一个文件就能换人设。

大肥鱼

示例人设

大肥鱼

仓库自带的示例:一个嘴毒、爱抬杠的群友。会旁观、会插话、会发表情包,也会在该闭嘴的时候挂断。

表情包来自社区整理的 梗鲸 · 蓝色大肥鱼表情包档案馆,仓库不包含任何图片文件。