← 返回列表
⚠ 装前注意
追踪插件调用链路、成本与健康状态并告警
基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/16 · 已提供中文文档
DeepSeek Harness 的可观测性 / 调试工具:追踪、成本与健康状态采集 + 客户端仪表盘。
综合分
30.8
GitHub 分
30.8
用户评分
—
★ Stars
1
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/ddtcorex/dsh-maestro-observe.git数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包@ddtcorex/dsh-maestro-observe(未发布到 npm,仅可源码安装)
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
未发布到 npm registry,仅可从源码安装
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/19 09:05:43
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-maestro-observe
Maestro observe — trace/health/cost 调试工具(第 3 阶段)
DSH Maestro 插件 — dsh-maestro- 生态系统的一部分(@ddtcorex/dsh-maestro-observe)。
面向 Maestro 插件栈的本地优先可观测性。宿主将 turn/tool/error 信号记录到可查询的 SQLite 存储中
(~/.dsh/dsh-maestro-observe/observe.sqlite,0600),并通过
maestro-observe 工具和 /dsh-maestro-observe 回环 RPC 暴露这些信号。
渲染位于 dsh-maestro-dashboard(Activity 标签页)中,它调用下面的 RPC —
本包不附带任何客户端 UI。Telegram 摘要和峰值告警通过可选的
maestroNotifier 服务投递 — 即使没有它,插件也能完整运行。
安装
dsh plugin add @ddtcorex/dsh-maestro-observe
工具 / RPC 操作
这些操作在工具(op)和 RPC(端点名称)上一一对应;未知的
操作/端点会安全失败。
- trace { limit?, sessionId?, tool?, kind?, since? } — 最新优先的记录。
- cost { scope: 'day'|'session', sessionId?, day?, groupBy?: 'tool'|'session' }
(day 选择显式的 UTC 日期;不带 since 的 groupBy 表示全生命周期)。
- budget { action: 'set'|'check', scope, key, limit_tokens? } — token 预算。
- config { action: 'get'|'set', key, value? } — 运维调节项。
- errors { tool?, since? } — 按工具 + 规范化签名分组。
- latency { tool?, since? } — { count, p50, p95, p99 } latencyMs。
- health {} — 插件、工具数量、各通道状态、去重后的降级列表。
- status(仅 RPC)— 运行时长、版本、环形缓冲区大小、行数。
RPC 调用约定(供 dashboard 及其他消费者使用)
Connection 传输要求端点分发加上载体形状 —
rpc.call(channel, endpoint, payload) 返回
{ ok: true, value } | { ok: false, error: { code, message, details } }。
服务器会拒绝其他任何形式,因此发送单个 { method }
对象或跳过载体解包的客户端会静默失败。使用
res?.ok ? res.value : null 解包。observe 插件不存在 → 调用被拒绝:应隐藏
依赖它的 UI,而不是渲染零值。
配置键(config 操作)
| 键 | 默认值 | 含义 |
|---|---|---|
| retention_days | 30 | 每日清理的 trace 保留期 |
| detail_max_chars | 500 | 由 redact 管道应用的详情截断长度 |
| digest_schedule | 08:00 | 每日 Telegram 摘要的本地 HH:MM |
| spike_n / spike_m | 10 / 5 | 在 M 分钟内出现 N 个错误后告警 |
| telegram.botToken / telegram.chatId | — | 摘要 + 峰值告警的 Telegram 目标 |
trace 详情中的机密在持久化前会被脱敏(机密形状 →
[redacted],详情被截断)。会话成本为会话生命周期;日成本、
摘要窗口和保留截止时间按 UTC 日计算(摘要的触发时间*
为本地 HH:MM)。
Telegram 设置
1. 安装 @ddtcorex/dsh-maestro-notifier(提供 maestroNotifier)。
2. config set telegram.botToken ,config set telegram.chatId
(或 budget/config 工具操作)。
3. 每日摘要按 digest_schedule 触发;尖峰告警在错误率阈值处触发。没有通知器时,两者都保持静默并记录一条警告——不会抛出任何异常。
开发
pnpm verify # tsc --noEmit
pnpm test # vitest run
pnpm build # tsc -p tsconfig.json -> lib/扫码进群