介绍一下 Anthropic 推出的 Agent Skills
Anthropic 最近虽然口碑差,但人才密度还是高,继 MCP 之后他们又新推出来 Agent Skills,这个思路非常好,既给了 Agent 确定性,也给了其几乎无限的上下文,顺便帮你省了钱。也算是和 MCP 互补,一个连接外部系统,一个连接本地脚本和文档。 Agent Skills 的核心思想也很简单,就是通过提供一个由Skill、脚本和资源组成的结构化文件夹,将领域专家的知识打包在这些文件夹中,让 Agent 能够动态加载这些“Skills”。 Skill 的构成与工作原理大概是下面这样: 一个 Agent Skill 本质上就是一个包含 SKILL.md 文件的目录,该文件有一定的规范,比如必须以包含元数据(如name和description)的 YAML 前置内容开头等等。 Agent Skills 通过分层加载信息来高效管理上下文窗口: 第一层: Agent 在启动时仅加载所有已安装 Skill 的name 和 description,以便知道何时使用某个 Skill。 第二层: 当 Agent 认为某个 Skill 与当前任务相关时,它会读取该技能的 SKILL.md 文件的完整内容。 第三层及以上: 对于更复杂的任务,技能可以包含额外的辅助文件(如 reference.md 或脚本)。Agent 只在需要时才会读取这些文件,这个意思基本就是 Skills 可以包含几乎无限的上下文信息。 Skill 中可以包含预先编写好的固定的代码(如 Python 脚本)。Agent 可以像使用工具一样执行这些代码,以处理传统代码更擅长的确定性或高效率的任务,而不需要把代码本身加载到上下文中。 这个的好处很明显,把AI 生成的质量不稳定的代码变成稳定可控的代码,既大大缩小上下文,也节省了很多成本。 这篇文章中也举了两个 Skills 的典型应用例子: 通过AI 生成的代码来对列表进行排序,远比简单地运行一个排序算法要昂贵得多。除了效率问题,许多应用还需要只有代码才能提供的确定性可靠性。 PDF Skills 包含一个预先编写的 Python 脚本,用于读取 PDF 并提取所有表单字段。Claude 可以在不将脚本或 PDF 加载到上下文的情况下运行此脚本。而且由于代码是确定性的,这个工作流程是一致且可重复的。...