Perplexity Agent Skills 设计方法论
业界首套 Agent Skills 工程化方法论——将"为 LLM 注入领域专长"从隐式实践提升为显式学科。 三层渐进式加载、Description 路由触发器、Gotchas Flywheel 持续精炼。
从 Prompt 到 Skill 的四代演化
Agent Skills 不是凭空出现的概念,而是从 2020 年 GPT-3 论文提出的 In-Context Learning 开始, 经过四代明确演化而成的工程化方法论。
In-Context Learning(Brown et al., NeurIPS 2020)
证明"通过输入可以控制输出"。局限:每轮手动、无法复用。
System Prompt / Custom Instructions
持久化、版本控制、团队共享。局限:全量加载、无优先级、指令互相干扰。
Tool Use / Function Calling(Schick et al., NeurIPS 2023)
按需调用、单次精确执行。局限:粒度是单个函数,无法表达复杂工作流。
Agent Skills(Anthropic 2025, Perplexity 2026)
多步骤工作流的条件注入 + Token 预算管理。Perplexity 首次将概念转化为可操作方法论——六步流程、量化预算、维护飞轮。
为什么现在变得紧迫?
模型已经够强
Frontier AI models are getting smarter. The best are becoming so capable that the products built around them are a bottleneck. — Perplexity 官方
模型在专化,不在收敛
2025 年 1 月,90%+ 企业任务集中在两个模型;到 12 月,无单一模型市场份额超 25%。平均每 17.5 天出现新前沿模型。
上下文窗口有限
"Every Skill is a tax"——每条注入知识的 Token 都有物理成本,必须精打细算。
三层 Token 经济学 + 学术根基
Perplexity 将上下文成本精确分为三个层级,每一层都有学术理论支撑。
| 层级 | 加载内容 | 预算 | 支付时机 | 学术支撑 |
|---|---|---|---|---|
| Index | 每个 Skill 的 name: description 对 | ~100 tokens/Skill | 每次会话、每个用户、永远支付 | StreamingLLM(attention sink 现象) |
| Load | 完整 SKILL.md body | ~5,000 tokens | Skill 激活后,直到上下文压缩 | LLMLingua(低密度 token 稀释高价值 token) |
| Runtime | scripts/、references/、assets/ | 无上限 | 仅当 Agent 读取时 | Lost in the Middle(U 型注意力曲线) |
税法实验:将美国国内税收法典 1,945 条放在单一文件夹,结果比不加载任何 Skill 还差。无关信息的噪声效应超过了有用信息的增益。
自生成 Skill 无效
SkillsBench 数据:模型自生成 Skill 平均效果 -1.3pp(从 30.6% 降至 32.0%,几乎无改善)。人类编写 +22.9pp,EvoSkills 五轮协同进化 +40.5pp。
结论:模型能消费程序性知识,但无法可靠地产出它。
跨模型不一致
Perplexity 明确指出 "Sonnet and GPT behave quite differently when it comes to Skills"。
一个在 Claude Sonnet 上完美工作的 Skill,可能在 GPT 上完全不触发。Skill 的 description 需要多模型交叉验证。
SKILL.md 格式与 Hub-and-Spoke
SKILL.md 已成为 Anthropic、OpenAI、Google、Microsoft 四方采纳的事实标准。 核心设计是 Hub-and-Spoke:SKILL.md 作为轻量枢纽,仅在需要时展开到子资源。
---
name: skill-name # 小写+连字符, ≤64字符
description: "Load when..." # 路由触发器, ≤1024字符
metadata:
short-description: "..."
---
# Skill Body (Markdown, ≤5000 tokens)
skill-name/
├── SKILL.md # 枢纽: frontmatter + 精炼指令
├── scripts/ # 确定性逻辑 → Agent 直接执行
├── references/ # 重型文档 → 仅条件加载
├── assets/ # 输出模板 → Agent 复制填充
└── config.json # 首次运行配置(问一次,存下来)
✅ 正确: Description 是路由触发器
- "Load when..." 开头
- 描述用户的意图和真实查询关键词
- 50 词以内,每个词都成本极高
- 例: "Load when the user wants to babysit a PR, watch CI, make sure something lands."
❌ 错误: Description 是文档
- 描述 Skill 做什么(功能文档式)
- 总结工作流程
- 作为内部文档使用
- 例: "This skill helps engineers monitor PRs by watching CI status."
Gotchas Flywheel:陷阱飞轮
Agent 失败
追加 gotcha(负样本)到 Skill
脱靶加载
收紧 description + 添加负面 eval
该加载未加载
添加关键词 + 正面 eval
"Would the agent get this wrong without this instruction? If the sentence does not need to be there, it cannot afford to be there."
事实标准 + 社区爆发 + 安全隐患
SKILL.md 扩散到至少 20+ 个平台。GitHub 上 843 个公开仓库,40K+ Skills。 但安全风险严峻:9% 已发布 Skills 属于关键风险。
| 平台 | Skills 存储路径 | 状态 |
|---|---|---|
| Claude Code | ~/.claude/skills/ | 正式支持 |
| Codex CLI | ~/.codex/skills/ | 正式支持 |
| Gemini CLI | ~/.gemini/skills/ | 正式支持 |
| GitHub Copilot | 项目级目录 | 社区支持 |
| Cursor | .cursor/rules/ | 转换器支持 |
| Aider | CONVENTIONS.md | 转换器支持 |
40% Skills 触及敏感数据
Bosch/CMU 研究:近 40% 已发布 Skills 访问敏感上下文或执行写操作,9% 属于"关键风险"。46% 存在名称冲突。Anthropic 警告"Skills 等同于安装软件"。
HN 三种声音
蛇油论 (~30%): 模型可随时忽略指令。实用主义 (~40%): 30 年工程师报告"质变"。框架疲劳 (~20%): 比单行 prompt 效果更差。
增长 18.5 倍
最大单仓库收录 235 个 Skills(5,200+ stars)。awesome-claude-skills 整理 1,000+ 社区 Skills。20 天内生态增长 18.5 倍。
9 大系统全景对比
Perplexity 在 Token 经济学工程化和 Eval 体系上领先所有竞品至少一个身位。 Claude Code 走个人化路线,Cursor 走 IDE 配置路线。
| 系统 | 指令格式 | 渐进加载 | 路由方式 | Eval 体系 | 设计哲学 |
|---|---|---|---|---|---|
| Perplexity Computer | SKILL.md(目录式) | 三级 Token 预算 | Description 即路由触发器 | 完整四类 Eval | Context as Infrastructure |
| Claude Code | CLAUDE.md + SKILL.md | Skill 按需加载 | 隐式路由 | 无内置 Eval | Context as Personalization |
| Cursor | .mdc(四种触发模式) | Agent Requested 按需 | description + glob | 无内置 Eval | Context as IDE Config |
| Codex CLI | AGENTS.md + SKILL.md | description → 完整 Skill | description 驱动 | 无公开 Eval | 快速跟进 |
| GitHub Copilot | copilot-instructions.md | 无(全量注入) | 无显式路由 | 无 Eval | Context as Convention |
| Aider / Jules | CONVENTIONS.md | 无 | 无 | 无 | Minimal Convention |
Perplexity 独特优势
- Token 经济学工程化:唯一量化三级预算
- 路由优先方法论:Description 是路由不是文档
- 评估驱动生命周期:Eval 前置于开发(Step 0)
- Gotchas Flywheel:独创 append-mostly 维护
Perplexity 方法局限
- 极高维护成本:不适合小团队
- 生态封闭:用户无法自定义 Skill
- 系统复杂度高:三级加载实现门槛高
- 互操作性缺失:与 Claude Code 不完全兼容
编译器 + 图书馆的双重类比
Agent Skill 本质上是面向 LLM 的延迟加载知识分发系统。 用编译器的工程机制和图书馆的信息经济学来结构化映射。
| Agent Skill 概念 | 编译器概念 | 图书馆概念 | 为什么准确 |
|---|---|---|---|
| Index 层 | 预处理符号扫描 | 目录卡片柜 | 廉价全局扫描,建立路由索引 |
| Description | 函数签名/导出符号 | 主题词(LCSH) | 匹配规则,不是内容描述 |
| Load 层 | 编译到 IR | 目录 → 文摘 | 中等成本的语义加载 |
| Runtime 文件 | 动态链接库(dlopen) | 开架 → 密集书库 | 按需、高成本、延迟加载 |
| scripts/ | 预编译静态库 | — | 给它可组合的代码 |
| Gotchas | -Wall 编译警告 | — | 负样本驱动的增量防御 |
| "Every Skill is a tax" | — | 馆藏维护成本 | 每多一个 = 分类 + 排架成本 |
| 多层嵌套 | 命名空间 | DDC/LCC 分类层级 | 分层降低选择复杂度 |
类比失效的边界
Skill 面向的消费者既不是确定性机器(编译器),也不是有常识的人类(图书馆读者),而是一个"什么都知道但偶尔在最基础的事上犯错"的概率性智能体。此外,编译器中添加新目标文件不会让已有文件编译失败,但添加新 Skill 可能让所有其他 Skill 的路由质量下降——全局负外部性。
10 场景 + 风险矩阵 + 成本估算
基于 Perplexity 方法论和社区实践的具体落地路径,包含量化成本和风险缓解。
| # | 场景 | 适用度 | 核心原因 | 推荐方案 |
|---|---|---|---|---|
| 1 | 个人开发者自建 Skills | 高 | 已在做 + 方法论契合 | 改 description 为 "Load when..." |
| 2 | 企业团队共享 Skills 库 | 高 | 统一规范 | 总量 15-20 个,每个有 owner |
| 3 | 代码审查自动化 | 极高 | 模型能力够 + 需领域指导 | gotchas 聚焦团队规范 |
| 4 | 客户支持 Agent | 极高 | 三层渐进理想场景 | 按产品/问题类型多层嵌套 |
| 5 | 数据分析流水线 | 高 | 确定性逻辑适合 scripts/ | "Give it code to compose" |
| 6 | 多 Agent 协作系统 | 高 | 三级分类 + per-user 隔离 | 用户级优先级高于系统级 |
| 7 | 开源项目贡献规范 | 中高 | gotchas 对新贡献者价值高 | AGENTS.md + 可选 SKILL.md |
| 8 | 文档生成与维护 | 中 | 模型基础能力已较强 | 先跑无 Skill 基线 |
| 9 | 个人知识管理 Agent | 高 | 个人偏好 = 训练数据中缺失 | 按操作拆分多个小 Skill |
| 10 | 安全审计 | 中高 | Trail of Bits 已发布 review Skill | gotchas 聚焦已知漏洞模式 |
风险矩阵
| 风险 | 概率 | 影响 | 缓解措施 |
|---|---|---|---|
| 上下文污染 | 高 60% | 高 | 无 Skill 基线对比测试 |
| 路由脱靶 | 中 40% | 中高 | "Load when..." + 真实查询关键词 |
| 自生成陷阱 | 高 70% | 中 | 必须人类专家审校 |
| 维护漂移 | 高 50% | 中 | 快变内容放 runtime 层 |
| 模型更新失效 | 中 30% | 中高 | 建立跨模型 eval |
| 过度工程化 | 高 60% | 低中 | "Pascal 测试":删一句看行为变差没 |
$30-75 / 月
10 Skill Index 层: $4.50/月
每会话激活 1 个 Load 层: $22.50/月
Runtime 层: 视频率而定
总计: ~$0.02-0.05/会话(50 会话/天)
维护时间: 10 个 Skill 约 4-8 小时/月
4 阶段实施
Phase 0(1-2天): 现状审计,Pascal 测试
Phase 1(1周): 核心 Skill 优化,Hub-and-Spoke
Phase 2(2-4周): PR 评审清单,Token 成本告警
Phase 3(持续): Gotchas Flywheel + 季度审计
跨维度发现
五个从维度交叉中涌现的核心洞察。
洞察 1: Skill 不是文档,是行为编程
人类的好习惯(简洁、显式、稀疏的代码风格)在 Skills 上下文中变成了反模式。LLM 已经知道 git 命令怎么用,不需要你列出命令序列;它需要的是你告诉它哪里容易出错。
洞察 2: 分层是信息选择的普适策略
从编译器命名空间到图书馆杜威分类法,从人类认知 7±2 到 LLM 路由层次化选择——分层是处理复杂信息选择问题的普适策略。Perplexity 税法 Skill 是这个原理在 LLM 上下文管理中的首次大规模验证。
洞察 3: 社区"蛇油"论有道理但不完整
SkillsBench 数据(自生成 -1.3pp,人工策展 +16.2pp)支持"低质量 Skill 有害"。但关键区别在于 Skill 的质量而非概念本身。16/84 个任务出现负面影响——Skill 是需要精心设计的手术工具。
洞察 4: 分发是下一个战场,安全是最大隐患
最有用的 Skill 都很小(一个 md + 可能一个脚本),不值得变 GitHub repo,但跨机器/团队共享又需要 package manager。同时 9% 的 Skills 属于关键风险,当前缺乏平台级沙箱和权限控制。
洞察 5: EvoSkills 暗示自动化的未来
EvoSkills 5 轮协同进化达到 71.1% pass rate(远超人类 53.5%),暗示自动化 Skill 生成/精炼是可行的,但需要迭代验证循环。未来方向:从纯手工转向"人机协同迭代精炼"。
关键信息源
以 Perplexity 官方方法论为核心锚点,辅以 8 篇学术论文、3 份开源代码库交叉验证。