[ PROMPT_NODE_25614 ]
anthropic-best-practices
[ SKILL_DOCUMENTATION ]
# 技能编写最佳实践
> 学习如何编写 Claude 可以发现并成功使用的有效技能。
优秀的技能应该是简洁、结构良好且经过实际使用测试的。本指南提供了实用的编写决策,帮助你编写 Claude 可以有效发现和使用的技能。
关于技能工作原理的概念背景,请参阅 [技能概述](/en/docs/agents-and-tools/agent-skills/overview)。
## 核心原则
### 简洁是关键
[上下文窗口](https://platform.claude.com/docs/en/build-with-claude/context-windows) 是一种公共资源。你的技能与 Claude 需要知道的所有其他内容共享上下文窗口,包括:
* 系统提示词
* 对话历史
* 其他技能的元数据
* 你的实际请求
并非技能中的每个 token 都有即时成本。在启动时,仅预加载所有技能的元数据(名称和描述)。Claude 仅在技能变得相关时才会读取 SKILL.md,并仅在需要时读取其他文件。然而,在 SKILL.md 中保持简洁仍然很重要:一旦 Claude 加载它,每个 token 都会与对话历史和其他上下文竞争。
**默认假设**:Claude 已经非常聪明
仅添加 Claude 尚不知道的上下文。质疑每一条信息:
* “Claude 真的需要这个解释吗?”
* “我可以假设 Claude 知道这一点吗?”
* “这段话值得它的 token 成本吗?”
**好的示例:简洁**(约 50 个 token):
`markdown theme={null}
## 提取 PDF 文本
使用 pdfplumber 进行文本提取:
python
import pdfplumber
with pdfplumber.open("file.pdf") as pdf:
text = pdf.pages[0].extract_text()
`
**坏的示例:过于冗长**(约 150 个 token):
markdown theme={null}
## 提取 PDF 文本
PDF(便携式文档格式)文件是一种常见的包含文本、图像和其他内容的文件格式。要从 PDF 中提取文本,你需要使用一个库。有很多可用于 PDF 处理的库,但我们推荐 pdfplumber,因为它易于使用且能很好地处理大多数情况。首先,你需要使用 pip 安装它。然后你可以使用下面的代码...
简洁版本假设 Claude 知道什么是 PDF 以及库是如何工作的。
### 设置适当的自由度
将具体程度与任务的脆弱性和可变性相匹配。
**高自由度**(基于文本的指令):
适用于:
* 多种方法均有效
* 决策取决于上下文
* 启发式方法指导