
🎭 开场白:AI终于能自己写PPT了,打工人的春天来了?
各位老铁们好啊!今天咱们来聊一个能让所有打工人热泪盈眶的话题——**AI终于能自己搞Office文档了**!
以前让AI帮你写个PPT?做梦!它要么给你吐一堆Markdown让你自己排版,要么生成个丑到爆的HTML。但现在,有了**OfficeCli**这个神器,再加上**Hermes Agent**(江湖人称"爱马仕Agent")这对黄金搭档,你的AI小弟终于能直接操控Word、Excel、PowerPoint了!
💡 **划重点**:OfficeCli号称是"世界上第一个也是最强的、专为AI Agent设计的Office套件"。不是给人类用的哦,是给AI用的!人类?人类只配在旁边喊"666"。
🤖 先认识一下两位主角
主角一:OfficeCli —— AI的Office瑞士军刀
OfficeCli是个什么玩意儿?简单说,它是一个**单文件的命令行工具**,能让AI Agent像操作自家后院一样操控Office文档。
**它有多牛?**
• 🚫 **不需要安装Office** —— 没错,你电脑上没装Office也能创建、编辑Word/Excel/PPT
• 📦 **单个二进制文件** —— 没有乱七八糟的依赖,下载就能用
• 🌍 **跨平台** —— macOS、Linux、Windows通吃
• 👁️ **自带渲染引擎** —— AI能"看到"自己创建的文档,不用盲猜
主角二:Hermes Agent —— 会自我进化的AI管家
Hermes Agent(爱马仕Agent)是Nous Research搞出来的开源AI Agent [GitHub](https://github.com/nousresearch/hermes-agent)。它跟普通AI最大的区别是:**它会学习、会记忆、会成长**!
**它的核心卖点:**
• 🧠 **持久记忆** —— 跨会话记住你的偏好和项目,不用每次重新解释上下文
• 📚 **自动技能创建** —— 解决难题后会自动写技能文档,下次再也不犯同样的错
• 🔌 **多平台网关** —— 支持Telegram、Discord、Slack、WhatsApp、Signal,甚至CLI
• ⏰ **定时自动化** —— 内置cron调度器,日报、备份、审计全自动
• 🤝 **并行子Agent** —— 可以派出多个分身同时干活
🚀 第一步:安装OfficeCli(比泡面还简单)
一键安装(推荐懒人使用)
bash
# macOS / Linux 用户 curl -fsSL https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.sh | bash # Windows PowerShell 用户 irm https://raw.githubusercontent.com/iOfficeAI/OfficeCLI/main/install.ps1 | iex
就这么一行命令,OfficeCli就装好了。什么?你说你网络不好?没关系,还可以手动下载:
手动下载(适合有洁癖的用户)
平台 | 下载文件 |
macOS Apple Silicon | officecli-mac-arm64 |
macOS Intel | officecli-mac-x64 |
Linux x64 | officecli-linux-x64 |
Linux ARM64 | officecli-linux-arm64 |
Windows x64 | officecli-win-x64.exe |
Windows ARM64 | officecli-win-arm64.exe |
下载后验证一下:
bash
officecli --version
看到版本号就说明成功了!然后执行:
bash
officecli install
这一步会把二进制文件复制到你的PATH,并且自动检测你电脑上装了哪些AI编码工具(Claude Code、Cursor、Windsurf、GitHub Copilot等等),然后给它们都装上officecli技能。
🎯 **小贴士**:如果你用的是Hermes Agent,它也会自动被检测到!不过咱们后面还有更骚的操作。
🎨 第二步:让Hermes Agent学会OfficeCli
方法一:自动安装(最省事)
如果你已经装好了OfficeCli,直接运行:
bash
officecli install
它会自动扫描你电脑上的AI工具,如果发现Hermes Agent,就会把技能文件安装进去。
方法二:手动喂技能(更可控)
Hermes Agent支持技能系统,我们可以直接把OfficeCli的SKILL.md喂给它:
bash
# 下载SKILL.md curl -fsSL https://officecli.ai/SKILL.md -o ~/.hermes/skills/officecli.md
或者更简单,直接在Hermes Agent的对话里粘贴:
code
curl -fsSL https://officecli.ai/SKILL.md
Hermes Agent会自动读取这个技能文件,学会怎么使用OfficeCli的所有命令。
💬 **吐槽**:这就像给新员工一本《OfficeCli从入门到精通》,然后说"你自己看吧,我不管了"。
方法三:MCP服务器集成(最优雅)
OfficeCli还内置了MCP服务器,可以让AI工具通过JSON-RPC直接调用:
bash
# 注册MCP服务器 officecli mcp list# 查看注册状态
Hermes Agent支持MCP工具集成,这样就能更优雅地调用OfficeCli的功能了。
🎬 第三步:实战演练!让Hermes Agent帮你做PPT
现在重头戏来了!打开你的Hermes Agent,直接跟它说:
*"帮我做一个Q4季度汇报的PPT,要有数据图表,风格要商务一点"*
然后你就会看到Hermes Agent开始疯狂输出OfficeCli命令:
1. 创建空白PPT
bash
officecli create report.pptx
2. 添加幻灯片和内容
bash
# 添加第一页,标题是"Q4业绩汇报" officecli add report.pptx / --type slide --prop title="Q4业绩汇报" --prop background=1A1A2E # 在幻灯片上添加文本框 officecli add report.pptx '/slide[1]' --type shape \ --prop text="营收增长25%" --prop x=2cm --prop y=5cm \ --prop font=Arial --prop size=24 --prop color=FFFFFF
3. 实时预览(超酷的功能!)
bash
# 启动实时预览,浏览器自动打开 officecli watch report.pptx
这会在http://localhost:26315打开一个实时预览页面,你每执行一次add、set、remove命令,浏览器里的PPT就会自动刷新!
🤯 **震撼**:这体验,比VSCode的热重载还爽!
4. 查看文档结构
bash
# 以大纲形式查看 officecli view report.pptx outline # → Slide 1: Q4业绩汇报 # →Shape 1 [TextBox]: 营收增长25% # 以HTML形式查看(生成独立HTML文件) officecli view report.pptx html # 截图(给多模态AI看的) officecli view report.pptx screenshot -o /tmp/report.png
5. 获取JSON结构(AI最爱)
bash
officecli get report.pptx '/slide[1]/shape[1]' --json
输出:
json
{ "tag": "shape", "path": "/slide[1]/shape[1]", "attributes": { "name": "TextBox 1", "text": "营收增长25%", "x": "720000", "y": "1800000" } }
💡 **为什么AI喜欢JSON?** 因为结构化数据好解析啊!不用正则表达式去抠stdout,干净利落。
🧠 进阶玩法:Hermes Agent的自我进化
Hermes Agent最骚的地方在于,它用完就忘?不存在的!
技能自动沉淀
当Hermes Agent用OfficeCli完成一个复杂的PPT后,它会自动把这次的经验写成技能文档。下次你再让它做PPT,它就知道:
• 用什么命令创建幻灯片
• 怎么设置字体和颜色
• 如何添加图表
越用越聪明,这就是Hermes Agent的"自我进化"能力!
持久记忆加持
Hermes Agent还有跨会话的持久记忆。你上周让它做的PPT风格,这周它还记得!
🎯 **场景**:你跟它说"按照上次的风格再做一份",它真的能记住上次的字体、颜色、布局!这记忆力,比我强多了。
🛠️ OfficeCli的三大架构层次
OfficeCli的设计哲学是:简单开始,需要时再深入。
层级 | 用途 | 命令 |
L1: 读取 | 内容的高级视图 | view(text、annotated、outline、stats、issues、html、svg、screenshot) |
L2: DOM | 结构化元素操作 | get、query、set、add、remove、move、swap |
L3: 原始XML | 直接XPath访问——万能后备 | raw、raw-set、add-part、validate |
L1:高层视图(适合快速查看)
bash
# 查看Word文档的注释版本 officecli view report.docx annotated # 查看Excel的文本内容 officecli view budget.xlsx text --cols A,B,C --max-lines 50
L2:元素级操作(日常使用最多)
bash
# 查询包含"TODO"的段落 officecli query report.docx "run:contains(TODO)" # 添加新的工作表 officecli add budget.xlsx / --type sheet --prop name="Q2 Report" # 移动段落 officecli move report.docx /body/p[5] --to /body --index 1
L3:原始XML(高级玩家专属)
bash
# 查看原始XML officecli raw deck.pptx '/slide[1]' # 直接修改XML officecli raw-set report.docx document \ --xpath "//w:p[1]" --action append \ --xml '
🎮 **类比**:L1就像自动挡,L2就像手动挡,L3就像直接改发动机。大部分时候L1+L2就够了,除非你是硬核玩家。
🔥 杀手级功能盘点
1. 内置渲染引擎(AI终于有眼睛了)
以前AI做PPT就像盲人画画——全靠猜。现在OfficeCli内置了渲染引擎,AI可以:
bash
# 生成HTML预览 officecli view deck.pptx html -o /tmp/deck.html # 生成PNG截图(给多模态AI看) officecli view deck.pptx screenshot -o /tmp/deck.png # 实时预览(浏览器自动刷新) officecli watch deck.pptx
👁️ **意义**:AI可以"看到"自己做的PPT,发现标题溢出了、两个形状重叠了,然后自己修复!这就是"渲染→观察→修复"的闭环!
2. 公式和数据透视表引擎(Excel玩家狂喜)
150+内置Excel函数,写入即计算!
bash
# 写入公式,直接获取计算结果 officecli add sales.xlsx '/Sheet1' --type cell --prop formula="=SUM(A1:A10)" officecli get sales.xlsx '/Sheet1/B1' # 值已经算好了,不用打开Excel重新计算! # 一行命令创建数据透视表 officecli add sales.xlsx '/Sheet1' --type pivottable \ --prop source='Data!A1:E10000' --prop rows='Region,Category' \ --prop cols=Quarter --prop values='Revenue:sum,Units:avg' \ --prop showDataAs=percentOfTotal
3. 模板合并(一次设计,批量生成)
bash
# 用模板批量生成发票 officecli merge invoice-template.docx out-001.docx '{"client":"Acme","total":"$5,200"}' officecli merge q4-template.pptx q4-acme.pptx data.json
💰 **场景**:你要给100个客户发报告?设计一次模板,然后批量填充,零token成本!
4. 往返Dump(从现有文档学习)
bash
# 把现有文档序列化为JSON officecli dump existing.docx -o blueprint.json # 只导出某个子树(比如第一个表格) officecli dump existing.docx /body/tbl[1] -o table.json # 用JSON重放创建新文档 officecli batch new.docx --input blueprint.json
🎓 **用法**:用户说"按照这个模板做100个变体",AI先dump学习结构,然后批量生成,完美!
⚡ 常驻模式 & 批量操作(性能拉满)
常驻模式(近零延迟)
bash
# 打开文档,保持在内存中 officecli open report.docx # 快速修改(不用每次都打开/保存) officecli set report.docx /body/p[1]/r[1] --prop bold=true officecli set report.docx /body/p[2]/r[1] --prop color=FF0000 # 关闭并保存 officecli close report.docx
批量模式(原子操作)
bash
# 一次性执行多个操作 echo '[{"command":"set","path":"/slide[1]/shape[1]","props":{"text":"Hello"}}, {"command":"set","path":"/slide[1]/shape[2]","props":{"fill":"FF0000"}}]' \ | officecli batch deck.pptx --json # 内联批量(不用stdin) officecli batch deck.pptx --commands '[{"op":"set","path":"/slide[1]/shape[1]","props":{"text":"Hi"}}]' # 遇到错误继续执行 officecli batch deck.pptx --input updates.json --force --json
🎯 完整实战:Hermes Agent的自愈工作流
来看一个典型的AI工作流:创建PPT → 填充内容 → 验证 → 修复问题,全程无需人类干预!
bash
# 1. 创建 officecli create report.pptx # 2. 添加内容 officecli add report.pptx / --type slide --prop title="Q4 Results" officecli add report.pptx '/slide[1]' --type shape \ --prop text="Revenue: $4.2M" --prop x=2cm --prop y=5cm --prop size=28 officecli add report.pptx / --type slide --prop title="Details" officecli add report.pptx '/slide[2]' --type shape \ --prop text="Growth driven by new markets" --prop x=2cm --prop y=5cm # 3. 验证 officecli view report.pptx outline officecli validate report.pptx # 4. 检查问题并修复 officecli view report.pptx issues --json # 根据输出修复问题,比如: officecli set report.pptx '/slide[1]/shape[1]' --prop font=Arial
🤖 **Hermes Agent的自愈能力**:如果命令出错,它会: - 看到结构化错误信息(包含错误代码、建议、有效值范围) - 自己检查可用元素 - 自动修正路径或参数 - 重试直到成功
bash
# Agent尝试无效路径 officecli get report.docx /body/p[99] --json # 返回:{"success": false, "error": {"error": "...", "code": "not_found", "suggestion": "..."}} # Agent自我修正,检查可用元素 officecli get report.docx /body --depth 1 --json # 获取可用子元素列表,选择正确路径
📊 单位和颜色(灵活到离谱)
🎨 **吐槽**:这兼容性,比我前女友的心思还难猜……哦不,是比我前女友的心思还好猜!
类型 | 支持的格式 | 示例 |
尺寸 | cm, in, pt, px, 或原始EMU | 2cm, 1in, 72pt, 96px, 914400 |
颜色 | 十六进制、命名、RGB、主题 | #FF0000, FF0000, red, rgb(255,0,0), accent1 |
字号 | 纯数字或pt后缀 | 14, 14pt, 10.5pt |
间距 | pt, cm, in, 或倍数 | 12pt, 0.5cm, 1.5x, 150% |
🧰 常用命令速查表
命令 | 说明 |
create | 创建空白 .docx, .xlsx, 或 .pptx |
view | 查看内容(模式:outline, text, annotated, stats, issues, html, svg, screenshot, pdf) |
get | 获取元素及子元素(--depth N, --json) |
query | CSS风格查询([attr=value], :contains(), :has()等) |
set | 修改元素属性 |
add | 添加元素(或用--from |
remove | 删除元素 |
move | 移动元素(--to |
swap | 交换两个元素 |
validate | 验证OpenXML规范 |
batch | 批量操作(stdin, --input, 或 --commands) |
dump | 序列化为可重放的batch JSON |
merge | 模板合并——用JSON数据替换{{key}}占位符 |
watch | 浏览器实时预览(自动刷新) |
mcp | 启动MCP服务器 |
raw | 查看文档部分的原始XML |
raw-set | 通过XPath修改原始XML |
open | 启动常驻模式(文档保持在内存) |
close | 保存并关闭常驻模式 |
install | 安装二进制文件 + 技能 + MCP |
config | 获取或设置配置 |
🐍 Python集成(程序员最爱)
python
import json, subprocess def cli(*args): return json.loads(subprocess.check_output(["officecli", *args, "--json"], text=True)) cli("create", "deck.pptx") cli("add", "deck.pptx", "/", "--type", "slide", "--prop", "title=Q4 Report") slide = cli("get", "deck.pptx", "/slide[1]") print(slide["attributes"]["text"])
💻 **场景**:把OfficeCli封装成Python函数,集成到你的自动化流水线里,CI/CD生成文档so easy!
🎓 内置帮助(不用背命令)
不知道属性名?直接问:
bash
officecli pptx set# 所有可设置的元素和属性 officecli pptx set shape# 某个元素类型的详情 officecli pptx set shape.fill# 某个属性:格式和示例 officecli docx query# 选择器参考:属性、:contains、:has()等
🤦 **吐槽**:这年头连CLI都有内置帮助了,我记性差终于有救了!
📝 配置说明
配置文件在`~/.officecli/config.json`:
bash
# 关闭自动更新 officecli config autoUpdate false # 单次跳过更新检查 OFFICECLI_SKIP_UPDATE=1 officecli view deck.pptx html
🏁 总结:为什么这套组合拳这么强?
OfficeCli的优势:
• ✅ **确定性JSON输出** —— 每个命令都支持--json,不用正则抠stdout
• ✅ **路径寻址** —— 每个元素都有稳定路径(/slide[1]/shape[2]),不用懂XML命名空间
• ✅ **渐进式复杂度** —— L1→L2→L3,按需深入
• ✅ **自愈工作流** —— 结构化错误+建议,AI能自我修正
• ✅ **内置渲染** —— AI能"看到"输出,CI/Docker/无头环境都能用
• ✅ **模板合并** —— 设计一次,批量填充,省token
• ✅ **自动安装** —— 检测AI工具,自动配置
Hermes Agent的加持:
• 🧠 **持久记忆** —— 记住你的偏好和项目上下文
• 📚 **技能沉淀** —— 用完就学,下次更快
• 🔌 **多平台** —— CLI、Telegram、Discord、Slack随你用
• ⏰ **定时任务** —— 自动生成日报、周报
• 🤝 **并行处理** —— 多个子Agent同时干活
🎯 **终极场景**:你在Telegram上跟Hermes Agent说"帮我做份Q4汇报PPT",它自动调用OfficeCli创建、填充、验证、修复,最后把成品发给你。全程你在外面喝咖啡,回来就收作业!
🔗 相关链接
📢 **最后说一句**:如果你觉得这篇文章有用,别忘了给OfficeCli和Hermes Agent点个Star!开源项目不容易,你的支持就是作者们继续肝代码的动力!
夜雨聆风