Langfuse observability for DeepSeek Harness (dsh)
linyp/dsh-plugin-langfuse · productivity
Langfuse observability for DeepSeek Harness (dsh): exports agent sessions as OpenTelemetry trace trees (GenAI semconv) to Langfuse's OTLP endpoint.
★ 14GitHub stars
1Forks
2026-09-04Last updated
TypeScriptLanguage
MITLicense
Key features
- The resolved langfuse.session.id/langfuse.user.id ride every exported span — turn, generation, tool, and compaction — because Langfuse's v4 query model filters and aggregates per observation, not only per trace (propagation contract).
- capture of everything model-visible — including subagent, workflow, compaction, and plugin events this package has never heard of
- Timestamps always come from the record's time, never the wall clock, so live capture and FEEDBACK_ONLY canonical-log replay produce identical trees (span start/end times are explicit — the OTel API supports historical stamps).
- Versioned SHA-256 identities derived from (dsh session id, turn) and (dsh session id, compaction id) supply stable 32-hex Trace IDs across live export and FEEDBACK_ONLY replay.
- sessionId defaults to the dsh session id, and the original dsh session id stays on each logical root as dsh.session.id — the pointer back into $DSH_HOME/sessions for local diagnosis.
Requirements
- DeepSeek Harness is in developer preview with no compatibility promises
- this plugin pins exact @deepseek-ai/dsh- versions.
Install command
dsh plugin --profile web add github:linyp/dsh-plugin-langfuse