Perplexity 如何设计 Agent Skills:从 Prompt Engineering 到 Context Engineering

📅 2026/7/16 3:27:37 👁️ 阅读次数 📝 编程学习
Perplexity 如何设计 Agent Skills:从 Prompt Engineering 到 Context Engineering

Perplexity 如何设计 Agent Skills:从 Prompt Engineering 到 Context Engineering

原文:
《Designing, Refining, and Maintaining Agent Skills at Perplexity》
https://research.perplexity.ai/articles/designing-refining-and-maintaining-agent-skills-at-perplexity


前言

Perplexity 这篇文章讨论的核心,其实不是 Prompt,而是:

如何把 Agent 的能力进行工程化管理。

他们提出了一个非常重要的概念:

Skill = 面向模型的上下文模块

它不是普通文档,也不是单纯 Prompt,而是一种:

  • 可路由

  • 可加载

  • 可维护

  • 可测试

的运行时上下文单元(Runtime Context Unit)。


一、什么是 Skill?

传统软件里:

  • Function 是能力

  • Service 是能力

而在 Agent 系统里:

Skill 才是能力载体

Perplexity 认为:

Skill 的本质是“上下文封装(Context Packaging)”。

它的目标不是给人看,而是:

给模型提供正确的运行时上下文

因此:

Skill 设计的核心问题变成了:

什么内容应该进入上下文? 什么时候进入? 以什么粒度进入?

二、为什么 Prompt Engineering 不够了?

传统 Prompt Engineering 的问题:

所有内容一次性塞进 System Prompt

这会导致:

  • Context 膨胀

  • Attention 分散

  • 指令冲突

  • 路由不稳定

Perplexity 提出的方向是:

Context Engineering

核心思想:

上下文应该像内存一样被管理。


三、Skill 的目录结构

Skill 并不是单个 markdown 文件。

典型结构:

my_skill/ ├── SKILL.md ├── scripts/ ├── references/ ├── assets/ └── examples/

其中:

目录作用
SKILL.md核心规则
scripts工具脚本
references参考资料
assets静态资源
examples示例

核心思想:

重要内容不要直接进入上下文


四、Progressive Loading(渐进式加载)

这是全文最重要的设计。

Perplexity 将 Skill 分成三层:


第一层:Skill Index

只包含:

name: description:

用于:

Skill Routing

通常 <100 tokens。


第二层:SKILL.md

真正加载 Skill 时:

读取核心规则。

内容包括:

  • 工作流

  • 约束

  • gotchas

  • 示例

一般控制在:

~5000 tokens

第三层:Heavy Assets

例如:

  • references/

  • examples/

  • assets/

这些:

按需读取

不会一开始进入上下文。


五、Description 其实是 Router

Perplexity 特别强调:

Description 最重要

因为它决定什么时候加载SKILL

错误写法:

This skill helps with React UI.

正确写法:

Load when user asks for dashboard-style React admin UI.

区别在于:

错误写法正确写法
面向人面向路由
描述功能描述触发条件

六、Skill Tree:为什么必须分层?

文章中提到:

Perplexity 曾尝试:

1945 个税法 Skill 平铺

结果:

路由效果极差

原因:

模型无法稳定从大量候选中选择。

于是改成:

Tax ├── Federal ├── State └── International

本质上:

分层检索

类似:

  • B-Tree

  • 多级召回

  • 分层路由


七、Skill 最大价值:不是流程,而是 Gotchas

Perplexity 提出一个非常重要的观点:

模型通常知道流程,但不知道坑。

例如:

不要修改 migration 文件 先 dry-run 不要覆盖 generated code

这些:

才是 Skill 最有价值的内容

因为它们直接决定:

  • 稳定性

  • 安全性

  • 工程正确性


八、Eval-Driven Development

Perplexity 强调:

Skill 开发第一步不是写 Skill

而是:

先写 Eval

主要包括:

Eval 类型作用
Routing Eval是否正确加载
File Read Eval是否读取正确文件
Progressive Loading Eval是否按需加载
End-to-End Eval最终任务质量

原因很简单:

Agent 的问题是行为问题

而不是代码问题。


九、Skill Maintenance:Append-Mostly

Perplexity 认为:

Skill 是 append-mostly 的

也就是说:

维护 Skill 时:

不是频繁改规则。

而是:

持续追加失败经验

例如:

## Gotchas - React Server Component 不支持 xxx - Windows 环境下某 API 会失败 - 不要修改 lockfile

这其实非常像:

工程经验沉淀


十、我认为最重要的几个思想

1. Context 是资源

不是:

token 越多越好

而是:

注意力越聚焦越好


2. Description 是 Router

不是:

文档简介

而是:

Skill 触发器


3. Skill 更像行为补丁

它不是教模型知识。

而是:

修正模型行为


4. Progressive Loading 非常关键

Agent 不应该:

一次性加载全部上下文

而应该:

按需加载


结语

Perplexity 这篇文章最大的价值在于:

它展示了:

Agent Engineering 正在演化成一种新的软件工程

在这个体系里:

Agent 世界传统系统类比
Context内存
Skill模块
DescriptionRouter
Eval测试
Progressive Loading虚拟内存
AttentionCPU Cache

未来 Agent 系统的竞争力,很可能不再只是模型本身。

而是:

谁能更高效地组织上下文。