Skip to content

macOS 15.3 + Node.js v22.14.0 环境下测试 ClawProbe #2

@shunwah

Description

@shunwah

问题概述

在 macOS 15.3 + Node.js v22.14.0 环境下测试 ClawProbe 与 OpenClaw 最新版兼容性,核心功能可满足基础监控需求,但在路径自动检测、错误提示、配置加载、输出格式等方面存在体验问题,需针对性优化。

详细问题 & 改进建议

1. 安装与启动 - 路径检测逻辑不完善

问题

  • Daemon 无法正确解析 OpenClaw 非默认路径(如 OPENCLAW_HOME 环境变量指定),默认路径下也可能因权限无法读取会话文件;
  • clawprobe startclawprobe status 显示「无活跃会话」,但 OpenClaw 实际有运行中的会话。

建议

  • 新增 --openclaw-dir 参数,允许手动指定 OpenClaw 根目录;
  • 启动 daemon 时打印「检测到的 OpenClaw 路径」,便于用户排查;
  • 增强权限检测,路径读取失败时给出明确提示(如「无权限读取 ~/.openclaw/agent」)。

2. 基础命令 - 错误提示&字段说明不清晰

问题

  • clawprobe status 无会话时仅提示「⚠ No active session found」,未区分「daemon 未启动」或「OpenClaw 无会话」;
  • 「Compacts: 2」字段未说明是「当前会话」还是「全局」。

建议

  • 无会话时输出诊断信息:⚠ No active session found. Check: 1. Daemon running (clawprobe start); 2. OpenClaw has active session
  • 字段重命名为「Compactions (this session): 2」,明确统计范围。

3. 实时监控 - 刷新体验&异常处理待优化

问题

  • clawprobe top 刷新时终端闪烁,会话/daemon 中断后一直等待并报错,未优雅退出;
  • clawprobe live 解析工具调用日志鲁棒性不足(缺失 stopReason 字段时错误信息缺失、状态误判);--density compact 隐藏成功结果,无中间粒度选项。

建议

  • top 增加 daemon/会话状态检测,会话消失时自动退出并提示;新增 --exit-on-session-end 选项;优化刷新逻辑(如增量更新而非清屏重绘);
  • live 增强解析鲁棒性(缺失字段赋默认值);新增 --density minimal 模式,仅显示工具名称+耗时;
  • 修复工具调用状态误判问题(如「exit 1」但实际执行成功)。

4. 成本与会话分析 - 配置&输出体验不足

问题

  • clawprobe cost 对未内置定价的模型报错,但未说明配置格式,且配置后需重启 daemon 才生效;
  • clawprobe session 无法区分「进行中」和「待办」todo,空节占用大量空间。

建议

  • cost 新增 clawprobe config add-price <model> <input-price> <output-price> 子命令,简化配置;错误信息中给出配置模板(示例:{"customPrices": {"llama3-70b": {"input": 0.001, "output": 0.002}}});配置变更后自动热加载,无需重启 daemon;
  • session 新增 --compact 选项,隐藏空节(无 todo/sub-agent 时不显示对应模块);给「进行中」todo 增加特殊标记(如 🟢),区分「待办」。

5. 上下文与压缩分析 - 准确性&保存体验待提升

问题

  • clawprobe context 「Workspace overhead」计数不准确,截断检测依赖文件大小易误报;
  • clawprobe compacts --save 仅保存消息文本(无工具调用详情),默认文件名无时间戳易覆盖。

建议

  • context 补充说明截断检测原理(如「通过检查 TOOLS.md 是否完整包含在最近消息中推断」);新增 --verbose 选项,显示具体截断文件列表;优化「Workspace overhead」计算逻辑(考虑动态注入文件+截断场景);
  • compacts 新增 --save-json 选项,保存完整会话结构(含工具调用详情);默认文件名增加时间戳(如 compact-2026-03-24T16-22-00.md)。

6. 智能建议&JSON 输出 - 规则&退出码不规范

问题

  • clawprobe suggest 部分规则(如 high-compact-freq)阈值计算错误,--dismiss 忽略规则后未持久化;
  • --json 模式无会话时 exit code 仍为 0,脚本无法判断错误。

建议

  • suggest 修复 high-compact-freq 规则阈值;--dismiss <ruleId> 时更新 ~/.clawprobe/config.jsonrules.disabled 字段;新增 suggest --list-rules 命令,展示所有规则+触发条件;
  • --json 模式错误场景(如无会话)返回非零 exit code(如 1);文档中明确错误 JSON 结构(示例:{"ok": false, "error": "no_active_session", "code": 1})和退出码映射关系。

7. 配置与扩展性 - 加载逻辑&优先级待修复

问题

  • ~/.clawprobe/config.jsonopenclaw.dir 配置未生效,daemon 仍使用默认路径;
  • 文档未说明配置优先级(命令行 > 环境变量 > 配置文件 > 自动检测)。

建议

  • 修复配置加载逻辑,确保 openclaw.dir 生效;新增 --debug 模式,打印最终生效的配置值;
  • 新增 clawprobe config show 命令,展示当前所有生效配置(含来源:命令行/环境变量/配置文件/默认);
  • 补充文档,明确配置优先级规则。

8. 边缘情况与兼容性 - 测试&校验待补充

问题

  • 未适配 Windows WSL2 路径解析,未校验 Node.js 版本(文档要求 ≥22),未检测 OpenClaw 日志格式版本兼容性。

建议

  • 增加 WSL2 测试用例,确保路径解析正常;
  • 启动时校验 Node.js 版本,低于 22 时提示「ClawProbe requires Node.js ≥22, please upgrade」;
  • 新增 OpenClaw 版本兼容性检测,日志格式不兼容时给出提示+降级解析方案。

优先级建议

  1. 高优先级:修复 daemon 会话识别/路径检测问题(用户第一体验)、JSON 输出 exit code 规范、cost 配置易用性;
  2. 中优先级:优化终端刷新体验、工具调用日志解析鲁棒性、suggest 规则持久化;
  3. 低优先级:补充 WSL2 测试、Node.js 版本校验、文档完善。

测试环境&命令

  • 环境:macOS 15.3, Node.js v22.14.0, OpenClaw main 分支;
  • 核心测试命令:
    npm install -g clawprobe
    clawprobe start && clawprobe status && clawprobe status --json
    clawprobe top --interval 3 && clawprobe live --density compact
    clawprobe cost --week && clawprobe session --compact
    clawprobe context --verbose && clawprobe compacts --save 3 --save-json
    clawprobe suggest --dismiss tools-truncation --list-rules

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions