通过 Skill 插件实现OpenClaw日志分析

更新时间:
复制为 MD 格式

alibabacloud-adb-openclaw-insight 是一个专为 OpenClaw 会话数据设计的三层自动化分析SKILL。通过连接到AnalyticDB for MySQL数据库,对存储的会话日志进行深度挖掘,自动生成从运营效率、用户行为到组织认知等多个维度的结构化分析结果和叙事性报告,帮助您全面洞察 Agent 的使用情况。

功能详解:三层自动化分析

L1 - 运营层分析 (无需 LLM)

此层分析完全基于 SQL 统计,无需依赖大语言模型,专注于量化的运营指标。

分析用例

功能说明

场景示例

L1-1 Token 效率分析

统计各用户/模型的输入输出 Token 消耗、缓存命中率及平均每会话成本。

通过效率分析,可以了解用户Token的使用情况。

L1-2 会话深度分析

分析每个任务链(Task Chain)的平均对话轮次,识别深度交互的会话。

通过深度分析,可以了解每个用户的任务执行复杂度。比如,B用户某个任务对话执行步骤最多,任务复杂度最高。

L1-3 工具链分析

统计工具(Tool)的使用频率及组合模式,发现最常用的工具序列。

通过工具链分析,可以发现比如exec工具执行次数最多,了解到Agent执行脚本较多。

L1-4 高成本会话识别

定位 Token 消耗或费用异常高的会话,快速发现成本热点。

通过高成本会话分析,可以发现A用户某会话Token消耗占据了50%以上的Token。

L1-5 异常检测

基于 Z-Score 算法,对 Token 消耗和响应时间进行统计学上的异常标记。

通过异常检测,可以发现某任务一直在重试,消耗了大量Token,做了很多无用功。

L2 - 行为层分析 (需要 LLM)

此层分析借助大语言模型(LLM)的能力,对用户行为和任务过程进行深度的定性与定量分析。

分析用例

功能说明

场景示例

L2-1 意图分类

将用户的提问归类为编码、调试、问答、数据分析等具体意图。

通过意图分类结果,如果发现编码场景用户数最多,聊天场景用户数最少,说明大部分人都在开发。

L2-2 任务复杂度评估

综合对话轮次、工具使用次数和 Token 量,为每个任务链评定复杂度等级(1-5级)。

通过任务复杂度评估,可以看到Task Chain按照执行复杂度排序的列表。

L2-3 任务成功率估算

基于对话的最终结果,推断每个任务链是否成功完成目标。

通过任务成功率估算,可以了解到比如大部分Task Chain都是成功的,只有少数是失败,可以找出失败的原因。

L2-4 Prompt 质量评分

对用户输入的 Prompt 质量进行打分,识别可优化的低质量输入模式。

通过质量评分,可以找出Prompt质量高的用户,进行推广学习。

L2-5 主题聚类

对所有会话的主题进行聚类,发现用户最关注的热点领域。

通过主题聚类结果可以发现大家都在关注的AI 信息。

L2-6 重试行为检测

检测用户在同一会话内多次重试或追问的行为模式。

通过重试行为检测,可以发现某类型任务,Agent的执行能力最弱,可以提供给模型Provider优化模型。

L2-7 思考深度分析

分析助手的 Thinking 轮次与深度,评估推理复杂度。

通过思考深度分析,可以发现某种任务类型,模型思考最多,说明任务复杂度比较高。

L2-8 用户成熟度追踪

基于历史交互习惯,将用户分级(初级 / 中级 / 高级)。

通过用户成熟度追踪,可以发现大家使用AI的能力都在什么水平。

L3 - 组织层分析 (需要 LLM)

此层分析从更高维度审视跨用户、跨会话的集体行为模式,旨在发现组织层面的知识缺口与改进机会。

分析用例

功能说明

场景示例

L3-1 技术栈热力图

统计各种技术栈、编程语言或框架被提及的频率,生成技术热度排行。

通过技术栈热力图,可以发现大家关注的技术热点都是什么。

L3-2 重复问题检测

识别跨会话、跨用户的高频重复问题,这通常反映了知识库或文档的不足。

通过重复问题检测,可以发现大家的关注点都是什么,有哪些业务可以完全自动化的。

L3-3 Skill 候选分析

根据高频出现的任务模式,推荐可被固化为独立 Skill 的潜在场景。

通过SKILL候选分析,可以将高频任务沉淀为SKILL,避免每次都要Agent进行复杂处理,减少Token消耗。

L3-4 用户画像报告

为每位用户汇总其行为特征、技术偏好和使用习惯,生成摘要报告。

通过画像报告,可以了解每位用户使用AI的偏好,识别工作复杂度以及问题处理效率。

L3-5 最终叙事报告

综合 L1/L2/L3 的所有分析结果,自动生成一份完整的 Markdown 格式分析报告。

通过报告可以让管理总览全局,了解大家AI的使用成本以及AI的推广程度。

说明

每次分析完成后还会自动生成 insight_logic_explanation.md,解释本次各用例的指标计算逻辑,语言与报告主体一致(中文数据 → 中文,英文数据 → 英文)。

注意事项

  • 数据量要求

    • L1 分析:无数据量下限,但建议至少有1条会话记录以进行有效统计。

    • L2 分析:建议至少有 50 个任务链,以保证意图分类和主题聚类的结果具有参考价值。

    • L3 分析:建议至少有 100 个任务链,以确保跨会话的重复问题检测足够准确。

  • LLM 依赖

    • L1 分析完全不依赖 LLM。

    • L2 和 L3 的所有分析用例都必须配置 LLM API,否则将被自动跳过。

    • 单次分析默认最多向 LLM 发送 500 个会话(可在 config.json 中调整 maxSessionsForLlm)。

    • 建议使用支持长上下文窗口(≥ 32K,推荐 128K+)的模型。

  • 数据库 Schema 依赖
    Skill 依赖以下三张表。init_db 脚本会自动创建或补齐这些表及其字段。

    表名

    用途

    openclaw_sessions

    存储会话的每一条消息(角色、内容、Token 等)。

    openclaw_logs

    存储运行时日志(可选)。

    openclaw_analysis_results

    存储每次分析的结果。

  • 分析默认基于最近2天数据(可通过 --from/--to 指定时间窗口),结果仅反映该窗口内情况,不跨窗口累计,且数据保留周期由 retentionDays(默认2天)控制,超期数据将自动清理。

  • 当前不支持实时流式分析,所有分析均为批量历史数据处理。

  • L2-5 主题聚类在用户意图分布高度分散时,聚类结果可能粒度较粗。

  • L3-2 重复问题检测基于语义相似度,需要 LLM 推断,对完全相同的字面问题检测更准确。

安装与配置步骤

自动安装

您可通过 OpenCLaw 对话框一键完成安装:只需输入以下指令并按提示提供相应配置信息即可。如需了解具体执行细节,请参考手动部署页面。

请使用如下命令安装alibabacloud-adb-openclaw-insight SKILL到你的SKILL目录:
git clone https://github.com/aliyun/alibabacloud-adb-mysql-mcp-server
cd alibabacloud-adb-mysql-mcp-server/skill/alibabacloud-adb-openclaw-insight, 
下载完成后,请阅读 SKILL.md,安装对应依赖,更新配置文件,并完成数据库初始化。

手动部署

步骤一:克隆仓库并准备环境

git clone https://github.com/aliyun/alibabacloud-adb-mysql-mcp-server
cd alibabacloud-adb-mysql-mcp-server/skill/alibabacloud-adb-openclaw-insight

步骤二:安装项目依赖

  • 方式一:使用 uv(推荐)

    # 安装 uv 包管理器
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # 安装项目依赖
    uv pip install -r requirements.txt
  • 方式二:使用 pip

    pip install -r requirements.txt
    # 如果找不到 "pip",请尝试:
    pip3 install -r requirements.txt

步骤三:配置 Skill 连接信息

这是安装过程中唯一需要手动干预的步骤。请在继续之前,收集并确认以下配置信息。

  • AnalyticDB for MySQL 连接信息

    配置项

    说明

    示例

    adb.host

    AnalyticDB for MySQL集群的连接地址。

    am-xxxxxxxx.ads.aliyuncs.com

    adb.port

    数据库端口号。

    3306

    adb.database

    目标数据库名称。

    openclaw_adb

    adb.username

    数据库用户名。

    your_user

    adb.password

    数据库密码。

    your_password

  • LLM 大模型配置

    说明

    如果用户只需要 L1 运营效率分析,可跳过此部分。

    配置项

    说明

    示例

    llm.endpoint

    大模型 API 的服务地址。

    https://dashscope.aliyuncs.com/compatible-mode/v1

    llm.apiKey

    API Key。

    sk-xxxxxxxxxx

    llm.model

    模型名称。

    qwen-plus

    llm.apiType

    API 协议类型 (openai 或 anthropic)。

    openai

  • (可选)分析模块开关

    配置项

    说明

    默认值

    analysis.enableL1

    启用 L1 分析。

    true

    analysis.enableL2

    启用 L2 分析 (需要 LLM)。

    true

    analysis.enableL3

    启用 L3 分析 (需要 LLM)。

    true

    analysis.analysisWindowDays

    分析时间窗口(天)

    7

步骤四:写入配置文件

根据用户提供的信息,从模板生成 config.json

cp config.example.json config.json

然后将用户提供的值写入 config.json 对应字段。最终文件结构如下:

{
  "adb": {
    "host": "<用户提供的 host>",
    "port": 3306,
    "database": "<用户提供的 database>",
    "username": "<用户提供的 username>",
    "password": "<用户提供的 password>",
    "sessionTable": "openclaw_sessions",
    "logsTable": "openclaw_logs",
    "connectionPoolSize": 5
  },
  "collection": {
    "intervalMinutes": 5,
    "batchSize": 100,
    "retentionDays": 7,
    "enableLogCollection": true,
    "enableTokenCollection": true
  },
  "filters": {
    "minLevel": "info",

    "includeSubsystems": [ ],

    "excludeSubsystems": ["verbose", "trace"]
  },
  "llm": {
    "endpoint": "<用户提供的 endpoint,如未提供则留空>",
    "apiKey": "<用户提供的 apiKey,如未提供则留空>",
    "model": "<用户提供的 model>",
    "apiType": "<用户提供的 apiType>",
    "maxConcurrency": 5,
    "temperature": 0.1,
    "maxTokens": 128000
  },
  "analysis": {
    "enableL1": true,
    "enableL2": <用户是否启用 L2>,
    "enableL3": <用户是否启用 L3>,
    "analysisWindowDays": 7,
    "maxSessionsForLlm": 500
  }
}

步骤五:初始化数据库

此命令将在AnalyticDB for MySQL版集群中创建或更新所需的表结构。

python -m scripts.init_db
# 如果找不到 "python",请尝试:
python3 -m scripts.init_db

运行与验证

启动服务与数据采集

  • 方式一:前台启动
    此命令会立即启动服务并在前台运行,适合快速测试。

    python -m scripts.main
    # 如果找不到 "python",请尝试:
    python3 -m scripts.main

    服务启动后将自动开始采集 OpenClaw 会话日志并按计划执行分析。

  • 方式二:注册为定时任务(生产推荐)
    为实现持续自动的数据采集,建议将采集脚本注册为 OpenClaw 的定时任务(Cron Job)。

    {
      "cron": "*/30 * * * * *",
      "command": "python -m scripts.main collect",
      "cwd": "/path/to/alibabacloud-adb-mysql-mcp-server/skill/alibabacloud-adb-openclaw-insight"
    }

手动触发分析

在数据采集运行一段时间后,您可以随时手动触发分析脚本。

# 分析过去 1 天
python -m scripts.analyze_usage --from "$(date -d '1 day ago' '+%Y-%m-%d') 00:00:00" --to "$(date '+%Y-%m-%d') 23:59:59"

# 分析过去 2 天
python -m scripts.analyze_usage --from "$(date -d '2 days ago' '+%Y-%m-%d') 00:00:00" --to "$(date '+%Y-%m-%d') 23:59:59"

验证安装结果

安装并运行服务片刻后,执行以下 SQL 查询来验证数据采集链路是否正常。

SELECT COUNT(*) FROM openclaw_sessions;
SELECT COUNT(*) FROM openclaw_logs;

如果两张表的查询结果均大于 0,则表明 Skill 已成功安装并开始采集数据。

分析使用示例

完成 Skill 挂载后,输入相应指令,系统将自动识别并返回结构化分析结果。

  • 命令行界面输入:

    /alibabacloud-adb-openclaw-insight 帮我使用ADB分析下最近一个月用户的openclaw的使用情况
  • 分析结果

    image