跳转至

Clawline — 03-28~30 小程序与统一维护

多 Agent 协作模式探索

任务组织方式调整

Dad 反馈:初始按功能点拆任务被认为"不像正常公司开发"。

改为按角色分工: - architect:架构设计 - channel-dev:协议开发 - ui-dev:界面开发 - reviewer:严苛验收

暴露的问题

  • Agent 流程是被动消息驱动,不会自动轮询 inbox
  • architect 完成后 reviewer 不会自动开始
  • reviewer 打回后 architect 也不会自动继续

Bot 结论:需要后台监控循环主动推动 agent 流程,否则多 agent 编排会"假自动化"。

这个发现对后续的 Agent 协作机制设计有重要指导意义。

小程序客户端开发

Wechat-repo 合并策略

关键决策(Bot)pages/chat-room/index.js 两边都大改,不能简单覆盖。

最终方案: - 以 ui-dev 版本为基础 - 再把 channel-dev 的关键协议/队列能力 patch 进去

理由:ui-dev 改动范围更大,已包含大部分 channel-dev 核心能力,只需修 API 签名差异。

协议与可靠性补齐

通过多轮左右互搏发现并修复的问题

消息队列: - outbox 内存缓存 - flushOutbox 递归增加最大迭代保护 - 发送失败不再直接删消息,而是标记 failed - failed 消息支持点击重试 - 发送防抖

连接管理: - connectAgentChannel 增加 connectionId - packet.data 空值防护

流式回复: - text.deltastream.resume 补齐,恢复流式回复

状态管理: - reaction/typing/edit/delete 的 data 引用修复 - thinking timer 在 onHide/onShow 中正确管理 - messages 内存上限控制

审核结果:多轮审核后达到 99/100100/100 PASS

UX 补齐 Web 能力

Dad 的核心要求: - 智能体列表支持网格排列 - 多服务器的智能体合并展示 - 聊天页风格接近 Web:更紧凑、去 bubble 化 - 输入框支持 + 展开菜单

实现细节: - agents 页增加 grid/list 视图 - 合并多个 server 的 agents,卡片/列表中显示来源服务器 - 按服务器分组展示,避免"全混在一起看不清" - 使用服务器名字而不是裸域名作为展示名

关键提交fcaad7f1ac8bd6

历史记录缺失修复

问题:机器人点进去没有加载历史记录

根因:相关 methods 存在,但 chat-room 页面没有调用;之前 session 的 commit 似乎丢失

修复:补上历史记录调用。提交:60c4928

连接池引入

决策者:Bot

背景:页面切换/热重载时,chat-room、dashboard、agents 各自管理连接,容易重复连接或清理不一致。

方案:引入连接池统一管理

重写内容: - connectAgentChannel - teardownGenericChannel - onHide

连接池的引入为小程序的连接稳定性提供了关键保障。

全栈知识库与单 Bot 维护模式

问题背景

  • 中间传话导致信息损失
  • 效率不如直接上手
  • relay gateway 没有 git repo,只是服务器上的裸文件 server.js

Dad 认为这是大问题,要求把生产代码改成 git clone 管理。

Dad 的核心决策

以后由一个 bot 统一负责整个 Clawline 产品维护,而不是 gatewaybot/channelbot 分散维护。

执行范围

6 个 repo 全部 clone 到 WebBot 工作区: - client-web - channel - sdk - gateway - docs - client-wechat

Bot 的配套动作

  • 编写 clawline-context.md,整理全栈上下文
  • 更新 IDENTITY.md
  • 检查品牌素材(Logo)是否同步
  • 从记忆中补充遗漏知识到 CONTEXT

后续治理

  • openclaw.json 中将 clawline-gatewayclawline-channel 两个 agent 设置 "enabled": false
  • 最终只保留 clawline-client-web 作为统一维护入口

里程碑

  • WebBot 获得 6 个 repo 与完整上下文
  • GatewayBot/ChannelBot 被停用

技能拆分(03-24 上午)

需求

将前一天整理的 Clawline 开发/部署经验拆成适合 LLM 调用的技能。

结果

最初建议拆成 5 个 skill,后补上"验证"技能,最终为 6 个 skill

Dad 的要求

技能要"言简意赅,适合 LLM 阅读",并暂时放在研究员自己的技能目录。

Bot 的配套调整

将 WebBot 的长上下文移出自动加载路径,保留为 references/CONTEXT.md.bak

意义

Clawline 的维护知识从"长文档"转为"可触发的模块化技能",更适合后续自动化维护与任务分发。

为什么这几天是项目成熟的标志?

1. 平台扩展完成

从 Web 单端扩展到小程序,证明了架构的可移植性。

2. 维护模式确立

单 Bot 统一维护 + 模块化技能的模式,为长期可维护性奠定基础。

3. 协作经验积累

多 Agent 协作的问题暴露,为后续的 Agent 编排机制设计提供了实践经验。

4. 全栈治理完善

从裸文件到 git 管理,从分散 bot 到统一入口,项目的工程化程度显著提升。

最终架构

┌─────────────────────────────────────────────┐
│              WebBot (统一维护)              │
├─────────────────────────────────────────────┤
│  client-web    │  Web 前端 (React/Vite)    │
│  client-wechat │  小程序客户端             │
│  channel       │  Channel 插件             │
│  gateway       │  Gateway 服务             │
│  sdk           │  连接 SDK                 │
│  docs          │  项目文档                 │
├─────────────────────────────────────────────┤
│  6 个模块化技能                             │
│  ├── 开发技能                              │
│  ├── 部署技能                              │
│  ├── 调试技能                              │
│  ├── 验证技能                              │
│  └── ...                                   │
└─────────────────────────────────────────────┘