前言¶
在 DSH 里让智能体「画个图」时,常见做法是生成脚本或静态图,本地很难复现、也很难对照题目条件做自动核对。GeoGebra 本身是交互式几何环境,但要把文字或图片里的题面转成原生 .ggb、并在交付前跑一遍构造与条件检查,需要一套本地 CLI 和与宿主对齐的 Skill 规则。ggb-plugins-dsh 是 Jack7510 发布的 DSH 客户端插件(npm 包 ggb-plugins-dsh 0.8.5),把「题面 → 原生代数/CAS 程序 → 本地执行 → 验证 → 交付」串成一条流水线;源码与 MIT 许可证见 ggb-plugins 仓库的 dsh/ 目录。
这是什么¶
一句话:ggb-plugins-dsh 让 Codex 或 DeepSeek Harness 读懂二维数学问题(中英文、文本或附图),写出 GeoGebra 原生程序,在本地无头运行、逐条核对题目条件,导出 .ggb 并附带验证报告与截图。
维护者:Jack7510。社区目录页:skillhub.cn/plugins/Jack7510/ggb-plugins-dsh。发行包仓库:github.com/Jack7510/ggb-plugins-dsh(README 注明其为 DSH 包 ggb-plugins-dsh 的生成产物,问题与源码以主仓库为准)。
核心功能¶
下面介绍插件在资料中明确描述的能力边界。
题面到交付物¶
宿主智能体分析问题、编写 GeoGebra 原生 Algebra/CAS 程序;插件在本地执行,验证每一条已声明条件,导出 .ggb,重新加载后再交付,并输出验证报告与预览图。智能体按偏好与上下文选择工作语言,保留原题文字,不凭空编造答案,只根据条件构造。
成功一次运行得到的文件¶
交付目录位于 <outputDir>/<title>/delivery/。<title> 来自题面,也用作 GGB 文件名;重名时追加 -2、-3,不覆盖旧交付。
| 文件 | 用途 |
|---|---|
<title>.ggb |
以题面命名的 GeoGebra 文件,可继续编辑 |
verification.json |
各条件的构造、重载与交互采样结果 |
preview.png |
交付配置的截图 |
request.json、manifest.json |
归档的输入与交付清单 |
报告说明跑了哪些检查、有限交互采样覆盖到哪里,不声称一般性证明。
验证与失败策略¶
构造、重载与自动检查在无头环境下完成,不出现中间窗口。某条件失败或无法验证会阻断交付,而不是跳过;失败保留诊断信息便于下一轮修正。必要信息缺失或含糊时,智能体先提问;未给坐标时会说明所选初始配置。行为边界由 bundled Skill(skills/ggb-construction/SKILL.md)定义。
交互预览¶
预览加载同一份交付 GGB,支持可拖拽点、参数与缩放,不写回交付目录。预览进程在页面加载后退出,窗口仍可用;再次执行 preview 会重载。自动化检查可用 --headless。
直接调用 CLI¶
宿主会代你调用 CLI,其他本地工具也可驱动:
node <installed-plugin>/dist/src/cli.js doctor
node <installed-plugin>/dist/src/cli.js inspect --ggb /absolute/base.ggb
node <installed-plugin>/dist/src/cli.js build --request /absolute/request.json
node <installed-plugin>/dist/src/cli.js preview --delivery /absolute/delivery
在 request 中声明 base 可改已有 GGB 的颜色、线型、填充、可见性,增对象或更新独立值与坐标;inspect 列出对象、当前值以及 request 需声明的摘要。不支持删除、重命名与视图变更。请求编写见主仓库 capability contract(中文)。
范围与限制¶
支持:二维几何、函数、方程、微积分、列表、矩阵与统计,中英文。不支持:三维构造、无法按协议声明的外部 GGB 续写、一般数学证明。数值采样与未解析的 CAS 结果是证据,不是证明。GeoGebra 另有独立许可与署名要求,见包内 THIRD_PARTY_NOTICES.md。
环境与依赖¶
| 要求 | 原因 |
|---|---|
| Codex 或 DeepSeek Harness (DSH) | 解读题面并编写 GeoGebra 原生程序 |
| Node.js 22+ 与 pnpm 11 | 运行本地 CLI 与准备依赖 |
curl、unzip |
下载并解压固定版本的 GeoGebra 运行时 |
| Google Chrome 或 Microsoft Edge | 验证阶段无头驱动小程序 |
不需要额外模型 API Key。安装需联网;GeoGebra 与浏览器不随包分发。package.json 声明 Node ^22.19.0 || >=24.0.0,DSH >=0.2.1-rc.2 <0.2.2。
安装与启用¶
当前发行版本为 v0.8.5,包含 Codex ZIP 与 DSH npm 包。DSH 侧详细步骤见包内 INSTALL.md(中文);桌面用户也可按该文档「用一句对话安装桌面应用」在 DSH 对话里完成安装。
先做插件安装,再做运行时准备(setup-plugin 会报告将使用的浏览器),最后用 doctor 做就绪检查。
官方 DSH 安装命令:
profile=desktop # use web for the DSH Discover or Web host
dsh plugin --profile "$profile" add ggb-plugins-dsh@0.8.5
node ~/.dsh/profiles/$profile/node_modules/ggb-plugins-dsh/scripts/setup-plugin.mjs
在 DSH 里浏览插件时,可开启 Experimental plugins → Custom plugin markets,在 Discover → Add index source 添加:
https://cdn.jsdelivr.net/gh/Jack7510/ggb-plugins@main/docs/market/index.json
Codex 与 DSH 客户端独立安装,共享同一套执行与验证流水线。
典型用法¶
启用插件后,新开宿主会话,用自然语言描述题目;可附图。
示例 prompt(来自 README):
Use GeoGebra to construct triangle ABC, mark the midpoint M of AB, and connect CM. Colour the median red. Drag A to verify that the midpoint and median stay linked, save the file, and open the interactive preview.
经上面的步骤,构造、重载与各项自动检查在无头模式下完成;交付成功后可在交付目录打开 .ggb 与 verification.json,需要时用 CLI 的 preview 做交互预览。
适用场景与注意¶
适合需要在 DSH 里把平面数学题落成可编辑、可拖拽的 GeoGebra 课件,且希望交付前自动核对题面条件的开发者或教研场景。
插件以当前 DSH 进程的权限在本地运行,会下载 GeoGebra 运行时并驱动本机 Chrome 或 Edge;安装前应阅读 ggb-plugins 源码与 MIT 许可证,确认符合你的安全与合规要求。DeepSeek Harness 社区插件目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系。
链接¶
- 目录页:https://www.skillhub.cn/plugins/Jack7510/ggb-plugins-dsh
- GitHub 发行包:https://github.com/Jack7510/ggb-plugins-dsh
- 源码与 Issue:https://github.com/Jack7510/ggb-plugins(
dsh/)