Session 05
Tools / Skills / Extensions
工具决定 agent 能做什么,skills 决定 agent 如何复用任务流程,extensions 决定系统如何接外部世界。工具越强,权限、审计和失败恢复越重要。
1. 训练目标
本页要练会:能比较 Claude Code skills/MCP/hooks、OpenClaw skills、Hermes tools/plugins 的抽象差异,并说明工具权限和副作用控制。
主要依据:Claude skills / Claude Agent SDK tools / OpenClaw skills / Hermes tools。
2. 三项目对照
| 维度 | Claude Code | OpenClaw | Hermes Agent |
|---|---|---|---|
| 工具层 | Read/Edit/Bash/Grep/WebFetch/MCP/custom tools via SDK。 | skills、runtime tools、channel/Gateway tools。 | web search、browser、terminal、file editing、memory、delegation、RL、messaging 等工具集。 |
| 复用层 | skills、slash commands、subagents、hooks。 | SKILL.md、gating、allowlist、env/API key 注入。 | plugins、skills、tools、MCP、automation hooks。 |
| 控制点 | allowed_tools、permission mode、hooks、MCP server config。 | skill allowlist、workspace/Gateway auth、agent config。 | toolsets、terminal backend、provider config、plugin install。 |
3. 组件机制
| 机制 | 解释 |
|---|---|
| Tool contract | 工具名称、schema、权限、风险等级、timeout、返回结构和错误分类。 |
| Skill package | 可复用任务知识,通常包含说明、步骤、约束、工具使用方法。 |
| Hook / policy | 工具执行前后插入校验、日志、阻断、格式化或审批。 |
| MCP / integrations | 把外部系统以标准协议或插件方式接入 agent。 |
4. 失败模式
| 失败模式 | 为什么危险 |
|---|---|
| 工具面过宽 | 给 agent 通用 shell、浏览器、数据库、消息发送能力,但没有分级权限。 |
| skill 注入 | skill 或外部文档带入不可信指令,覆盖任务目标或安全边界。 |
| 副作用不可追踪 | 发邮件、改文件、执行命令后没有 audit log 和 rollback 方案。 |
5. 架构练习
- 把“发 PR 评论”拆成 read tool、write tool、approval、audit 四部分。
- 比较 Claude Code hook 和 OpenClaw skill allowlist 的边界。
- 为 Hermes terminal tool 设计一套安全策略。
6. 知识展开
上面的卡片是索引,点击后跳到对应的详细解释。阅读时不要只记名词,要同时记住组件边界、为什么需要它、三个项目怎么体现,以及你能用什么问题自检。
Tool contract
工具的输入 schema、输出 schema、错误语义、权限要求和副作用说明。
Skill packaging
把一类工作流、说明、脚本和资源打包成可复用能力。
Permission boundary
工具执行前的授权、确认、沙箱、scope 和审计边界。
MCP / extension
通过标准协议或插件系统把外部工具接进 agent。
Tool audit
记录工具何时、为何、由谁授权、以什么参数执行、产生什么结果。
Detailed Concepts
| 概念 | 是什么 | 为什么重要 | 项目对照 | 自检问题 |
|---|---|---|---|---|
| Tool contract | 工具的输入 schema、输出 schema、错误语义、权限要求和副作用说明。 | 没有 contract 的工具会让模型猜参数、误解结果、重复执行危险动作。 | Claude Code/MCP 强调工具接口;OpenClaw skills 封装能力;Hermes tool registry 暴露大量能力。 | 工具失败时输出是否可被模型可靠解释? |
| Skill packaging | 把一类工作流、说明、脚本和资源打包成可复用能力。 | skill 让 agent 从“会调工具”升级到“会按领域流程工作”。 | Claude Code skills 是明确样本;OpenClaw skills 更贴 runtime 扩展;Hermes 也有 skills/plugins 概念。 | skill 里哪些是说明,哪些是可执行脚本,哪些是资源? |
| Permission boundary | 工具执行前的授权、确认、沙箱、scope 和审计边界。 | 高权限工具如果只靠提示约束,迟早会被上下文或用户输入绕过。 | Claude Code 有 permissions/hooks;OpenClaw 依赖 Gateway/runtime 边界;Hermes 依赖 backend 和工具权限设置。 | 删除文件、发网络请求、读密钥是否需要不同审批等级? |
| MCP / extension | 通过标准协议或插件系统把外部工具接进 agent。 | 扩展性越强,供应链、权限和观测成本越高。 | Claude Code 的 MCP 是成熟入口;Hermes 支持 MCP/插件;OpenClaw 可以通过 runtime/plugin 接能力。 | 新增扩展是否有最小权限和可观测日志? |
| Tool audit | 记录工具何时、为何、由谁授权、以什么参数执行、产生什么结果。 | 没有 audit,agent 行为无法解释,也无法追责或回放。 | 三类系统都需要 audit:Claude Code 偏开发命令,OpenClaw 偏 session/channel,Hermes 偏本地工具和 terminal。 | 一次事故排查是否能还原完整工具链? |