把内部工具封装成 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 拆的和他用界面拆的格式不一样」,协作时就是事故。

实践案例

ExcelRouter 就是这个思路的一个实现:桌面版和 AI 技能版共用同一套内核,拆出来的结果行为一致。技能是开源的(MIT),源码可直接查阅。

当然,不用 AI 工具也有完整的桌面版,用不用 AI 不影响功能。

总结

  1. 让 AI 干活的关键是「给它工具」,而不只是给它数据
  2. 把做法固定、周期性重复的流程封装成技能,装一次长期复用
  3. SKILL.md 的 description 要覆盖用户的真实说法,这是触发的关键
  4. 双入口(界面 + AI)必须共用同一套内核,保证结果一致
  5. 明确边界:只适合确定性、可重复的动作

案例中的技能和桌面版都在这个仓库(开源 MIT):

GitHub:https://github.com/MarsandSea/ExcelRouter

国内镜像:https://gitee.com/Marsandsea/Excelrouter

文中提到的工具:ExcelRouter

把一个或一整批 Excel 按部门、区域、工号等字段拆成多个文件,完整保留复杂表头与格式, 可再按人二级拆分并打包 ZIP。Windows + 银河麒麟 / 统信 UOS,免费开源(MIT), 全程本机处理,不联网、不上传。

下载(国内 · Gitee) GitHub 源码 ⭐