Skills: 性能优化
最后更新:2026-08-31
快的 Skill 用一次是享受,慢的 Skill 用一次是折磨——性能决定 Skill 的使用频率。
1. 性能瓶颈
(1) 瓶颈分析
| 瓶颈 | 影响 | 优化方向 |
|---|---|---|
| 上下文过长 | 响应慢、成本高 | 压缩上下文 |
| 工具调用过多 | 耗时长、token 浪费 | 合并调用 |
| 提示词冗长 | 处理慢、歧义多 | 精简提示词 |
| 搜索范围太大 | 结果不精准 | 缩小范围 |
| 重复操作 | 效率低 | 缓存结果 |
(2) 性能度量
TEXT
📖 仅展示
Skill 性能指标
├── 响应时间:从调用到首次输出的时间
├── 工具调用数:一次执行中调用的工具次数
├── Token 消耗:输入 + 输出的 token 总量
├── 准确率:输出符合预期的比例
└── 完成率:任务成功完成的比例
2. 提示词优化
(1) 精简原则
TEXT
📖 仅展示
提示词精简三原则
├── 删:删除重复说明和冗余示例
├── 合:合并相似规则为统一描述
└── 压:用表格替代长文本描述
(2) 示例对比
冗长版:
TEXT
📖 仅展示
审查代码时请检查安全性。安全性包括 SQL 注入、XSS、
CSRF 等常见漏洞。还要检查是否有敏感信息硬编码在
代码中。另外要检查是否使用了不安全的依赖库......
精简版:
MARKDOWN
## 安全性检查
- SQL 注入 / XSS / CSRF
- 硬编码密钥 / 令牌
- 不安全依赖
(3) 结构化提示
MARKDOWN
## 推荐结构
1. 角色定义(1 行)
2. 执行流程(有序列表)
3. 审查维度(表格)
4. 输出格式(模板)
5. 约束条件(列表)
3. 工具调用优化
(1) 批量替代逐个
TEXT
📖 仅展示
低效方式:
Read file1.py → Read file2.py → Read file3.py
(3 次工具调用)
高效方式:
Glob "src/**/*.py" → 有选择地 Read 关键文件
(1 + 2 = 3 次调用,但更精准)
(2) 搜索替代遍历
TEXT
📖 仅展示
低效方式:
Read 所有文件 → 逐个查找目标
高效方式:
Grep "class.*Service" → 只 Read 匹配文件
(3) 增量替代全量
TEXT
📖 仅展示
低效方式:
每次审查都读取所有项目文件
高效方式:
只读取 git diff 中变更的文件
4. 上下文优化
(1) 上下文预算
TEXT
📖 仅展示
上下文分配策略(200K token 总预算)
Skill 提示词:5K(2.5%)
项目上下文:10K(5%)
工具输出:80K(40%)
对话历史:50K(25%)
预留空间:55K(27.5%)
(2) 摘要策略
| 原始内容 | 摘要方式 | 压缩比 |
|---|---|---|
| 完整文件 | 函数签名 + 关键行 | 10:1 |
| 搜索结果 | 匹配行 + 路径 | 5:1 |
| 错误日志 | 错误类型 + 堆栈顶 | 8:1 |
| 对话历史 | 决策记录摘要 | 20:1 |
(3) 懒加载
MARKDOWN
## 懒加载策略
1. 不预加载所有项目文件
2. 先用 Glob/Grep 定位
3. 只 Read 必要的文件
4. 避免递归读取依赖链
5. 性能优化实战
▶ 示例:优化审查 Skill
Alice 对比了优化前后的审查 Skill:
TEXT
📖 仅展示
优化前:
- 提示词 3000 字 → 处理慢、歧义多
- 逐个 Read 10 个文件 → 10 次调用
- 无上下文限制 → token 消耗高
优化后:
- 提示词 800 字(表格化) → 处理快、清晰
- Grep 定位 + Read 3 个关键文件 → 4 次调用
- 上下文限制 50K → token 消耗降 60%
Bob 说:"性能优化的核心不是少做事,而是做对的事——精准搜索比遍历所有文件快 10 倍。"
❓ 常见问题
Q 提示词太短会不会降低质量?
A 不一定。关键是具体和清晰,而非冗长。精简的结构化提示词往往比长篇大论效果更好。
Q 如何平衡准确率和性能?
A 核心步骤保证准确率,辅助步骤优化性能。审查维度不能省,但搜索范围可以缩小。
Q token 消耗怎么监控?
A 各平台有 token 使用统计。Skill 级别的监控需要在提示词中要求输出 token 使用情况,或从平台 API 获取。
📖 小节
- 五大瓶颈:上下文长、调用多、提示词冗、搜索大、重复操作
- 提示词优化:删冗余、合相似、压结构、用表格
- 工具优化:批量、搜索、增量替代遍历
- 上下文优化:预算分配、摘要压缩、懒加载
📝 作业
- 基础题(难度⭐):审查你现有 Skill 的提示词,删除冗余内容,保持效果不变。
- 进阶题(难度⭐⭐):优化一个 Skill 的工具调用链,用搜索替代遍历,对比优化前后的调用次数。
- 挑战题(难度⭐⭐⭐):设计一个 Skill 性能基准测试方案,量化对比优化前后的响应时间、token 消耗和准确率。