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.delta、stream.resume 补齐,恢复流式回复
状态管理:
- reaction/typing/edit/delete 的 data 引用修复
- thinking timer 在 onHide/onShow 中正确管理
- messages 内存上限控制
审核结果:多轮审核后达到 99/100、100/100 PASS
UX 补齐 Web 能力¶
Dad 的核心要求:
- 智能体列表支持网格排列
- 多服务器的智能体合并展示
- 聊天页风格接近 Web:更紧凑、去 bubble 化
- 输入框支持 + 展开菜单
实现细节: - agents 页增加 grid/list 视图 - 合并多个 server 的 agents,卡片/列表中显示来源服务器 - 按服务器分组展示,避免"全混在一起看不清" - 使用服务器名字而不是裸域名作为展示名
关键提交:fcaad7f、1ac8bd6
历史记录缺失修复¶
问题:机器人点进去没有加载历史记录
根因:相关 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-gateway、clawline-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 个模块化技能 │
│ ├── 开发技能 │
│ ├── 部署技能 │
│ ├── 调试技能 │
│ ├── 验证技能 │
│ └── ... │
└─────────────────────────────────────────────┘