乐于分享
好东西不私藏

四十八:Skills与OpenClaw

四十八:Skills与OpenClaw

1. 学习范围

本日主题包含两部分: Skills 与 OpenClaw。

本日覆盖:

  • Skills 的基本定义、动机和技能包结构。
  • Skills 与 prompt、tool、MCP、Agent、workflow 的区别。
  • Skills 的渐进式加载、触发、执行、复用和安全边界。
  • OpenClaw 的系统定位、核心组件和任务流水线。
  • OpenClaw 的通道抽象、任务接入、路由、执行和结果返回。
  • Skills 与 OpenClaw 结合时的工程设计、评估指标和失败模式。

2. Skills 的基本定义

Skills 是面向 Agent 的可复用能力包。它通常把某类任务的操作规范、领域知识、脚本、模板、资源文件和工具调用方法封装在一个结构化目录中,让 Agent 在需要时加载和执行。

可以把 Skill 理解为 Agent 的“过程性知识模块”:

Skill = metadata + instructions + optional scripts + optional resources + usage constraints

它不是一次性 prompt,也不是单个 API。Skill 的核心价值是把稳定、可复用、可执行的工作流程沉淀下来,让 Agent 不必每次从零推理。

3. Skills 出现的背景

随着 Agent 任务变复杂,仅靠通用 system prompt 很难覆盖所有场景。原因包括:

  • prompt 过长会占用上下文并降低可维护性。
  • 不同任务需要不同领域知识和流程。
  • 一次性指令难以复用。
  • 复杂操作需要脚本、模板和资源文件支持。
  • Agent 需要根据任务动态加载相关能力。

Skills 的设计目标是把“少量常驻能力描述”和“大量按需加载细节”分开,提升可扩展性和上下文效率。

4. Skill 包的典型结构

一个 Skill 包通常包含:

skill-name/  SKILL.md  scripts/  references/  templates/  assets/

其中 SKILL.md 是入口文件,通常包含:

  • name:技能名称。
  • description:触发条件和能力范围。
  • instructions:执行流程、约束和质量标准。
  • references:需要按需读取的补充资料。
  • scripts:可复用脚本或自动化工具。

不是每个 Skill 都需要脚本和资源。简单 Skill 可以只有 SKILL.md,复杂 Skill 才需要多文件结构。

5. 渐进式加载

渐进式加载是 Skills 的关键机制。系统通常先只读取 Skill 的名称和描述,用于判断是否匹配当前任务。只有当任务触发该 Skill 时,才读取完整 SKILL.md,再根据需要读取 references、scripts 或模板。

这种机制的价值:

  • 降低常驻上下文成本。
  • 避免无关技能污染当前任务。
  • 支持大量 Skill 共存。
  • 让 Agent 在需要时获取细节。

面试中可以把它和“检索式工具说明”类比:先索引摘要,命中后再展开详情。

6. Skill 触发机制

Skill 触发通常依赖:

  • 用户显式提到 Skill 名称。
  • 用户任务与 Skill description 匹配。
  • Agent 根据上下文判断某个 Skill 能完成任务。
  • 系统路由器或 registry 选择 Skill。

触发后,Agent 应完整读取该 Skill 的主说明,不能只根据名称猜测执行流程。对于带 references 的 Skill,还应按说明读取相关补充资料。

7. Skill 与 Prompt

Prompt 是一次或一段指令,Skill 是可复用能力包。Prompt 更轻量,适合短期任务;Skill 更结构化,适合长期维护和复用。

对比:

Prompt: 这次怎么做。Skill: 以后遇到这类任务都怎么做。

Skill 内部可以包含 prompt 模板,但 Skill 不等同于 prompt 模板。

8. Skill 与 Tool

Tool 是外部可执行能力,例如搜索、读文件、调用 API、运行脚本。Skill 是使用工具和知识完成任务的流程说明。

例子:

Tool: markdown_to_wechat_html.pySkill: daily-llm-study-publisher 规定何时写学习文档、题目、答案,并调用该脚本生成 HTML。

Skill 可以调用 Tool,但 Skill 的价值在于流程、判断和上下文组织。

9. Skill 与 MCP

MCP 是 Host 与外部 Server 之间的协议,解决工具、资源、提示模板的标准化接入。Skill 是 Agent 内部的能力组织方式。

二者可以结合:

  • Skill 规定某类任务的执行流程。
  • MCP Server 提供 Skill 所需的工具或资源。
  • Host 根据 Skill 决定暴露哪些 MCP tools。

MCP 更偏协议层,Skill 更偏任务过程层。

10. Skill 与 Workflow

Workflow 是固定或半固定流程,强调步骤编排。Skill 可以包含 workflow,也可以包含判断逻辑、领域知识、脚本和资源。

简单任务适合 workflow;复杂任务适合 Skill + workflow + tools 的组合。Skill 让 Agent 在不完全固定的任务中仍能遵循稳定方法。

11. Skill 的设计原则

高质量 Skill 应满足:

  • description 明确,触发边界清晰。
  • instructions 可执行,不写空泛原则。
  • 入口文档短而完整,复杂资料放 references。
  • 脚本和模板可复用。
  • 输入、输出和验收标准明确。
  • 安全边界清楚。
  • 与其他 Skill 的职责不重叠。

Skill 的目标不是把所有知识堆进文件,而是让 Agent 在正确时机拿到正确操作方法。

12. Skill 的安全风险

Skills 会影响 Agent 行为,因此存在安全风险:

  • 恶意 Skill 注入危险指令。
  • Skill 过宽导致误触发。
  • 脚本执行带来文件或网络风险。
  • 过时 Skill 引导错误流程。
  • Skill 间指令冲突。
  • Skill 描述诱导 Agent 泄露上下文或越权调用工具。

生产环境中应对 Skill 做来源审查、权限限制、版本管理和执行日志。

13. OpenClaw 的系统定位

OpenClaw 是面向多平台、多通道 Agent 任务的开源/开放式框架。它关注如何把来自不同入口的任务接入统一的 Agent 流水线,再通过技能、资源、工具和工作流完成处理。

在学习路线中,OpenClaw 的重点是核心架构:基于通道的任务流水线。

可抽象为:

External channels  -> Gateway / channel adapter  -> Task normalization  -> Agent orchestration  -> Skill / tool / resource execution  -> Result rendering  -> Channel response

14. 通道的基本概念

通道是任务进入系统的入口,也可以是结果返回用户的出口。通道可以是聊天应用、网页、IDE、IM、API、Webhook、移动端或企业系统。

通道层需要处理:

  • 用户身份。
  • 输入格式。
  • 消息事件。
  • 附件和多模态内容。
  • 回调和响应格式。
  • 平台权限。

通道抽象的价值是让上层 Agent 不必关心每个平台的细节。

15. 基于通道的任务流水线

基于通道的任务流水线是 OpenClaw 的核心思路。不同平台的输入先被通道适配器转换成统一任务对象,再进入后续 Agent 编排。

典型流程:

Channel Event  -> Channel Adapter  -> Unified Task  -> Context Assembly  -> Planner / Router  -> Skills and Tools  -> Response Builder  -> Channel Adapter  -> User

这个设计使系统可以新增通道而不重写核心 Agent 逻辑,也可以新增 Skill 而不改每个通道。

16. Gateway 与 Channel Adapter

Gateway 负责接收外部请求、做基础鉴权、事件分发和路由。Channel Adapter 负责把平台特定格式转成系统内部统一格式。

例如:

Slack message -> adapter -> Task{user_id, text, files, channel, thread_id}API request -> adapter -> Task{user_id, text, params, channel, request_id}

适配器的质量决定系统能否稳定支持多平台。

17. Unified Task

Unified Task 是通道输入的标准内部表示。它应包含:

  • task_id。
  • user_id / tenant_id。
  • channel。
  • message / intent。
  • attachments。
  • context。
  • permissions。
  • response target。

统一任务对象让后续 planner、memory、skill 和 tools 可以忽略具体平台差异。

18. Context Assembly

Context Assembly 负责收集任务执行所需上下文,包括用户信息、会话历史、通道 metadata、附件内容、可用技能、可用工具和权限。

上下文构造需要避免:

  • 把无关历史塞进 prompt。
  • 忽略通道限制。
  • 把未授权资源暴露给 Agent。
  • 忽略附件解析失败。

19. Planner 与 Router

Planner 负责拆解任务和制定执行策略。Router 负责把任务路由到合适的 Skill、Agent、工具或工作流。

路由依据包括:

  • 任务意图。
  • 通道来源。
  • 用户权限。
  • 可用技能。
  • 工具能力。
  • 历史状态。
  • 成本和延迟约束。

在 OpenClaw 语境下,通道不是单纯输入来源,也会影响路由策略和输出形式。

20. Skills 在 OpenClaw 中的作用

Skills 可以作为 OpenClaw 任务流水线中的执行单元。一个 Skill 可以定义如何处理某类任务,例如写日报、查工单、生成代码 review、总结文档、发布内容。

在通道任务流水线中:

  • Channel 负责接入任务。
  • Router 选择 Skill。
  • Skill 指导 Agent 执行。
  • Tools/Resources 提供外部能力。
  • Response Builder 生成适配通道的输出。

21. Resources 与 Tools

OpenClaw 类 Agent 框架通常需要区分资源和工具:

  • Resource:可读上下文,例如文档、知识库、文件、配置。
  • Tool:可执行动作,例如查询、写入、搜索、发布、运行脚本。

通道任务往往同时需要资源和工具。例如用户在企业 IM 中问“帮我总结今天异常告警”,系统可能需要读取监控日志资源,并调用查询工具。

22. Response Builder

Response Builder 负责把 Agent 的结果转成通道可接受的格式。不同通道的输出限制不同:

  • Markdown 支持程度不同。
  • 附件格式不同。
  • 消息长度限制不同。
  • 是否支持按钮或交互卡片。
  • 是否支持流式返回。

因此最终输出不能只由模型自由生成,还要经过通道适配。

23. OpenClaw 的工程优势

通道化架构的优势:

  • 多平台接入更容易。
  • 核心 Agent 逻辑可复用。
  • Skill 和工具可以跨通道复用。
  • 权限、审计和 trace 可集中治理。
  • 任务可以从一个通道进入,在另一个通道继续。
  • 更适合企业级 Agent 工作台。

24. OpenClaw 的常见失败模式

常见失败包括:

  • 通道适配错误。
  • 用户身份映射错误。
  • Unified Task 字段缺失。
  • Router 选错 Skill。
  • Skill 与通道输出格式不匹配。
  • 工具权限不一致。
  • 附件解析失败。
  • 异步任务状态丢失。
  • 多通道上下文混淆。
  • 响应无法在目标通道正确展示。

25. Skills + OpenClaw 的评估指标

评估应覆盖:

  • Skill trigger accuracy。
  • Skill execution success。
  • Channel adapter correctness。
  • Task normalization accuracy。
  • Router accuracy。
  • Tool execution success。
  • Response rendering quality。
  • End-to-end task success。
  • Latency and cost。
  • Permission and audit correctness。

单独评估模型回答质量不够,必须评估从通道输入到通道输出的完整链路。

26. 生产化原则

生产环境中应遵守:

  • 通道适配层与 Agent 核心解耦。
  • Unified Task schema 稳定且可版本化。
  • Skill registry 需要版本、权限和冲突管理。
  • 高风险工具需要用户确认。
  • 每个任务保留完整 trace。
  • 通道、用户、租户和权限必须强隔离。
  • 输出必须经过目标通道渲染检查。
  • 异步任务需要状态持久化和重试机制。

27. 核心总结

Skills 是 Agent 的可复用能力包,解决复杂任务流程和领域知识的模块化复用问题。OpenClaw 则关注多通道任务如何进入统一 Agent 流水线,并通过技能、工具和资源完成处理。

面试表达时应突出:

  • Skill 不是 prompt,也不是 tool,而是可复用的任务能力包。
  • Skills 的关键机制是渐进式加载、触发边界和按需读取。
  • OpenClaw 的核心架构是基于通道的任务流水线。
  • 通道适配、统一任务对象、路由、技能执行和响应渲染是工程落地的关键链路。

28. 参考资料

  • Claude Agent Skills 官方文档: https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview
  • Skills 底层原理深度解读: https://leehanchung.github.io/blogs/2025/10/26/claude-skills-deep-dive/
  • OpenClaw 官方文档入口: https://docs.openclaw.ai/
  • OpenClaw 架构与使用教程: https://zhuanlan.zhihu.com/p/2000850539936765122
  • OpenClaw 结构和生态介绍: https://news.qq.com/rain/a/20260203A01H5W00
  • OpenClaw 架构解析: https://www.cnblogs.com/daichangya/p/19566308