AI Agent Skills 体系认知:执行层完整性与 Skill 存在价值
一、两个核心 Skill 的能力边界
Universal Agent ------ 万能瑞士军刀
架构: LLM(大脑)+ 命令执行器(四肢)
LLM 理解用户意图,动态生成 shell 命令或 Python 脚本,执行器负责运行、捕获输出、自动纠错重试。
能力范围:
- Shell 命令(文件操作、进程管理、系统管理)
- Python 脚本(数据处理、爬虫、机器学习、图像处理)
- 任意 CLI 工具(git、docker、ffmpeg、aws......)
- 任意 HTTP API 调用
- 硬件控制(通过串口/GPIO/网络控制的物理设备)
核心特征: 能做一切可以用代码表达的事。命令执行器能运行 Python → Python 能做任何事 → Agent 能做任何事。
代价: 每次需要现生成代码。相当于一把万能瑞士军刀,但每次用之前得现磨刀。
System Controller ------ 专用工具箱
架构: 6 个预制模块,每个有独立脚本,开箱即用。
| 模块 | 能力 |
|---|---|
| 窗口管理 | 打开/关闭/最小化/最大化/调整窗口、发送按键 |
| 进程管理 | 查看/启动/结束进程、系统状态 |
| 硬件控制 | 音量、亮度、锁屏、睡眠、关机、WiFi、USB |
| 串口通信 | Arduino/ESP32 通信、监听串口数据 |
| IoT 控制 | Home Assistant、智能家居、HTTP API |
| GUI 自动化 | 鼠标点击/拖拽、键盘输入、截图、OCR、图像识别 |
核心特征: 拿来就用,一条命令完事。Windows 系统 API 深度集成。
代价: 只有这 6 种工具,不能动态扩展能力。相当于一盒专用工具,种类有限但每种都好用。
两者对比
| Universal Agent | System Controller | |
|---|---|---|
| 动态生成代码执行 | ✅ 核心能力 | ❌ 不支持 |
| Windows GUI 控制 | ⚠️ 需写 pyautogui 脚本 | ✅ 窗口管理 + 鼠标键盘 |
| 硬件控制 | ⚠️ 需写脚本 | ✅ 开箱即用 |
| 串口/Arduino | ⚠️ 需写 pyserial | ✅ 专用模块 |
| 智能家居/IoT | ⚠️ 需写 HTTP 请求 | ✅ Home Assistant 集成 |
| 截图/OCR/图像识别 | ❌ 无 | ✅ 专用模块 |
| 文件/数据处理 | ✅ Python 脚本 | ⚠️ 不专精 |
| 自动纠错重试 | ✅ 内置(最多 2 次) | ❌ 无 |
一个能做一切但需要现生成,一个能做大部分直接就能用。
二、互补关系:零重叠
对比表格的每一行都是互补的------Universal Agent 打 ✅ 的地方 System Controller 打 ❌,反过来也一样。没有一行是两者都能干或都干不了的。
这不是巧合,而是由两者的本质决定的:一个靠代码灵活性取胜,一个靠系统集成深度取胜。两条赛道天然不交叉。
能力零重叠,合起来全覆盖。再加任何第三只手都是冗余。
三、组合策略:完整的执行层
高频操作(调音量、开窗口、截屏、串口通信)→ System Controller 直接干。
低频/一次性操作(爬个网站、处理一批数据、生成个图表)→ Universal Agent 现生成脚本。
常用功能零延迟,非常用功能零限制。
这就是完整的执行层------不多不少,恰好覆盖了两种"需要现成工具"的场景:
- 没有好 CLI 接口的系统级操作 → System Controller
- 需要动态生成代码调用的 → Universal Agent
四、LLM 与 Skill 的角色关系
LLM 是脑,Skill 是手
大语言模型天然就该为主。LLM 已经完全具备所有领域知识,而且比任何单个 skill 封装的知识更广更深。
Skill 的本质是什么?两样东西:
- 预写好的代码脚本 → 不用现生成,直接执行
- 提示词模板 → 不用现思考,直接加载
两件事都是省------省生成时间,省思考开销。
专业 Skill 的存在价值
pptx、pdf、docx、xlsx、browser-automation 这类专业 skill,存在的价值不是"给 LLM 补知识"------LLM 本来就懂 PPT 怎么排版、PDF 怎么解析。它们的价值是标准化工作流,把常见任务固化成一套可靠的执行流程,避免每次让 LLM 重新规划"该怎么处理这个文件"。
Skill 越多越好不是对的。应该只保留那些真正高频、真正能省下显著开销的。低频的、LLM 随手就能搞定的事,包装成 skill 反而是多余的间接层。
用 Universal Agent 不用专业 Skill,等于现生成;不用 Skill 让 LLM 自由发挥,等于现思考
这个类比把整篇文章的逻辑串成了一条线:
- Universal Agent vs 专业 Skill 脚本 → 现生成代码 vs 预写好代码
- 不加载 Skill vs 加载 Skill 提示词 → 现思考工作流 vs 预设好工作流
每一次省下的,要么是代码生成的几秒钟,要么是 LLM 规划工作流的额外推理。两者本质相同:用预制替代现造,用确定性替代不确定性。
五、为什么不需要做更多 Skill?
一个关键洞察:现在已经存在大量各种功能的软件,只需要提供调用接口就能使用。
像 ffmpeg、git、docker、docker-compose 这些本身就是 CLI 工具,Universal Agent 直接调就行了,没必要包一层 skill。
数据库操作?直接调 mysql/psql CLI。视频处理?直接调 ffmpeg。远程服务器?直接调 ssh。
真正需要做成 skill 的只有两种情况:
- 没有现成 CLI------比如 Windows 硬件控制、GUI 自动化,没有现成工具能一条命令搞定
- 调用方式复杂------比如 Home Assistant 要拼 URL、带 token、处理 JSON,每次现写很烦
而这两种情况,已经被 Universal Agent 和 System Controller 完全覆盖了。
六、Skill 的设计真相
Universal Agent:安全审核下的精简
Universal Agent 的核心执行脚本(universal_agent.py、config.json 等)并非缺失,而是因为功能太强大------动态生成并执行任意代码------在发布到 SkillHub 时无法通过安全审核,所以主动精简到只剩 SKILL.md。
但在 WorkBuddy 环境下,LLM 本身就拥有 execute_command 能力,可以动态生成代码并执行。SKILL.md 提供的架构思路已经足够引导 LLM 正确工作。能力其实已经半内置,skill 存在的价值主要是安全审核流程和结构化的提示词引导。
System Controller:原子设计,有意无状态
System Controller 的 6 个脚本各自独立执行、不共享状态------这不是缺陷,是设计决策。
混杂在一起管理状态太重、不灵活。原子脚本 + 自由组合的模式,让 LLM 可以根据任务需要灵活调用任意模块,而不需要面对一个臃肿的状态管理机。
这其实暗合了 Unix 哲学:做好一件事,通过组合实现复杂功能。 LLM 本身就是最好的编排器------它知道什么时候该调窗口管理,什么时候该串口通信,什么时候该两者配合。把编排权交给 LLM 而不是脚本,反而更灵活。
七、Skill 机制的终极宿命:被淘汰
这两个 Skill 的能力如果直接内置成平台原生工具,确实不需要以 skill 形式存在。
- Universal Agent 的能力 →
execute_command已经部分内置,skill 只是一个品牌包装 - System Controller 的能力 → 因为安全顾虑(操控窗口、硬件、GUI 自动化属于高风险操作)和跨平台兼容问题,暂时不适合内置
Skill 的终极目标是被淘汰。 做出来的 skill 越好,越说明平台应该内置它。Skill 机制存在的意义不是长久存在,而是给用户留一个扩展入口,当平台原生能力不够时还能自己加。
准确地说,Skill 没死,但定位变了------从"必需品"变成了"临时补丁"。这也解释了为什么 Skill 市场看似繁荣但真正不可替代的寥寥无几:大部分 Skill 都是平台能力的影子,等平台追上来,影子就消失了。
八、Skill 创建的"低门槛陷阱"
做 skill 的成本太低了,低到不需要理性审批就能启动行动。这是一种类似刷短视频的心理机制:
- 即时反馈:做一个 skill,立刻能看到它出现在列表里,有完成感
- 掌控感:把某个领域"封装"起来,感觉世界更有序了
- 成本极低:写个 SKILL.md 就算一个 skill,几乎零门槛
理性知道大部分 skill 做出来就是多余的------因为 LLM 本来就能干那些事。但感性依然有强烈的创建冲动。
自检门槛: 做之前问一句------"没有这个 skill,我下次遇到这个场景会多花超过 30 秒吗?" 答案是否的话,不做。
九、三个已安装 Skill 的价值排序
按本文的逻辑框架,重要性递减:
- System Controller --- 能力不可替代,没有现成工具能覆盖
- Universal Agent --- 思路有价值,但能力已被
execute_command部分替代 - Comprehensive Knowledge System --- 知识 LLM 本身就有,纯省思考
十、结论
LLM(脑) → 知识和推理,天然为主
Universal Agent(手) → 动态生成代码执行,覆盖一切可编码的事
System Controller(手)→ 预制系统操作工具,高频直接使用
其他 Skill(辅) → 预制工作流,省思考省生成,按需选用
两个 Skill 构成了完整的执行层,LLM 作为大脑主导一切。其他 Skill 是锦上添花的加速器,不是必需品。
这套架构的本质是:大脑足够强,手只需要两只。
✅ 我实际拥有的工具
| 工具 | 真实存在 | 用途 |
|---|---|---|
execute_command |
✅ | 执行 shell 命令 |
write_to_file |
✅ | 写文件 |
read_file |
✅ | 读文件 |
open_result_view |
✅ | 打开结果展示(PDF、Word、图片等) |
preview_url |
✅ | 预览 HTML/网页 |
web_fetch |
✅ | 抓取网页内容 |
web_search |
✅ | 网络搜索 |
image_gen |
✅ | 生成图片 |
replace_in_file |
✅ | 替换文件内容 |
delete_file |
✅ | 删除文件 |
install_binary |
✅ | 安装 Python/Node 运行时 |
list_dir |
✅ | 列出目录 |
search_file |
✅ | 搜索文件 |
search_content |
✅ | 搜索文件内容 |
todo_write |
✅ | 管理任务列表 |
task |
✅ | 启动子 Agent |
use_skill |
✅ | 加载技能 |
automation_update |
✅ | 创建/管理自动化任务 |
team_create / team_delete / send_message |
✅ | 团队协作 |
ask_followup_question |
✅ | 询问用户 |
RAG_search |
✅ | 查询知识库 |
connect_cloud_service |
✅ | 连接云服务 |
read_lints |
✅ | 读取 linter 错误 |
这些工具的参数、返回值格式都在我的 system prompt 里写死了,每次我用的时候都要按规范调用,不是瞎编的。