Day 5:把重复流程沉淀成 Skill

Skill 不是“高级 Prompt”

很多中文文章会把 Skill 写得很玄:会自我进化、会从经验里长出能力。先别被这些词带走,先把 Skill 理解成一件很具体的事:把一个重复流程产品化。

如果你每周都让 Hermes 做同一类事,比如整理周报、审查 PR、处理用户反馈、生成内容草稿,那就不该每次重新写 prompt。你应该把流程、输入、输出、注意事项和验收标准沉淀下来。

Hermes Agent 第 5 天 Skills、Tool Calling 和 MCP 权限示意图
Hermes Agent 第 5 天 Skills、Tool Calling 和 MCP 权限示意图

什么流程值得写成 Skill

用三个问题判断:

  1. 这个任务是否重复出现?
  2. 每次输入是否长得差不多?
  3. 产物是否有固定验收标准?

三个都是“是”,就可以考虑 Skill。

比如 Day 4 的“会议纪要提取待办”就很适合。输入是会议记录,输出是 JSON 或 Markdown 清单,验收标准也明确。

不适合写成 Skill 的情况:

    1. 一次性探索任务。
    2. 连你自己都没想清楚的目标。
    3. 高风险、强依赖人工判断的动作。
    4. 只是为了看起来厉害。

Skill 文件应该写什么

一个好 Skill 不需要复杂,但必须清楚:

# meeting-action-extractor

When to use:
Use this when the user provides meeting notes and wants tasks, owners, deadlines, and review flags.

Inputs:
- Markdown, transcript, or plain text meeting notes.

Output:
- A task list with owner, deadline, source quote, confidence, and needs_review.

Rules:
- Do not invent missing owners.
- Keep source_quote short.
- Mark uncertain fields as unknown.
- Ask before sending tasks to external tools.

这不是文学创作,是 SOP。它要让 Hermes 在下次遇到类似任务时少猜一点。

MCP 是工具边界,不是万能插座

MCP 的价值在于让模型以统一方式调用外部工具。中文技术文章里常见的“感知层、决策层、执行层”可以这样落到 Hermes 上:

    1. 感知层:读取文件、消息、网页、RSS、Issue。
    2. 决策层:判断任务类型,选择 Skill 或工具。
    3. 执行层:写文件、查 API、发消息、生成报告。

但工具越多,边界越重要。第一批工具建议只读:搜索、读取仓库、抓取网页、读取日历、读取 Issue。写操作后置,并且必须审批。

今天做一个最小 Skill

把 Day 4 的数据任务沉淀成 Skill:

  1. 新建 Skill 目录。
  2. SKILL.md
  3. 明确触发条件。
  4. 明确输入输出。
  5. 写出禁止事项。
  6. 用 3 个样本测试。
  7. 记录失败案例。

不要一上来追求“自动生成 Skill”。你先手写一个,才知道什么叫好 Skill。

常见坑

    1. 把 Skill 写成一段情绪化 prompt,没有输入输出。
    2. 安装一堆社区 Skill,却不知道哪个工作流需要它们。
    3. 工具权限给得太宽,一个读文件任务拿到了写权限。
    4. 工具失败后,让模型靠猜继续回答。

今天交付什么

留下 hermes-day-5-skill.md

skill_name: "meeting-action-extractor"
trigger: "meeting notes -> action items"
inputs:
  - notes.md
outputs:
  - output/tasks.json
permissions:
  - read raw files
  - write output folder
approval_required:
  - send tasks to chat
  - create external tickets
test_cases: 3

明天讲自动化。只有当 Skill 连续几次稳定产出,你才应该把它放进定时任务里。

下一步

小白手把手:把 Day4 流程做成 Skill

Skill 可以理解为“给 Hermes 的操作说明书”。不是高级 prompt,也不是神秘插件。你今天只做一个最小 Skill:把会议纪要提取待办。

Hermes Agent Day 5 Skill 创建流程图
Hermes Agent Day 5 Skill 创建流程图

第 1 步:先看已有 Skill

hermes skills list || true
hermes skills search meeting || true

如果命令不可用,不影响今天学习。你仍然可以手写一个 SKILL.md

第 2 步:创建本地 Skill 草稿

mkdir -p hermes-day5-skills/meeting-action-extractor
touch hermes-day5-skills/meeting-action-extractor/SKILL.md

第 3 步:写 SKILL.md

把下面内容写进去,再按你的项目微调:

# meeting-action-extractor

When to use:
- Use this when the user provides meeting notes and wants tasks.

Inputs:
- Markdown, plain text, transcript, or copied meeting notes.

Steps:
1. Read the source material.
2. Extract action items only.
3. For each item, keep owner, deadline, source quote, confidence, and needs_review.
4. Mark missing owner or deadline as unknown.
5. Ask before sending tasks to external tools.

Output:
- JSON or Markdown task list.

Do not:
- Invent owners.
- Invent dates.
- Send anything externally without approval.

第 4 步:用 3 个样本测试

准备三个输入:一个格式清楚、一个缺负责人、一个缺截止时间。让 Hermes 分别调用这个 Skill。你可以直接说:

请按照 meeting-action-extractor 这个 Skill 的步骤处理下面的会议纪要。

验收标准:缺失字段要标 unknown,不能编造。

第 5 步:记录失败案例

如果 Hermes 没调用 Skill,不要骂模型,先补触发条件。比如在记忆里写:

遇到“会议纪要转待办”“从会议记录提取任务”这类需求时,优先使用 meeting-action-extractor Skill。

Day 5 常见卡点

    1. Skill 写得太抽象:补输入、步骤、输出样例。
    2. Skill 不触发:触发词不清楚,手动点名调用一次。
    3. Skill 权限过大:提取待办只需要读输入、写 output,不需要发外部消息。
    4. 社区 Skill 不放心:先读 SKILL.md,再决定是否安装。

今天必须留下的文件

skill_name: "meeting-action-extractor"
trigger_examples:
  - "会议纪要转待办"
  - "提取会议任务"
test_cases: 3
permission_level: "read input, write output, approval before external send"