logo
0
0
WeChat Login
jobzhao15<jobzhao15@163.com>
v2.18.0: 蓝火媒桥定名 + AI 一句中文摘要 + 429 自愈

蓝火媒桥 · Lanhuo Media Bridge

在群里说一句"蓝火帮我修 X",Claude Code 真去把活干了,全程实时回写到聊天。


火一五 Logo

OpenClaw 群聊 ⇄ Claude Code 之间的 harness 桥

让 LLM 没有"决定要不要调工具"的余地,把真活干掉、把真数据回流

当前版本:v2.18.0 · 单一仓库即部署单元 · cnb.cool 单 remote

🏫 教学机构👨‍🏫 讲师📧 联系方式💬 QQ群📺 配套视频
逸寻智库Jobsupport@huo15.com1093992108📺 B站视频

它是什么

蓝火媒桥 = 给 OpenClaw 群里的 LLM(贾维斯/任意 agent)装一根真桥,让它能:

  • 用一句话派活:群里发"@蓝火 重构登录" → Claude Code 真去 read/edit/test,进度全程回写聊天
  • 用一句话查活:群里说"我的蓝火任务" → 自动 fetch 真实 session 列表注入 system prompt(不是 LLM 编造)
  • 用一句话管账:admin 在 IM 跟贾维斯说"给小明开账号 alice / abc123" → 一键 cc_user_create + dashboard 直链

底层是 OpenClaw chat ↔ Claude Code CLI 的多媒体任务桥(图/音/视频转文字 + claude -p stream-json + SSE 实时事件回写 + SQLite 任务库 + web dashboard)。

为什么叫"蓝火媒桥"

名字含义
蓝火与 OpenClaw 龙虾的"小火苗"宠物互文——龙虾是宿主,蓝火是替它"出门干活"的精灵
媒桥多模态消息(图/音/视频)→ 文字 → Claude Code 的桥
代号cc-media-bridge(仓库/MCP/CLI 沿用,向后兼容)
触发词蓝火 / 虾任务 / 龙任务 / cc 任务 / cc task / 媒桥 都路由到本 skill

下文一律用 蓝火 作为产品名,媒桥 作为技术组件称呼,cc-media-bridge 作为代号。

harness 思想(项目第一性)

LLM 是不可靠的执行者——它会编造、会跳工具、会"用常识替你决定"。蓝火媒桥不靠"教育 LLM",靠结构性钉死它的选择空间:

harness 层级谁负责干啥
L1 · 工具命名MCP cc_session_list / cc_recent_tasks / cc_my_tasks名字直接匹配用户语义,名字本身就是路由信号
L2 · 工具 schema移除已废弃工具cc_task_list 等已完全从 MCP_TOOLS 拿掉——LLM 看不到=调不到=不可能编
L3 · 响应注入工具 response 含 _render_markdown_COPY_VERBATIM + _anti_hallucinationLLM 拿到结构化指令,不能用"自己的话"覆盖
L4 · pre-fetch hookenhance plugin before_prompt_build检测"蓝火+查询"模式 → 自动 fetch 真数据 → 注入 system prompt——LLM 看到 trusted 数据,没有"要不要调工具"这个决定
L5 · SKILL 命令式头部 ⚠️ MANDATORY + 反模式列表"看到关键字 → 唯一动作",零思考路径
L6 · sanitizer入参/出参三层闸门LLM 编出来的 target/url/userid 不经 sanitize 不放行

每加一层都不是"再多教一遍",是让错路径根本走不通。L4 是项目最核心的反幻觉杠杆:用户问"我的蓝火任务",hook 已经把真实 session 列表灌进 system prompt,LLM 只能 copy 真数据回复——hallucination 不可能发生(不是"概率降低")。

三种使用方式

A. 群里聊(最常用)

张三 在 wecom 群: "@蓝火 修一下登录里 refresh_token 的 bug"
机器人 → 🦞 蓝火任务已建档 (cc-20260507-093021-...)
机器人 → 🚀 Claude Code 接活了 (sonnet)
机器人 → 🔧 调用 Read:src/auth/login.py
机器人 → 🔧 调用 Grep:refresh_token in src/auth/
机器人 → 💬 我准备把 refresh_token 的轮换逻辑挪到 ...
机器人 → 🔧 调用 Edit:src/auth/login.py
机器人 → 🔧 调用 Bash:pytest tests/test_auth.py
机器人 → ✅ 完成 · 用时 47.3s · 8 工具 · $0.12
机器人 → [Claude Code 的最终结果文本]

李四 5 分钟后问"我的蓝火任务列下" → 自动看到自己派的任务(不是张三的)。

B. Web Dashboard(看进度 + 看历史)

https://keepermac.huo15.com/lanhuo

v2.18.0 起每张卡片标题都是 AI 一句中文摘要(sonnet 抽,≤60 字),扫一眼就知每条会话干了啥——不再需要点开看 first_user 一句话猜。

  • 📋 全部最近 / 📌 已 Pin 两个视图
  • 实时进度 SSE 流(处理中自动 live tail)
  • 一键 cancel / 复制 task_id / ?task=cc-XXX 直链
  • 多用户 ACL:super-admin 看全部,user 看自己 + cwd 前缀允许的
  • 公告 banner:admin 在 IM 跟贾维斯说"挂个公告:维护中" → 全员 dashboard 几秒同步

C. 命令行 / MCP 查询

# 派活
cc-media-task --desc "重构 user 模块,将 ORM 改 raw SQL"
cc-media-task --desc "修这个 UI bug" --image error.png
cc-media-task --desc "" --video bug-walkthrough.mp4

# 实时跟踪
cc-media-task --tail cc-20260507-093021-a3f2

# AI 摘要(v2.18.0)
cc-summarize-sessions --limit 20            # 给最近 20 个 session 生成一句摘要
cc-summarize-sessions --session-id <UUID>   # 单条

Claude Desktop / Claude Code CLI 通过 MCP 调(双路在 setup.sh 里都注册):

"列我今天的虾任务" → cc_session_list(自动按 sender 过滤) "总结下昨天那个 PPT 会话" → cc_session_summarize "搜索 refactoring 相关的对话内容" → cc_session_search_content(FTS5 全文)

v2.18.0 新增(让体验丝滑)

改进影响
AI 一句中文摘要 (session_summaries 表 + cc-summarize-sessions)dashboard 卡片标题从"first_user 60 字截断"升级到"sonnet 自动总结的 1 句话"——卡片含金量肉眼可见提升
Summarizer LaunchAgent每小时整点跑一次,新会话自动有摘要,不用手动触发
MCP cc_session_summarize用户问"帮我总结下 XX 会话"时贾维斯一键生成;带 mtime 缓存(jsonl 没改不重跑)
/cc-sessions 响应含 summary 字段dashboard 实时拿;search 关键字也匹配摘要内容

六件套(运行时)

组件位置作用
SKILL.mdskill/OpenClaw 技能:识别多模态消息 + 调度 cc-media-task + 轮询事件实时回写聊天
server.pymcp-server/三模服务器:HTTP API + 任务/事件存储 (SQLite WAL + 11 个 schema migration) + SSE + MCP stdio + watchdog
cc-media-taskbin/Bash 入口:转写媒体 → 调度 Claude Code → 持久化结果
cc-stream-relaybin/Python helper:解析 stream-json → 批量推事件到 server
cc-summarize-sessionsbin/v2.18.0 AI 摘要器:扫 jsonl → sonnet → session_summaries 表
cc-app-control / cc-auto-authbin/macOS UI Scripting 控 Claude Desktop App + 自动点授权弹窗(v2.3+)

架构

你在飞书/Telegram/WhatsApp/wecom 发消息(文字+图+音+视频)
              │
              ▼
      ┌────────────────────┐
      │   OpenClaw chat    │  ← 入站消息带 sender_id / channel
      │  + 蓝火 SKILL      │  ← 触发词命中 → 派活
      └────┬───────────────┘
           │
           ├──[查询模式]── enhance plugin before_prompt_build hook
           │              ├── 检测"蓝火+任务/列表/历史"模式
           │              ├── HTTP fetch /cc-sessions 拿真数据
           │              └── prependContext 注入 system prompt
           │              → LLM 看到 trusted 数据,必须按它回复(harness L4)
           │
           └──[派活模式]── cc-media-task → claude -p stream-json
                          ├── 媒体 → vision/whisper/ffmpeg → 文字
                          ├── 合并 prompt
                          ├── claude -p --output-format stream-json
                          └── cc-stream-relay 解析 → 批量推事件
                                  │
                                  ▼
              ┌──────────────────────────────────┐
              │  mcp-server/server.py :18790     │
              │  ├── HTTP API + SSE              │
              │  ├── SQLite tasks.db (WAL)       │
              │  ├── /lanhuo dashboard (单页)    │
              │  └── MCP stdio (cc_session_*)    │
              └──────────────────────────────────┘
                          │
                          ▼
              keepermac.huo15.com/lanhuo (frpc 反代)

快速开始

# 1. 前置依赖(一次性)
brew install ffmpeg jq python3                       # macOS
npm install -g @anthropic-ai/claude-code
pipx install openai-whisper                          # 可选,处理语音/视频

# 2. clone 仓库到稳定路径
git clone https://cnb.cool/huo15/ai/openclaw-media-bridge \
  ~/workspace/projects/openclaw/openclaw-media-bridge
cd ~/workspace/projects/openclaw/openclaw-media-bridge

# 3. 一键安装(幂等可重跑)
bash setup.sh

# 4. 重启 OpenClaw / Claude 让它们读到新 skill / MCP
#    OpenClaw menubar app → Restart Gateway
#    Claude Desktop App   → Quit & Reopen
#    Claude Code CLI      → 退出当前会话再开新的

setup.sh 完成:

  • LaunchAgent #1:MCP server 跟随登录自启
  • LaunchAgent #2summarizer 每小时跑一次(v2.18.0)
  • 写 Claude Desktop App claude_desktop_config.json
  • claude mcp add -s user 注册到 Claude Code CLI
  • symlink bin/*~/.local/bin
  • cp SKILL.md 到所有 ~/.openclaw/workspace*/skills/skills/cc-media-bridge/

后续更新

bash update.sh    # = git pull + 同步 SKILL + 重启 server + 刷 summarizer plist + 重启 OpenClaw gateway

git pull 后 bin/* 立即生效(symlink);server.py / SKILL.md / 两个 LaunchAgent plist 由 update.sh 自动重启。

卸载

bash uninstall.sh   # 撤销所有装机改动;不删 repo,不删任务 DB

多用户账号 + ACL(v2.10.9+)

admin 跟贾维斯说: "给小明开账号 alice / abc123,让他看 CLAUDE媒桥初探"
贾维斯:
  1. cc_user_create("alice","abc123","user") → 已建
  2. cc_user_grant_session("alice","CLAUDE媒桥初探")
     → 模糊匹配到 e4f03da6...
  3. cc_user_login_link("alice","abc123")
     → 返 markdown 链接
  4. 回 IM: "✅ 已建 alice 账号。登录: [蓝火 dashboard · alice](https://keepermac.huo15.com/lanhuo?u=alice&upwd=abc123)"
身份触发看到
super-admindashboard_password (默认 huo15.com)全部,绕 ACL
admin userrole=admin全部
普通 userrole=userallowed_sessions ∪ cwd_prefix 命中的

cwd_prefix 比 session_id 白名单可持续——配一次"该 cwd 下未来所有会话"自动可见。

MCP Tools(一份完整清单)

会话/任务

  • cc_session_list(limit, cwd_filter, q) — 列 CC 全部 jsonl + cc-media-task 元数据 + AI 摘要
  • cc_recent_tasks / cc_my_taskscc_session_list 别名(语义路由)
  • cc_session_get(session_id, limit) — 单条完整对话流(user/assistant/thinking/tool_use/tool_result)
  • cc_session_search_content(q) — FTS5 全文搜对话内容(带 <mark> 高亮 snippet)
  • cc_session_summarize(session_id, force_refresh)v2.18.0 AI 一句中文摘要(缓存 + 按需重跑)
  • cc_session_export(session_id, format) — Markdown 导出
  • cc_session_share(session_id) / cc_session_share_list / cc_session_share_revoke — 公开 share 链接
  • cc_session_rename(session_id, custom_title) — CLI 命名
  • cc_task_get / cc_task_status / cc_task_events / cc_task_tail / cc_task_cancel — 任务详情/事件流/取消(cc_task_list / cc_task_search / cc_task_summary 已 v2.16.1 移除,统一走 cc_session_list

多用户

  • cc_user_create / set_role / grant_session / grant_cwd / grant_bulk / revoke / list / get / delete / login_link
  • cc_admin_list / add / remove

记忆 / 公告 / 版本

  • cc_memory_add / list / search — 跨任务记忆(按 owner/topic 召回)
  • cc_announce_set / get / clear — dashboard 顶栏公告
  • cc_skill_version_probe — 检测当前会话 SKILL 是否落后
  • cc_dashboard_url — 一键拿 dashboard 入口

HTTP API

# 任务
POST   /tasks                              创建(含 owner_id)
GET    /tasks?status=&platform=&owner_id=
GET    /tasks/:id
POST   /tasks/:id/{status,cancel,result}
DELETE /tasks/:id
GET    /search?q=&owner_id=

# 事件
POST   /tasks/:id/events                   单条
POST   /tasks/:id/events/batch             批量(推荐,relay 用)
GET    /tasks/:id/events?since=N&wait=8    长轮询
GET    /tasks/:id/stream                   SSE
DELETE /tasks/:id/events

# CC 原生 sessions
GET    /cc-sessions?limit=&q=              v2.18.0 含 summary 字段
GET    /cc-sessions/:id
GET    /cc-sessions/:id/export?format=md
GET    /search-content?q=                  FTS5 全文

# 多用户
POST   /users / GET /users / DELETE /users/:name
POST   /me/password                        自助改密

# Admin
POST   /admin/gc                           手工触发 watchdog
GET    /announcement                       公开公告(无 auth)
GET    /version                            诊断(含 schema_version)

一致性 / Schema migrations

每个 cc-media-bridge 装机后体验完全一致——4 件套保证:

  1. Schema migrations(11 个版本,幂等) — SCHEMA_MIGRATIONS = [(1, "...", SQL), ...]
  2. scripts/defaults.json — 默认 config 单一来源,setup 时 cp
  3. Self-discover 安装位置 — 扫所有 ~/.openclaw/workspace*/
  4. Self-verify gatecc-media-task --doctor 23 项检查 + 修复命令

文件结构

openclaw-media-bridge/
├── setup.sh                         # 一键装机(双 LaunchAgent + MCP 注册 + skill 部署)
├── update.sh                        # git pull + 重启 + 同步
├── uninstall.sh                     # 反向卸载
├── skill/
│   ├── SKILL.md                     # OpenClaw 技能(含 harness L1/L5 命令式约束)
│   └── install-to-workspaces.sh     # 自动扫所有 workspace*/
├── mcp-server/
│   └── server.py                    # HTTP + SSE + MCP + dashboard + watchdog(~5400 行)
├── bin/
│   ├── cc-media-task                # 派活入口
│   ├── cc-stream-relay              # stream-json 解析 + 批量推事件
│   ├── cc-summarize-sessions        # v2.18.0 AI 摘要器
│   ├── cc-app-control               # macOS Claude Desktop UI 控
│   └── cc-auto-auth                 # 自动点授权弹窗
├── scripts/
│   ├── defaults.json                            # 默认 config 模板
│   └── com.cc-media-bridge.summarizer.plist.template  # v2.18.0
├── CLAUDE.md                        # 仓内开发指引(架构 + 事件 schema + 版本史)
└── README.md                        # 本文件

DB:~/.openclaw-media-bridge/tasks.db(WAL + 11 schema versions);不在仓内、卸载不删。


公司名称: 青岛火一五信息科技有限公司

联系邮箱: postmaster@huo15.com | QQ群: 1093992108


关注逸寻智库公众号,获取更多资讯

逸寻智库公众号二维码