前言¶
DSH 的 llm-pi-ai 在未聲明 contextWindow 時默認使用 262144 tokens 兜底。如果本地 llama.cpp 服務器以 -c 65536 啓動,默認設置將過大,導致內置壓縮機制失效,第一個長請求直接觸發 400 溢出錯誤。iyicode/dsh-ctx-probe 通過實時探測服務器真實運行時上下文窗口,解決這一配置不匹配問題。
核心功能¶
插件在每次 agent/request 觸發時探測服務器真實運行時上下文窗口,支持 llama.cpp 和 Ollama 服務器。
它實現雙向自動同步:探測值小於當前設置時自動收緊以防止溢出;探測值大於當前設置時自動放寬以跟隨服務器增長。本機服務器(localhost 等)每個請求都會重新探測,遠端服務器使用約 10 分鐘 TTL 緩存。
爲防止探測風暴,插件採用單飛 + 指數退避策略,起始間隔 10 秒,封頂 5 分鐘。插件完全自包含,不依賴任何 @deepseek-ai/* 包。
安裝¶
使用 Web profile 安裝:
dsh plugin --profile web add https://github.com/IYIcode/dsh-ctx-probe
安裝 bundle 屬於啓動期變更,必須重啓 DSH Web Host(執行 dsh web 前先 Ctrl+C 停止)才能生效。
使用¶
查看當前探測狀態:
/ctx-probe force
該命令會顯示目標 provider/model 的三個窗口值:configured(配置值)、effective(生效值)、probed(探測值)。
給本地模型發送任意一條消息,插件會在請求前探測服務器真實 n_ctx 並自動同步設置,無需手動干預。
注意事項¶
安裝失敗報 “declares no dsh.bundle” 可能是網絡問題,建議檢查源或使用本地目錄源。
插件探測失敗不會拖垮 agent 循環,錯誤會被靜默處理。