把内部工具封装成 AI 可调用的技能:一次让 AI 真干活的实践
大部分人对 AI 的使用停在前两步
- 第一步:问问题
- 第二步:写文案
这两步的共同点是只在「生成」环节打转——AI 拿不到你的文件,也执行不了任何操作。
要让它真正干活,需要第三步:给它工具。
思路:把确定性流程封装成技能
判断标准很简单:一件事如果你每周都要做,而且做法固定,那它就该被做成工具。
把这样的流程封装成一个「技能」(Skill),AI 在需要时自己加载、自己调用。以表格批量拆分为例,一次操作的完整链路是:
用户:把这个文件夹里几个月的明细,按区域拆开,每个区域里再按姓名拆到每个人
↓
AI:识别意图 → 匹配到拆分技能 → 读取技能说明 → 构造参数 → 调用脚本
↓
脚本:读取本地文件 → 按一级字段分组 → 组内按二级字段拆到人 → 输出 + 打包
↓
AI:汇报结果(生成了哪些文件、放在哪)
全程不需要用户写代码,也不需要打开 Excel。
技能包的最小结构
excelrouter/
├── SKILL.md # 元信息 + 使用说明,AI 靠它判断何时加载、怎么调用
└── scripts/
└── er_split.py # 实际执行脚本
SKILL.md 的 frontmatter 需要提供足够的触发线索:
---
name: excelrouter
description: 表格拆分与批量分发技能。当用户想拆分 Excel、按部门/区域/姓名拆成多个文件时使用。
---
关键点:description 里要写清用户会怎么描述这件事(拆表、拆分、按部门、一人一份、按网格拆),因为 AI 是拿这些词做匹配的。触发词写得太窄,就会出现「用户说了但 AI 没反应过来」。
和「让 AI 写完代码再粘过去跑」的区别
| 维度 | 技能(Skill) | 每次贴代码 |
|---|---|---|
| 上下文 | AI 知道何时该用、参数怎么填 | 每次都要重新描述一遍 |
| 复用性 | 装一次,长期可用 | 每次复制粘贴 |
| 一致性 | 参数和流程固定,结果稳定 | 每次生成的代码都可能不同 |
| 心智负担 | 说人话即可 | 要检查代码、改路径、装依赖 |
打个比方:前者相当于装了个 App,后者是每次现场抄一段代码。
这种方式的边界(要说清楚)
- 适合:明确的、重复的、做法固定的动作
- 不适合:一次性的、需要大量判断的事
- 前提:动作本身是确定性的,有清楚的输入和输出规范
一个容易被忽略的设计点:保持双入口一致
同一套内核,同时提供图形界面和技能接口:
- 普通同事用图形界面(免安装、零命令行)
- 用 AI 工具的人直接说人话
两者必须共用同一套核心代码,否则会出现「你用 AI 拆的和他用界面拆的格式不一样」,协作时就是事故。
实践案例
ExcelRouter 就是这个思路的一个实现:桌面版和 AI 技能版共用同一套内核,拆出来的结果行为一致。技能是开源的(MIT),源码可直接查阅。
当然,不用 AI 工具也有完整的桌面版,用不用 AI 不影响功能。
总结
- 让 AI 干活的关键是「给它工具」,而不只是给它数据
- 把做法固定、周期性重复的流程封装成技能,装一次长期复用
- SKILL.md 的 description 要覆盖用户的真实说法,这是触发的关键
- 双入口(界面 + AI)必须共用同一套内核,保证结果一致
- 明确边界:只适合确定性、可重复的动作
案例中的技能和桌面版都在这个仓库(开源 MIT):
文中提到的工具:ExcelRouter
把一个或一整批 Excel 按部门、区域、工号等字段拆成多个文件,完整保留复杂表头与格式, 可再按人二级拆分并打包 ZIP。Windows + 银河麒麟 / 统信 UOS,免费开源(MIT), 全程本机处理,不联网、不上传。
下载(国内 · Gitee) GitHub 源码 ⭐