首页 > 教程攻略 > ai教程 >06|Skills、Commands、Rules、Hooks 到底各管什么

06|Skills、Commands、Rules、Hooks 到底各管什么

来源:互联网 时间:2026-06-10 07:16:25

用 Agent Harness 久了,很多人都会遇到一组容易混淆的概念:Skills、Commands、Rules、Hooks。

乍一看,它们都能“影响 Agent 行为”,但作用的层级和方式其实完全不同。如果混着用,项目配置很快就会变得一团乱麻;但如果能搞清楚各自的边界,它们就能成为团队经验沉淀的利器,帮你打造稳定、高效的工作流。

先来一句话快速区分一下:

Rules 规定长期习惯
Skills 封装复杂流程
Commands 提供快捷入口
Hooks 在固定时机自动执行

接下来,我们逐一拆解。

Rules:长期规则

Rules 是给模型看的长期约定。你可以把它们理解为团队的“行为准则”或“编码规范”。比如:

本项目使用 pnpm,不要使用 npm。
后端接口必须返回统一错误结构。
修改权限逻辑必须补充集成测试。
不要直接修改 generated 目录。

Rules 的特点是持续生效。它们非常适合表达团队规范、项目约定、架构边界和代码风格。

但需要注意,Rules 不是强制执行层。模型会尽量遵守,可一旦规则变得含糊、冲突,或者文件太长,它仍然可能漏掉关键点。所以,Rules 更适合用来“指导”,而不是“硬拦截”。

Skills:可复用工作流

Skills 更像是一套可复用的操作手册。它们定义了一个明确、多步骤的流程。

举个例子,“做一次 PR Review”可能包括:

  • 读取 diff;
  • 识别风险文件;
  • 检查测试覆盖;
  • 查找安全问题;
  • 输出 Review 结论。

这个流程就很适合做成 Skill。

类似的还有:

写单元测试
排查 CI 失败
分析接口兼容性
生成发布说明
执行前端视觉检查

这些任务都有明确流程,不适合写成一句简单的 Rule。把它们封装成 Skill,不仅逻辑更清晰,还能按需加载,减少上下文噪声,让 Agent 更聚焦。

Commands:入口和快捷方式

Commands 是给用户用的便捷入口。比如:

/review-pr
/fix-ci
/write-tests
/deploy-staging

它们最大的价值是降低使用门槛。团队成员不用费劲去记一大段复杂的提示词,只要调用一个简单的命令就能启动特定流程。

Commands 可以很薄,只是触发某个 Skill;也可以自己包含一段固定提示。但从长期维护的角度看,最好把复杂逻辑沉淀到 Skills 里,让 Commands 保持轻量、清晰。

Hooks:强制执行和自动化

Hooks 和前三个完全不同。Rules、Skills、Commands 主要影响模型的思考过程;而 Hooks 是在工具调用前后、文件编辑后、会话开始等固定生命周期,执行真实的系统命令。

比如:

文件编辑后自动格式化
提交前自动运行 lint
运行 shell 前检查危险命令
禁止修改 protected 文件
会话开始时加载项目状态

Hooks 适合做强约束,因为它们不依赖模型“记不记得”。如果某个安全策略必须被强制执行,就不要只写在 Rule 里,而应该用 Hook 或权限规则来实现。

四者如何配合

image.png

来看一个真实的案例:

团队希望 Agent 在修改支付代码时,必须先写测试。

可以这样设计:

  • Rule

    :支付模块变更必须测试先行;
  • Skill

    payment-tdd 定义具体的测试流程;
  • Command

    /payment-fix 作为入口;
  • Hook

    :提交前强制运行支付测试。

这样一来,既有宏观的指导,又有具体的流程,还加上了硬性的自动验证,环环相扣,非常可靠。

常见误用

在实际使用中,有几个典型的坑需要注意。

第一,把所有东西都塞进 Rules。


结果就是规则文件越来越长,模型读到后面,前面的重点早就忘了。多步骤流程应该放到 Skills 里,而不是全堆在 Rules 中。

第二,用 Rules 来做强制安全。


比如“不要运行删除命令”,只写在规则里是远远不够的。应该用权限 deny 列表或者 PreToolUse Hook 来直接拦截。

第三,Commands 设计得过于复杂。


一个命令里塞了几百行说明,后期维护起来会非常痛苦。命令本质上应该像“按钮”,负责触发,而复杂逻辑交给 Skill。

第四,Hooks 配置得太重。


每次编辑都跑全量测试,会让 Agent 的反应速度急剧下降。Hooks 需要分级:轻量检查放在高频操作中,重量级检查放在提交前或等待用户确认后再执行。

设计建议

  • Rules 要短小精悍。

    只保留那些每次任务都必须知道的明确约定。
  • Skills 要职责专一。

    一个 Skill 解决一类任务,不要试图做成什么都能干的“万能流程”。
  • Commands 要少而精。

    高频任务才值得做成命令,低频任务直接用自然语言沟通即可。
  • Hooks 要稳固可靠。

    只把那些真正需要自动化或强约束的操作放进去。

可以用下面这张表来快速判断,某个功能应该放在哪里:

内容 放哪里
项目长期规范 Rules
多步骤工作流 Skills
高频快捷入口 Commands
必须执行的检查 Hooks
高风险操作拦截 Permissions + Hooks

总结

Skills、Commands、Rules、Hooks 都是 Harness 强大的扩展方式,但它们服务的边界完全不同。

一个真正成熟的团队,不会只靠零散的提示词来驱动 Agent,而是会把团队的经验分层沉淀下来:

Rules 管习惯
Skills 管流程
Commands 管入口
Hooks 管强制动作
Permissions 管边界

只有做到这样,Agent 才会越来越像一个真正的团队成员,而不是每次都从零开始学习、反复犯错的新手。