在 DeepSeek Harness (DSH) 中,AI Agent 的執行軌跡會被記錄,但原始日誌通常包含大量噪音,且缺乏結構化的可讀性。開發者很難快速回顧決策點或從錯誤中學習。dsh-trajectory-teacher 插件解決這一問題,將原始軌跡自動轉換成一份結構化的復盤報告。
該插件由 XiaoMoDern 維護,歸類於工作流類插件,使用 MIT 許可證。
安裝與啓用¶
安裝插件需要使用 DSH 插件命令。
dsh plugin add dsh-trajectory-teacher
安裝後必須重啓 DSH,插件纔會自動掛載。
使用方法¶
使用時,先在對話中完成一輪任務。然後,輸入指令以觸發復盤。
/trajectory-teacher
插件會分析當前會話的完整軌跡,返回一份 Markdown 格式的復盤報告。復盤是手動觸發的,以控制 LLM Token 成本。
核心功能¶
該插件提供以下核心功能:
- 將 Agent 執行軌跡自動轉成復盤報告。
- 提取關鍵事件,包括決策點、踩的坑以及可複用做法。
- 自動脫敏,處理軌跡中可能出現的 API Key 明文。
- 過濾噪音,僅保留關鍵事件。
- 支持自定義模型配置。
- 默認關閉 thinking 以控制成本。
可選配置¶
默認複用當前會話正在用的模型來生成復盤。若要指定,在 cordis.patch.yml 中覆蓋。
- id: trajectory-teacher
config:
provider: deepseek-official
model: deepseek-v4-flash
復盤分析已默認關掉 thinking(
reasoningEffort: 'off')——提取+總結不需要深度推理,更快更便宜、輸出更穩定。
工作原理¶
處理流程如下:
- 提取:從
session.events(內存事件流)開始。過濾噪音(丟棄 token 級 chunk),提取關鍵事件(tool/call、assistant/message、turn/*、approval/*等),進行摘要化並脫敏。 - 分析:調用 LLM,產出結構化 JSON(包含決策點 / 坑 / 可複用做法)。
- 渲染:套模板生成 markdown。
- 噪音過濾:一次流式回覆會產生幾百個 token 級 chunk,全部丟棄,只保留關鍵事件。
- 脫敏:軌跡裏可能混入 API key 明文,報告輸出前自動打碼(
sk-***)。 - 成本控制:手動觸發(不自動跑)、只喂關鍵事件摘要(有長度上限)、關 thinking、用便宜模型。
項目結構¶
項目主要包含以下文件:
index.ts:插件入口,註冊/trajectory-teacher命令。cordis.patch.yml:bundle 的 patch 層。lib/parse.ts:zstd 解壓 + 事件流解析。lib/extract.ts:過濾噪音 + 提取關鍵事件 + 摘要 + 脫敏。lib/analyze.ts:調 LLM 產出結構化復盤。lib/render.ts:JSON 到 markdown。
開發調試¶
本地調試(從源碼掛載到 DSH):
cd <deepseek-harness 源碼根目錄>
pnpm dsh web --patch <本倉庫>/dev/cordis.patch.yml --port 0
運行測試與構建:
npm test
npm run build
注意事項¶
復盤要燒 LLM token,需要手動觸發。安裝後需重啓 DSH。輸出前自動打碼 API Key。確保在安裝前檢查源碼與許可證。