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 模块
Description Router
Eval 测试
Progressive Loading 虚拟内存
Attention CPU Cache

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

而是:

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

相关推荐
一枕槐安48711 小时前
Prompt 工程实战:结构化提示词设计提升 LLM 输出稳定性
prompt·结构化输出·pydantic校验·llm稳定性·约束解码
聪明蛋子哟12 小时前
大模型应用“最后一公里”:从Prompt工程到MCP协议,如何实现跨系统的高可用集成?
网络·prompt
广州国启未来12 小时前
AI绘图实战:如何用Prompt打破室内图的“样板间感”?
prompt·aigc·生活
Zhao-Jichao16 小时前
AI Prompting for Everyone 课程笔记 - P06 模型提示词对比 AI Model Prompt Comparison
人工智能·笔记·prompt
鬼手点金2 天前
提示注入:上下文安全的核心威胁
人工智能·安全·microsoft·机器学习·缓存·prompt
forest_093 天前
当 AI 搜索开始「自我进化」,谁来进化它的核实?——「已核实」结论复核器:3 条结论挖出 2 个洞(附可运行代码)
人工智能·python·机器学习·prompt·agi
“AI国潮设计-小江”3 天前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
技灵AI3 天前
MiniMax H3 能做哪些视频?商品广告、人物表演与运镜怎么选
人工智能·prompt·aigc·音视频
TomEval4 天前
【测AI】第22篇:Agent 系统测试方法 — AI 学会“动手“了
人工智能·python·prompt·aigc·测试用例
沈健_算法小生4 天前
PI系列之Extensions: 用 TypeScript 改工具本身
prompt