dsh-plugin

DSH PLUGIN模型与账号接入

仓库 loongsuite/dsh-plugin · npm @loongsuite/dsh-plugin

模型与账号接入 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness 提供 OpenTelemetry 追踪,将每次代理回合转为 GenAI 跨度树,经 OTLP 导出至 Jaeger、Langfuse 等后端,实现 LLM 可观测性。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 25 复刻 4 · 未关闭 issue 未标注
最近更新 2026-08-25 创建于 2026-08-15
README 8.4 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add @loongsuite/[email protected]
兼容 DSH 版本0.2.0-rc.2 等 7 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名@loongsuite/dsh-plugin可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-plugin:为 DeepSeek Harness 提供 OpenTelemetry 追踪的 DSH 插件

  • 生成 GenAI 跨度树
  • 导出 OTLP 遥测
  • 追踪 LLM 调用与工具
  • 输出 token 用量指标

上游标签

agent-observabilityai-codingdeepseek-harnessdistributed-tracingdshdsh-plugingenaigrafana-tempojaegerllm-observabilityloongsuiteobservabilityopentelemetryotelotlptelemetry

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
  • L4.4_RESOLVED_ARTIFACT 安装版本已解析 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方loongsuite仓库 dsh-plugin · 默认分支 未标注
分类模型与账号接入ai
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证Apache-2.0商用或二次分发前请确认条款原文
星标 / 复刻 / issue25 / 4 / 未标注收录时的数值,非实时
创建 / 更新2026-08-15 · 2026-08-25最后推送 未标注
本站收录2026-08-20首次进入本站目录的时间

README 全文

8.4 KB
作者原文,中文版优先;只做安全转义,不改内容

DeepSeek Harness 的 LoongSuite 可观测插件

English | 简体中文

@loongsuite/dsh-plugin 是面向
DeepSeek Harness(dsh)的独立开源可观测
插件。它观测 DSH 原生的会话、Agent 循环、LLM 流和工具生命周期,将其转换为 OpenTelemetry
GenAI Trace 与 Metric,并通过标准 OTLP/HTTP Protobuf 上报到任意兼容后端。

LoongSuite 是基于 OpenTelemetry 的开源可观测采集体系。本仓库是它面向 DSH 的原生集成。插件不依赖也不
要求安装 LoongSuite Pilot
,不需要 sidecar、本地 JSONL 采集点,也不绑定任何厂商的后端。

> 当前状态:稳定的 0.1.x 版本。可从 npm 或 DSH 插件市场安装 @loongsuite/dsh-plugin。

一轮 DSH 对话通过 OTLP 上报到自建 Langfuse:4 个 react step、每次调用的耗时与 token、
web_search 失败后回退到 bash,以及 ENTRY span 上的 GenAI 语义属性。
该截图显式开启了正文采集,默认是关闭的。

数据模型

DSH session/event + llm/stream
│
▼
生命周期协调器
│
▼
LoongSuite GenAI OTel 工具库
│
▼
私有 TracerProvider + MeterProvider
│  OTLP/HTTP Protobuf
▼
任意 OpenTelemetry 兼容后端

DSH 的每一轮对话生成一条调用链:

ENTRY
└── AGENT
└── STEP
├── LLM
└── TOOL

每次真实 LLM 调用都会生成独立的 LLM span,因此重试会保留为同一个 STEP 下的多次尝试。工具调用
通过 DSH call ID 与结果关联。错误、中止、不完整的流以及插件卸载都会以错误状态关闭未结束 span,不会
留下悬挂链路。Subagent 会话生成独立 trace,并携带 DSH 父会话和委派层级属性。

开启正文采集时,ENTRY 和 AGENT 的输入消息只包含本轮 source.kind=user 的直接输入。Runtime
快照、Agent 指令、Skill Catalog、Goal 和 Coordinator relay 等 DSH 合成上下文仍保留在 LLM
span 上,但会排除之前 turn 的会话历史,确保每条 trace 只包含自身 turn 的上下文。同一 turn 的工具
循环中,后续 LLM span 仍会保留本 turn 前面产生的 Assistant 工具调用和工具结果。ENTRY 和
AGENT 的输出消息只包含最终 stop 回复;如果 turn 没有到达 stop,则回退到最后一条可用的
Assistant 消息。

插件还会上报标准的 gen_ai.client.operation.duration 与 gen_ai.client.token.usage 指标。它不
上报 OpenTelemetry Log,可与独立的 DSH 日志导出插件同时使用。

GenAI Invocation 构建与语义属性由
@loongsuite/otel-util-genai SDK 提供。

兼容范围

组件 支持范围 已完整验证版本
DeepSeek Harness >=0.1.0-rc.6 <0.2.0 0.1.0-rc.6 的 headless 与 Web profile
Node.js >=22.19.0 macOS 上的 22.19、24.19 和 25.9

不支持早于 0.1.0-rc.6 的 DSH RC 版本。每个插件版本都以 DSH 当前最新发布版为准进行验证,
不会仅凭 bundle 能成功组合就宣称具备完整运行时兼容性。

安装与使用

手上还没有 OTLP 后端的话,examples/quickstart 会起一个本地
Jaeger 后端,三条命令看到第一条调用链。

在需要观测的每个 DSH profile 中安装插件:

dsh plugin --profile web add @loongsuite/dsh-plugin
dsh plugin --profile headless add @loongsuite/dsh-plugin

本地开发时,把包名换成本仓库的绝对路径:

dsh plugin --profile web add /absolute/path/to/dsh-plugin

设置服务名和 OTLP/HTTP Collector 地址,然后照常启动该 profile:

export OTEL_SERVICE_NAME=dsh-agent
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
export OTEL_EXPORTER_OTLP_HEADERS='authorization=Bearer%20your-token'

dsh --profile web
# 或:dsh --profile headless "总结这个工作区"

共享 endpoint 会自动补成 /v1/traces 与 /v1/metrics。未配置 endpoint 时,导出器使用
OpenTelemetry 标准默认值。

插件配置

大部分部署只需环境变量。也可以修改 $DSH_HOME/profiles//cordis.patch.yml(默认位于
~/.dsh)中的插件配置:

- id: loongsuite-observability
config:
endpoint: http://localhost:4318
serviceName: dsh-agent
headers:
authorization: Bearer your-token
resourceAttributes:
deployment.environment.name: development
captureContent: false
exportMetrics: true

显式插件配置的优先级高于环境变量。

如果不想修改 profile,可在启动 DSH 前通过 GenAI 正文采集模式开启:

export OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=SPAN_ONLY
dsh --profile web
配置项 默认值 含义
enabled true 不卸载 bundle,直接停止采集。
endpoint 未设置 OTLP/HTTP 公共基地址;插件自动追加 signal 路径。
traceEndpoint / metricEndpoint 未设置 完整的单 signal 地址;优先于 endpoint。
headers {} 同时添加到两个导出器的请求头。
serviceName OTEL_SERVICE_NAME 或 deepseek-harness OpenTelemetry service.name。
resourceAttributes {} 额外的字符串类型 Resource 属性。
captureContent 环境变量配置或 false 上报提示词、回复、工具定义、参数和结果正文。
contentMaxChars 128000 每个正文属性序列化后保留的最大字符数。
exportMetrics 环境变量配置或 true 上报 LLM 耗时和 token 指标。
maxExportBatchSize 512 每批最多上报的 span 数。
maxQueueSize 2048 最多排队的 span 数,不能小于 batch size。
traceExportIntervalMs 5000 Trace 批量导出间隔。
metricExportIntervalMs 60000 Metric 导出间隔。
exportTimeoutMs 30000 OTLP 导出超时。
debug false 通过 DSH logger 输出额外的插件生命周期诊断。

支持以下 OpenTelemetry 标准环境变量:

  • OTEL_EXPORTER_OTLP_ENDPOINT
  • OTEL_EXPORTER_OTLP_TRACES_ENDPOINT 和 OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
  • OTEL_EXPORTER_OTLP_HEADERS
  • OTEL_EXPORTER_OTLP_TRACES_HEADERS 和 OTEL_EXPORTER_OTLP_METRICS_HEADERS
  • OTEL_SERVICE_NAME
  • OTEL_RESOURCE_ATTRIBUTES
  • OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT(未显式配置 captureContent 时,SPAN_ONLY 或 SPAN_AND_EVENT 开启 span 正文)
  • OTEL_METRICS_EXPORTER(未显式配置 exportMetrics 时,none 关闭指标导出)

Header 与 Resource 值使用标准的逗号分隔、百分号编码 key=value 格式。

隐私与运行时行为

默认不采集正文:提示词、回复、工具 schema、参数和结果不会进入 span,但结构元数据和 token 用量仍会
上报。启用 captureContent,或将正文采集环境变量设为 SPAN_ONLY / SPAN_AND_EVENT 后,源码、凭据、
个人数据或其他敏感内容可能被发送到已配置后端;启用前应先确认后端的留存和访问控制策略。如果某个
profile 必须忽略进程环境并始终禁止正文采集,请显式配置 captureContent: false。

插件持有私有 OpenTelemetry Provider,不会替换 DSH 或其他库的全局 Provider;监听器和 Provider
也会随 DSH 插件生命周期释放和 flush。插件附加到已运行或 HMR 重载的 profile 时,只接管现有会话的
身份,并从下一次原生 turn/start 开始采集,不会重放历史事件或生成重复链路。

开发

需要 Node.js 22.19 或更高版本以及 pnpm。

pnpm install
pnpm run check
pnpm test
pnpm run build
pnpm pack

实现约束与发布检查清单见贡献指南。

许可证

Apache-2.0

常见问题

7 问
答案由本站依据条目字段整理,不引用上游原文
dsh-plugin 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add @loongsuite/[email protected]` 即可。对应的 npm 包名是 `@loongsuite/dsh-plugin`。

dsh-plugin 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-plugin 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-plugin 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.7-rc.1、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2。

dsh-plugin 用的是什么许可证?

上游标注为 Apache-2.0。商用或二次分发前请到仓库确认许可证原文。

dsh-plugin 有哪些功能?

生成 GenAI 跨度树、导出 OTLP 遥测、追踪 LLM 调用与工具、输出 token 用量指标。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

8 条
不同作者的仓库分开列,请确认你要装的是哪一个
模型与账号接入
按星标排序,可作替代方案

archify

archify

从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

L4 · 沙盒安装通过 8.0 万 星

nocobase

nocobase

L3 · 安装规范通过 2.5 万 星

dsh-our-free-model

dsh-our-free-model

为 DeepSeek Harness 挂载免登录、免 API Key 的免费前沿模型通道,装完即用,并附用量看板与 OpenAI 兼容本地转

未标注验证等级 8,064 星

dsh-purge

dsh-purge

dsh-purge 是一款 DeepSeek Harness 设置插件,可修改默认副本、权限策略和工具限制,并添加规则卡片以分组应用补丁,支

L5 · 运行验证通过 4,573 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。