文档大纲

如何设计、优化与维护AI Agent Skills (译)


原文网址:
https://research.perplexity.ai/articles/designing-refining-and-maintaining-agent-skills-at-perplexity

Perplexity 的前沿 AI 代理产品,建立在封装于模块化 AI 代理技能中的技术诀窍与领域专业知识基础之上。开发高质量技能所需的直觉与最佳实践,与构建传统软件的要求截然不同。

五大 Python 之道 vs 技能之道

Python 之禅 技能之禅
简洁胜于复杂 技能是一个文件夹,而非单个文件。复杂性本身就是特性
显式胜于隐式 激活是隐式模式匹配。采用渐进式披露
稀疏胜于密集 上下文成本高昂。每个令牌都要承载最大信息量
特例不足以打破规则 陷阱就是最重要的特例(它们是价值最高的内容)
如果实现易于解释,那可能是个好主意 如果它易于解释,说明模型已经知道了。删掉它

技能的四重含义

1. 技能是一个目录
– SKILL.md:前置元数据和核心指令
– scripts/:AI 代理直接运行的代码
– references/:重量级文档,按需条件加载
– assets/:模板、模式和数据文件
– config.json:首次运行用户配置

2. 技能是一种格式
技能名称必须全部为小写字母,描述是路由触发器,告诉模型何时应该加载该技能。

3. 技能是可调用的
AI 代理在运行时加载技能,并非始终捆绑在上下文中。

4. 技能是渐进式的

层级 加载内容 预算 支付时机
索引 每个非隐藏技能的名称和描述 每个技能约 100 令牌 每个会话、每个用户,始终支付
加载 完整的 SKILL.md 正文 约 5000 令牌 运行时
运行 scripts/、references/、assets/ 中的文件 无上限 仅当 AI 代理读取时

何时需要技能?

需要技能的情况:
– 没有特殊上下文时 AI 代理会出错
– 需要在多次运行中保持极高的一致性
– 知识不在训练数据中或涉及审美判断

不需要技能的情况:
– 模型已经知道如何做的事情(如 git 命令)
– 与大多数请求相关的通用知识
– 变化速度快于维护能力的内容

每个技能都是一种税

"我之所以写了这么长的信,是因为我没有时间把它写得更短。" —— 帕斯卡

核心测试: 没有这条指令,AI 代理会出错吗?如果不是必须存在的,就不能存在。

如何构建技能

步骤 0:编写评估用例
– 真实用户查询
– 已知失败案例
– 邻域混淆场景

步骤 1:编写描述
– 以"当… 时加载"开头
– 目标 50 个词以内
– 描述用户意图,不总结工作流程

步骤 2:编写正文
– 跳过显而易见的内容
– 关注陷阱和负面例子
– 不要写出一系列命令

步骤 3:使用层次结构
– scripts/:确定性逻辑
– references/:按需加载的文档
– assets/:输出模板
– config.json:首次运行配置

步骤 4-5:迭代与发布

陷阱飞轮

情况 操作
AI 代理失败 添加陷阱
错误加载技能 收紧描述,添加负面评估
应该加载时没加载 添加关键词和正面评估
系统提示变化 检查冲突或重复

核心要点

  1. 在技能之前编写评估
  2. 描述是最难的部分
  3. 陷阱是价值极高的内容
  4. 添加新技能可能破坏现有技能
  5. 每个技能都是一种税

原文链接

阅读量: 306