DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-observe

Observe

适用于 DeepSeek Harness 的 OpenTelemetry 和 Langfuse 可观测性导出器:从会话/事件流中捕获 turn/step/tool/LLM span、令牌和成本指标,以及经过清理的 LLM 提示词/补全内容,并支持异步批处理、有界离线缓冲和重试

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:PerryLink/dsh-observe#632bcae0873f02f96403428b99d09844447f6f02
README兼容性版本

兼容性与来源证明

Observe 以 dsh-observe 发布,当前版本为 0.2.26。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/11/4

版本

0.2.26stable
2026/10/24
0.2.25stable
2026/10/18
0.2.24stable
2026/10/18
查看其余 29 个版本收起版本
0.2.22stable
2026/10/10
0.2.21stable
2026/10/5
0.2.20stable
2026/10/5
0.2.19stable
2026/10/4
0.2.18stable
2026/9/24
0.2.17stable
2026/9/24
0.2.16stable
2026/9/23
0.2.15stable
2026/9/22
0.2.14stable
2026/9/19
0.2.13stable
2026/9/18
0.2.12stable
2026/9/12
0.2.11stable
2026/9/10
0.2.10stable
2026/9/9
0.2.9stable
2026/9/7
0.2.8stable
2026/9/7
0.2.7stable
2026/9/4
0.2.6stable
2026/9/4
0.2.5stable
2026/9/4

相关插件

正在加载相关插件…

最新版
0.2.26
DSH
*
HMR
重启进程
Tree shaking
已声明 sideEffects: false
解包体积
未提供
文件数
未提供
Surface
any
许可证
Apache-2.0
发布源
github
GitHub
★ 14
周下载
644
最近提交
2026/11/4
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
0.2.4stable
2026/9/2
0.2.3stable
2026/9/2
0.2.2stable
2026/9/1
0.2.1stable
2026/8/30
0.2.0stable
2026/8/26
0.1.5stable
2026/8/23
0.1.4stable
2026/8/22
0.1.3stable
2026/8/22
0.1.2stable
2026/8/21
0.1.1stable
2026/8/17
0.1.0stable
2026/8/16

相关插件

继续浏览 models-usage 分类下经过校验的插件。

Connect Workbuddydsh-connect-workbuddy把本机登录的 WorkBuddy 模型(国内版与国际版)接入 DeepSeek Harness:每次刷新按上游目录自动读取每个模型的积分倍率,支持逐模型图片输入开关、多账号切换与账号池自动换号,并提供每日签到、卡片与输入框里的胶囊积分读数等只读积分概览。Cost Meterdsh-cost-meterDeepSeek Harness 会话费用统计插件:本会话成本、当日费用、历史记录与官方价格同步,支持多厂商多模型价格计费(内置 170+ 模型 ID 价格目录与自动匹配)、主流 Coding Plan 订阅额度查询与显示(16 家,含 WorkBuddy 官方积分、OpenDesign 工作区查询、含小米 MiMo Token Plan 控制台 Cookie 查询、SCNet Token Plan 本地 Credits 计量与火山方舟 Volcano Ark Coding Plan AK/SK 签名查询Codex Subscriptiondsh-codex-subscription在 DeepSeek Harness 中通过 OAuth 使用 ChatGPT 和 Codex 订阅,支持配额、安全重置、网络搜索、图像和快速模式,并可通过 ChatGPT 移动应用(Beta)控制 DSHXdpooldsh-xdpool将你拥有的所有免费额度汇聚为一个 DSH 模型池:合并所有本地登录的 WorkBuddy 账户并自动故障转移,通过二维码/网页登录 13 个供应商,汇总 76 个供应商的免费层额度,此外还提供用量仪表盘、模型路由和本地 OpenAI 兼容网关

README

📊 dsh-observe

  • 1024 store channel: npm i -g dsh1024 once, then dsh1024 plugin --profile web add dsh-observe (counts toward the deepseek1024.com install ranking). OpenSSF Scorecard

OpenTelemetry and Langfuse observability exporter for DeepSeek Harness.

Turn session events into OTLP traces and Langfuse observations — sanitized, buffered, off by default.

DSH Market

English · 简体中文 · Español · Português · हिन्दी

dsh plugin --profile <name> add dsh-observe

📖 Ecosystem knowledge base — measured data, not marketing: plugin development guide · plugin-selection data · maintenance criteria.

Install & uninstall

  • git channel (latest main): dsh plugin --profile web add github:PerryLink/dsh-observe — the prepare script builds with production dependencies only.
  • npm channel (published releases): dsh plugin --profile web add dsh-observe.
  • tarball channel: pnpm pack in this repo, then dsh 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 reports ERR_PNPM_IGNORED_BUILDS for this package (esbuild's harmless platform-binary validation), add allowBuilds: { esbuild: true } to your pnpm-workspace.yaml — the dsh CLI 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 diagram for dsh-observe: install → open panel → act.

Workflow overview: install → open panel → act. The examples below use the real command surface.

Compatibility

SurfaceStatus
HarnessDeepSeek 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
BackendsOpenTelemetry OTLP/HTTP (traces + metrics, JSON encoding) and Langfuse (LLM observability) — either or both
ModelModel-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: true plus at least one backend is an explicit opt-in; nothing is captured or exported otherwise.
session/event stream
   │ collector (turn/step/tool/llm spans, metrics)
   │ sanitize (keys, secrets, budgets)
   ├──▶ pipeline "otlp"  ── queue ── flush ──▶ OTLP /v1/traces + /v1/metrics
   │         └─ retry/backoff ─┐
   ├──▶ pipeline "langfuse" ── queue ── flush ──▶ Langfuse ingestion
   │         └─ retry/backoff ─┤
   └────────── durable spool (offline buffer, bounded) ◀┘

Quick start

dsh plugin --profile web add github:PerryLink/dsh-observe
# 1. install the bundle into your profile
dsh plugin --profile web add github:PerryLink/dsh-observe

# or from npm (published releases)
dsh plugin --profile web add dsh-observe

# 2. configure a backend in your profile patch (cordis.yml) and restart
dsh --profile web

Minimal OTLP configuration (the row ships commented out in cordis.patch.yml):

- insert:
    - id: dsh-observe
      name: dsh-observe
      config:
        enabled: true
        otlp:
          endpoint: http://localhost:4318

Then verify the row mounts:

dsh --profile web --dump-config | grep -A2 'id: dsh-observe'

Examples

No user-facing command is registered; this plugin runs as a background exporter, configured through its settings.

Configuration

All tunables are Schemastery Config fields (changeable from cordis.yml). An id-targeted override replaces the whole row — restate every key you need. cordis.patch.yml documents each key inline.

KeyDefaultMeaning
enabledfalseMaster switch; true plus at least one backend is the explicit opt-in
otlpnullOTLP backend config, or null to disable it
otlp.endpoint(required)OTLP base URL; /v1/traces and /v1/metrics are appended
otlp.serviceNamedeepseek-harnessservice.name resource attribute
otlp.serviceVersion(none)service.version resource attribute
otlp.headers{}Extra headers merged into every export request
otlp.timeoutMs10000Per-request timeout
langfusenullLangfuse backend config, or null to disable it
langfuse.baseUrlhttps://cloud.langfuse.comLangfuse base URL
langfuse.publicKey(required)Project public key
langfuse.secretKey(required)Project secret key
langfuse.release(none)Release tag stamped onto traces
langfuse.traceNamesession {session} turn {turn}Trace-name template; {session}/{turn} interpolate per trace
langfuse.tags[]Static tags stamped onto every trace
langfuse.timeoutMs10000Per-request timeout
capture.turnstrueTurn lifecycle spans

Tools & surfaces

This plugin registers no model tools — it is a background exporter. Its surfaces:

  • Consumes session/event (span/metric collection), session/flush (best-effort export kick — the durability checkpoint never waits on a remote backend), and session/disposed.
  • Optional remote service observe — observe/status returns the kill-switch state, configured backends, queue depths, and buffer occupancy; observe/setEnabled stops and resumes exporting at runtime.

Permissions & data

  • Permissions: network:outbound to the endpoints you configure, session:read for the event stream, storage:write for the offline buffer; no native code, no filesystem access.
  • Data: everything sent is derived from the session log and sanitized (redaction + truncation) before it is queued, buffered, or transmitted. The offline buffer stores only sanitized records, re-validated when read back.
  • Credentials: Langfuse public/secret keys travel only to the configured Langfuse endpoint; OTLP headers only to the configured OTLP endpoint. The plugin stores no credentials itself — keep them in credential references or environment-injected values.

Security boundaries

  • Off by default — nothing is captured or exported unless you opt in explicitly.
  • Sanitize before send — structural key redaction, built-in secret patterns (API keys, GitHub tokens, AWS keys, bearer credentials, private keys), your patterns, and character budgets all apply before any record leaves memory.
  • Durable boundary re-validation — records read back from storage are checked again before a sink can see them.
  • Failure loud, failure contained — export failures warn, count, retry, and finally spool; a failing session handler is caught and logged so observability can never break the harness hot path.
  • Model-visible ⟺ logged — prompt/completion exports project only the session surface (whose node 0 is the system prompt) and the logged header (call config and tools); the exporter invents no content.

Known limitations

  • npm 0.1.7-rc.2 — the plugin is developed and tested against @deepseek-ai/dsh@0.1.7-rc.2 (devDeps and CI's primary ruler); 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, and the second ruler (typecheck:ci) plus the compat workflow cover the older baselines.
  • Audit events are not persisted — the exporter's own observe/* records are audit-only: on the current host line the session append gate admits surface events, so no observe/* event is written to the session log, and the plugin does not fake one with an unmarked append (that would make sessions unreadable). Treat /observe status output and the OTLP/Langfuse backends as the audit surface.
  • Metrics bypass the retry/spool path — OTLP metrics are aggregated cumulatively, so a lost flush self-heals on the next one (by design, not a bug).
  • No sampling — every enabled span family is exported; set capture.* switches and batch.maxBufferRecords for high-volume sessions.

Development

pnpm install        # node ^22.19 || >=24
pnpm run typecheck  # tsc: src + tests against the 0.1.7-rc.2 devDeps (no tsconfig paths)
pnpm run typecheck:ci  # tsc against the published line (no paths)
pnpm run check:ruler-live  # canary: must fail to compile, proving the ruler is live
pnpm test           # vitest: 126 tests, 18 suites (real Context/Session/storage seam)
pnpm run test:coverage  # coverage gate (90/80/90/90)
pnpm run build      # tsdown bundle + tsc declarations (lib/)
pnpm run verify:self-contained  # dependency specs resolve from the registry
pnpm run verify:artifacts       # built ESM face + bundle patch present
node scripts/check-readme-sync.mjs  # five-language README sync gate
pnpm pack           # the published tarball

Topics

dsh, dsh-plugin, deepseek-harness, deepseek, cordis, observability, opentelemetry, otlp, langfuse, tracing

Contributors

  • @PerryLink — creator and maintainer: collector, pipelines, spool, OTLP/Langfuse sinks, sanitization, and the five-language docs.

PerryLink DSH Plugin Family

This project is part of the DeepSeek Harness plugin family from PerryLink. The roster stays collapsed below so every README keeps a short first screen; expand it to see every row and its status.

Expand all plugins
PluginStatus
dsh-aqua-input-check
dsh-archive-check
dsh-auto-review
dsh-autotier
dsh-bid-ca-precheck
dsh-bid-qual-check
dsh-cert-mcp
dsh-checkpoint-rewind
dsh-click
dsh-composer-history
dsh-contract-stance
dsh-customs-doc-check
dsh-data-quality

License

Apache License 2.0 © 2026 dsh-observe contributors

capture.stepstrueStep lifecycle spans
capture.toolstrueTool-call spans with sanitized arguments/results
capture.llmtrueLLM generation spans
llm.prompttrueCapture the sanitized request prompt (false = sizes only)
llm.completiontrueCapture the sanitized completion (false = sizes only)
metadata.sessionIdtrueSession id attribute
metadata.cwdfalseSession working directory (a local path — off by default)
metadata.agentPresettrueAgent preset id attribute
metadata.modeltrueProvider/model attributes
metrics.tokenstruePer-provider/model token counters
metrics.costtrueUSD cost counters (need pricing rules to match)
metrics.contextTokenstrueContext-pressure gauge (needs ctx.tokenMeter)
pricing[]Pricing table, first match wins: { provider?, model, inputPerToken, outputPerToken, cacheReadPerToken?, cacheWritePerToken? }
sanitize.enabledtrueRedaction master switch (false disables redaction, never truncation)
sanitize.redactKeys[]Extra key-name substrings (key/token/secret/password/authorization/credential/apiKey are always included)
sanitize.redactPatterns[]Extra secret regular expressions
sanitize.truncatePromptChars4000Prompt character budget
sanitize.truncateCompletionChars4000Completion character budget
sanitize.truncateToolInputChars2000Tool argument character budget
sanitize.truncateToolOutputChars2000Tool result character budget
sanitize.truncateAttributeChars512Span attribute string budget
batch.maxRecords256Flush once the queue holds this many records
batch.flushIntervalMs5000Timer flush interval
batch.maxQueueRecords2000In-memory queue bound; excess spills to the buffer
batch.maxBufferRecords10000Durable offline buffer bound; oldest records drop first
batch.bufferRetryIntervalMs30000Offline buffer retry interval
retry.maxAttempts5Attempts per batch, including the first try
retry.baseDelayMs1000First backoff delay
retry.factor2Backoff multiplier per consecutive failure
retry.maxDelayMs60000Backoff ceiling
remote.enabledfalseMount the observe Typert remote (kill switch)
dsh-demurrage-ledger
dsh-doublecheck
dsh-drill-script-check
dsh-eia-guide-check
dsh-emergency-plan
dsh-essay-rubric-check
dsh-evidence-check
dsh-export-ctl-check
dsh-fast
dsh-fmea-table-check
dsh-forecast-penalty
dsh-fund-research
dsh-github
dsh-gongwen-flow-check
dsh-gongwen-word-check
dsh-guard-plan-qc
dsh-hazchem-check
dsh-hazplan-check
dsh-hidden-risk-map
dsh-hs-classify
dsh-icd-rule-check
dsh-industry-research
dsh-lawcite-adapter
dsh-laya
dsh-lc-doc-check
dsh-learning-gap-check
dsh-library
dsh-local-ai
dsh-lsp-actions
dsh-mask
dsh-mcp-panel
dsh-medrec-qc
dsh-memento
dsh-nsfc-form-check
dsh-nurse-record-check
dsh-observe
dsh-origin-rvc-check
dsh-ota-review-check
dsh-output-styles
dsh-paper-doc-adapter
dsh-permission-rules
dsh-permit-report-check
dsh-pipeline-check
dsh-pleading-draft
dsh-plugin-doctor
dsh-plugin-guide
dsh-plugin-kit
dsh-plugin-upgrade
dsh-policy-brief-draft
dsh-power-loss-split
dsh-power-ticket-check
dsh-ppap-check
dsh-protest-deadline
dsh-railway-window
dsh-repair-order-qc
dsh-research-report
dsh-review-reply-check
dsh-rulefile-check
dsh-safety-brief-check
dsh-score
dsh-session-sync
dsh-site-log-check
dsh-skill-pack-security
dsh-soe-decision-check
dsh-soilwater-check
dsh-sop-sync-check
dsh-spc-gbt-adapter
dsh-talk
dsh-tender-extract
dsh-tender-matrix
dsh-test-drive
dsh-ticktick
dsh-translate
dsh-warranty-calc
dsh-budget🧊 FROZEN — see the repo README
dsh-claude-move🧊 FROZEN — see the repo README
dsh-defend🧊 FROZEN — see the repo README
dsh-draw🧊 FROZEN — see the repo README
dsh-reach🧊 FROZEN — see the repo README
dsh-background-agents🚫 RETIRED — see the repo README
dsh-session-pin🚫 RETIRED — see the repo README
dsh-team-rooms🚫 RETIRED — see the repo README