M2.7 开启了模型的自我进化。在专业办公领域,它对 Excel/PPT/Word 的复杂编辑能力有了显著提升。
但真正用过 Agent 处理文档的人都知道:最难的不是写不出来,是写出来不能用。
公式存完变成了死数字。模板编辑一轮后格式全乱了。数据透视表保存之后悄悄丢了。文件能打开,但没办法作为最终交付产出。
MiniMax 踩过这个坑,然后把解法开源了。
为什么"能跑"的文档"不能用"
Openpyxl 是 Python 社区最常见的 Excel 处理方案,但它有一个工程上很难接受的缺陷:文件读入再写回之后,某些高级内容会被静默丢弃。数据透视表、迷你图、VBA 宏——没了,但没有报错,没有提示。对于"读取→编辑→回写"这个最常见的真实使用场景,这种静默失败是致命的。
python-docx 面临类似问题。复杂表格嵌套、多级目录、页眉页脚控制、修订追踪——有些功能不支持,有些功能支持但生成出来的文档结构容易出错。
问题不在于生成,在于底层链路的可控性。
四个 Skill,四种不同的底层选择
docx:选 .NET OpenXML SDK,而不是 python-docx
.NET OpenXML SDK 是微软官方维护的底层库,对 ECMA-376(Word 文件格式的官方标准)实现最完整。选它意味着更高的部署成本——需要额外部署 .NET 运行环境——但换来的是对 Word 文档结构的完整控制。
文档质量比部署便利性更重要。
xlsx:直接操作 XML,绕开所有 Python Excel 库
.xlsx 文件本质上是一个压缩包,里面是一组 XML 文件。MiniMax 的做法:解压 → 只修改目标单元格对应的 XML 节点 → 重新打包。每次编辑只动需要动的地方,样式、图表、宏都原封不动保留。
另一个关键点:公式。MiniMax 要求每一个派生值都必须是真正的 Excel 公式,比如 SUM(B2:B9),这样用户打开文件后还能正常编辑和联动。
为此他们开发了 13 个独立的 Python 工具脚本,并写了一篇 34,000 字的金融格式化标准文档,对齐投行级别的数字格式要求。
pdf:封面和正文拆成两套渲染引擎
封面用 HTML + CSS 编写,通过 Playwright 渲染为 PDF。渐变、网格、混合模式、自定义字体——CSS 原生就支持,多数 PDF 绘图 API 做这些非常吃力。正文交给 ReportLab 排版,它在段落流控制、分页策略、页眉页脚方面更稳定可控。最后通过 merge 脚本把两部分合二为一。
拆成两套引擎,系统更复杂,但封面可以大胆做设计,正文仍然保持工程上的稳定。
pptx:先定义约束体系,再做生成
PPT 生成的难点不在于往 slide 上放内容,在于视觉风格的统一。字体大小、间距、配色、圆角弧度,任何一个地方不一致,整份演示文稿看起来都会很粗糙。
MiniMax 的做法:先定义约束体系,再去做生成。页面类型定义了 5 种标准类型,风格上设计了 4 套配方(Sharp、Soft、Rounded、Pill),每套配方定义了圆角半径、阴影参数、边框粗细、间距比例等一整套数值。切换配方,就能整体改变一份 PPT 的视觉调性。
自进化机制:Execute → Evaluate → Fix
一个 skill 如果不能在失败里持续学习,它很快就会停留在 demo 阶段。
MiniMax 没有把质量迭代完全交给人工 review,而是搭了一套固定的三阶段循环:
Execute → Evaluate → Fix
先执行一组真实用例 → 再根据规则检查输出是否达标 → 把失败样例沉淀成可修复的问题,进入下一轮迭代。
"达标"的定义不只是文件能打开。MiniMax 真正关心的是:结构是不是完整,公式还是不是公式,版式在读写之后有没有悄悄变形,模板约束有没有被破坏。
一个 xlsx 文件即使成功保存,如果数据透视表丢了、公式被写成了静态数字,在真实交付里都算失败。
只有底层链路足够可控,评测才可能对齐到真正有意义的质量指标,而不是停留在"程序没报错"这一层。
绕过 python-docx/openpyxl 直接操作底层 XML 是正确的工程判断——但代价是每个格式怪癖都变成了你的问题。Execute-Evaluate-Fix 循环很优雅,真正的难点在于定义什么算'通过'。