前言¶
DeepSeek Harness 提倡“一切皆插件”的扩展方式。对于需要复杂本地计算的场景,直接调用远程 API 往往不够用。SymPy-Calculate 提供了一个基于 minimal 预设的本地工具,让 Agent 能够直接在宿主机上运行 SymPy 代码。
插件介绍¶
- 名称:SymPy-Calculate
- 维护者:11350613
- 类别:工作流
- 许可证:MIT
该插件增加了一个无状态工具 sympy_calculate。它会在本地 SymPy 开发检出目录中,针对一个完整的 Python 脚本启动新进程进行计算。
核心能力¶
- 添加无状态工具
sympy_calculate。 - 在本地 SymPy 检出中运行完整的 Python 脚本。
- 每次调用有 120 秒的超时限制。
- stdout 和 stderr 的输出各限制在 2,000,000 字符。
环境要求¶
- DeepSeek Harness:0.2.0-rc.2
- Node.js:^22.19.0 或 >=24.0.0
- SymPy:本地检出(默认路径为
~/sympy-dev/sympy) - Python:3.x,需支持
venv和pip - 平台:已在 Ubuntu 24.04.4 LTS 上测试通过。
安装与配置¶
安装前需先配置本地 SymPy 环境。以下是设置步骤:
- 安装 venv 工具(如果缺失):
sudo apt install -y python3-venv python3-pip
- 创建 SymPy 检出目录并克隆仓库:
mkdir -p ~/sympy-dev
git clone https://github.com/sympy/sympy.git ~/sympy-dev/sympy
- 创建虚拟环境并安装 SymPy:
python3 -m venv ~/sympy-dev/sympy/venv
~/sympy-dev/sympy/venv/bin/python -m pip install -e ~/sympy-dev/sympy
echo 'venv/' >> ~/sympy-dev/sympy/.git/info/exclude
- (可选)配置环境变量。默认使用
~/sympy-dev/sympy作为根目录,解释器按优先级使用venv/bin/python或python3。若需自定义,可在启动 Harness 的环境变量中设置SYMPY_ROOT和SYMPY_PYTHON。
配置完成后,安装 DSH 插件。该插件需要安装在 web profile 中:
npx --yes @deepseek-ai/dsh@0.2.0-rc.2 plugin --profile web add https://codeload.github.com/11350613/SymPy-Calculate/tar.gz/v1.0.4
使用示例¶
sympy_calculate 接受一个包含完整 Python 脚本的 JSON 对象。每次调用都会启动一个新的解释器进程,因此建议将相关的批量计算合并到一个脚本中。
输入:
{
"code": "from sympy import *\n\nx = symbols('x')\nprint(integrate(x**2 / (1 + x**4), (x, -oo, oo)))"
}
输出:
sqrt(2)*pi/2
注意事项¶
- 安全:
sympy_calculate以当前用户的权限执行任意 Python 代码,并继承环境变量。它未被沙盒化。请仅在信任的模型和权限策略会话中使用。 - 平台:该插件在 Ubuntu 24.04.4 LTS 上测试通过,其他平台可能存在兼容性问题。
- 输出处理:stdout 和 stderr 会合并输出。如果脚本的退出码非零,工具会将其视为错误。
- 性能:由于每次调用都启动新的进程,导入 SymPy 会产生开销。