dsh-calc-tool:爲 DSH Agent 提供可驗證的算術工具

前言

在 DeepSeek Harness(DSH)裏跑 Agent 時,賬單核對、配比換算、統計彙總這類任務經常落到「讓模型心算」。大模型對四則運算沒有確定性的執行路徑:既可能輸出看起來合理卻錯誤的數字,也可能在思維鏈裏反覆列豎式,消耗大量推理 Token。社區插件 dsh-calc-tool(維護者 yhy854,分類:模型推理)的思路很直接——把算術交給專用工具 calc,由手寫解析器求值,避免 eval 類動態執行帶來的安全風險。

下面介紹插件定位、能力邊界、安裝方式與典型用法;事實均以 GitHub 倉庫 README 與 package.json 爲準。

這是什麼

dsh-calc-tool 是面向 DSH 的計算器插件,npm 包名爲 dsh-calc-tool,當前版本 0.1.0,許可證 MIT。安裝並啓用後,Agent 會獲得名爲 calc 的工具;傳入數學表達式即可得到數值結果,用於替代模型在上下文中的「腦補算術」。

插件目錄頁:https://www.skillhub.cn/plugins/yhy854/dsh-calc-tool(社區目錄站點,與 DeepSeek / 幻方無官方從屬關係)。

核心功能

計算能力

README 中列出的支持範圍如下。

類別 支持內容
基礎算術 + - * / % //(整除)**(冪運算,右結合)
數學函數 abs ceil floor round trunc sign sqrt cbrt exp log log2 log10 sin cos tan asin acos atan pow hypot max min
常用常量 PI、E
語法特性 括號優先級、一元正負號、科學計數法(如 1.5e3)

三角函數默認使用弧度;若按角度計算,可寫 sin(30 * PI / 180)。運算優先級爲:**(右結合) > 一元 ± > * / % // > + -。

安全與資源上限

實現上採用手寫詞法分析與遞歸下降解析,README 明確 不使用 eval 與 new Function。詞法層對白名單外的字符(如引號、分號、反引號、{}、[])直接報錯;白名單查表使用 Object.create(null) 與 Object.hasOwn,並配有針對原型鏈污染的迴歸測試。

護欄包括:表達式最長 4096 字符、括號嵌套最多 64 層、單函數參數最多 32 個;結果爲 NaN 或 Infinity 時拒絕返回。

結構化錯誤

算式不合法或越界時,插件返回帶錯誤碼的提示,便於 Agent 自行修正,例如:

錯誤碼 含義
CALC_PARSE_ERROR 語法錯誤(含出錯位置)
CALC_UNKNOWN_IDENTIFIER 非白名單函數或變量
CALC_DIVIDE_BY_ZERO 除數爲 0
CALC_NOT_FINITE 溢出或對負數開偶次方等
CALC_LIMIT_EXCEEDED 超長 / 過深嵌套 / 參數過多
CALC_BAD_ARGUMENT 參數類型或數量錯誤

安裝與啓用

DSH 理念是「一切皆插件」;安裝走桌面端官方插件面板,無需自行 git clone。步驟如下。

  1. 打開 DeepSeek Harness 桌面端,左側進入 插件;
  2. 右上角 添加插件;
  3. 填入下面 npm 包名 或 GitHub 地址 之一,確認安裝。

npm 包名:

dsh-calc-tool

GitHub 地址:

https://github.com/yhy854/dsh-calc-tool

裝完後按面板提示重啓,並 新開一個會話 再試用。插件可在面板中隨時關閉,不使用時無需卸載。

兼容性:README 標明與 DSH 內核 0.2.x 兼容;peerDependencies 爲 @deepseek-ai/dsh-tools 的 >=0.2.0-0(覆蓋 rc 預發佈版)。

典型用法

啓用後 Agent 調用 calc,參數爲 expression 字符串。README 示例:

calc { expression: "1280 * 0.85 + 42.5" }  →  1130.5
calc { expression: "15 + 27 * sqrt(9)" }   →  96

適用場景與注意

適合誰: 需要在對話或任務流中做確定性數值計算、又希望減少模型心算幻覺與 Token 浪費的 DSH 用戶。

已知邊界(README 原文):

  1. 遵循 JavaScript IEEE 754 雙精度浮點,例如 0.1 + 0.2 爲 0.30000000000004;固定位數可配合 round()。
  2. 安全整數約在 ±9e15(Number.MAX_SAFE_INTEGER)內;更大整數可能有精度損失。
  3. 不支持符號代數、矩陣或解方程。

權限與審閱: 插件在 當前 DSH 進程權限 下運行。安裝前建議瀏覽 源碼倉庫 與 MIT 許可證,確認符合你的安全策略。

本地驗證測試(開發者參考):

node test/evaluate.test.mjs

README 稱內置 43 條測試,覆蓋運算正確性、惡意載荷攔截、原型鏈迴歸與資源上限等。

結尾

dsh-calc-tool 把 Agent 中的算術從概率生成改爲工具調用,並在解析層規避常見的不安全求值方式。若你在 DSH 裏頻繁遇到算錯或推理鏈裏反覆驗算的問題,可通過面板安裝 dsh-calc-tool 啓用 calc 工具。

  • 目錄頁:https://www.skillhub.cn/plugins/yhy854/dsh-calc-tool
  • GitHub:https://github.com/yhy854/dsh-calc-tool
羽毛球分组比赛记分
小程序二维码

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

小夜