dsh-pattern-search:對話中的正則模式觀測工具

在 DSH(DeepSeek Harness)環境中調試模型行爲時,通常需要了解模型在對話中是否產生了特定的措辭或模式。傳統的日誌查看往往缺乏聚合統計,難以快速量化某種行爲(例如模型是否頻繁使用“Actually, wait, let me…”作爲停頓語)。

dsh-pattern-search 插件提供了在當前會話中通過正則表達式進行模式搜索的能力。它通過一個客戶端浮窗和一個模型可調用的工具,讓開發者能夠統計匹配次數、查看命中詳情,並分析命中率。

安裝與啓用

該插件由 yzhangjy 維護,採用 MIT 許可證。

安裝步驟如下:

  1. 執行安裝命令:
    dsh plugin --profile web add github:yzhangjy/dsh-pattern-search
  1. 重啓 dsh web 服務。
  2. 在瀏覽器中硬刷新頁面(Cmd+Shift+R 或 Ctrl+Shift+R)。

核心功能

這是一個客戶端擁有的觸發源。輸入 /pattern-search 後會打開一個浮動窗口,整個過程不涉及主機往返,不會在會話日誌中留下記錄,模型無法感知該操作。

2. 正則表達式與搜索

支持標準的正則表達式標誌位:
* i (不區分大小寫)
* s (點號匹配換行)
* m (多行模式)
* g (全局匹配,始終開啓)

輸入過程中會實時校驗正則語法,若無效會顯示內聯錯誤。搜索按鈕是顯式的,輸入時不會自動觸發搜索。

3. 統計與數據展示

搜索結果包含以下統計指標:
* 總匹配數:符合模式的字符串總數。
* 去重匹配串:不區分大小寫的去重統計。
* 命中輪數 / 命中消息數:命中發生在哪些輪次或消息中。
* 命中率:基於消息數的計算,即命中消息數除以窗口內消息數。
* 來源與輪次細分:展示命中在用戶、助手、工具結果等不同來源中的分佈情況。

4. 分頁詳情表

結果以表格形式展示,支持分頁(每頁 10/20/50/100 行)。表格中高亮顯示匹配文本,並提供上下文預覽(匹配位置前後 ±60 個字符)。

5. 全局視圖與流式輸出

  • Partial Toggle:開啓後,搜索將包含當前正在流式傳輸中的未完成輸出。
  • Full Session:通過 loadOlder 加載完整歷史記錄,結合主機投影,提供全會話的概覽數據。

6. 主題適配

窗口顏色系統完全來源於 DSH Web 的設計令牌(--dsw-alias-*),確保在不同主題下視覺一致。

使用方法

GUI 操作

在對話框中輸入 /pattern-search 並回車,窗口打開後:
1. 輸入正則表達式(例如 Actually,?\\s*wait,?\\s*let me\\b)。
2. 點擊 Search 按鈕。
3. 查看統計面板和分頁詳情。

模型工具調用

模型可以在會話中直接調用 pattern_search 工具進行自我觀察。示例參數如下:

{ 
  "pattern": "Actually,?\\s*wait,?\\s*let me\\b", 
  "flags": "i", 
  "source": "assistant", 
  "context": 60, 
  "limit": 20 
}

開發與更新

開發環境

插件採用 TypeScript 開發,依賴 @deepseek-ai/dsh-* 系列包。開發命令包括:
* npm install:安裝依賴。
* npm run build:構建宿主端和客戶端代碼。
* npm test:運行測試。
* npm run register:註冊插件。

更新插件

由於 pnpm up 不會重新解析 github: 依賴(會提示 “Already up to date”),更新該插件需要先移除再添加:

dsh plugin --profile web remove dsh-pattern-search
dsh plugin --profile web add github:yzhangjy/dsh-pattern-search

安裝後同樣需要重啓 dsh web 並硬刷新瀏覽器。對於客戶端代碼的修改,硬刷新通常已足夠;但涉及宿主端(如工具定義)的修改則需要重啓服務。

總結

dsh-pattern-search 爲 DSH 插件生態提供了一套輕量級的模式觀測工具。它通過正則搜索、統計面板和分頁表格,幫助開發者量化分析模型行爲,適合用於調試邏輯、分析停頓模式或驗證特定指令的執行頻率。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜