Install
openclaw skills install bluehex-data-monitoringBlueHex AI PM 项目
openclaw skills install bluehex-data-monitoring把每个 OpenClaw 龙虾与用户(包括飞书直聊和群聊)的全量对话与交换媒体,每 2 小时一批:脱敏 → 写本地 markdown → 滚动 daily PR 推送到 BlueFocusContentUniverse/bluehex-data-monitoring。
这是 ai-pm 体系的数据底座:监控保持纯原始捕获,项目识别、retroactive 标签、vector RAG、SOP 自改进全部由 ai-pm skill 在下游消费时完成。
做什么
~/.openclaw/agents/main/sessions/),把窗口期内的对话提取出来。process-catl.py --monitor 脱敏:凭证字面值就地改 <credential>,PII 掩码,high/medium/toxic 只 flag 不丢 turn。<slug-name>_<open_id>/YYYY-MM-DD/HHMM-<host>.md 写入。monitoring/<host>/YYYY-MM-DD,2h flush 累加 commits,一天一个 PR(fork + cross-repo)。不做什么 / 别人做
project:) → 下游 ai-pm 蒸馏时做。原因:2h 时间片切割导致上下文丢失,session-level 也不够可靠。agent:bootstrap / command / 会话生命周期 + 注册式 JS 插件),不走这条路。ou_<32hex>:,每条独立归属。「录制对话」「monitoring 数据」「bluehex data 底座」「持续录制」「推到 monitoring 仓库」「2h 数据沉淀」
# 1. 安装 skill(一次性)
clawhub install bluehex-data-monitoring # 或本仓直接 cp 到 ~/.openclaw/workspace/skills/
# 2. 首次安装(交互式:拼音/host 名 + GitHub user + 飞书 open_id + 注册 2h cron)
bash ~/.openclaw/workspace/skills/bluehex-data-monitoring/scripts/install-cron.sh
# 3. 手动测试一次(dry-run,不真发 PR)
bash ~/.openclaw/workspace/skills/bluehex-data-monitoring/scripts/record.sh --dry-run
~/.openclaw/agents/main/sessions/
├─ <sid>.jsonl ← direct: type=message 行直接读
└─ <sid>.trajectory.jsonl ← group: prompt.submitted 文本里解析 ou_<32hex>: 前缀
│
▼
┌──────────────────┐
│ extract-turns.py │ direct + group 两条路径 → 统一 turns JSON
└──────────────────┘
│
▼ 按 open_id 分组
┌──────────────────┐ ┌────────────────────┐
│ resolve-name.sh │←→│ lark-cli contact │(缓存到 ~/.openclaw/cache/)
└──────────────────┘ └────────────────────┘
│ open_id → display name
▼
┌─────────────────────────────────┐
│ process-catl.py --monitor │ 全量录制:凭证就地改、PII 掩码、敏感打 flag
└─────────────────────────────────┘
│ sanitized text + report
▼
<slug-name>_<open_id>/YYYY-MM-DD/HHMM-<host>.md ← 写文件(frontmatter)
│
▼
preflight.sh --sync-only → fetch upstream + push fork main
│
▼
commit on monitoring/<host>/YYYY-MM-DD branch → push fork → ensure PR open
│
▼
watermark 推进(仅在 PR push 成功后)
仓库 BlueFocusContentUniverse/bluehex-data-monitoring:
qizhang_ou_2165be6a.../
├─ 2026-06-01/
│ ├─ 0015-<host>.md ← 一个 2h flush
│ ├─ 0215-<host>.md
│ ├─ media/
│ │ └─ om_<id>.png ← 交换媒体(outbound + 有落盘的 inbound)
│ └─ ...
└─ 2026-06-02/
shejinming_ou_8d3f.../
└─ ...
group_oc_8da3.../ ← 群聊(无法逐用户解析时的兜底)
└─ ...
每个 .md 的 frontmatter:
---
user_name: Qi Zhang
user_open_id: ou_2165be6a...
window: ["2026-06-01T00:15+08:00", "2026-06-01T02:15+08:00"]
host: <host-id>
chat_type: feishu:direct # 或 feishu:group:oc_<chatid>
session_ids: [f5b13ff7-..., ...]
message_ids: [om_x100b50dd7..., ...]
sensitivity: medium # process-catl.py 给的标签
flagged: true # high_hits 或 is_toxic 命中
credentials_redacted: 0
pii_masked: 3
high_hits: ["中创新航"]
---
## conversation
[user 09:51:02] [REDACTED → sanitized content]
[assistant 09:51:12] ...
...
每次 cron 触发:
~/.openclaw/state/bluehex-monitor/watermark.txt(首次 = 2h 前)。~/.openclaw/agents/main/sessions/<uuid>.jsonl,白名单:跳过 *.trajectory*、*.lock、sessions.json、.usage-cost-cache.json、*.deleted.*、*.reset.*、*.bak-*、*.clobbered.*。extract-turns.py --jsonl <p> --trajectory <p> --since <ws> --until <now> → JSON 数组 of turns。open_id 分桶(direct → sessionKey;group → 行内 ou_xxx: 前缀)。resolve-name.sh <open_id> 拿 slug-name → 组装 markdown 文本 → process-catl.py --monitor 脱敏 → 写文件。preflight.sh --sync-only 同步 fork 上 main。git checkout -B monitoring/<host>/$(date +%F)(首次 flush)/ git checkout monitoring/<host>/$(date +%F)(同一天后续);git add … && git commit -m "record(<host>): <ts> — N users, M turns"。git push -u origin monitoring/<host>/<date>;如果当天还没 PR:gh pr create --repo BlueFocusContentUniverse/bluehex-data-monitoring --base main --head <gh-user>:monitoring/<host>/<date> ...;浏览器兜底。ssh -T git@github.com 验证。gh auth login / glab / GH_TOKEN,三者皆无则浏览器兜底。contact:user.base:readonly scope(用于 open_id → display name)。process-catl.py --monitor 跑分类用,配置同 catl-harness-pr(~/.openclaw/openclaw.json 里的 models.providers.openai-compat.apiKey)。~/.openclaw/state/bluehex-monitor/record.log。contact:user.base:readonly scope,或没 lark-cli auth login --as user。folder 会兜底为 open_id-only。ou_<32hex>: 前缀),看 references/transcript-schema.md 是否需要扩展 extract-turns.py 的 inbound_meta 分支。gh/glab,浏览器兜底链接已经打到 log 里;或当天分支已存在但首条 commit 没建 PR,手动 gh pr create 一次后续会自动复用。openclaw cron list;openclaw cron runs --id <jobid>。scripts/record.sh — 2h cron 主入口scripts/extract-turns.py — direct + group transcript 解析scripts/process-catl.py — bundled from catl-harness-pr v0.6.0+(带 --monitor)scripts/resolve-name.sh — open_id → display-name(lark-cli + 缓存)scripts/preflight.sh — 环境检查 + fork 同步(adapted from catl-harness-pr)scripts/setup-fork.sh — fork 创建 / remote 布局(adapted)scripts/install-cron.sh — 首次安装向导,注册单条 15 */2 * * * cronreferences/recorder-pipeline.md — record.sh 流程详解references/transcript-schema.md — OpenClaw transcript 格式备忘(direct 与 group 差异)references/monitor-sanitization.md — process-catl.py --monitor 在本 skill 中的行为速查--monitor 脱敏(bundled process-catl.py from catl-harness-pr v0.6.0)<slug-name>_<open_id>(lark-cli 解析 name);ai-pm 在下游做项目标签、向量与蒸馏