DSH(DeepSeek Harness)的插件生態中,文件級讀寫工具(如 openpyxl)無法模擬真實 Office 的運行時行爲,例如無法執行公式重算或運行 VBA 宏。dsh-office-com 提供了 COM 通道,直接操作本機 Office 實例,填補了這一空白。
插件定位¶
這是一個 Windows 本機真實 Office 自動化插件,由開發者 wly8691-jpg 維護。它通過 COM 驅動真實的 Excel 和 Word 實例,支持 VBA 宏、透視表和活公式重算。核心功能覆蓋會計旗艦場景(分錄、總賬、透視表),並提供完整的進程生命週期管理。
核心功能¶
29 個底層工具¶
工具集分爲應用管理、讀寫、公式/宏、透視表和 Word 操作。
- 應用發現 / 啓動:
office_apps,office_launch - Excel 讀寫:
excel_new(新建並置頂可見),excel_open,excel_read_range,excel_write_range - Excel 公式 / 宏:
excel_formula_set,excel_recalc(強制重算取活值),excel_vba_run(運行已有宏) - 透視表:
excel_pivot_create,excel_pivot_refresh - Word:
word_open(讀結構),word_edit(全文查找替換) - 會計旗艦(底層):
excel_journal_post(寫分錄 + 借貸平衡校驗),excel_ledger_gen(日記賬 → 科目總賬)
6 個任務級工具¶
任務級工具將一套完整的業務步驟封裝爲一次調用,Agent 不必手動編排多個 COM 步驟。
office_generate_accounting_report:生成完整會計報告(日記賬 + 總賬 + 透視表 + 強制重算)。office_check_workbook:只讀體檢,檢查求值錯誤、外部鏈接、保護表和未保存改動。office_replace_document_terms:批量替換術語(如合同中的金額、日期),先計數再統一替換。office_update_monthly_report:按期間更新月度報告,替換而非追加。office_apply_template:將模板的外觀(字體、邊框、格式)套用到目標工作簿。office_prepare_management_summary:從數據表生成管理層摘要,包含維度聚合和對比。
8 個 kb_* 知識庫分類工具¶
這一族工具是 Office 與 KnowLP 的組合面,用於在陌生環境中建立分類體系。
kb_scan_root:登記目錄樹,支持擴展名 + magic 雙判據分類。kb_taxonomy_get/kb_taxonomy_set:獲取或設置分類學,自帶漂移審計。kb_classify:按分類學規則歸檔,支持語義縫(use_semantics=true)。kb_scheme_propose:生成影子目錄方案(label 鏈),僅出方案不碰文件。kb_annotate:寫標註,支持寫回原文件。kb_verify:核賬,驗證標註可解析和源文件指紋。kb_write_back_office:向 Office 文件寫入自定義文檔屬性,不碰單元格內容。
執行模式¶
所有工具支持三種執行模式:
preview:真經 COM 打開文件預演,不落筆,用於動手前確認。managed:打開 → 修改 → 校驗 → 保存 → 關閉,適用於批量作業。attached:操作當前運行實例,不主動關閉、不自動覆蓋,適用於用戶正在編輯的場景。
典型用法¶
1. 寫入數據 → 寫公式 → 重算讀活值¶
// 寫入數據
{ "tool": "excel_write_range", "range": "A1:C4",
"value": [["科目","月份","金額"],["辦公費","1月",100],["辦公費","2月",150],["差旅費","1月",80]] }
// 設置公式
{ "tool": "excel_formula_set", "range": "D1", "formula": "=SUM(C2:C4)" }
// 強制重算後讀回的是計算後的活值
{ "tool": "excel_recalc", "range": "D1" }
// → { "value": 330 }
2. 使用 preview 模式預演¶
// 第一步:預演修改,不落筆
{ "tool": "excel_write_range", "path": "C:/book.xlsx", "range": "A2:B2",
"value": [["x","y"]], "mode": "preview" }
// → { "preview": true, "changed": false, "output": { "target": { "sheet": "Sheet1", "address": "$A$2:$B$2" }, "overwrite_non_empty": 2 } }
// 第二步:確認無誤後執行
{ "tool": "excel_write_range", "path": "C:/book.xlsx", "range": "A2:B2", "value": [["x","y"]], "mode": "managed" }
適用場景與注意¶
- 依賴環境:真實 Office 測試需在目標機器上執行,依賴本機 OfficeMCP 服務。
- 權限要求:插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證(MIT)。
- 進程管理:插件具備孤兒進程回收能力,通過 PID 歸屬和可見性判斷來管理 Excel 進程生命週期。