DeepTutor DOCX 文档技能
让 AI 助手直接读取、创建和编辑 Microsoft Word 文档,从内容提取到带修订痕迹的合同级编辑一站完成。
技能为纯本地文档操作,依赖沙箱 shell 与预装 python-docx,无网络请求、无凭证访问、默认写新文件而非覆盖("write a new output unless the user explicitly requested an authorized replacement"),LibreOffice 调用也限定相对路径并要求清理中间文件,最小权限与数据流披露良好;扣分点:对替换/删除原文档等敏感操作缺少强制的显式确认流程,回滚仅依赖用户保留原文件,来源归属未在技能文件内声明。
指令自洽、分两层(python-docx / 原始 OOXML),内置保存后重开与 testzip 校验、常见陷阱(run 拆分、xml:space、pPr 顺序)有明确说明,失败路径有降级提示(soffice 缺失时明确报告);扣分点:静态审查未执行任何关键路径,仓库测试未覆盖该技能的关键路径,多数代码片段(如 tracked changes、页码字段注入)无复现证据,错误处理多依赖调用方注意。
description 明确适用 .docx 且排除 PDF/xlsx/pptx/Google Docs,触发条件清晰,正文声明非适用边界与降级行为;扣分点:文档为英文、无中文支持说明;核心前提是沙箱预装 python-docx(及可选 LibreOffice),若环境不符会直接不可用,环境适配证据有限;对损坏/加密 .docx 等异常输入的行为未声明。
结构分层良好(默认/高级两层渐进披露),命名稳定,示例与陷阱提示充分,许可证 Apache-2.0 明确,仓库有版本发布与维护活动(README、CI 发布流程);扣分点:SKILL.md 本身无版本号/变更记录,安装与依赖说明假设预装环境,无 FAQ 与已知限制清单(如大型文档性能),技能级维护责任人未指明。
目标(读写/创建/修订 .docx)明确,示例代码质量高且直接可改写使用,相比手工操作有明确边际价值;扣分点:静态审查无法验证输出正确性,tracked changes、注释、TOC 等高级路径复杂且自述"fiddly"需人工验证,直接可用性证据不足。
主要证据为可审计的源码与依赖声明(pyproject 确认 python-docx 为运行时依赖,与技能声明一致),仓库有 CI 与发布流程;扣分点:无针对该技能的提交测试覆盖或第三方执行证据,技能声明与实际行为的一致性无法独立复现,证据类型单一。
- 静态审查,未执行任何代码;技能关键路径(tracked changes、页码/目录字段、LibreOffice 转换)均未经实际复现验证。
- 技能依赖沙箱预装 python-docx,可选功能依赖 LibreOffice;若环境缺失,需依赖运行时降级提示而非事先保证。
- 高级 OOXML 编辑路径自述易错,产出文件建议在 Word 中人工打开验证;对原文档的修改默认写新文件,覆盖操作需用户显式授权。
- 发布者未经 FollowSkills 企业注册表验证,身份未知;技能文件本身无版本号与变更记录,升级行为以仓库发布为准。
- 文档为英文,无中文说明;不符合环境前提(沙箱+预装依赖)时技能基本不可用。
这个 Skill 能做什么,适合哪些场景?
这是 DeepTutor 仓库内置办公技能之一的 docx 技能,通过让模型编写并执行 Python 脚本来处理 Word 文件。默认层使用预装的 python-docx 库完成创建、读取和简单编辑;高级层直接操作 OOXML(ZIP 内的 XML 部件),支持修订痕迹(redlines)、批注和逐字节保真的精确编辑。技能内含大量防坑细节,如列表必须用真实样式、xml:space 保留空格、元素顺序要求等,并强制要求交付前验证文件可重新打开。它仅面向 .docx,明确不支持 PDF、Excel、PowerPoint 或 Google Docs。
读取并提取 .docx 中的段落、表格、页眉页脚文本及样式;创建含标题、多级标题、真实列表样式、表格、图片、页码字段和可点击目录的报告/信函/备忘录;做保留格式的查找替换;编辑页边距、页面尺寸、页眉页脚;解析并写入 w:ins/w:del 修订痕迹和 comments.xml 批注;可选调用 LibreOffice 完成 .doc 转 .docx 和 PDF 导出;每次保存后立即用 Document() 重开和 zipfile.testzip() 验证文件完整性。
- 需要批量生成带标题、表格和图表的周报或季度报告的知识工作者
- 处理合同或法律文本、需要留下修订痕迹和批注供他人审阅的编辑人员
- 收到模板文档、需要替换 {{CLIENT}} 类占位符且不破坏原格式的运营人员
- 需要从大量 Word 文件中提取表格和正文数据做后续分析的用户
- 持有旧版 .doc 文件、需要批量转换为 .docx 或导出 PDF 的档案管理者(需本机装有 LibreOffice)
这个 Skill 有哪些优点和局限?
- 双层设计务实:日常用 python-docx,仅修订痕迹/批注/保真编辑才降级到裸 OOXML
- 内置大量真实踩坑经验:跨 run 的占位符替换、w:ins/w:del 规范、xml:space、w:id 唯一性、pPr 元素顺序
- 强制交付前验证(重开文件、testzip、lxml 解析),降低静默损坏风险
- 对 LibreOffice 缺失有明确的优雅降级策略,不在任务中途安装依赖
- PDF 导出和 .doc 转换依赖可选且常缺失的 LibreOffice
- python-docx 无法读取页码/目录字段,需手工注入 XML,目录在 Word 刷新前显示为占位提示
- 跨 run 占位符替换会丢失后续 run 的格式,仅适合纯文本占位符
- 裸 OOXML 编辑路径较脆弱,技能本身也承认需要人工在 Word 中验证输出
- 来源材料中缺少独立测试套件或跨平台验证证据
如何安装这个 Skill?
该技能随 DeepTutor 仓库内置,位于 deeptutor/skills/builtin/docx/SKILL.md,无需单独安装。DeepTutor 支持 PyPI 安装(pip install -U deeptutor)、源码安装、Docker(ghcr.io/hkuds/deeptutor:latest)和 CLI-only 四种方式。技能依赖的 exec 沙箱默认在所有部署形态中启用;若需 .doc 转换或 PDF 导出,需本机装有 LibreOffice(soffice)。仓库未提供该技能脱离 DeepTutor 环境的独立安装说明。
如何使用这个 Skill?
在 DeepTutor 对话中让模型处理 Word 文件即可触发,例如:'把这份报告的季度数据更新后生成新的 docx' 或 '在这份合同中把 30 天改为 60 天并留下修订记录'。技能要求 shell 沙箱;模型会编写完整 Python 脚本,在同一次 exec 调用中完成创建、保存、重开验证。编辑时默认写入新输出文件,除非用户明确授权替换。若 soffice 不可用,技能会明确降级并提示。
这个 Skill 与同类方案有什么区别?
与直接让模型输出文档内容相比,本技能产出真正的 .docx 文件且支持修订痕迹和批注;其定位与 DeepTutor 内置的 pdf/pptx/xlsx 兄弟技能互补,各自处理不同格式,本技能明确不覆盖这些格式。