DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

yhy854 /

yhy854/dsh-calc-tool

Verified

DeepSeek Harness 专属硬核计算器:终结大模型算术脑补与幻觉,0 误差秒出结果,省下反复验算的巨量 Token。

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@c5a7f3b0

dsh-calc-tool · DSH 精准计算器插件

专治大模型「算术脑补」与「心算翻车」!给 DeepSeek Harness 的 Agent 配一把零误差、高安全的硬核计算器。

用大模型处理账单、配比、数据统计或代码参数时,最怕什么?

  • 一本正经地算错:模型靠概率「猜」出个看似合理的错数,混在报告里坑惨你。
  • 思维链里疯狂烧钱:为了算对一道四则运算,模型在 Thinking 里来回列竖式、反复自我怀疑,白白烧掉几百上千个推理 Token。

装上 dsh-calc-tool 后,模型遇到算术直接调 calc 工具,一步到位拿精确结果——既不会算错出幻觉,也不会在思维链里死磕心算浪费你的钱和时间!

⚡ 超级便捷,三步一键安装

不用折腾繁琐配置,直接用 DeepSeek Harness 官方插件面板三步搞定:

  1. 打开 DeepSeek Harness 桌面端,点击左侧边栏的 「插件」 按钮;
  2. 点击右上角 「添加插件」;
  3. 填入下面任意一行,点击安装即可。

npm 包名:

dsh-calc-tool

GitHub 地址:

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

装完按面板提示重启,新开一个会话让它算个数试试。

💡 随开随关,丝滑掌控:完全接入 DSH 官方插件管理,装好开启即用;平时想用就开,不需要时在插件面板随手一点就能关闭,干净利落。

效果与用法

安装后 Agent 自动解锁 calc 工具,遇到计算自动调用:

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

支持的计算能力

类别 支持内容
基础算术 + - * / % //(整除)**(幂运算,右结合)
数学函数 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)。

运算优先级:**(右结合) > 一元 ± > * / % // > + -。

为什么比市面上随便写的计算器安全得多?

很多简陋的计算器插件直接用 eval() 或 new Function() 配合正则过滤——这是巨大的安全漏洞!攻击者(或被提示词注入的模型)只需构造 constructor.constructor("return process")() 就能直接突破沙箱执行任意系统命令。

本插件采用纯手写词法分析 + 递归下降解析器,彻底实现零代码执行风险:

  • 0 eval、0 new Function:绝不走任何 JS 动态代码求值捷径。
  • 严格语法白名单:词法层只认数字、白名单函数/常量、运算符、括号和逗号;遇到引号、分号、反引号、{}、[] 直接报错拦截,绝不搞「清洗后勉强执行」。
  • 防原型链污染(已通过回归测试锁死):白名单字典使用 Object.create(null) 创建(彻底剥离原型链),查表强制使用 Object.hasOwn 而非 in 运算符——防止 __proto__、constructor、toString 蒙混过关(早期版本曾用 in 被测试套件抓出漏洞,现已彻底焊死并配有 7 条专项回归测试)。
  • 防卡死护栏:表达式上限 4096 字符、括号嵌套上限 64 层、函数参数上限 32 个,结果非有限数字(NaN / Infinity)一律拒绝。

友好的结构化报错(帮模型秒纠错,不瞎重试)

算式写错时,插件会返回清晰的错误码和位置,模型看一眼就能自己改对,不会卡在死循环里盲目重试:

错误码 含义
CALC_PARSE_ERROR 语法错误(精准附带出错字符位置)
CALC_UNKNOWN_IDENTIFIER 调用了白名单之外的函数或变量名
CALC_DIVIDE_BY_ZERO 除数为 0
CALC_NOT_FINITE 结果溢出或对负数开偶次方
CALC_LIMIT_EXCEEDED 超出长度 / 嵌套深度 / 参数个数上限
CALC_BAD_ARGUMENT 传入参数类型或数量错误

已知边界(实话实说)

  1. IEEE 754 双精度浮点特性:遵循 JavaScript 标准双精度浮点,0.1 + 0.2 会得出 0.30000000000000004。需要保留固定小数位时请配合 round() 或自行四舍五入。
  2. 安全整数范围:±9e15(即 Number.MAX_SAFE_INTEGER),超大整数超出此范围会有精度损失。
  3. 定位纯粹:专注于数值计算,不支持符号代数、矩阵运算或解方程。

测试覆盖

运行测试:

node test/evaluate.test.mjs

内置 43 条严苛测试用例,全量覆盖:

  • 数值正确性与运算符优先级(16 条)
  • 恶意攻击载荷拦截:constructor.constructor 链、process.exit、globalThis、require、模板字符串、分号注入、括号注入(16 条)
  • 原型链污染回归测试:__proto__、constructor、toString、valueOf、hasOwnProperty(7 条)
  • 资源上限守卫:超深括号嵌套、超长表达式轰炸(2 条)
  • 参数异常校验(2 条)

兼容性

DSH 内核 状态
0.2.x 完美兼容(peerDependencies 写 >=0.2.0-0,覆盖 rc 预发布版)

⚠️ peerDependencies 范围请保持 >=0.2.0-0 不要乱改。写成 ^0.1.x 会展开成 <0.2.0-0 从而把 0.2.0-rc.1 排除掉,导致 DSH 预检静默禁用插件。

许可

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit c5a7f3b0ac81

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout