这是什么
产品形态:用户打开 chat.clawlines.net(或装 Tauri 桌面端 / 微信小程序)跟自家 AI agent 对话;外部开发者也能用 npm 装 SDK 把自家界面接进来。 技术形态:1 个核心 monorepo 三个 app(Channel 接入 OpenClaw / Gateway 中转鉴权 / Client 三端 UI),加 3 个卫星仓(SDK / 微信小程序 / docs 站)共 5 个 repo。自家域名跑、自家库存消息、自家协议流式。
解决什么问题
之前要让 AI agent 跟用户聊,最快路径是接 Telegram / Discord / Mattermost 这种现成 IM —— 上手快,但代价是:账号被封整条业务就停、对方平台改 API 你跟着改、限速由别人定、UI 长啥样由别人决定、用户行为数据进不了自己库。 Clawline 把整条通道收回到自家域名下:聊在哪儿、消息怎么存、能不能流式、要不要桌面客户端,全部自家说了算。 代价是要自己维护 WebSocket / 鉴权 / 客户端,但换来的是产品体验长期可控。
组件全景
5-06 把 channel / client-web / gateway 三个独立仓合并到 monorepo clawline/platform,pnpm workspace 管理。 另外 3 个仓库(SDK / 微信小程序 / docs 站)各自独立演进,通过 Channel 协议接入。Browser Agent 起初也算这一组,现已分离成独立产品。
clawline/platform@clawlines/channel
挂在 OpenClaw agent 的「上游」,把 agent 输出转成自家协议送给 Gateway,反过来把用户消息推给 agent。3 种传输模式可切:websocket(本地直连)/ relay(公网通过中转网关)/ webhook(HTTP 推送)。
@clawlines/relay-gateway
独立 WebSocket 中转服务。Channel 插件主动连 /backend,Web/桌面客户端连 /client,Gateway 验 Logto JWT、维护用户/channel/token、转发 JSON 帧。Supabase 当持久层,本地 JSON 兜底。
clawline-client-web
三端共用一份代码:Web 跑在 chat.clawlines.net,Tauri 打包 mac / win / linux 桌面。React Query 单数据源、TanStack 自愈、Markdown + 代码块 Copy、流式渲染、跨会话 IndexedDB 本地搜索。
@clawlines/sdk
纯 TS 包,封装 WebSocket 握手 / 心跳 / 重连 / 连接池 / 消息协议 / 类型定义(api/client/pool/protocol/types/utils 七个模块)。外部应用想把自家界面接到 Clawline Gateway 上拉 AI 对话,npm install @clawlines/sdk 一行装好。
clawline-client-wechat
不基于 Web 端 webview,是独立原生小程序。WebSocket 直连 Gateway,支持流式消息(text.delta 增量)、多服务器管理、离线队列、思考状态展示、消息持久化(每 agent 最多 200 条)。给微信生态用户的入口。
clawline/docs
独立 docs 仓库。覆盖产品总览、SDK 用法、Gateway 接入、Channel 配置、Web 端 / 小程序端 / Browser Agent 使用指南,含 ARCHITECTURE_ROADMAP / FEATURE_GAP_ANALYSIS / ISSUE_ANALYSIS / PRODUCT_OVERVIEW 长文。
近期重要变化
从业务视角看:发生了什么、对用户/运营意味着什么,不是改了哪几行代码。
三仓合并成 monorepo
之前 channel / client-web / gateway 三个独立 GitHub 仓,改一次跨层功能要追三个 PR、三个 CI、三套发版节奏。5-06 合并到 clawline/platform,pnpm workspace 统一管理,从此一个改动一次 commit 一次部署。SDK / 浏览器扩展 / 小程序 / docs 保持独立仓(生命周期和发版节奏不一样)。
npm 包正式 1.0
@clawlines/channel@1.0.0 推上 npm 公开仓库。意味着外部开发者能用 openclaw plugins install @clawlines/channel 一行装进自己的 OpenClaw,做自家的 channel 集成 —— 这条通道不只服务自家,开始有「被别人接入」的可能性。
桌面端三平台可发布
Tauri 打包从 v0.2.0 一路连发到 v0.5.4,mac / win / linux 三平台都能装。从「只有 Web 入口」升级到「装了客户端能脱离浏览器用」,桌面端是给重度使用者的稳态入口。
"幽灵消息"问题归零
从 3 月起断断续续出现的「消息错乱 / 跨会话串台 / 历史拉不全」问题,5-08 之后再没出现过。dora 频道实测 ghost 率 34% → 0。长期挂账的 reliability 大头收尾,从此运营不用再每天手动 reconcile 消息。
主入口让位给飞书 DM
日常跟 AI 的主战场切回 Hermes + 飞书 DM —— 飞书 native app 比自家 Web / 桌面端在通知 / 跨设备同步 / 移动端体验上还是更强。Clawline 转入「随时可用但不强推」的维护期:作为自家通道的能力储备保留,新功能不再优先投入。
沉淀的洞察
不是技术 tips,是做完这件事之后想法上的变化。
onPartialReply,结果根本不触发),第二天就掉头改成监听 onAgentEvent 的 delta —— 一次架构纠偏,省下后面 N 周的 hack 修补。同样的还有 "1 WS 绑 1 channel + agent.select"、"React Query 当单一数据源" 这种早期定型的决策,半路想换代价指数级上升。关键里程碑
挑出 8 个对项目走向有方向性影响的节点,跳过日常 commit 和小修。
github.com/clawline org 建立,规划三仓库结构。Clawline Gateway agent 创建。onPartialReply 不触发,当天改用 onAgentEvent 监听 delta —— 架构纠偏一次性到位,避免后面 N 周补丁。POST /api/chat,对外不止能 WebSocket,也能 HTTP 直连,方便服务端集成。虚拟连接 + meta.source 透传打通。clawline/platform pnpm workspace。次日 @clawlines/channel@1.0.0 npm 首发 + 幽灵消息根因修复(dora 频道 ghost 率 34% → 0)。入口与资产
线上产品入口 + 5 个 GitHub 仓库 + npm 包 + 桌面 / 身份层。