HuanyuTan777/dsh-tool-pdf ↗★ 0
dsh-tool-pdf
Model-facing PDF tools for DeepSeek Harness: read metadata, extract text, and render pages for vision/OCR
AI Analysis
赋予 Agent 直接阅读和解析本地 PDF 的能力。适合需要 Agent 总结长篇 PDF 报告、提取特定页面文本或利用视觉模型分析 PDF 图表的用户。
Install
This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full README ↗
README
Read the full README ↗dsh-tool-pdf
给 DeepSeek Harness (DSH) 的 PDF 读取/解析工具插件(npm 包名 dsh-tool-pdf)。用纯 JS 的 pdf.js 实现,无原生编译依赖,装到任何 DSH 环境即可让 Agent 直接读本地 PDF。
提供的工具
| 工具 | 作用 | 输出 |
|---|---|---|
pdf_info | 页数、文档元数据(标题/作者/关键词/日期)、每页字符数 | JSON |
pdf_extract | 提取全文/指定页文本,可选按页分隔、字符上限 | 纯文本 |
pdf_render | 渲染页面为 PNG(供视觉模型看图/OCR 扫描件) | JSON(图片路径列表) |
给用户:安装
# 1. 安装包到某个 Profile
dsh plugin --profile
add dsh-tool-pdf
# 2. 在某个 agent preset 的 agent.cordis.yml 里加一行插件
# (本地 preset 位于 ${DSH_HOME:-~/.dsh}/.agent-presets//agent.cordis.yml)
agent.cordis.yml 中的行:
- id: tool-pdf
name: 'dsh-tool-pdf'
然后启动(或重启)该 preset 的会话,模型即可调用 pdf_info / pdf_extract / pdf_render。
pdf_render依赖可选的@napi-rs/canvas(有预编译二进制,通常随npm install自动装好)。 若环境装不了,pdf_info/pdf_extract仍可用——它们是纯 JS 的。
给开发者:发布到 GitHub + npm
-
改
package.json:name→ 已设为dsh-tool-pdf(如需 scope 可改为@你的名字/dsh-tool-pdf)repository.url→ 已指向https://github.com/HuanyuTan777/dsh-tool-pdf.git
-
本地验证:
npm install node test/smoke.mjs # 应打印 SMOKE OK -
推 GitHub,然后发布:
npm publish -
之后任何人都能
dsh plugin --profile add dsh-tool-pdf安装。
架构说明
DSH 的每个能力都是 Cordis 插件,工具插件导出四个键:
export const name = "tool-pdf"; // 插件名
export const inject = ["tools"]; // 硬依赖(工具注册表)
export function apply(ctx) { // 用 ctx.tools.register(defineTool({...})) 注册工具
// ...
}
defineTool 来自 @deepseek-ai/dsh-tools,是 DSH 官方工具包(@deepseek-ai/dsh-tool-goal、dsh-tool-bash 等都用它)。本插件只声明 @deepseek-ai/cordis 和 @deepseek-ai/dsh-tools 为 peer 依赖,由 DSH 宿主提供。
- 纯 PDF 逻辑在
lib/pdf.js(不依赖 DSH 类型,可独立测试) - 工具注册在
lib/index.js
目录
dsh-tool-pdf/
├── package.json
├── lib/
│ ├── index.js # 插件入口:注册三个工具
│ ├── index.d.ts # 类型声明
│ └── pdf.js # pdf.js 封装:info / extract / render
└── test/
└── smoke.mjs # 冒烟测试:挂载插件 + 跑三个工具