dsh-linux-desktop-use:在 DeepSeek Harness 中操控本機 Linux 圖形桌面

前言

在 DSH 裏做桌面自動化時,常見做法是讓 Agent 調外部腳本或遠程桌面 API,模型上下文裏往往只有文字描述,缺少與真實 UI 同步的視覺反饋。若還要點按、輸入、切窗口,往往又得單獨拼一層橋接,安全和審批也很難統一。

下面介紹的 dsh-linux-desktop-use(維護者 sorchk)把截圖、鼠標鍵盤、窗口與應用管理、可選的無障礙樹讀取等能力註冊進 ctx.tools,模型可在一次對話裏按「先觀察、再操作」的節奏驅動本機 Linux 圖形會話。插件當前版本爲 1.9.0(見倉庫 package.json),在 GitHub 上約有 1 個 star。社區目錄頁:skillhub.cn/plugins/sorchk/dsh-linux-desktop-use;源碼與完整說明:github.com/sorchk/dsh-linux-desktop-use。

DSH 生態的理念是「一切皆插件」;SkillHub 等目錄站由社區維護,與 DeepSeek / 幻方無官方從屬關係。安裝任何插件前,建議在目錄頁或 GitHub 查看許可證、PERMISSIONS.md 與源碼,並牢記:插件以當前 DSH 宿主進程的權限在真實桌面上執行,誤操作後果不可撤銷。

這是什麼

一句話定位:用 DeepSeek Harness 直接操控本機 Linux 桌面的 DSH 插件——在原生 X11 + XTEST 會話下工作(XFCE、GNOME、KDE 等;README 寫明 Wayland 原生會話不適用)。它將一組桌面工具暴露給模型,並自帶 Web 客戶端半,用於依賴體檢與配置編輯。

詳情頁的 docs/detail.md 爲精簡版;功能、風險與依賴的完整說明以 GitHub README 爲準。

核心功能

註冊給模型的工具

插件把下列能力掛到 DSH 工具列表(節選,類型見 README 表格):

類別 代表工具 作用
觀察 linux_screenshot、linux_windows、linux_desktop_status 整屏/窗口/區域截圖進上下文;列窗口與焦點;讀屏參、指針、審批模式等
指針與輸入 linux_move_mouse、linux_click、linux_drag、linux_scroll、linux_type、linux_key 移動、點擊、拖拽、滾動、文本與組合鍵
窗口與應用 linux_activate_window、linux_set_window_frame、linux_apps、linux_launch_app、linux_activate_app 激活/擺放窗口;讀 .desktop 與運行實例;啓動應用
環境 linux_check_env、linux_displays 依賴與 X11 能力體檢;枚舉顯示器
校驗 linux_verify_state 斷言標題、焦點、窗口數,並比對畫面是否變化
無障礙(可選) linux_app_state、linux_set_value 讀 AT-SPI 控件樹;直接給可編輯控件寫值(v1.7.0 起)

寫操作前先觀察:任意寫工具執行前需要一次新鮮的 linux_screenshot(默認快照 TTL 30 秒);寫完成後快照作廢,下一次寫需重新截圖。座標可指定 space=screen(屏幕絕對像素)或 space=local(按截圖局部像素換算)。

v1.6.0 起增強應用與窗口相關工具;v1.7.0 起在裝好 AT-SPI 依賴且目標應用重啓後,可用控件 box 座標配合 linux_click,並用 linux_app_state 直讀文本,無需 OCR。

詳情頁:體檢與配置

客戶端半在 DSH「插件 → Linux 電腦控制」詳情頁提供:

  • 檢查依賴:與模型側 linux_check_env 共用同一實現,逐條報告輔助程序、系統包、XTEST/EWMH、DISPLAY/XAUTHORITY、配置狀態等。
  • 一鍵安裝缺失依賴(v1.8.0 起):僅安裝依賴目錄 lib/dependencies.js 登記的包,需二次確認;無免密提權時不嘗試輸密碼,而是給出可手動執行的命令。
  • 桌面控制依賴與配置:可編輯並保存 DISPLAY、XAUTHORITY、審批策略、觀察快照有效期、允許的窗口標題、命令超時等。

宿主暴露同源 HTTP 路由:/dsh-linux-desktop-use/check、/install、/config(GET/POST 語義見 README)。

安裝與啓用

運行環境

  • Node.js >=20(package.json → engines)。
  • 圖形會話:原生 X11 且具備 XTEST;README 建議在虛擬機、Docker + Xvfb、KasmVNC/Xvnc 獨立會話等沙盒中試用。

系統依賴

README 給出的基礎安裝示例:

sudo apt-get install -y xdotool scrot wmctrl ffmpeg

啓用無障礙樹相關工具時,可額外安裝:

sudo apt-get install -y at-spi2-core libatk-adaptor python3-gi gir1.2-atspi-2.0

安裝 AT-SPI 後需重啓目標 GUI 應用纔會註冊到無障礙總線;並需重新加載宿主(README 寫明重裝 bundle 以刷新模塊)後模型側纔會看到新工具。缺項時可用詳情頁「檢查依賴」或 linux_check_env 查看報告及推薦的 apt-get install 命令。

已抓取資料中未給出 DSH 本體添加該插件的固定 CLI 句式;請從 SkillHub 目錄頁 或倉庫 README 跟隨當前 DSH 版本的插件安裝方式。改代碼或換包名後需按 README / VERIFICATION.md 說明讓宿主重新 reconcile 配置,否則磁盤改動不會自動生效。

典型用法

下面是一套與插件設計一致的、可復現的操作順序(由 README 中的工具約束歸納,非虛構案例):

  1. 體檢:對話中調用 linux_check_env,或在詳情頁點「檢查依賴」,確認 xdotool、DISPLAY、XTEST 等就緒。
  2. 觀察:調用 linux_screenshot(必要時 linux_windows / linux_app_state 輔助定位)。
  3. 只讀確認:用 linux_desktop_status、linux_verify_state 覈對焦點與畫面是否與預期一致。
  4. 寫操作:在快照未過期且通過審批時,依次使用 linux_click、linux_type、linux_key 等;多窗口時先用 linux_activate_window 或 linux_activate_app。
  5. 再次觀察:每次寫操作後重新截圖,再進行下一步寫操作。

若使用 linux_launch_app 啓動 Terminal=true 的 .desktop 條目,插件會按環境選擇 xfce4-terminal、gnome-terminal 或 xterm 等包裝命令。

安全機制與使用注意

README 將風險等級等同於「讓可能犯錯的操作者坐在你的電腦前」。內置機制包括:觀察門禁與快照 TTL(lib/observe.js)、危險語義分級審批(lib/guard.js,approvalMode 可爲 all / dangerous / off)、截圖座標語義統一、以及 package.json → dsh.permissions 等可審計聲明。這些只能降低誤觸概率,不能消除誤刪文件、覆蓋文檔、終端破壞性命令、憑據隨截圖進上下文、誤發消息或誤支付等後果。

建議:在隔離桌面中使用;沙盒內不放真實賬號與生產數據;默認保持 approvalMode = all;用 allowedWindows 收窄可操作的窗口標題;必要時縮短觀察 TTL。真實辦公桌面若必須使用,優先只讀工具,寫操作逐次人工批准。

結尾

dsh-linux-desktop-use 把 Linux X11 桌面的看、點、輸、窗、應用以及可選的無障礙樹,收斂成 DSH 內一組可審批的工具,並用手勢一致的體檢與配置面板降低接入成本。完整工具表、權限說明與沙盒建議見 GitHub README;安裝與發現入口見 SkillHub 插件頁 與 sorchk/dsh-linux-desktop-use。

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

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

小夜