前言¶
DeepSeek Harness (DSH) 採用了插件化架構,將核心功能解耦。dsh-keymouse-use 插件通過一個常駐的 helper 進程(bin/helper-x64.exe),利用 Win32 SendInput API 來模擬真實的鍵盤和鼠標輸入。它同時提供截圖和窗口管理能力,能夠幫助模型在 Windows 環境下完成從簡單的按鍵輸入到複雜的窗口操作流程。
核心能力¶
該插件主要包含以下功能模塊:
-
鍵盤模擬
key_press(key): 按下按鍵,用於組合鍵。key_up(key): 抬起按鍵。key_tap(key): 按下並立即抬起,用於單次按鍵。
-
鼠標模擬
mouse_press(button): 按下鼠標按鈕。mouse_up(button): 抬起鼠標按鈕。mouse_move(x, y): 移動鼠標指針(物理座標)。mouse_roll(up, amount?): 滾動鼠標滾輪。
-
截圖
screenshot(): 截取主屏幕,返回 PNG 絕對路徑、寬高以及當時前臺窗口的 hwnd/title。screenshot_window(hwnd?): 截取指定窗口(默認爲前臺窗口),返回路徑、尺寸、抓取模式及窗口狀態。
-
窗口管理
win_find(process): 根據進程名查找窗口。win_activate(hwnd): 喚起窗口,處理最小化或托盤狀態。win_minimize/win_restore/win_maximize: 窗口最小化、還原、最大化。win_top(hwnd, on): 設置窗口置頂,win_top與release_top配合使用。get_window(): 獲取當前前臺窗口的詳細信息。
-
清理
release_all(): 一鍵抬起所有按住的鍵盤和鼠標按鍵,防止卡鍵。
安裝與啓用¶
本地目錄安裝(開發或內網環境):
dsh plugin --profile <name> add <path-to-dsh-keymouse>
通過 npm 安裝(發佈後):
dsh plugin --profile <name> add @temsmie/dsh-tool-keymouse
在桌面端(DeepSeek Harness 客戶端 0.2.0)安裝時,需要在插件管理面板中操作,安裝完成後必須重啓桌面端才能註冊工具。
典型用法¶
以下是一些常見的操作組合示例:
1. 喚起窗口並操作
先查找窗口句柄,再激活窗口,隨後執行操作。
// win_find('QQ') → win_activate(hwnd) 喚起窗口(不點圖標)
const hwnd = win_find('QQ');
win_activate(hwnd);
key_tap('enter'); // 在窗口中輸入回車
2. 組合鍵操作
先按下組合鍵,再按下功能鍵,最後釋放所有按鍵。
// key_press('ctrl') → key_tap('s') → release_all
key_press('ctrl');
key_tap('s');
release_all();
3. 鼠標點擊與移動
按下鼠標左鍵,移動到指定座標,鬆開。
// mouse_press('left') → mouse_move(...) → release_all
mouse_press('left');
mouse_move(800, 600);
release_all();
4. 截圖與觀察
先截取屏幕,由宿主環境查看圖像,確認位置後再進行操作。
// screenshot() →(環境支持看圖時)查看圖像 → 再定位操作
const path = screenshot();
// 假設宿主環境支持讀取 path 並理解圖像內容
// 然後根據圖像內容計算座標並執行鼠標移動
注意事項¶
- 平臺限制:僅支持 Windows 系統。
- DPI 感知:helper 已設置爲 DPI-aware,所有座標和尺寸均基於物理像素。模型給出的座標即爲截圖裏看到的座標,無需進行縮放換算。
- 無視覺識別:插件本身不包含識圖能力。
screenshot返回的是 PNG 文件路徑,能否識別圖像內容取決於宿主環境(模型是否支持圖像輸入或是否安裝了其他視覺插件)。 - 配置生效範圍:DSH 加載的是 profile 目錄裏的副本,而非源碼目錄。如果修改了源碼,必須重新安裝或發版才能生效。
- 權限要求:插件以當前 DSH 進程的權限運行,需確保進程有權限操作目標窗口。
生態背景¶
DSH 的核心理念是「一切皆插件」。社區目錄(如 skillhub.cn)是獨立站點,與 DeepSeek 或幻方 AI 無官方從屬關係。本插件通過社區目錄或 GitHub 發佈,供開發者按需引用。
相關鏈接¶
- 目錄頁: https://www.skillhub.cn/plugins/msn233/dsh-keymouse-use
- GitHub: https://github.com/msn233/dsh-keymouse-use