前言¶
在 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。步驟如下。
- 打開 DeepSeek Harness 桌面端,左側進入 插件;
- 右上角 添加插件;
- 填入下面 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 原文):
- 遵循 JavaScript IEEE 754 雙精度浮點,例如
0.1 + 0.2爲0.30000000000004;固定位數可配合round()。 - 安全整數約在 ±9e15(
Number.MAX_SAFE_INTEGER)內;更大整數可能有精度損失。 - 不支持符號代數、矩陣或解方程。
權限與審閱: 插件在 當前 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