让 AI Agent 像熟练办公人员一样操作 Office:理解任务与材料 → 选择场景方法 → 组合精细原子能力 → 质量验证 → 交付可直接使用的文件。
一个面向 AI Agent / Sandbox 的开源 Office 精细操作 Skill。不是模板生成器,而是「场景 SOP + 原子能力 + 质量闭环」三层能力体系,覆盖 Word / Excel / PowerPoint / PDF 的真实办公任务。
- 传统方案要么只有粗粒度“生成文件”,要么把业务场景写死成模板/固定 Workflow。
open-office-skill让 Agent 真正在已有文件上工作:读懂结构,做局部精细修改;从材料生成文档与演示;从数据得出结论;跨格式重构;并对最终交付负责(四级质量契约 + 精确返修)。
核心价值:精细、可控、可验证。 修改只动该动的地方,交付前用机器断言 + 真实渲染验收。
- 精细原子能力不缺失 —— 段落 / Run / 表格 / 单元格 / 公式 / Sheet / Shape / 图片 / 位置尺寸 / 图表 / PDF 页面均可精细操作。
- 支持插入 Word 批注 —— 不修改正文即可把评审意见挂到段落或具体词句(
docx/comment.py),是文档批改/评审的标准做法。 - 场景 SOP 来自真实案例 —— 去行业化、去模板化,只沉淀可复用的工作方法。
- 少量 SOP 覆盖大量场景 —— 优先
1 个主 SOP + 最少辅助 SOP + 原子能力,不按业务名称无限新增 Workflow。 - 局部修改优先(Minimal Change) —— 先定位再 Patch,不默认整份重建。
- 质量是独立阶段 —— Content / Data / Structure / Visual 四级契约,保存成功 ≠ 任务成功。
- Edit/Convert 可验保真 —— 用
compare_docs.py对比前后内容,防止误改。 - 离线优先 + 内置依赖包 —— 内置
wheels/any+wheels/amd64+wheels/arm64,适配各类沙箱 / 内网 / 无网环境,开箱即用。
一行命令直接从仓库下载打包好的 Skill(curl 直接从 GitHub 原始文件映射下载):
curl -fsSL -o open-office-skill.zip \
https://raw.githubusercontent.com/agentforge-tech/open-office-skill/master/skills/open-office-skill.zip
unzip open-office-skill.zip -d "<你的 Agent/Sandbox Skills 目录>"- 该 URL 直接映射仓库中的
skills/open-office-skill.zip(默认分支master),一行命令即可下载安装。 - 也可从仓库的
skills/open-office-skill.zip或 Releases 直接下载;该 zip 已纳入版本管理。
从源码一键打包(可选)
git clone https://github.com/agentforge-tech/open-office-skill.git
cd open-office-skill
python3 bin/package_skills.py --force # 产物:skills/open-office-skill.zipcd skills/open-office-skill
python3 auto/init.py
export PATH="$HOME/.local/bin:$PATH"
office-run scripts/common/smoke.py初始化器离线、多架构自适应,装好依赖并写入 $HOME/.local/bin 启动器。
# 精细修改(Word / Excel / PPT)
office-run scripts/docx/edit.py input.docx operations.json output.docx
office-run scripts/xlsx/edit.py input.xlsx operations.json output.xlsx
office-run scripts/pptx/edit.py input.pptx operations.json output.pptx
# 插入 Word 批注(不修改正文)
office-run scripts/docx/comment.py input.docx comments.json output.docx
office-run scripts/docx/comment.py output.docx --list
# 分析 / 审计 / 交付验证
office-run scripts/xlsx/analyze.py input.xlsx --output analysis.json
office-run scripts/pptx/audit.py output.pptx --safe-margin-ratio 0.02
office-run scripts/quality/verify.py output.pptx --no-blank --max-bottom 0.96| 类型 | 覆盖能力 |
|---|---|
| DOCX | 创建 · 深度检查(Run / 编号 / 分节 / 页眉页脚 / 表格)· 角色重映射 · 精细编辑 · 全局格式化 · 文本替换 · 插入批注 |
| XLSX | 创建 · 检查 · 通用分析画像 · 精细编辑(值/公式/区域/行列/合并/样式/冻结/筛选/图表)· 报表格式化 |
| PPTX | 原语创建(textbox / rect / image / table / chart)· 检查 · 精细编辑 · 字体规范化 · 结构布局审计 |
| 创建 · 检查 · 合并 · 拆分 · 水印 / 页码 | |
| 转换 / 渲染 | Pandoc 语义转换 · LibreOffice 保真转换(冲突安全)· PDF → PNG 渲染 · 渲染边界审计 |
| 质量 | 内容保真比较 · 布局一致性审计 · 渲染复核与缓存 · 交付验证 · 精确局部返修 |
按真实工作方法路由,而不是按扩展名。每个场景对应一个 SOP;「文件类型操作」与「跨类型应用场景」分层摆放。
| 你的意图 | 主 SOP | 常用辅助 SOP |
|---|---|---|
| 分析表格数据、发现规律、产出结论/报告 | scenario/数据分析与报告.md |
从材料创作文档 / 从分析制作演示 / 质量 |
| 清洗、规范、校验或整理工作簿 | xlsx/表格清洗与规范化.md |
质量 / 格式转换 |
| 从材料创建新的 Word 报告/方案/总结 | scenario/从材料创作文档.md |
多源材料整合 / 质量 |
| 润色、改版式、批注审阅已有 Word | docx/文档审阅与润色.md |
质量 |
| 从分析/报告/笔记/PDF 制作 PPT 汇报 | scenario/从分析制作演示.md |
多源材料整合 / 质量 |
| 重构叙事、局部美化已有 PPT | pptx/演示重构与美化.md |
质量 |
| 多个 Office/PDF/图片整合为一份交付物 | scenario/多源材料整合.md |
从材料创作文档 / 从分析制作演示 / 质量 |
| Office↔PDF、合并拆分、水印、最终交付 | pdf/格式转换与交付.md |
质量 |
| 任意正式交付的最终质量门 | _meta/质量检查与局部返修.md(辅助 SOP) |
— |
SOP 目录结构
references/sop/
├── docx/ xlsx/ pptx/ pdf/ # 文件类型:README.md(类型路由)+ 精细操作指南.md(核心操作)+ <场景>.md
├── scenario/ # 跨类型应用场景 SOP(为某个目的怎么组织工作)
└── _meta/ # 统一执行协议 / 质量 Gate / Skill 反馈
三层路由:SKILL.md → references/sop/README.md(总路由)→ 类型 README.md(再分「精细操作指南 / 场景 SOP」)或 scenario/ / _meta/。核心工具操作与场景工作流分文件维护,Agent 可逐层快速定位。
- 离线优先 ——
python3 auto/init.py无需联网即可装好依赖,适合沙箱 / 内网 / 无网 CI。 - 内置多架构 wheels —— 仓库自带
wheels/,无需外部源:wheels/any/—— 纯 Python 依赖(python-docx、python-pptx、openpyxl、XlsxWriter、pypdf、reportlab、typing_extensions、et_xmlfile);wheels/amd64/、wheels/arm64/—— 针对 x86_64 / aarch64(manylinux)的二进制依赖(lxml、Pillow、charset-normalizer)。
- 多架构自适应 —— 初始化器按当前架构与
requirements.txt哈希选择依赖并写入 ready 缓存;完整重验依赖用--force-check。 - 系统能力探测 ——
scripts/common/runtime_probe.py报告 LibreOffice / Pandoc / Poppler / qpdf / Tesseract 等系统工具能力与降级模式(只报告,不越界安装系统包)。
理解 → 组织 → 操作 → 验证 → 交付 # 面向人
Understand → Inspect → Classify → Plan → Execute → Validate → Deliver # 面向 Agent
六类 Task Model(路由语言,不是固定模板):Generate / Edit / Analyze / Transform / Convert / Workflow。
四条核心原则:Read Before Write · Minimal Change · Evidence First · Transform ≠ Convert。
组合流程
真实任务 → Task Model 分类 → 1 主 Scenario SOP + 最少辅助 SOP
→ Atomic Office Engine(DOCX / XLSX / PPTX / PDF / Convert)
→ Content / Data / Structure / Visual 验证 → Local Repair → Deliver
正式交付按任务需要验证,闭环为 执行 → 验证 → 局部返修 → 验证 → 交付:
- Content —— 内容、事实、关键文本、名称、日期、结论;
- Data —— 数值、公式、汇总、单位、图表数据源与口径;
- Structure —— 文件内部结构、Sheet/Section/Slide/Page 与引用关系;
- Visual —— 真实渲染后的溢出、重叠、乱码、分页、可读性与图片变形。
跨文件任务维护统一 Shared Facts,让 Word/PPT/PDF 从同一事实层派生,避免数值/结论漂移。
open-office-skill/
├── README.md / README.en.md
├── CHANGELOG.md / CHANGELOG.zh-CN.md
├── VERSION # 0.1.6
├── githooks/ # pre-commit / pre-push:自动打包 Skill zip
├── bin/package_skills.py # 打包脚本 → skills/open-office-skill.zip
├── docs/ # 研究 / 设计 / 版本 / 迭代记录(仅仓库级)
└── skills/open-office-skill/ # Agent 运行时 Skill(不含迭代记录)
├── SKILL.md # 总入口与路由表
├── auto/ scripts/ examples/ test/ wheels/
└── references/sop/ # docx/ xlsx/ pptx/ pdf/ + scenario/ + _meta/
仓库内置 githooks/:commit / push 时自动把 skills/open-office-skill 打包到 skills/open-office-skill.zip。启用一次即可:
git config core.hooksPath githookspre-commit:打包并把skills/open-office-skill.zip加入本次提交;pre-push:推送前校验 zip 是否为最新,过期则拒绝推送(先提交再 push)。
也可随时手动打包:
python3 bin/package_skills.py --force # 默认输出 skills/open-office-skill.zip
python3 bin/package_skills.py --output-dir <目录> --force- 仓库:github.com/agentforge-tech/open-office-skill
- 问题反馈 / 建议:GitHub Issues
- English README:README.en.md
- 能力详情:references/capabilities.md
- 打包与发布:references/packaging-release.md
- 场景路由(运行时):skills/open-office-skill/references/sop/README.md
MIT License。第三方依赖保持各自上游许可证,详见 Skill 内 THIRD_PARTY_NOTICES.md。