MarkItDown + CLI-Anything + HTML-Anything 三个开源工具,恰好覆盖了一个完整 Agent 工作流的三个环节:输入、操作、输出。
作为一名 AI 工具开发者和教育者,我经常被问到同一个问题:
"Agent 到底能帮我做什么?"
答案不在抽象的"AI 能写代码"里,而在具体的工具链中。最近我内化了三个开源项目,它们恰好覆盖了一个完整工作流的三个环节:
- MarkItDown(微软,123k★)—— 把任何文件变成 Markdown,给 Agent 读
- CLI-Anything(港大 HKUDS)—— 让任何软件变成 Agent 可用的 CLI
- HTML-Anything(nexu-io,open-design 团队)—— 让 Agent 生成精美 HTML,给人类读
这三个工具合在一起,构成了一条 Agent 原生工作流:
原始文件 → MarkItDown 提取 → LLM 处理 → HTML-Anything 生成 → 精美文档
↓
CLI-Anything 自动化
后续软件操作
让我逐一介绍。
1. MarkItDown:文件 → Markdown(给 AI 读)
项目地址:github.com/microsoft/markitdown
MarkItDown 是微软 AutoGen 团队开发的轻量级 Python 工具,能将各种文件转换为 Markdown:
markitdown document.pdf > output.md
支持格式
| 格式 | 说明 |
|---|---|
| PDF / Word / PPT / Excel | 办公文档全覆盖,保留标题、列表、表格结构 |
| 图片 | EXIF 元数据 + OCR(可用 LLM Vision 增强) |
| 音频 | EXIF + 语音转写(WAV/MP3) |
| HTML / CSV / JSON / XML | 格式识别 |
| ZIP | 自动遍历内部文件 |
| YouTube URL | 视频字幕提取 |
| EPub | 电子书内容提取 |
我的使用场景
- 课程资料处理:课程 PDF → Markdown → 存入 Obsidian 知识库
- 合同/报告分析:PDF → Markdown → AI 分析总结
- YouTube 学习笔记:视频字幕 → Markdown → 整理为笔记
- 批量文件提取:一堆文件放 ZIP 里,自动遍历转换
高级用法:LLM Vision OCR
from markitdown import MarkItDown
from openai import OpenAI
client = OpenAI()
md = MarkItDown(llm_client=client, llm_model="gpt-4o")
result = md.convert("document_with_images.pdf")
print(result.text_content)
PDF 中的图片会被 LLM 视觉模型描述为文字,直接嵌入 Markdown 输出。
安全提醒
MarkItDown 以当前进程权限执行 I/O,类似 open()。不要传入不可信输入,只处理本地文件时用 convert_local()。
2. CLI-Anything:软件 → CLI(让 Agent 控制)
项目地址:github.com/HKUDS/CLI-Anything
核心理念:今天的软件为人服务,明天的用户将是 Agent。
任何软件(GUI 应用、Web 服务、API)都有 AI Agent 难以直接使用的问题。CLI-Anything 通过 7 阶段自动化流水线,将软件源码分析后生成结构化 CLI:
- 🔍 分析 → 扫描源码,映射 GUI 操作到 API
- 📐 设计 → 设计命令分组、状态模型、输出格式
- 🔨 实现 → 构建 Click CLI,含 REPL + JSON 输出
- 📋 测试规划 → 创建单元 + E2E 测试计划
- 🧪 编写测试 → 实现全面测试套件
- 📝 文档 → 记录测试结果
- 📦 发布 → 创建 setup.py,安装到 PATH
已支持的软件(35+)
| 领域 | 示例 |
|---|---|
| 创意工具 | GIMP, Blender, Inkscape, Kdenlive, Shotcut, Audacity, OBS |
| 办公 | LibreOffice, Zotero, MuseScore |
| AI/ML | ComfyUI, Ollama, UniMol Tools, Exa |
| 开发 | Godot, s&box, LLDB, Nsight Graphics |
| 可视化 | Draw.io, FreeCAD, QGIS |
| 企业 | Zoom, n8n, Mailchimp, AdGuard Home |
我的使用场景
- 自动化工作流:把 LibreOffice 变成 Agent 可用的 CLI,批量生成文档
- GUI 替代:比截图+点击更可靠,纯命令行操作 GIMP/Blender
- 工具生态:通过 CLI-Hub 让 Agent 自主发现并安装合适的软件
设计原则
- 真实软件集成 — 调用真正的 Blender/FFmpeg,不是玩具实现
- 统一 REPL — 所有 CLI 共享交互式界面(ReplSkin)
- JSON 输出 — 每条命令支持
--json,Agent 原生消费
3. HTML-Anything:内容 → HTML(给人类读)
项目地址:github.com/nexu-io/html-anything
核心理念:Markdown 是草稿,HTML 才是人类阅读的最终形态。
这与 Karpathy 的观点(HTML 是 AI 输出的新默认格式)高度一致。在 Agent 时代,你不再手动编辑文档,所以输出格式应该是读者真正想看的——HTML。
核心能力
| 能力 | 说明 |
|---|---|
| 8 种编码 Agent | Claude Code / Cursor / Codex / Gemini / Copilot / OpenCode / Qwen / Aider |
| 75 个技能模板 | PPT / 海报 / 简历 / 公众号 / 小红书 / Web 原型 / 视频帧 |
| 零 API Key | 复用已有 Agent 登录会话,边际成本 $0 |
| 一键导出 | 微信公众号 / 知乎 / X / 小红书 / 下载 HTML/PNG |
| SSE 流式渲染 | 实时看到 HTML 生成过程,随时中断重生成 |
9 种交付形式
- 演讲稿(20 种风格)—— 瑞士国际、归藏编辑、小红书、产品发布会
- Web 原型(25 种)—— SaaS 落地页、仪表盘、定价页、手机原型
- 社交卡片(8 种)—— X/Twitter、小红书、Spotify、轮播图
- 视频帧(12 种)—— 液态流体、故障风标题、Logo 结尾
- 办公文档(10 种)—— PRD、运维手册、财务报告、OKR、周报
- 编辑文档 —— 羊皮纸风格、数据报告、实时仪表盘
我的使用场景
- AI 课程课件 —— 用
deck-course-module生成精美课件 PPT - 公众号文章排版 —— 告别手动调格式,Agent 生成即完美
- 小红书内容创作 —— 图文卡片批量生成
- 商业计划书 ——
deck-pitch生成投资人路演
反 AI 八股
每个技能模板硬编码约束,阻止模型生成千篇一律的 AI 味内容:
- CJK 优先字体栈(Noto Sans/Serif SC 中文,Inter 英文)
- 8px 基线网格
- 圆角 + 柔和阴影 + 禁止纯黑/纯白
- 颜色对比度 ≥ 4.5
- 必须使用真实数据,禁止 lorem ipsum
三工具联动:完整工作流演示
场景一:课程资料处理
课程 PDF 文件
↓
[MarkItDown] → 提取为 Markdown
↓
[LLM 分析] → 总结、翻译、生成课件大纲
↓
[HTML-Anything] → 生成课程 PPT(deck-course-module)
↓
[aliyun-deploy] → 部署到 agentstash.me
场景二:公众号文章
原始素材(Word/PDF/笔记)
↓
[MarkItDown] → 提取为 Markdown
↓
[LLM 改写] → 调整语气、结构、配图建议
↓
[HTML-Anything] → 公众号排版(juice 内联 CSS)
↓
[一键导出] → 粘贴到微信公众号编辑器
场景三:软件自动化
需要自动化的软件(如 LibreOffice)
↓
[CLI-Anything] → 生成 Agent 可用的 CLI
↓
[Agent 操作] → 批量生成文档/处理数据
↓
[MarkItDown] → 提取处理结果为 Markdown
↓
[HTML-Anything] → 生成数据报告 HTML
为什么是这三个工具?
它们恰好覆盖了一个完整的信息处理循环:
| 工具 | 方向 | 受众 | 解决什么问题 |
|---|---|---|---|
| MarkItDown | 文件 → 文本 | AI Agent | 提取文件内容,让 Agent 能读 |
| CLI-Anything | 软件 → CLI | AI Agent | 让 Agent 能操作专业软件 |
| HTML-Anything | 内容 → 文档 | 人类读者 | 让 Agent 的输出人类能看懂 |
MarkItDown 解决"输入"问题,CLI-Anything 解决"操作"问题,HTML-Anything 解决"输出"问题。三者合在一起,就是一条完整的 Agent 原生工作流。
总结
这三个项目的共同特点是:
- 开源免费 —— MIT / Apache 2.0 协议
- Agent 原生 —— 不是为了人类设计的,而是为 Agent 设计的
- 零锁定 —— 不依赖特定平台,可以本地运行
- 社区活跃 —— 持续迭代,每天都有新贡献
作为一名 AI 工具开发者,我相信:未来的工作不是"人用 AI",而是"人指挥 Agent,Agent 调用工具"。这三个工具,就是这条链路的基础设施。