Bryan-cmf / dsh-skill-trail

목록에 있음

DSH-Plugin: per-reply skill trail - truthful per-turn triggered/used tool & skill badges, folded from the session log (no model self-reporting)

main모델도구스킬세션 소스 보기

설치

npx -y @deepseek-ai/dsh plugin --profile web add github:Bryan-cmf/dsh-skill-trail

이 설치 명령은 GitHub 저장소 주소에서 생성된 확인되지 않은 시작점입니다.

README

유지 관리자가 작성한 문서 스냅샷입니다.

GitHub에서 보기 ↗
커밋 67d2cdb동기화 2026. 8. 18.

🧩 Skill Trail — DSH-Plugin

每條回覆如實標出「觸發了什麼、成功用了什麼」。 基於引擎日誌的逐回覆技能/工具徽章,零模型自報。

npm License: MIT DSH Topics

A DeepSeek Harness (DSH) plugin that renders a compact trail under every assistant reply: which skills were triggered (🧠) and which tools were actually used (✓) or failed (✗).

🧩 技能軌跡  [🧠 ak-hk-stock-dd ✓]  [read ×3 ✓]  [bash ×2 ✓]  [web_search ✗]

Why it is truthful

The badges are not produced by the model. A skillTrail session-projection unit (Host) folds each session's committed log — every tool/call event becomes a triggered entry; the paired tool/result (matched by callId) settles it as ok / err. The Client reads the finished value through useProjection('skillTrail') and renders it in the zero-risk conversation.chat.turnTail slot.

  • ✅ Structural — the platform records, nobody self-reports
  • ✅ Replayable — projection folds are pure; persisted cache + cold-start backfill come from the DSH projection subsystem for free
  • ✅ Per-turn — each reply shows exactly its own turn's trail
  • ✅ Skill-aware — skill tool calls render as 🧠 with the resolved skill name

Install

The package ships a Host half (lib/index.js) and a browser Client half (lib/client.js, window.__ModuleLoader__ closure-factory format).

Path A — Host composition (always-on, every session & preset)

Add to the profile's package.json:

"dsh": { "profile": { "bundles": ["@bryan-cmf/dsh-skill-trail"] } }

then install and restart DSH. The projection unit is registered process-wide; the client half renders in every conversation.

Path B — Agent preset

Add one row to your preset's agent.cordis.yml (a consumer-only row — it publishes no service, so it sits loose; no isolate realm needed):

- id: skill-trail
  name: '@bryan-cmf/dsh-skill-trail'

Path C — Dynamic experiment

Inside a session, @bryan-cmf/dsh-skill-trail can also be run through the dynamic Cordis flow; prefer A or B for anything standing.

Requirements

  • DSH >= 0.1.0-rc.6 (@deepseek-ai/dsh-session-projection mounted in the host composition — it is part of the shipped dsh-base bundle)
  • Browser UI needs the conversation.chat.turnTail slot (shipped chat view)

Configuration

KeyDefaultMeaning
maxTurns500Turns retained per session; oldest pruned first
maxCallsPerTurn50Triggered-entry cap per turn (wire-payload guard)

Projection value

useProjection('skillTrail')Record<turn, { triggered, used, failed }>

{
  "12": {
    "triggered": [{ "name": "skill", "skill": "ak-hk-stock-dd", "status": "ok", "callId": "call_1" }],
    "used": { "skill": 1, "read": 3, "bash": 2 },
    "failed": ["web_search"]
  }
}

Development

pnpm install
pnpm build        # tsc declarations → lib/types + tsdown → lib/{index,client}.js

License

MIT

저장소 정보

언어
TypeScript
라이선스
MIT
마지막 업데이트
2026. 8. 15. 오전 7:24

신중하게 설치하기

소스 코드, 권한, 수명 주기 스크립트, 의존성 및 네트워크 접근을 검토하고 신뢰하지 않는 플러그인은 격리 환경에서 테스트하세요.