前言¶
DSH 插件生態中,工具插件可以獨立安裝到指定 profile。下面介紹 omdsh-dev 維護的 dsh-tool-calculator。
這個插件註冊 calculator 工具,用於安全求值數學表達式。插件說明將其描述爲“零依賴、零進程、純函數”;從已覈實資料看,它適配 DSH 0.1.2-alpha.1,可作爲獨立 bundle 安裝到 profile。許可證爲 MIT。
插件定位¶
先確認幾個基礎信息:
- npm 包名:
@deepseek-ai/dsh-tool-calculator - 註冊工具名:
calculator - 倉庫地址:
https://github.com/omdsh-dev/dsh-tool-calculator - 許可證:MIT
package.json中private爲truepackage.json聲明 Node 引擎爲^22.19.0 || >=24.0.0
工具輸入爲 expression 字符串,輸出爲有限數字;NaN / Infinity 會被拒絕。
核心功能¶
支持的運算符¶
支持以下運算:
+-*/%**- 括號
() - 一元正負,例如
+5、-5
其中 ** 爲冪運算,且是右結合:
2 ** 3 ** 2 = 512
支持的函數與常量¶
支持這些函數:
absceilfloorroundsqrtloglog2log10expsincostanpowmaxmin
支持常量:
PIE
三角函數使用弧度。如果習慣角度,需要在表達式裏換算,例如:
sin(30 * PI / 180)
安全邊界¶
已覈實資料顯示,該插件不使用 eval,也不使用 new Function。它使用手寫遞歸下降解析器,只接受白名單數字字面量、標識符和運算符。
下面這些寫法會被拒絕或報錯:
- 引號
- 分號
- 反引號
{ }[ ]- 非白名單標識符
- 求值結果爲
NaN或Infinity的表達式
也就是說,它只把輸入當作數學表達式處理,而不是當作代碼執行。
安裝與啓用¶
安裝到 profile¶
安裝命令如下。web 與 headless 是不同 profile,按需選擇。
交互式或 web profile:
dsh plugin --profile web add github:omdsh-dev/dsh-tool-calculator
headless profile:
dsh plugin --profile headless add github:omdsh-dev/dsh-tool-calculator
注意:web 安裝不會自動覆蓋 headless;dsh run 默認使用 headless profile。如果你主要用 dsh run,應安裝到 headless profile。
驗證安裝¶
安裝後先檢查配置裏是否出現該插件:
dsh --profile web --dump-config | grep tool-calculator
如果安裝到 headless profile,對應命令是:
dsh --profile headless --dump-config | grep tool-calculator
運行驗證¶
用一句自然語言讓 agent 調用 calculator 工具:
dsh run "使用 calculator 工具計算 1+2*3"
環境與依賴注意¶
下面幾點在安裝前值得確認:
- 適配 DSH 0.1.2-alpha.1
- 啓動方式:
npx -p @deepseek-ai/dsh@next dsh web
- 不要使用
install -g全局安裝 - peer 依賴
@deepseek-ai/cordis、@deepseek-ai/dsh-tools、@deepseek-ai/dsh-invariants由 profile 的 healedprofiles/node_modules回退安裝提供 - DSH 0.1.2-alpha.1 的 patch 是 id-targeted 語義,必須用
- insert:列表包裹
典型用法¶
安裝後,agent 可以使用 calculator 工具處理數學表達式。
示例:
calculator { expression: "15 + 27 * sqrt(9)" } → 96
通過命令行運行:
dsh run "使用 calculator 工具計算 1+2*3"
冪運算:
2 ** 3 ** 2 = 512
角度換算後的三角函數:
sin(30 * PI / 180)
適用場景與注意¶
這個插件適合需要給 agent 增加確定性數學求值能力的場景。它把計算限制在表達式層,避免把輸入交給代碼執行環境。
使用前建議確認:
- 插件以當前 dsh 進程權限運行
- 安裝前應檢查源碼與許可證
- 許可證爲 MIT
- 插件介紹稱“零依賴、零進程、純函數”,但已覈實資料也顯示它依賴 DSH 0.1.2-alpha.1 profile 環境,並由 profile 的 healed
profiles/node_modules回退安裝提供 peer 依賴
已知限制包括:
- 求值結果必須是有限數字,
NaN/Infinity統一拒絕 - 三角函數使用弧度
- 不支持大整數:JS
number是 IEEE 754 double,超出安全整數範圍±9e15有精度損失 - 不支持科學計數法:
1e5會被詞法層拒絕 - web 與 headless 是不同 profile,web 安裝不會自動覆蓋 headless
結尾¶
dsh-tool-calculator 提供了一個邊界較窄、用途明確的 calculator 工具:輸入數學表達式,輸出有限數字,並拒絕代碼執行類輸入。
倉庫地址:
https://github.com/omdsh-dev/dsh-tool-calculator