何时使用技能与简单提示 | AI生成和翻译
问题: 什么时候应该真正创建一个“技能”(skill),而不是只保存一个提示词或直接使用 Claude Code?技能创建是否只适用于困难/复杂的任务?
答案:
是的,你对这个思维模型的理解是正确的。以下是清晰的划分:
何时创建技能
当 任务复杂到即使采用朴素 LLM 调用也会失败,并且你需要以下条件时,技能才是有理由创建的:
- 多步骤编排——任务需要一系列工具调用、文件读取、bash 命令以及链式决策
- 环境特定约束——例如“使用
--break-system-packages”、“将输出写入/mnt/user-data/outputs/”、“这个库有一个古怪的 API”——这些都不在模型的训练数据中 - 可重复的高质量输出——你已经通过试错找到了正确方法,并希望将这些知识编码,使每次后续运行都能一次成功
- 超过 300 行的实现——当“如何正确完成”本身就是一个不平凡的代码时(你的
ww工具就是这个阈值的一个好例子)
技能本质上是 编撰后的机构知识——即“朴素 Claude 尝试”与“已经正确完成过 10 次的 Claude”之间的差距。
何时不创建技能——只保存提示词
对于只需一个 markdown 文件中的编写良好的提示词即可完成的任务:
~/prompts/
summarize-pr.md
review-python.md
explain-paper.md
draft-commit-msg.md
然后使用 cat ~/prompts/summarize-pr.md | pbcopy 或直接将其通过管道传递给你的 CLI 代理。这涵盖了以下情况:
- 一致的格式要求——“始终按这种结构回复”
- 领域特定上下文注入——“假设代码库是 Django + Celery + Postgres”
- 角色/风格约束——“简洁、代码优先、不加开场白”
- 简单的单次任务——Claude 在有正确上下文的情况下第一次就能做对的事情
实际判断标准
朴素 Claude(无额外上下文)能否完成此任务?
├── 能 → 只需提示词。如果重复使用就保存到 .md 文件。
└── 不能 → 失败是因为缺少 *知识* 还是缺少 *编排*?
├── 缺少知识(环境怪癖、库的陷阱、你的约定)
│ → 添加一个包含编码后知识的 SKILL.md
└── 缺少编排(多步骤、工具链式调用、有状态)
→ 构建一个脚本(如 ww)或一个能指导编排的 SKILL.md
你的 ww 工具已经是正确的直觉
ww 工具在 200-300 行代码时正是合适的水平——它是一个 可重用的代理框架,复杂性存在于 Python 代码中,而非技能文件中。对于它的一份 SKILL.md 只需这样:
# ww 风格 CLI 代理
运行:python ww.py <任务>
该脚本处理工具分发、上下文注入和重试逻辑。
不要重新发明轮子——直接扩展 ww.py。
技能文件只需指向真正的实现。
TL;DR
| 情况 | 解决方案 |
|---|---|
| 重复使用某种提示模式 | 保存 .md 提示文件 |
| 由于环境/库怪癖导致 Claude 失败 | 带有约束的 SKILL.md |
| 复杂多步骤编排 | Python 脚本(如 ww) |
| 同时存在怪癖和编排 | SKILL.md + 脚本组合 |
| 简单问答 | 直接提问,无需保存任何内容 |
只有在编码后的知识能显著提高你反复执行的任务的输出质量时,技能才值得额外开销。对于其他所有情况,提示词文件或直接调用 Claude Code 才是正确的选择。