dsh-tool-terminal-search:在終端回溯中搜索

前言

DeepSeek Harness (dsh) 的 terminal_read 工具通過 offset 和 count 分頁讀取保留的終端滾動緩衝區。當後端日誌輸出達到數萬行時,模型難以通過分頁定位感興趣的內容,只能從最新的輸出開始逐頁向後翻閱。dsh-tool-terminal-search 插件通過內容匹配解決了這個問題,允許模型通過子串或正則表達式直接檢索保留的日誌行。

簡介

這是一個爲 DeepSeek Harness (dsh) 提供的 terminal_search 工具插件,由 ystyle 維護。它屬於“聯網工具”類別,開源協議爲 MIT。該插件不修改上游包,而是基於公開的 ctx.terminals.read 接口構建,旨在讓模型在龐大的保留日誌中快速定位目標信息。

安裝與啓用

使用 dsh CLI 安裝插件,它會將 pnpm 命令轉發到配置文件目錄。安裝後,需要重啓 dsh 配置文件,模型才能獲得 terminal_search 工具。

  1. 執行安裝命令:
dsh plugin --profile web add dsh-tool-terminal-search
  1. 驗證安裝:
dsh plugin --profile web ls
  1. 重啓你的 dsh 配置文件。安裝完成後,模型將獲得 terminal_search 工具,它與官方的 terminal_open、terminal_send 和 terminal_read 工具並列。

前置依賴:
- 需要安裝官方的 @deepseek-ai/dsh-tool-terminal 插件。
- 需要運行 dsh-terminal 或 dsh-terminal-bash 服務以支持 terminal_open、terminal_send 和 terminal_read。

核心功能

terminal_search 的行爲如下:

  • 匹配模式:默認使用字面量子串匹配(類似 grep -F),無需轉義正則符號。若需正則表達式匹配,需傳入 regex: true 參數。
  • 檢索範圍:插件會分頁讀取整個保留的滾動緩衝區(從最新到最舊),並在內存中匹配每一行。
  • 返回順序:匹配到的行按時間倒序(最新優先)返回。
  • 返回數據:
    • 匹配的行內容。
    • 每一行相對於最新的 offset,可直接用於後續的 terminal_read 調用。
    • 精確的 matchCount(匹配數)、totalLines(保留總數)和 truncated(是否被截斷)狀態。
  • 性能機制:編譯後的正則表達式會經過一個全局的 FIFO 緩存,重複的模式不會重新編譯。

注意事項

  • 版本要求:該插件依賴 dsh 0.1.2-alpha.5 發行版線。
  • 數據範圍:搜索僅限於當前進程保留的滾動緩衝區(默認保留 10,000 行或 4MiB),與 terminal_read 的行爲一致。
  • 截斷處理:如果某一行讀取的字節數超過後端的 maxReadBytes,系統會減小分頁大小重試,以確保行偏移量準確。若單行超過閾值,該行會被截斷並標記 truncated。
  • 無上下文:插件僅返回匹配的行本身,不返回上下文行。若需上下文,需在獲取匹配行的 offset 後,調用 terminal_read 讀取鄰近行。

生態背景

DeepSeek Harness 遵循“一切皆插件”的理念。本插件由社區開發者維護,收錄在獨立目錄中,與 DeepSeek 或幻方無官方從屬關係。插件開發過程包含類型檢查、單元測試和打包構建。

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

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

小夜