前言¶
在开发基于 DeepSeek Harness (DSH) 的智能体时,复数计算是一个高频但容易出错的环节。大模型在处理复数四则运算、极坐标转换、反三角函数分支切割以及复系数方程求解时,往往难以保证精度和正确性。DSH 的核心理念是“一切皆插件”,通过引入确定性数学计算层,可以将这类逻辑从模型推理中剥离出来。
下面介绍 dsh-complex 插件,它是一个为 DSH 提供复数数学运算能力的工具箱,由维护者 TYEclipse 开发。
插件介绍¶
dsh-complex 提供了 6 个纯数学工具,用于处理复数的解析、格式化、算术运算、坐标转换、函数计算、n 次方根求解以及复系数二次方程求解。该插件采用零运行时依赖的设计,基于 IEEE 双精度浮点数进行确定性计算,输出结果默认保留 10 位小数(可配置),并遵循 CPython cmath 库的分支约定。
核心功能¶
插件包含以下核心工具:
- complex_parse:解析复数。支持直角坐标(如
3+4i)、极坐标(如5∠53.13°)和指数形式。解析结果会包含模、辐角(弧度/角度)、共轭等完整信息。 - complex_calc:执行复数算术运算。支持加、减、乘、除、取共轭、取倒数、整数次幂以及一般复数幂运算(如
i^i)。 - complex_convert:坐标转换。支持在直角坐标和极坐标之间互转,输出包含模长、辐角以及指数表示形式。
- complex_functions:初等与反函数计算。支持复指数、对数、三角函数、双曲函数及其反函数的主值计算。结果会附带分支约定说明。
- complex_roots:n 次方根计算。计算给定复数的所有 n 次方根(n 范围 1-64)。
- complex_quadratic:复系数二次方程求解。输入系数 a、b、c,返回判别式、韦达定理结果(和与积)、根以及每个根的残差验证值。
安装与启用¶
安装前请确保环境满足 Node.js >= 20 的要求。通过以下命令安装插件:
dsh plugin --profile web add github:TYEclipse/dsh-complex
若需锁定版本,可使用:
dsh plugin --profile web add github:TYEclipse/dsh-complex#v0.2.0
典型用法¶
以下示例展示了如何调用这些工具:
解析与转换¶
complex_parse("3+4i")
# 返回: 3+4i (rectangular; |z| = 5, arg = 53.1301023542°, conjugate 3-4i)
complex_convert(input="3+4i", operation="to_polar")
# 返回: |z| = 5, arg = 0.927295218 rad = 53.1301023542° (5∠53.1301023542°; exponential 5·e^(i·0.927295218))
算术与幂运算¶
complex_calc(a="3+4i", b="1-2i", operation="multiply")
# 返回: 11-2i
complex_calc(a="i", b="i", operation="pow")
# 返回: 0.2078795764 (i^i = e^(-π/2))
函数、根与方程¶
complex_functions(input="-1", operation="log")
# 返回: 3.1415926536i (principal branch)
complex_roots(input="1", n=4)
# 返回: 1, i, -1, -i
complex_quadratic(a="1", b="-2", c="2")
# 返回: discriminant -4, sum 2, product 2; roots 1+1i, 1-1i
适用场景与注意¶
该插件适合需要处理复数数学逻辑的 DSH 智能体场景,例如信号处理、控制理论模拟或复杂的工程计算。
- 确定性输出:插件内部使用 IEEE 双精度浮点数,输出结果默认保留 10 位小数,可通过配置
plugins.complex.roundPlaces调整精度(1-15 位)。 - 输入语法:支持
a+bi形式以及r∠θ°形式的极坐标输入。支持j作为虚数单位。 - 分支约定:反函数计算(如
asin,log)严格遵循 CPythoncmath的分支约定,结果中会包含分支说明。 - 错误处理:对于非法输入(如
log(0)、除以零、0^0或atan(±i)),插件会返回valid: false并给出诚实说明,而不是返回错误值。
总结¶
dsh-complex 通过提供一套严谨的复数计算工具,填补了 DSH 在处理复杂数学运算时的空白。它让智能体无需自行推导公式,即可获得高精度的复数计算结果。更多细节和源码可访问 GitHub 仓库。