OpenGlyph for DeepSeek Harness
把古文字工具链注册为 DeepSeek Harness(dsh)的原生工具,让模型知道每个工具何时用、输入什么、返回什么、下一步做什么,并直接看到字形图片。不是再放一份“请运行 CLI”的笼统提示。
适合古籍、甲骨、金文、简帛等材料的字形证据采集,以及生僻隶定字的字体与 LaTeX 排印。字形检索不等于释读,生成字体不等于字形已经核定。
为什么做这个插件
guwenzi-tools tools --server 已有机器可读输入接口,但普通终端调用不会把它们自动注册进模型的工具列表,返回字段和操作后续也需要领域说明。例如:
transcribe只是保存已有释文,不会 OCR。glyph_register保存没有释读的原字图身份,不会生成字体。glyph_template_search找可编辑底字/部件;找不到完全相同的整字时,可继续修改部件,而不是换成相似常用字。glyph_compose真正生成 SVG、OTF/TTF、码位映射、可复制文本、嵌入字体 Word 和 LaTeX 包。- DINO 返回相似候选,不能用高分代替原图—最终字体比较,更不能代替人工核定。
v0.2.1 注册 33 个原生工具:20 个远端原子工具、7 个辅助工具和6个本地LaTeX工具,统一技能入口为 /openglyph。现在不仅能交付字体包,还能准备真正的论文项目、使用随包22,583字字库、离线编译JSON新字、编译PDF并检查缺字和嵌入字体。部件预览使用WASM,不要求修改macOS桌面版的代码签名安全设置。完整参考见 工具参数与返回。
安装:这些命令粘贴到终端
实际测试的 Harness SDK 为 0.2.1-rc.5,Node.js 要求 24.9+,含同版本桌面应用。没有声称兼容未测试的alpha。桌面版可直接在应用的插件管理中安装/更新并启用本仓库,不要求另装命令行版DSH;更新后确认插件版本 0.2.1,重新加载插件或空闲时重启应用后开新会话。若 / 列表仍只有旧名,说明旧插件/会话目录缓存尚未刷新。
命令行版按 DeepSeek 官方说明 安装。下文命令是可选的命令行安装路径。
1. 云端识别/检索:安装CLI并登录自己的账号
python3 -m pip install -U 'guwenzi-tools>=0.6.0'
guwenzi-tools login
guwenzi-tools doctor --quick
按浏览器提示完成授权后回到终端。插件复用这份账号连接;不需要把网站密码、PAI Token 或 DeepSeek API Key 发给模型。DeepSeek 模型本身仍由你现有的 Harness 配置决定,本插件不替换模型、不改账号预算。
纯本地已有字排印不需要云账号。 本地生成论文PDF需要Tectonic或XeLaTeX;gwz_latex_setup 会检查并逐项报告,不会因为加载了技能就虚报就绪。缺编译器时需先安装/配置路径。只有离线造新字或缺PDF检查器时,才需要可选的工作文件夹Python环境;不改变全局Python。
2. 将插件安装进你使用的 profile
例如你使用网页版的 web profile:
dsh plugin --profile web add github:Open-Glyph/OpenGlyph-DeepSeek-Harness#v0.2.1
dsh web
使用其他profile时换成实际名称;桌面版通常是 desktop,不是 web。Git安装直接使用仓库内的ESM,不需要构建脚本或prepare。预编译的排印字体与离线构字源随包分发,不包含DINO/YOLO权重或检索图库原图。更严格的固定方式是把版本标签换成审查过的commit SHA。
安装前后都不会自动修改网站、PAI 配置或原有的三个通用 skills。本插件可以与通用 skills 共存;原来的 IDS/structure 造字方法仍保留,优先使用能导出 LaTeX 项目的可编辑模板方案。
3. 选择工作文件夹
在 Harness 中选择一个专门的本地工作文件夹,把准备处理的 PDF 或图片复制进去。默认只允许上传这个工作文件夹里的文件;这样不会因为模型生成一个路径就把其他位置的文件发往服务端。PDF 页码指物理页码,不是书中印刷页码。
使用:以下文字发到 DeepSeek 对话框,不是终端
第一次先说:
/openglyph 先自检,告诉我哪些能力可用、缺什么。
装好并启用、满足自检先决条件后,选 /openglyph 再用自然语言描述任务即可。 不需要用户分别手工输入各个工具命令。工具在插件启用后就已注册;斜线技能负责把完整操作流程加载给模型。它不等于自动完成首次CLI授权或凭空安装TeX引擎。旧 /openglyph-paleography 继续兼容。
识别并排印一页:
/openglyph 请处理工作文件夹中
清华简.pdf的物理第32页,用专用工具查形、造字,最后用我们的LaTeX包排成论文PDF,并给源码项目。不要用相近常用字替换,保留原图证据和待人工核定意见,不处理其他页。
单个新字:
/openglyph 请把
待造字.png做成可排印候选字,再与普通汉字混排成PDF。请给字体、映射、源码和比较意见,不要只贴图片。
模型通常会依次使用:
本地文件 → gwz_open → 指定页原图 → gwz_glyph_detect
→ gwz_glyph_template_search → gwz_glyph_template_inspect
→ gwz_glyph_compose → gwz_glyph_verify → gwz_deliver
这是按需选择的工作流,不是每个普通摘要都强制跑完所有工具。已有可用原生字体或匹配字形可直接复用。原型字的图形重现与学术隶定是两件事;服务并不承诺自动正确释读所有古文字。
已有字和新字的真正LaTeX排印
gwz_latex_setup → gwz_latex_prepare → 编辑main.tex → gwz_latex_compile → PDF
↑ gwz_latex_lookup查已有编号
↑ gwz_latex_inspect → JSON → gwz_latex_build生成新字库
↑ 也可导入远端造字交付的LaTeX字体ZIP
示例:
\documentclass[UTF8,fontset=fandol]{ctexart}
\usepackage{openglyph}
\OpenGlyphLoad{ebag}
\begin{document}
这个现成字直接排进正文:\ebag{s030-067}。
\end{document}
新字库再 \OpenGlyphLoad{myglyphs},正文用 \gwglyph{my:n1}。编号与别名必须来自实际查询/编译结果,不是猜出来的Unicode。要PDF就必须实际调用compile,不把“写了tex”或“下载了ZIP”说成已经完成论文排版。
图像、结果与人工验收
候选图、原页、部件图和字体预览会下载后注册到 Harness 的持久附件服务,作为真实图像内容块送给模型,而不是只返回本地路径或把 base64 塞进文字上下文。图片和候选分批展示,并标记后续偏移;gwz_evidence 可继续查看,完整结果保存在 full_json。
模型路线须支持图像输入,Harness 也须启用附件服务。如果宿主/模型拒绝图像,插件会保留 image_failures 与完整记录;这时不能声称“已经看过”。插件不会凭接口包装给不支持看图的模型增加视觉能力。
中间证据和可恢复任务记录在 work/openglyph/,解压的公共资源及可选独立Python环境在 work/openglyph-runtime/。本地论文的源码、字体和PDF在prepare指定的项目目录,通常为 outputs/论文/;编译不会覆盖已有PDF,会保留旧版并返回本次实际PDF路径。最终优先给主PDF和源码目录,不把work内的中间字图全部当成果。
远端单字/批量字体交付则用 gwz_deliver 整理到 outputs/古文字排印/<名称>/:
排印字体.otf / 排印字体.ttf
字形码位映射.json / 可复制文字.txt
嵌入字体示例.docx / OpenGlyph-LaTeX排印包.zip
可编辑造字项目.json(服务提供时)
排印与核对说明.txt
这些是可排印候选稿。ready 只表示字体生成成功;几何比较、字形核定、学术释读分别报告。人工没有确认,插件不会伪造确认记录。PUA 码位仅属于随附字体,必须保留字体与映射,不能当作正式 Unicode 身份。
任务中断与恢复
接受任务后先保存 job_id 与本地凭据,再等待结果。停止本地等待不会自动取消远端任务,不会因为网络问题盲目重新 POST。同一个已知任务可让模型使用:
用 gwz_resume 恢复任务
j……,不要重新上传或重新提交。
插件不新增页数、字数、上传体积、迭代次数、总处理时长或金额限制。预览分页只是上下文展示方式,完整记录不裁掉。实际模型/宿主的附件能力、CLI 连接和服务端账号权限仍以各自配置为准。
高级配置
正常情况下无需配置。确有需要时,在相应 profile 的 cordis.patch.yml 中覆盖插件行,例如(覆盖会替换整个 config,请保留自己需要的字段):
- id: openglyph
config:
cli: /absolute/path/to/guwenzi-tools
profile: default
evidenceDirectory: work/openglyph
deliverableDirectory: outputs/古文字排印
imagePageSize: 4
resultPageSize: 32
cancelGraceMs: 3000
latexEngine: auto
tectonic: /absolute/path/to/tectonic
python: python3
node: node
allowTexDownloads: true
cli 是已安装 CLI 的可执行文件,不是 shell 命令。workspaceRoot 可显式固定工作根目录;默认采用当前会话工作目录。additionalInputRoots 可由用户设置额外允许上传的物理文件夹。默认不会读取它们。
imagePageSize / resultPageSize 只控制一次展示多少条,后续可继续取。cancelGraceMs 仅供主动取消后的子进程清理,不是工具执行时限。不要把密钥写进插件 YAML。
本地构字/编译通过宿主shell执行,继承其文件沙箱,不在遇到拒绝时改用无沙箱执行。Tectonic使用untrusted模式,XeLaTeX禁用shell-escape;编译器可以按配置下载正常TeX资源,不会新建云资源或调用付费LLM。
开发与验证
npm ci --ignore-scripts
npm test
npm run check
npm run pack:check
测试使用真正的Cordis/DSH工具流水线,并验证实际 /openglyph pre-step会注入完整技能。远端CLI边界用模拟器;本地另用真实Tectonic、真实OTF与高层JSON编译器测试普通汉字/已有字/新字混排、字体嵌入、旧PDF保留和未知编号失败。CI没有TeX引擎时明确跳过实编分支,本机验收单独记录。可设 GWZ_TEST_PYTHON、GWZ_TEST_TECTONIC 指向有构字依赖的测试解释器和引擎。没有付费DeepSeek/Kimi实测,不能据此宣称真实模型识字准确率的数值提升。
自有插件代码采用MIT;随包GlyphWiki字形数据、GPL KAGE源和第三方依赖保留各自许可,见 第三方说明。服务器模型/图库和费用仍由服务管理,不随插件重新授权。网站:openglyph.cn;排印库:OpenGlyph-LaTeX。
No comments yet. Be the first to write one.