dsh-monkeyai-sessions:在 DeepSeek Harness 裏接續 MonkeyAI 會話

前言

用 DeepSeek Harness(DSH)編排智能體時,工作往往分散在多個客戶端裏。若在 MonkeyAI 桌面端已經開了一段對話,回到 DSH 裏繼續時,常見做法是複製歷史上下文、重新描述任務,既費時也容易丟細節。社區插件 dsh-monkeyai-sessions(維護者 Artenx)把 MonkeyAI 的會話目錄和完整對話歷史接到 DSH Web 客戶端:瀏覽設備上的會話、打開某條會話閱讀全貌,並直接下發新指令,與 MonkeyAI 側已進行中的輪次對齊,無需整段粘貼上下文。

這是什麼

dsh-monkeyai-sessions 是 DSH 的 Web 客戶端插件(dsh.client.platform: web),在 Harness 側邊欄掛載遠程貢獻,通過 MonkeyAI OAuth(授權碼 + PKCE)拿到授權後,訪問運行時提供的設備列表、會話列表與消息通道。授權結果由 DSH 寫入其憑證存儲;Host 側完成交換,面板只負責連接與操作。

倉庫:https://github.com/Artenx/dsh-monkeyai-sessions
社區目錄頁:https://www.skillhub.cn/plugins/Artenx/dsh-monkeyai-sessions

核心功能

下面功能均來自項目 README 與 package.json 說明,並在 README 中註明已在 DSH 0.2.2-rc.1 Web profile 與真實 MonkeyAI runtime 上做過端到端驗證。

授權與連接

插件通過已註冊的 monkeyai-desktop 公開客戶端申請 device:connect、session:read、session:control。OAuth state 與 PKCE verifier 保持在 DSH Host 進程內。

面板提供三種連接方式(按便利程度排列):

  1. Sign in(默認):在面板填寫 MonkeyAI 服務器 origin、賬號郵箱與密碼;Host 在服務端完成登錄、授權請求、批准與 code 交換,瀏覽器無需回傳回調。適合手機或其它無法訪問本機 loopback 的環境;密碼僅用於請求,不存儲,成功後面板清空密碼字段。
  2. Browser authorization(loopback):Host 監聽 127.0.0.1 隨機端口,MonkeyAI 重定向到 http://127.0.0.1:<port>/oauth/callback;瀏覽器與 Host 同機時回調頁把 code 回傳給面板完成授權。
  3. Paste callback(scheme):使用 monkeyai-desktop://oauth/callback 重定向,用於拒絕 loopback 的環境。

未連接時面板顯示連接卡片;已連接後顯示工具欄(賬號、設備、一併刷新設備與會話的 Refresh、斷開),會話以卡片展示;打開會話後顯示緊湊標題欄(返回、標題、模型切換)、審批卡片(以普通按鈕展示選項而非原始 JSON)、Enter 發送的輸入區。

設備列表調用賬號級目錄 GET /api/v1/endpoints(無 runtime-API 頭),展示已註冊設備並按 online 標記在線狀態,跳過已撤銷項。通過 device-code 授權的無頭 runtime 設備可能不在該目錄中,可在面板 「Device missing?…」 用手動 machine ID 添加,條目保存在瀏覽器存儲併合並進設備選擇器。

會話瀏覽與接續

  • 完整歷史:經運行時 HTTP 讀通道加載(POST {http_base}/read/session,_monkeyai/session/messages,游標分頁),而非有界 ACP session/load 回放,長會話可看到包括最新回覆在內的全部輪次。
  • 實時同步:掛載會話並具備與 MonkeyAI 客戶端相同的 historyHTTP 能力後,訂閱 ACP live 更新;在 MonkeyAI 桌面端開始的 assistant 流式塊會即時出現在面板。大塊持久化回覆觸發 history_changed 時,按游標做 HTTP 增量刷新。
  • 狀態與控制:會話標題旁狀態徽標反映輪次狀態(running / idle / error / interrupted),由 _monkeyai/session/state 通知驅動;桌面端發起的輪次在 DSH 中同樣顯示爲 running。輪次進行中時輸入區提供停止按鈕(session/cancel);模型切換走 live 連接上的 _monkeyai/session/model/set。
  • 展示:Assistant 消息做輕量 Markdown 渲染(代碼塊、行內代碼、粗體、標題、列表)。

回覆流式返回;可在不離開 DSH 的情況下停止進行中的輪次或切換模型。

開發與引擎要求

  • 目標 DSH:>=0.2.2-rc.1 <0.3.0(engines.dsh)
  • Node.js:>=24.9.0
  • 許可證:MIT
  • 當前包版本(package.json):0.1.12

安裝與啓用

插件以 當前 DSH 進程的權限 運行;安裝前建議閱讀倉庫源碼與 MIT 許可證,並只在信任的 MonkeyAI 服務器上授權。

從 npm 安裝(發佈後)

dsh plugin --profile web add dsh-monkeyai-sessions

從插件市場索引添加

在 DSH 中:Plugins → Experimental plugins 啓用 Custom plugin indexes,打開 Discover,添加索引源:

https://artenx.github.io/dsh-monkeyai-sessions/index.json

從本地構建包安裝

在插件源碼目錄執行:

npm install
npm run build
npm pack
dsh plugin --profile web add ./dsh-monkeyai-sessions-0.1.12.tgz

說明:README 中的本地示例包名爲 dsh-monkeyai-sessions-0.1.12.tgz,與當前 package.json 版本一致;若你本地 npm pack 產出文件名不同,請替換爲實際文件名。

安裝與聯調需在 Web profile 下使用(--profile web)。

典型用法

經過安裝並啓用插件後,可按下面順序操作(界面文案以英文面板爲準,邏輯與 README 一致)。

  1. 在 DSH Web 客戶端打開本插件面板,填寫 MonkeyAI 服務器 origin(與你在桌面客戶端使用的地址一致)。
  2. 任選一種授權方式完成連接:Sign in、Browser authorization 或 Paste callback。
  3. 在設備列表中選擇目標設備(若設備未出現在列表,展開 Device missing?… 按 machine ID 添加)。
  4. 使用 Refresh 同時拉取設備與會話;點擊某條會話卡片進入對話視圖。
  5. 閱讀完整歷史;若桌面端正在跑一輪,狀態徽標會顯示 running,可直接在輸入框發送新指令或點擊停止。
  6. 需要換模型時使用標題欄中的模型切換器;審批類交互在審批卡片上點選選項按鈕。

新建會話等次要操作收折在 details 區域,避免主界面雜亂。

適用場景與注意

適合誰:已在 MonkeyAI 客戶端上跑 agent / 會話,希望在 DSH 同一瀏覽器工作區裏查看歷史、補發指令、停止輪次或改模型,而不反覆複製上下文的重度用戶。

環境:插件聲明爲 Web 客戶端;README 驗證環境爲 DSH 0.2.2-rc.1 web profile。Node 與 DSH 版本需滿足 engines 約束。

安全與信任:Sign in 模式下密碼經 Host 轉發用於 OAuth 流程,插件說明其不持久化密碼;Grant 存放在 DSH credential store。請僅對你控制的 MonkeyAI 實例授權。

生態說明:DSH 社區插件目錄(如 SkillHub)爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;本插件來自社區維護者 Artenx,非官方內置能力。

結尾

dsh-monkeyai-sessions 把 MonkeyAI 的設備與會話接到 DSH Web 側:OAuth 登錄、完整歷史、直播式同步與輪次控制合在一個面板裏,減少「換工具就丟上下文」的摩擦。查閱說明與源碼可從目錄頁或 GitHub 進入:

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

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

小夜