前言¶
用 DSH 做智能體開發時,模型通常要自己找 API key、自己管額度和續費。如果你有騰訊雲賬號,OrcaTerm 網頁版提供了一組免費模型,可以直接用,但網頁端沒法接入 DSH 的工具調用流程。下面介紹的插件 lyp0709/orcaterm-model-proxy 做的就是這件事:把 OrcaTerm 網頁版的免費模型接入 DeepSeek Harness(DSH),支持一鍵登錄、工具調用與圖片識別。它由 lyp0709 維護,分類屬於「模型推理」,零運行時依賴,安裝時不需要構建步驟。
插件是第三方集成,與騰訊雲 / OrcaTerm 官方無關。使用前請自行確認符合 OrcaTerm 的服務條款。
核心功能¶
插件實現的是 DSH 的模型接入層,能力如下,全部來自項目 README 的說明。
- 接入 8 個免費模型:DeepSeek V4.1 Flash / V4 Flash / V4 Pro、Kimi K3、GLM 5.3 Flash / 5.3 / 5.2、Hunyuan 3。
- 憑證自動續期:只需配置一次,之後長期自動續期,不需要反覆更新。
- 工具調用:DSH 註冊的工具由本機執行,模型可以讀取文件、執行命令等。
- 圖片識別:可以把圖片發給模型;DeepSeek V4.1 Flash、Kimi K3 支持,GLM 5.3 不接受圖片。
- 可視化設置面板:模型選擇、推理強度、賬號狀態、額度查詢、調用統計。
安裝與啓用¶
從 GitHub 安裝(推薦)¶
在 DSH 終端執行:
dsh plugin --profile desktop add github:lyp0709/orcaterm-model-proxy
也可以從本地目錄安裝,把路徑換成你本地的倉庫目錄:
dsh plugin --profile desktop add "D:\path\to\orcaterm-model-proxy"
或者在 DSH 裏直接對 AI 助手說:幫我安裝這個插件:github.com/lyp0709/orcaterm-model-proxy。安裝完成後重啓 DSH 才能生效。
配置憑證(一鍵登錄)¶
插件需要 OrcaTerm 的登錄憑證,只需登錄一次,之後自動續期。
- 打開 DSH 設置,找到 OrcaTerm 面板,登錄區塊在最上面。
- 點「一鍵登錄」。
- 插件自動彈出一個獨立的瀏覽器窗口,與你日常使用的瀏覽器完全隔離。
- 在這個窗口裏用騰訊雲賬號登錄,支持微信掃碼、QQ、GitHub、賬號密碼等方式。
- 登錄成功後無需操作,插件會自動檢測並讀取憑證,然後關閉窗口。
- 面板顯示「登錄成功,憑證已生效」即完成。
一鍵登錄的原理是:插件用獨立 profile 啓動 Edge/Chrome 並開啓 --remote-debugging-port,導航到 orcaterm.ai/terminal 讓用戶完成登錄,再通過 CDP 的 Network.getCookies 讀取 __Secure-ot_session,拿到後立即關閉瀏覽器並保存憑證。瀏覽器把 Cookie 加密存儲,第三方進程無法解密,但瀏覽器自己可以,所以這條路是通的。這個過程只讀取 orcaterm.ai 一個域名的 Cookie,不觸碰日常瀏覽器數據。
如果自動登錄不可用,可以走手動方式:
- 點「手動輸入」展開,點「打開登錄頁」,用瀏覽器登錄。
- 按
F12→ Application 標籤 → Cookies → 選中https://orcaterm.ai。 - 找到
__Secure-ot_session,雙擊 Value 列全選複製,約 80 個字符。 - 粘貼到輸入框,點「保存並校驗」。也可以直接複製整條 Cookie 請求頭,插件會自動提取需要的部分。
需要一個騰訊雲賬號。首次使用騰訊雲可能需要完成實名認證等前置步驟;OrcaTerm 目前提供免費額度,AI 功能爲單一額度池,不按模型區分。
使用¶
配置完成後,在 DSH 的模型選擇器裏就能看到 OrcaTerm 提供的模型。設置面板裏還可以調整這些選項:
| 選項 | 說明 |
|---|---|
| 默認模型 | 未指定時使用的模型 |
| 推理強度 | low / medium / high |
| 顯示思考過程 | 是否顯示模型的推理過程 |
| 工具調用 | 是否允許模型使用 DSH 的工具 |
| 圖片識別 | 是否把圖片發給模型 |
| 失敗重試 | 網絡錯誤、限流時的重試次數 |
| 備用模型 | 主模型失敗時自動切換 |
| 超長會話裁剪 | 歷史超過閾值時自動丟棄最老對話;可關閉 |
在「可用模型」裏,每個模型都有「啓用 / 停用」按鈕。停用後該模型不再出現在 DSH 的模型選擇器裏,也無法被設爲默認模型或備用模型;如果停用的正是當前默認模型,會自動切換到第一個可用模型;如果停用的正是備用模型,備用設置會被清空。停用狀態寫入 ~/.dsh/orcaterm-config.json,下次啓動仍然生效。
至少要保留一個啓用的模型,否則插件沒有可用模型,選擇器會空掉,所以最後一個模型的「停用」按鈕是禁用的。適用場景是:某個模型經常超時或答非所問時,把它停用,避免在選擇器裏誤選。
上下文長度與裁剪¶
服務端容量很大,真正的瓶頸是模型注意力。以下數據全部來自項目 README 的實測。
容量:至少 120 萬字符¶
| 檔位(目標 token) | 實際字符數 | 請求體 | 耗時 | 結果 |
|---|---|---|---|---|
| 256k | 300,331 | 0.86 MB | 13–19s | HTTP 200 |
| 500k | 600,331 | 1.72 MB | 19–23s | HTTP 200 |
| 1M | 1,200,331 | 3.43 MB | 15–16s | HTTP 200 |
三檔全部正常返回,既不報超限,也不靜默截斷。驗證方式是在文檔首部和尾部各埋一個標記,兩處都能被模型讀到。
可靠性:約 20 萬字符是上限¶
在 600,000 字符的文檔裏把標記放在不同位置,看模型能否找到:
| 位置 | 1% | 2% | 5% | 10% | 20% | 30% | 50% | 70% | 90% | 95% | 99% | 100% |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 能否讀到 | 是 | 是 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 是 | 是 | 是 |
首尾能讀到,中間全部丟失。長度遞增測試進一步確認邊界:
| 文檔長度 | 首部 1% | 中部 50% | 尾部 99% |
|---|---|---|---|
| 20,000 | 是 | 是 | 是 |
| 50,000 | 是 | 是 | 是 |
| 100,000 | 是 | 是 | 是 |
| 200,000 | 是 | 是 | 是 |
| 400,000 | 是 | 否 | 否 |
| 600,000 | 是 | 否 | 是 |
這是大模型的 lost-in-the-middle 現象,與 OrcaTerm 無關。上游完整地把內容傳給了模型,但模型注意力只覆蓋首尾。對照實驗確認模型沒有編造:不放標記時它如實回答「未找到」。
其他硬限制與插件的處理¶
| 項目 | 限制 |
|---|---|
| 單次輸出 | max_tokens 硬上限 8,096,超出被服務端拒絕 |
| 超限表現 | 服務端報錯,特徵爲 context_length_exceeded / too many tokens / prompt is too long |
插件的處理有三步:
max_tokens夾緊,傳入值超過 8,096 時自動下調,避免請求被拒。- 主動歷史裁剪,默認閾值 200,000 字符。超出時丟棄最老對話,保留
system消息(永不丟棄)、最近 8 條對話,以及成對的工具調用與結果(不會從中間切斷)。 - 超限提示,萬一服務端仍報超限,翻譯成「輸入超出上下文上限,建議新建會話或精簡需求」。
裁剪閾值可在設置面板調整,範圍 40,000 ~ 1,000,000,或關閉。調高閾值能容納更多歷史,但模型可能漏讀中間部分:超出 20 萬字符後,多保留的內容不一定被模型真正用到。關閉裁剪(始終全量發送)同理。
工作原理¶
插件實現了 DSH 的 LlmAdapter 接口,把 DSH 的請求翻譯成 OrcaTerm 的 ACP 協議:
- 認證:用
__Secure-ot_session換取 JWT access token,有效期 2 小時,自動續期。 - 對話:調用 OrcaTerm 的 SSE 流式接口,把事件映射成 DSH 的 chunk。
- 工具調用:把 DSH 的工具清單寫進系統提示位,模型返回工具請求後由 DSH 在本機執行,結果回傳。
- 圖片:把 DSH 的圖片附件轉成 base64 放進
input.files。 - 長度管理:
max_tokens夾緊 + 歷史裁剪。
工具始終在本機運行,OrcaTerm 服務器只負責轉發調用描述與執行結果。
隱私說明¶
插件會做什麼:
- 一鍵登錄時啓動一個獨立的瀏覽器窗口,用戶數據目錄爲
~/.dsh/orcaterm-login-profile,與日常使用的瀏覽器完全隔離。 - 通過 Chrome DevTools Protocol 讀取
orcaterm.ai這一個域名的__Secure-ot_sessionCookie。 - 讀到憑證後立即關閉該瀏覽器窗口。
插件不會做什麼:
- 不讀取日常瀏覽器的任何數據。
- 不讀取其他網站的任何 Cookie。
- 不把憑證發送到除 OrcaTerm 官方接口以外的任何地方。
- 不在後臺常駐瀏覽器進程。
本地存儲的文件如下:
| 文件 | 內容 |
|---|---|
~/.dsh/orcaterm-cookie.txt |
僅 __Secure-ot_session 一個值 |
~/.dsh/orcaterm-token.json |
短期 JWT 緩存(2 小時) |
~/.dsh/orcaterm-usage.json |
本地調用統計 |
~/.dsh/orcaterm-login-profile/ |
登錄專用瀏覽器數據,可在面板「清除登錄緩存」刪除 |
已知限制¶
- 僅支持騰訊雲賬號登錄,不支持 OrcaTerm 獨立賬號。
- OrcaTerm 不提供 token 用量數據,因此 DSH 的 token 統計面板不會顯示本插件的用量。插件自帶的調用統計(次數、耗時、首字延遲)是準確的。
- 圖片識別的模型支持不一致:GLM 5.3 收到圖片會報錯(插件會自動跳過),Hunyuan 3 識圖不準確。
- 模型列表是內置的,OrcaTerm 調整模型時需要更新插件版本。
- 單次輸出上限固定爲 8,096 token,這是上游限制,插件無法提高。
- 超過約 20 萬字符後模型會漏讀中間內容(lost-in-the-middle),這是大模型的通病,不是本插件或 OrcaTerm 的問題。
- 裁剪會丟失早期對話細節。如果任務依賴很早期的上下文,建議關閉裁剪或新建會話。
故障排查¶
設置面板的「診斷」可查看最近一次調用的詳情,也可以直接訪問:
http://127.0.0.1:<DSH端口>/api/orcaterm/diag
常見問題及處理:
| 現象 | 原因與處理 |
|---|---|
| 一鍵登錄沒彈出瀏覽器 | 確認安裝了 Edge 或 Chrome;關閉同名瀏覽器窗口後重試 |
| 一鍵登錄提示端口占用 | 可能有殘留瀏覽器進程,重啓或改用手動輸入 |
| 登錄後未檢測到憑證 | 登錄完成後讓窗口保持打開幾秒;仍失敗則用手動輸入 |
| 提示憑證無效 | 登錄狀態過期,點「重新登錄」 |
| 模型不返回內容 | 檢查是否觸發限流(上游限制約 2 秒 1 次) |
| 圖片識別失效 | 確認用的是 DeepSeek 或 Kimi 模型,且設置裏「圖片識別」已開啓 |
| 工具調用失敗 | 確認「工具調用」已開啓;GLM 5.3 對圖片會 400 |
診斷接口的關鍵字段:imageCount / imageSkipped(圖片是否送達)、toolReported(工具結果是否回傳)、roleBreakdown(消息結構)、isToolFollowUp(是否工具回灌輪)。
適用場景與注意事項¶
適合的場景:已有騰訊雲賬號、希望用免費額度跑 DSH 智能體,並且需要工具調用或圖片識別的開發者。插件零運行時依賴、不需要構建步驟,接入成本低;憑證只登錄一次就會自動續期,長期使用不需要反覆維護 key。
幾個需要注意的點:
- 插件以當前 DSH 進程權限運行,一鍵登錄會拉起瀏覽器並用本機迴環端口收診斷信息。安裝前應先讀一遍源碼,確認與自己的安全要求相符,再決定是否啓用。許可證是 MIT,倉庫地址見文末。
- 它是第三方集成,與騰訊雲 / OrcaTerm 官方無關。模型可用性、免費額度和賬號登錄方式由 OrcaTerm 決定,插件作者不控制上游。
- 圖片識別、工具調用都依賴設置面板裏對應的開關,出問題時先查開關再看診斷接口。
結尾¶
這個插件的價值在於把一個網頁端免費模型入口接到了 DSH 的插件體系裏,登錄一次即可在模型選擇器裏切換 8 個模型,工具執行留在本機,上下文長度和裁剪行爲也有明確邊界和實測數據支撐。如果你需要在 DSH 裏使用免費模型,可以先按上面的步驟裝起來試一輪。
目錄頁:https://www.skillhub.cn/plugins/lyp0709/orcaterm-model-proxy
GitHub:https://github.com/lyp0709/orcaterm-model-proxy