Nutrient 文档处理技能
一个通用 Agent Skill,让任意编程智能体完成 PDF 生成、转换、OCR、涂黑、签名、归档与优化,无需为每个智能体单独适配。
证据显示极佳的最小权限与确认设计:每脚本内置付费运行确认门(--confirm-external-processing 与信用估算)、密钥仅经环境变量且永不打印、密码仅从 chmod 600 文件读取、AI 涂黑为两阶段暂存且不可逆应用需单独批准、输出原子写入且拒绝覆盖、CI 中令牌仅写入 600 权限临时文件。扣分点:外部传输行为依赖代理正确执行说明而非硬性技术强制,远程 URL 输入存在 SSRF 类风险仅靠提示约束,无独立沙箱隔离。
离线契约测试覆盖页码范围解析、三种输出形态写入、覆盖拒绝、秘密文件权限、逐次确认门、--help 无密钥可运行、缺确认时在访问密钥/网络前阻断,且 CI(validate.yml 与发布工作流)会执行这些测试,满足静态上调条件。扣分点:真实 API 调用路径(DWS 3.1.0 客户端行为、错误反馈质量)无法静态验证,依赖 nutrient-dws==3.1.0 的可用性与正确性。
产品路由表清晰区分 Processor / Data Extraction / Accessibility,触发描述明确列出适用与不适用范围,设置与运行环境说明完整。扣分点:核心功能完全依赖 Nutrient DWS 海外付费 API(api.nutrient.io),对中国大陆网络可达性存疑且需注册付费密钥,未提供中文支持说明。
分层信息架构(SKILL.md 路由 + 模块化 references)、MIT-0 许可证、版本 2.0.0、发布工作流含变更日志与来源提交固定、人工发布门。扣分点:发布者未经验证、维护责任与更新路径仅隐含于仓库结构,references 中大量文档未在本评估范围内展示,测试指南为人工流程而非自动化验证。
技能覆盖文档处理核心场景,pinned 类型化客户端降低手写载荷出错成本,安全输出写入器与确认门提供直接可用产物。扣分点:静态评估无法验证真实输出正确性与完整性,价值依赖付费 API(成本/收益比取决于使用量),README 中的营销性演示不可独立核实。
存在真实 CI 工作流加上覆盖关键路径的提交测试套件(含子进程级阻断测试、payload fixture 对照、不安全原始载荷缺失断言),超过纯声明证据。扣分点:静态读取不执行,测试仅覆盖离线契约与源码结构断言,API 真实行为与第三方交叉验证缺失,故不授予高分。
- 核心功能完全依赖海外付费 API(api.nutrient.io),中国大陆网络可达性未经验证,且需注册付费密钥并消耗信用额度
- 远程 URL 输入会让 Nutrient 服务端发起请求,需防范将内网地址作为输入;每次付费请求前务必人工核对传输文件与估算
- 所有安全规则(确认门、两阶段涂黑、密钥不外泄)依赖代理遵从说明执行,无技术强制沙箱;请在可信代理环境中使用
- 发布者未经验证;本评估为静态源码审查,未执行任何 API 调用,真实转换/签名/涂黑输出质量未经验证
这个 Skill 能做什么,适合哪些场景?
这是 Nutrient(前身为 PSPDFKit)官方发布的开源 Agent Skill,通过 Nutrient DWS 云端 API 为 40 多种 AI 编程智能体(Claude Code、Codex CLI、Gemini CLI、Cursor 等)提供文档处理能力。它内置一组单操作 Python 脚本和一个多步骤工作流模板,覆盖转换、合并拆分、OCR、文本与表格提取、涂黑、水印、数字签名、表单填写、PDF/A 与 PDF/UA 合规输出等场景。技能强调安全设计:付费调用前必须向用户展示操作与积分估算并获得确认,密钥只能通过环境变量传入,涂黑采用两阶段(先标注后应用)流程。需要 Nutrient 账号、Python 3.10+ 和 uv,且为付费云服务。
技能由 SKILL.md 指令、scripts/ 下的单操作 Python 脚本(使用 PEP 723 元数据锁定 nutrient-dws==3.1.0 客户端)和 assets/templates/custom-workflow-template.py 多步骤模板组成。运行时智能体读取本地文件或远程 URL,通过 NUTRIENT_API_KEY 调用 Nutrient DWS Processor API,执行:格式转换(PDF、PDF/A、PDF/UA、DOCX、XLSX、PPTX、PNG、JPEG、WebP、HTML、Markdown)、页面合并/拆分/添加/删除/复制/旋转、OCR 与文本/表格/键值对提取、文本水印、优化压缩、AI 辅助涂黑(先暂存标注再单独确认应用)、CMS/CAdES 数字签名、密码保护(密码仅从 chmod 600 的本地文件读取)。所有输出文件以原子方式写入、仅所有者可读,且拒绝覆盖已有路径。
- 法务/合规人员需要向外部共享含 PII 的 PDF:让智能体用 redact-ai.py 暂存涂黑标注,逐项人工核对后再单独确认不可逆应用
- 开发者需要把 Office 文档批量转为 PDF:用 convert.py 将 DOCX/XLSX/PPTX 转为 PDF 或 PDF/A 归档格式
- 处理扫描件的用户:先 ocr.py 生成可搜索 PDF,再 extract-text.py 提取文本
- HR/行政流程:智能体按 Instant JSON 或 XFDF 数据填写员工入职表单 PDF,再用 sign.py 施加 CMS 数字签名
- 需要精确控制多步流水线(如先填表、涂黑、优化再签名)的高级用户:复制 custom-workflow-template.py 到临时路径定制执行
- 需要网页快速加载的发布者:用 optimize.py 线性化 PDF 以优化 Web 交付
这个 Skill 有哪些优点和局限?
- 兼容 40+ 种 Agent Skills 标准智能体,一份安装多处可用
- 功能覆盖面广:转换、OCR、涂黑、签名、合规输出、表单填写一站搞定
- 安全设计认真:密钥隔离、付费前确认门、两阶段涂黑、原子写入且不覆盖
- 依赖锁定(nutrient-dws==3.1.0)+ 类型化客户端,减少 API 漂移风险
- MIT-0 许可,附模块化参考文档和自定义工作流模板
- 依赖付费的 Nutrient DWS 云 API,文件需上传到第三方,每次运行消耗积分且定价未在仓库中说明
- 必须配置 NUTRIENT_API_KEY 并安装 uv/Python 3.10+,有环境门槛
- 仓库级 License 在 GitHub 元数据中标记为 unknown(SKILL.md 与 LICENSE.txt 为 MIT-0),企业合规审查时需注意
- 签名输出的信任链和 PDF/A、PDF/UA 合规性均需用户自行用独立验证器确认
- 仓库提供的是手动测试指南而非自动化测试套件
如何安装这个 Skill?
推荐方式:npx skills add PSPDFKit-labs/nutrient-agent-skill,可加 -a claude-code -a codex -a cursor 指定智能体,或 -g 全局安装。手动方式:git clone https://github.com/PSPDFKit-labs/nutrient-agent-skill.git,再把 nutrient-document-processing/ 文件夹复制到对应智能体的技能目录(如 Claude Code 为 ~/.claude/skills/,Cursor 为 ~/.cursor/skills/)。前置条件:Python 3.10+、安装 uv(https://docs.astral.sh/uv/)、在 https://dashboard.nutrient.io/sign_up/?product=processor 注册获取 API 密钥,并通过环境变量或密钥管理器配置 NUTRIENT_API_KEY(切勿粘贴到聊天或命令参数中)。
如何使用这个 Skill?
安装后直接用自然语言触发,例如:"Extract the text from invoice.pdf"、"OCR scanned-contract.pdf in English and extract the text"、"Digitally sign contract.pdf"。智能体每次付费调用前会展示操作、传输的文件和积分估算并等待确认,然后以 uv run 执行对应脚本,需同时传 --estimated-credits 和 --confirm-external-processing 标志;确认不跨重试或批量复用。页码范围从零开始且包含端点(0:4 为五页)。多步骤任务需按 SKILL.md 说明把模板复制到任务专用临时路径后定制运行。注意:具体的积分定价标准未在仓库中列出,需自行在 Nutrient 控制台查询。
这个 Skill 与同类方案有什么区别?
对于同类的文档处理需求,替代路径包括直接使用 Nutrient 官方的 @nutrient-sdk/dws-mcp-server(npm 上的 MCP 服务器形式)或自行调用 DWS REST API;本技能的优势在于免 MCP 配置、跨 40+ 智能体通用,并内置审批门与安全约束。