<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>AI工具 on KnightLi的博客</title>
        <link>https://www.knightli.com/categories/ai%E5%B7%A5%E5%85%B7/</link>
        <description>Recent content in AI工具 on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Sun, 05 Apr 2026 08:30:00 +0800</lastBuildDate><atom:link href="https://www.knightli.com/categories/ai%E5%B7%A5%E5%85%B7/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>谷歌 Gemma 4 模型对比：2B/4B/26B/31B 怎么选？</title>
        <link>https://www.knightli.com/2026/04/05/google-gemma-4-model-comparison/</link>
        <pubDate>Sun, 05 Apr 2026 08:30:00 +0800</pubDate>
        
        <guid>https://www.knightli.com/2026/04/05/google-gemma-4-model-comparison/</guid>
        <description>&lt;p&gt;Gemma 4 主打 &lt;code&gt;多模态&lt;/code&gt; 与 &lt;code&gt;本地离线运行&lt;/code&gt;，并提供从轻量端到高性能端的完整模型梯度。对大多数本地部署用户来说，关键不是“选最大”，而是“选最匹配硬件与任务的版本”。&lt;/p&gt;
&lt;h2 id=&#34;gemma-4-各模型对比&#34;&gt;Gemma 4 各模型对比
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;下表用于快速选型参考；具体性能与资源占用请以实际部署环境测试为准。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;模型&lt;/th&gt;
          &lt;th&gt;参数规模&lt;/th&gt;
          &lt;th&gt;定位&lt;/th&gt;
          &lt;th&gt;主要优势&lt;/th&gt;
          &lt;th&gt;主要限制&lt;/th&gt;
          &lt;th&gt;推荐场景&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Gemma 4 2B&lt;/td&gt;
          &lt;td&gt;20 亿&lt;/td&gt;
          &lt;td&gt;超轻量&lt;/td&gt;
          &lt;td&gt;延迟低、资源占用小、部署门槛最低&lt;/td&gt;
          &lt;td&gt;复杂推理与长链路任务能力有限&lt;/td&gt;
          &lt;td&gt;移动端、IoT、轻量问答、简单自动化&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Gemma 4 4B&lt;/td&gt;
          &lt;td&gt;40 亿&lt;/td&gt;
          &lt;td&gt;轻量增强&lt;/td&gt;
          &lt;td&gt;比 2B 更稳的理解与生成能力，仍易本地部署&lt;/td&gt;
          &lt;td&gt;高强度编码/复杂 Agent 任务上限有限&lt;/td&gt;
          &lt;td&gt;本地助手、基础文档处理、多语言日常任务&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Gemma 4 26B&lt;/td&gt;
          &lt;td&gt;260 亿&lt;/td&gt;
          &lt;td&gt;高性能（专家混合）&lt;/td&gt;
          &lt;td&gt;推理和工具调用能力明显提升，适合生产工作流&lt;/td&gt;
          &lt;td&gt;显存需求显著上升，硬件门槛更高&lt;/td&gt;
          &lt;td&gt;编程助手、复杂工作流、企业内部 Agent&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Gemma 4 31B&lt;/td&gt;
          &lt;td&gt;310 亿&lt;/td&gt;
          &lt;td&gt;高性能（稠密）&lt;/td&gt;
          &lt;td&gt;综合能力最强，复杂任务稳定性更好&lt;/td&gt;
          &lt;td&gt;资源消耗最高，部署与调优成本最大&lt;/td&gt;
          &lt;td&gt;高要求推理、复杂代码任务、重度自动化&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;怎么选按硬件和任务倒推&#34;&gt;怎么选：按硬件和任务倒推
&lt;/h2&gt;&lt;p&gt;如果你主要看“能不能跑、跑得顺不顺”，可以按下面选：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;8GB&lt;/code&gt; 显存：优先 &lt;code&gt;2B/4B&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;12GB&lt;/code&gt; 显存：优先 &lt;code&gt;4B&lt;/code&gt; 或更高模型的量化版本。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;24GB&lt;/code&gt; 显存：可重点考虑 &lt;code&gt;26B&lt;/code&gt;，并按任务评估 &lt;code&gt;31B&lt;/code&gt; 量化版。&lt;/li&gt;
&lt;li&gt;更高显存或多卡：可尝试 &lt;code&gt;31B&lt;/code&gt; 的高精度配置。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;建议优先保证稳定性和推理速度，再逐步提升模型规模。&lt;/p&gt;
&lt;h2 id=&#34;四类典型使用场景&#34;&gt;四类典型使用场景
&lt;/h2&gt;&lt;h3 id=&#34;1-本地通用助手&#34;&gt;1) 本地通用助手
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;优先模型：&lt;code&gt;4B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;原因：成本和效果平衡好，适合长期常驻运行。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-代码与自动化&#34;&gt;2) 代码与自动化
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;优先模型：&lt;code&gt;26B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;原因：在多步骤任务、工具调用、脚本生成上更稳。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-高难度推理与复杂-agent&#34;&gt;3) 高难度推理与复杂 Agent
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;优先模型：&lt;code&gt;31B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;原因：复杂上下文下的稳定性更高，容错更好。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;4-边缘设备与轻量离线&#34;&gt;4) 边缘设备与轻量离线
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;优先模型：&lt;code&gt;2B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;原因：最容易在资源受限设备落地。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;部署建议ollama-方向&#34;&gt;部署建议（Ollama 方向）
&lt;/h2&gt;&lt;p&gt;最实用的做法是“小步快跑”：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先用 &lt;code&gt;4B&lt;/code&gt; 建立可运行基线（速度、内存、效果）。&lt;/li&gt;
&lt;li&gt;把你的真实任务做成固定测试集（例如 20 条常见问题 + 10 个自动化任务）。&lt;/li&gt;
&lt;li&gt;再升级到 &lt;code&gt;26B/31B&lt;/code&gt; 对比准确率、时延和显存成本。&lt;/li&gt;
&lt;li&gt;只在“收益明显”时升级大模型。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这样可以避免一上来就追求大参数，结果出现卡顿、吞吐低、维护复杂的问题。&lt;/p&gt;
&lt;h2 id=&#34;结论&#34;&gt;结论
&lt;/h2&gt;&lt;p&gt;Gemma 4 的真正价值，不是单纯“参数更大”，而是给了从轻量到高性能的一整套可落地梯度：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;想低成本快速上线：从 &lt;code&gt;2B/4B&lt;/code&gt; 开始。&lt;/li&gt;
&lt;li&gt;想把本地 AI 真正接入生产流程：优先 &lt;code&gt;26B&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;想冲复杂推理与重度自动化：再上 &lt;code&gt;31B&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Gemma 4 的最佳选择通常不是参数最大，而是与硬件条件和任务目标匹配度最高的版本。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>分析 Anthropic 的 Agent Skill docx 功能、代码组成、使用方法与注意事项</title>
        <link>https://www.knightli.com/2026/04/04/analyze-docx-agent-skill/</link>
        <pubDate>Sat, 04 Apr 2026 11:00:00 +0800</pubDate>
        
        <guid>https://www.knightli.com/2026/04/04/analyze-docx-agent-skill/</guid>
        <description>&lt;p&gt;Anthropic 的 &lt;code&gt;skills/docx&lt;/code&gt; 本质上是一套“让 AI 更稳地处理 Word 文档”的工作规范与脚本工具集。&lt;br&gt;
它不是单纯告诉模型“去写一个 &lt;code&gt;.docx&lt;/code&gt;”，而是把 Word 文档处理拆成几条明确路径：新建文档、读取内容、编辑已有文档、处理修订、添加评论、转换格式、校验 OOXML 结构。&lt;/p&gt;
&lt;p&gt;如果只看一句话，可以把它理解为：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;让 agent 不再把 &lt;code&gt;.docx&lt;/code&gt; 当黑盒，而是把它当成 ZIP + XML + Office 兼容性问题来处理。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;这个-skill-解决什么问题&#34;&gt;这个 skill 解决什么问题
&lt;/h2&gt;&lt;p&gt;普通文本生成模型在处理 Word 文档时，常见问题有几类：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;只会输出文本，不会真正生成结构正确的 &lt;code&gt;.docx&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;修改现有文档时容易破坏 OOXML 结构&lt;/li&gt;
&lt;li&gt;遇到批注、修订、评论线程时，不知道该改哪几个 XML&lt;/li&gt;
&lt;li&gt;能生成文档，但在 Word、LibreOffice、Google Docs 之间兼容性不稳定&lt;/li&gt;
&lt;li&gt;不清楚什么时候该用 &lt;code&gt;pandoc&lt;/code&gt;，什么时候该直接解包改 XML&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;code&gt;docx&lt;/code&gt; skill 的价值就在这里。它把“该怎么做”提前约束好了：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;读内容时，优先用 &lt;code&gt;pandoc&lt;/code&gt; 或解包&lt;/li&gt;
&lt;li&gt;新建 &lt;code&gt;.docx&lt;/code&gt; 时，优先用 &lt;code&gt;docx-js&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;编辑现有 &lt;code&gt;.docx&lt;/code&gt; 时，优先走“解包 -&amp;gt; 修改 XML -&amp;gt; 重新打包 -&amp;gt; 校验”&lt;/li&gt;
&lt;li&gt;处理接受修订、评论、schema 校验这些细节时，用配套脚本而不是让模型硬编&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这套思路非常实用，因为 Word 文档问题往往不是“文字写得对不对”，而是“文件结构是否还能被 Office 正常接受”。&lt;/p&gt;
&lt;h2 id=&#34;目录和代码组成&#34;&gt;目录和代码组成
&lt;/h2&gt;&lt;p&gt;这个 skill 大致可以分成四层。&lt;/p&gt;
&lt;h3 id=&#34;1-说明层skillmd&#34;&gt;1. 说明层：&lt;code&gt;SKILL.md&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;SKILL.md&lt;/code&gt; 是整个 skill 的入口，主要做两件事：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;定义触发条件&lt;br&gt;
只要用户需求涉及 Word、&lt;code&gt;.docx&lt;/code&gt;、评论、修订、目录、页码、模板、格式化文档等内容，就应该启用这个 skill。&lt;/li&gt;
&lt;li&gt;规定工作路径&lt;br&gt;
它明确写出不同任务该走哪条技术路线，而不是每次临场发挥。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;从内容看，它既是“使用说明”，也是“操作规范”。&lt;br&gt;
尤其有价值的是里面列出的很多 Word 兼容性规则，比如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;docx-js&lt;/code&gt; 默认是 A4，不是 US Letter&lt;/li&gt;
&lt;li&gt;横向页面时宽高参数要按它的内部逻辑传&lt;/li&gt;
&lt;li&gt;列表不能手工插入 Unicode bullet&lt;/li&gt;
&lt;li&gt;表格宽度要同时设置 table 和 cell&lt;/li&gt;
&lt;li&gt;图片插入时 &lt;code&gt;type&lt;/code&gt; 不能省&lt;/li&gt;
&lt;li&gt;生成后要做 &lt;code&gt;validate&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这说明作者不是只想“能生成”，而是想要“生成后能稳定打开、稳定渲染、稳定兼容”。&lt;/p&gt;
&lt;h2 id=&#34;2-office-包操作层scriptsoffice&#34;&gt;2. Office 包操作层：&lt;code&gt;scripts/office/*&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;这一层负责把 &lt;code&gt;.docx/.pptx/.xlsx&lt;/code&gt; 当成 Office Open XML 包来处理。&lt;/p&gt;
&lt;h3 id=&#34;unpackpy&#34;&gt;&lt;code&gt;unpack.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;作用是把 Office 文件解包到目录中，并做几件辅助工作：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;解压 ZIP 包&lt;/li&gt;
&lt;li&gt;对 XML / &lt;code&gt;.rels&lt;/code&gt; 做 pretty print&lt;/li&gt;
&lt;li&gt;对 &lt;code&gt;.docx&lt;/code&gt; 可选执行 &lt;code&gt;merge_runs&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;对 &lt;code&gt;.docx&lt;/code&gt; 可选执行 &lt;code&gt;simplify_redlines&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;把智能引号转成 XML 实体，降低后续处理风险&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它的设计重点不是“简单解压”，而是把文件整理成适合 agent 和人类继续编辑的状态。&lt;/p&gt;
&lt;h3 id=&#34;packpy&#34;&gt;&lt;code&gt;pack.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;作用是把修改后的目录重新打包成 &lt;code&gt;.docx/.pptx/.xlsx&lt;/code&gt;。&lt;br&gt;
打包前还会做两件重要的事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;可选运行校验与自动修复&lt;/li&gt;
&lt;li&gt;把 XML 重新压缩整理，去掉无意义空白和注释&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果提供 &lt;code&gt;--original&lt;/code&gt;，它会结合 validator 做比对，这一点很关键。&lt;br&gt;
因为很多 Word 修改不是“能压回去就算成功”，而是要确认文档结构和追踪修订语义都还成立。&lt;/p&gt;
&lt;h3 id=&#34;validatepy&#34;&gt;&lt;code&gt;validate.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;这是整个 skill 的质量闸门。&lt;br&gt;
它支持校验：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;XML 是否良构&lt;/li&gt;
&lt;li&gt;namespace 是否正确&lt;/li&gt;
&lt;li&gt;各类 ID 是否唯一&lt;/li&gt;
&lt;li&gt;relationship / content type 是否匹配&lt;/li&gt;
&lt;li&gt;是否符合 XSD schema&lt;/li&gt;
&lt;li&gt;空白保留规则是否正确&lt;/li&gt;
&lt;li&gt;插入、删除、评论标记是否合法&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对 &lt;code&gt;.docx&lt;/code&gt; 来说，这一步几乎是核心能力。&lt;br&gt;
很多看起来“只改了一点 XML”的文档，真正问题都出在这里。&lt;/p&gt;
&lt;h3 id=&#34;sofficepy&#34;&gt;&lt;code&gt;soffice.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;这是一个很有工程味道的小工具。&lt;br&gt;
它不是简单调用 LibreOffice，而是为受限环境准备了兼容处理，自动设置 &lt;code&gt;SAL_USE_VCLPLUGIN=svp&lt;/code&gt;，在必要时还会构造 shim 解决 AF_UNIX socket 受限的问题。&lt;/p&gt;
&lt;p&gt;这说明 skill 的目标环境并不只是“本地桌面手工操作”，而是考虑了 agent、CI、沙箱等自动化环境。&lt;/p&gt;
&lt;h2 id=&#34;3-word-专项能力层评论修订与-redline&#34;&gt;3. Word 专项能力层：评论、修订与 redline
&lt;/h2&gt;&lt;h3 id=&#34;commentpy&#34;&gt;&lt;code&gt;comment.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;这个脚本负责给 DOCX 添加评论。&lt;br&gt;
它做的事情比“写一段 comment XML”复杂得多，因为 Word 评论不是单文件机制，而是一组部件协同：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;word/comments.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commentsExtended.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commentsIds.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commentsExtensible.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;document.xml&lt;/code&gt; 中的 comment range marker&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[Content_Types].xml&lt;/code&gt; 与 &lt;code&gt;document.xml.rels&lt;/code&gt; 中的关系声明&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;脚本里已经把这些依赖关系考虑进去了。&lt;br&gt;
如果是第一次添加评论，它会自动补齐模板文件、relationship 和 content types，这能显著降低手工改 OOXML 时的出错率。&lt;/p&gt;
&lt;h3 id=&#34;accept_changespy&#34;&gt;&lt;code&gt;accept_changes.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;这个脚本的目标非常明确：接受所有修订。&lt;br&gt;
实现方式不是自己硬改 XML，而是通过 LibreOffice headless + Basic macro 调 &lt;code&gt;.uno:AcceptAllTrackedChanges&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;这个选择很稳妥，因为“接受修订”在 Word 语义里并不只是删掉 &lt;code&gt;&amp;lt;w:ins&amp;gt;&lt;/code&gt; / &lt;code&gt;&amp;lt;w:del&amp;gt;&lt;/code&gt; 那么简单，直接改 XML 很容易留下边角问题。&lt;br&gt;
借助 Office 引擎自身完成这一步，兼容性通常更好。&lt;/p&gt;
&lt;h3 id=&#34;validatorsredliningpy&#34;&gt;&lt;code&gt;validators/redlining.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;这是 skill 里我觉得最值得注意的一部分。&lt;br&gt;
它会把“某个作者的修订”从原始文档和修改后文档中分别剥离，再比较正文文本是否一致，用来判断修订是否被正确地包裹在 tracked changes 结构里。&lt;/p&gt;
&lt;p&gt;换句话说，它不只是检查 XML 格式，而是在检查“你是不是按修订语义编辑了文档”。&lt;/p&gt;
&lt;p&gt;这对 agent 特别重要，因为 AI 很容易做出这种错误：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;直接改正文，但没有包进 &lt;code&gt;&amp;lt;w:ins&amp;gt;&lt;/code&gt; / &lt;code&gt;&amp;lt;w:del&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;在别人的插入或删除结构里改坏层级&lt;/li&gt;
&lt;li&gt;让最终文本变了，但 redline 逻辑不成立&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这个 validator 就是在挡这种“表面可用、语义错误”的问题。&lt;/p&gt;
&lt;h2 id=&#34;4-schema-与辅助层schemashelperstemplates&#34;&gt;4. Schema 与辅助层：&lt;code&gt;schemas/&lt;/code&gt;、&lt;code&gt;helpers/&lt;/code&gt;、&lt;code&gt;templates/&lt;/code&gt;
&lt;/h2&gt;&lt;h3 id=&#34;schemas&#34;&gt;&lt;code&gt;schemas/&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;这里放的是一整套 OOXML / ECMA / Microsoft 扩展相关的 XSD。&lt;br&gt;
这意味着 skill 的校验不是拍脑袋写规则，而是尽量基于正式 schema 约束。&lt;/p&gt;
&lt;h3 id=&#34;helpers&#34;&gt;&lt;code&gt;helpers/&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;这里主要是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;merge_runs.py&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;simplify_redlines.py&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;作用是把解包后的 Word XML 做适度清理，让结构更稳定、更容易编辑和比较。&lt;/p&gt;
&lt;h3 id=&#34;templates&#34;&gt;&lt;code&gt;templates/&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;这里存放评论功能依赖的 XML 模板，如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;comments.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commentsExtended.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commentsIds.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;commentsExtensible.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;people.xml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这类模板文件很重要，因为很多 Word 部件不是“缺了就自动补”，而是必须按 Office 能接受的格式预置。&lt;/p&gt;
&lt;h2 id=&#34;典型使用方法&#34;&gt;典型使用方法
&lt;/h2&gt;&lt;p&gt;从 &lt;code&gt;SKILL.md&lt;/code&gt; 给出的建议来看，这个 skill 最适合下面几种工作流。&lt;/p&gt;
&lt;h2 id=&#34;场景一读取或分析现有-docx&#34;&gt;场景一：读取或分析现有 DOCX
&lt;/h2&gt;&lt;p&gt;如果目标是提取内容、阅读结构、转成 Markdown，优先用：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pandoc --track-changes&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;all document.docx -o output.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果要看底层 XML，则用：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/unpack.py document.docx unpacked/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;前者适合读内容，后者适合看结构。&lt;/p&gt;
&lt;h2 id=&#34;场景二新建-docx&#34;&gt;场景二：新建 DOCX
&lt;/h2&gt;&lt;p&gt;skill 的建议不是手搓 OOXML，而是用 &lt;code&gt;docx-js&lt;/code&gt; 生成：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;然后生成文档后再校验：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/validate.py doc.docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这条路线适合：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;报告&lt;/li&gt;
&lt;li&gt;memo&lt;/li&gt;
&lt;li&gt;letter&lt;/li&gt;
&lt;li&gt;有标题、目录、页脚、分页、表格的正式文档&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;场景三编辑已有-docx&#34;&gt;场景三：编辑已有 DOCX
&lt;/h2&gt;&lt;p&gt;这是整个 skill 最核心的工作流：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/unpack.py document.docx unpacked/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 修改 unpacked/ 下的 XML&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/pack.py unpacked/ output.docx --original document.docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这里的关键不是“修改 XML”，而是最后那步 &lt;code&gt;--original&lt;/code&gt;。&lt;br&gt;
它让系统能在回包时做 schema 和 redline 层面的验证，而不是盲目打包。&lt;/p&gt;
&lt;h2 id=&#34;场景四接受所有修订&#34;&gt;场景四：接受所有修订
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/accept_changes.py input.docx output.docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这一步依赖 LibreOffice。&lt;br&gt;
适合用于把已审阅文档整理成“干净版本”。&lt;/p&gt;
&lt;h2 id=&#34;场景五添加评论&#34;&gt;场景五：添加评论
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python comment.py unpacked/ &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Comment text&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python comment.py unpacked/ &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Reply text&amp;#34;&lt;/span&gt; --parent &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这里要特别注意：脚本只是把评论内容和必要的评论部件加进去，实际还需要按注释说明，在 &lt;code&gt;document.xml&lt;/code&gt; 中加上 comment range marker，才能把评论真正挂到对应文本范围上。&lt;/p&gt;
&lt;h2 id=&#34;这个-skill-最值得注意的几个坑&#34;&gt;这个 skill 最值得注意的几个坑
&lt;/h2&gt;&lt;p&gt;如果只是快速浏览 &lt;code&gt;SKILL.md&lt;/code&gt;，很容易低估其中“兼容性规则”的价值。&lt;br&gt;
下面这些点尤其值得记住。&lt;/p&gt;
&lt;h3 id=&#34;1-docx-不是文本文件而是-office-包&#34;&gt;1. &lt;code&gt;.docx&lt;/code&gt; 不是文本文件，而是 Office 包
&lt;/h3&gt;&lt;p&gt;最危险的误区就是把它当成“一个带格式的文本文件”。&lt;br&gt;
实际上你改的可能同时涉及：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;正文 XML&lt;/li&gt;
&lt;li&gt;relationships&lt;/li&gt;
&lt;li&gt;content types&lt;/li&gt;
&lt;li&gt;comments / people / ids&lt;/li&gt;
&lt;li&gt;schema 约束&lt;/li&gt;
&lt;li&gt;修订语义&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以这个 skill 才会强调“解包 - 编辑 - 校验 - 回包”。&lt;/p&gt;
&lt;h3 id=&#34;2-docx-js-能生成文档但不保证默认参数符合你的目标&#34;&gt;2. &lt;code&gt;docx-js&lt;/code&gt; 能生成文档，但不保证默认参数符合你的目标
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;SKILL.md&lt;/code&gt; 里强调了很多默认值陷阱，例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;默认纸张是 A4&lt;/li&gt;
&lt;li&gt;横向页面宽高处理有内部逻辑&lt;/li&gt;
&lt;li&gt;列表不能直接塞字符 bullet&lt;/li&gt;
&lt;li&gt;表格宽度要双重声明&lt;/li&gt;
&lt;li&gt;Google Docs 对百分比宽度兼容性差&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这说明生成工具只是起点，不是最终质量保证。&lt;/p&gt;
&lt;h3 id=&#34;3-评论和修订都不是单点修改&#34;&gt;3. 评论和修订都不是单点修改
&lt;/h3&gt;&lt;p&gt;无论是 comment 还是 tracked changes，都不是改一处 XML 就完事。&lt;br&gt;
你需要维护多个部件之间的一致性，这也是 skill 把这些动作脚本化的原因。&lt;/p&gt;
&lt;h3 id=&#34;4-能打开不等于改对了&#34;&gt;4. “能打开”不等于“改对了”
&lt;/h3&gt;&lt;p&gt;一个文档能被 Word 打开，不代表结构就是对的。&lt;br&gt;
很多错误只会在这些场景暴露：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;再次编辑时崩&lt;/li&gt;
&lt;li&gt;审阅模式异常&lt;/li&gt;
&lt;li&gt;批注丢失&lt;/li&gt;
&lt;li&gt;Google Docs 打开后布局错乱&lt;/li&gt;
&lt;li&gt;重新接受修订时报错&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因此 &lt;code&gt;validate.py&lt;/code&gt; 和 &lt;code&gt;pack.py --original&lt;/code&gt; 非常重要。&lt;/p&gt;
&lt;h3 id=&#34;5-依赖外部工具时要提前准备环境&#34;&gt;5. 依赖外部工具时要提前准备环境
&lt;/h3&gt;&lt;p&gt;这个 skill 依赖几类外部工具：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pandoc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LibreOffice / soffice&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docx-js&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Python 依赖，如 &lt;code&gt;defusedxml&lt;/code&gt;、&lt;code&gt;lxml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果环境里缺这些工具，agent 即使知道流程，也无法完整执行。&lt;/p&gt;
&lt;h2 id=&#34;这个-skill-适合什么不适合什么&#34;&gt;这个 skill 适合什么，不适合什么
&lt;/h2&gt;&lt;h3 id=&#34;适合&#34;&gt;适合
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;批量生成 Word 报告&lt;/li&gt;
&lt;li&gt;结构化生成正式文档&lt;/li&gt;
&lt;li&gt;自动化修改 &lt;code&gt;.docx&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;保留或处理 tracked changes&lt;/li&gt;
&lt;li&gt;自动添加批注&lt;/li&gt;
&lt;li&gt;把 Word 文档纳入脚本或 agent 工作流&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;不太适合&#34;&gt;不太适合
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;单纯导出 PDF 的简单场景&lt;/li&gt;
&lt;li&gt;只需要纯文本内容，不关心 Word 格式&lt;/li&gt;
&lt;li&gt;完全依赖手工可视化编辑的工作方式&lt;/li&gt;
&lt;li&gt;希望零依赖、零环境准备就完成全部 Word 自动化&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;总结&#34;&gt;总结
&lt;/h2&gt;&lt;p&gt;Anthropic 的 &lt;code&gt;skills/docx&lt;/code&gt; 强项不在“会生成 Word”，而在“知道 Word 为什么容易出问题，并提前把问题拆开处理”。&lt;br&gt;
它把文档生成、底层 XML 编辑、修订语义、schema 校验、Office 兼容性这些原本很零散的知识，整理成了一条可执行的工作流。&lt;/p&gt;
&lt;p&gt;如果你只是偶尔导出一份简单文档，它可能显得有点重。&lt;br&gt;
但只要场景涉及现有 &lt;code&gt;.docx&lt;/code&gt; 修改、评论、修订、自动化批处理或兼容性要求，这套 skill 就很有价值，因为它补上的恰恰是 AI 最容易忽略、而 Office 文档最容易翻车的那部分细节。&lt;/p&gt;
&lt;p&gt;简单总结就是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;SKILL.md&lt;/code&gt; 负责告诉 agent 该走哪条路&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scripts/office/*&lt;/code&gt; 负责解包、回包、校验和 Office 兼容&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comment.py&lt;/code&gt; 与 &lt;code&gt;accept_changes.py&lt;/code&gt; 负责 Word 专项能力&lt;/li&gt;
&lt;li&gt;&lt;code&gt;schemas/&lt;/code&gt; 与 validators 负责把“看起来能用”提升到“结构上靠谱”&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;代码地址：&lt;a class=&#34;link&#34; href=&#34;https://github.com/anthropics/skills/tree/main/skills/docx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/anthropics/skills/tree/main/skills/docx&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
