dsh-observe
Exports the session event stream to OpenTelemetry OTLP and Langfuse as sanitized, buffered traces and metrics, off by default.
Install
dsh plugin --profile web add dsh-observe
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✓ |
| 2 list | ✓ |
| 3 mount | ✓ |
| 4 boot | — |
Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
<div align="center">
📊 dsh-observe
- 1024 store channel:
npm i -g dsh1024once, thendsh1024 plugin --profile web add dsh-observe(counts toward the deepseek1024.com install ranking).



OpenTelemetry and Langfuse observability exporter for DeepSeek Harness.
Turn session events into OTLP traces and Langfuse observations — sanitized, buffered, off by default.









[English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)
dsh plugin --profile <name> add dsh-observe
</div>
📖 Ecosystem knowledge base — measured data, not marketing: plugin development guide · plugin-selection data · maintenance criteria.
<!-- star-cta -->
Install & uninstall
- git channel (latest
main):dsh plugin --profile web add github:PerryLink/dsh-observe— thepreparescript builds with production dependencies only. - npm channel (published releases):
dsh plugin --profile web add dsh-observe. - tarball channel:
pnpm packin this repo, thendsh plugin --profile web add ./dsh-observe-<version>.tgz. - uninstall:
dsh plugin --profile web remove dsh-observe(or remove the row from the profile patch).
If pnpm reportsERR_PNPM_IGNORED_BUILDSfor this package (esbuild's harmless platform-binary validation), addallowBuilds: { esbuild: true }to yourpnpm-workspace.yaml— thedshCLI prints the exact snippet.
⭐ 如果它帮到了你
这个插件是 DSH 插件家族的一员(95 个,全部 Apache-2.0)。如果你在用,给个 star —— 它不会解锁任何功能,但会让下一个人在搜索里更容易找到它。
English: part of a 95 plugin family for DeepSeek Harness. If it is useful, a star helps the next person find it — nothing is gated behind it.
What is dsh-observe?
OpenTelemetry and Langfuse observability exporter for DeepSeek Harness.
Turn session events into OTLP traces and Langfuse observations — sanitized, buffered, off by default.
Workflow overview: install → open panel → act. The examples below use the real command surface.
Compatibility
Surface · Status
Harness · DeepSeek Harness dsh-v0.2.1-alpha.1 (adapted 2026-10-04): session format V4 represents a tool result as a first-class role: 'tool' message carrying top-level toolCallId + content + optional isError — the V3 tool-result content block is gone from the host's ContentBlockMap, and this plugin reads only the V4 shape (a pre-upgrade V3 log still projects through a read-only compatibility path). Session format V3's other traits carry over: the assistant stream is embedded in assistant/message / assistant/attempt, and the system prompt is surface node 0 (system/message); the plugin consumes only the live event stream and never reads session log files. The peer range >=0.1.2-rc.1 <0.2.0 \ · \ · >=0.1.5-alpha.1 <0.2.0 \ · \ · >=0.1.6-0 <0.2.0 \ · \ · >=0.1.7-0 <0.2.0 keeps every published line installable (full local gate chain; the compat workflow covers the profile install smoke).
Node · ^22.19.0 \ · \ · >=24.0.0
Backends · OpenTelemetry OTLP/HTTP (traces + metrics, JSON encoding) and Langfuse (LLM observability) — either or both
Model · Model-agnostic: it exports the session/event stream; no model calls are made
What you get
dsh-observe turns the harness's session/event stream into standard observability protocols:
- Spans — turn, step, tool-call (duration, status, retry derivation), and LLM generation spans, linked into per-turn traces with deterministic ids.
- Metrics — per-provider/model token counters, USD cost counters (configurable pricing table), and the optional context-pressure gauge from
ctx.tokenMeter. - Sanitized capture — prompt and completion bodies are redacted (structural key names + built-in secret patterns + your patterns) and truncated before anything is queued or sent.
- Reliability — async batching (size- and timer-triggered), a bounded durable offline buffer (storage-domain) with oldest-first eviction, and deterministic exponential-backoff retries; undeliverable batches survive restarts.
- Runtime kill switch — the optional Typert remote (
observe/status,observe/setEnabled) lets a settings page stop and resume exporting without unmounting. - Off by default —
enabled: trueplus a
…(truncated)
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::33,最后更新 2026-11-05