跳到主要内容

Skills 模块概述 ​

什么是 Agent Skills ​

Agent Skills 是一种为 AI Agent 扩展专业知识和工作流程的轻量级开放格式。 它最初由 Anthropic 开发,随后作为开放标准发布,并由越来越多的 Agent 产品共同采用和维护。

按照官方规范,一个 Skill 是一个至少包含 SKILL.md 的目录。 SKILL.md 使用 YAML front matter 声明 name、description 等元数据,并使用 Markdown 编写任务说明; 目录还可以包含 scripts/、references/、assets/ 以及完成任务需要的其他文件。

Skill 将流程知识、领域经验和配套资源组织成可移植、可版本化的目录。兼容 Agent 可以先读取所有 Skill 的名称和描述,在任务匹配时再加载完整说明,随后按需执行脚本或读取参考资料。这种渐进式披露方式让 Agent 可以同时发现大量 Skill,而不必在会话开始时把全部内容放入上下文。

Agent Skills 是独立于 Agents-Flex 的开放标准。规范、参考实现和讨论可以在 Agent Skills GitHub 仓库中查看。

Agents-Flex 如何支持 Agent Skills ​

Agents-Flex 负责发现和加载 Skill 目录,将 Skill 元数据及完整说明按需提供给模型,并为模型组合 Shell、文件读写、搜索和产物发布等工具。Skill 内容仍然遵循 Agent Skills 的目录格式,不需要绑定到 某个特定模型或 Sandbox 实现。

SkillRuntime 定义 Skill 执行时使用的命令环境和文件系统。同一套 Skill 可以在本机、容器或远程 Sandbox 中执行;切换 Runtime 不需要修改 Skill 内容,也不需要让模型学习不同的文件 API。

为什么需要 Runtime ​

如果直接在宿主机执行 Skill 脚本,脚本会继承当前 Java 进程的权限,可能读取本机文件、访问内网、 执行系统命令或消耗大量 CPU 和内存。对于来自第三方的 Skill、用户可控输入或生产环境任务,这通常 不是可接受的安全边界。

SkillRuntime 把以下能力放到同一个执行边界内:

  • Skill 目录准备和远程上传;
  • Shell 命令执行、工作目录、环境变量和超时;
  • 文本文件读取、写入和精确编辑;
  • Glob 文件匹配和 Grep 内容搜索;
  • PPTX、PDF、图片、压缩包等二进制产物下载;
  • Runtime 或 Sandbox 生命周期管理。

SkillArtifactStore ​

SkillArtifactStore 是 Agents-Flex 提供的安装与存储抽象,不属于 Agent Skills 格式规范。它解决的是 Skill 已经编写完成后,如何在单体或分布式应用中安装、保存、删除并提供给执行节点的问题:

  • install():校验并持久化一个确定版本的 Skill 安装包;
  • materialize():把指定 Artifact 转换为当前节点可读取、包含 SKILL.md 的稳定本地目录;
  • delete():幂等删除不再使用的 Artifact;
  • 文件系统实现适用于单体部署;OSS、COS、OBS、TOS 和 S3 实现适用于共享对象存储及分布式部署;
  • 远程实现负责摘要校验、安全解压和节点缓存,SkillsTool 与 SkillRuntime 不需要感知远程存储来源。

SkillArtifactStore 管理安装包及其本地物化,SkillRuntime 管理执行环境。两者职责独立:Artifact 可以先从对象存储物化到应用节点,再由 Local、OpenSandbox 或 AIO Sandbox Runtime 准备和执行。

具体安装方式和对象存储实现见 Skill Artifact Store。

模块组成 ​

text
agents-flex-skills
├── Skill / Skills                       Skill 模型与发现加载
├── SkillsTool                           Skill 工具和 Runtime 工具组装
├── artifact/
│   ├── SkillArtifact                    已安装 Skill 的确定版本引用
│   ├── SkillArtifactStore               Artifact 存储与本地物化接口
│   ├── SkillInstallRequest / SkillPackage 存储无关的安装输入
│   └── FileSystemSkillArtifactStore     单体部署的文件系统实现
├── file/
│   ├── FilePublishRequest                输入流和待发布文件信息
│   ├── FilePublisher                     应用自定义文件发布接口
│   └── PublishedFile                     URL、有效期和存储结果
├── runtime/
│   ├── SkillRuntime                     统一执行边界
│   ├── SkillExecutionRequest            命令、目录、超时和环境变量
│   ├── SkillExecutionResult             退出码、输出和超时状态
│   ├── SkillRuntimeFileSystem            文本、二进制、列表和下载 API
│   └── SkillRuntimeFiles                 远程上传过滤策略
├── local/
│   └── LocalSkillRuntime                宿主机实现
└── tools/
    ├── SkillRuntimeShellTools           bash
    ├── SkillRuntimeFileTools            read / write / edit
    ├── SkillRuntimeSearchTools          ls / glob / grep
    └── SkillRuntimeFilePublishTools     publish_file(可选)

agents-flex-skills-sandbox
├── agents-flex-skills-open-sandbox      OpenSandbox SDK 实现
└── agents-flex-skills-aio-sandbox       AIO Sandbox HTTP API 实现

agents-flex-skills-artifact
├── agents-flex-skills-artifact-core      通用对象存储 Artifact Store 与节点缓存
├── agents-flex-skills-artifact-aliyun-oss       阿里云 OSS SDK V2 适配器
├── agents-flex-skills-artifact-tencent-cos      腾讯云 COS 适配器
├── agents-flex-skills-artifact-huawei-obs       华为云 OBS 适配器
├── agents-flex-skills-artifact-volcengine-tos   火山引擎 TOS 适配器
└── agents-flex-skills-artifact-s3                AWS S3 与 S3-compatible 适配器
Maven 模块用途是否创建 Sandbox
agents-flex-skills核心 API、工具和本地 Runtime否
agents-flex-skills-artifact-core通用对象存储接口、摘要校验与节点缓存否
agents-flex-skills-artifact-aliyun-oss在阿里云 OSS 持久化 Skill ZIP,并缓存到当前节点否
agents-flex-skills-artifact-tencent-cos在腾讯云 COS 持久化 Skill ZIP,并缓存到当前节点否
agents-flex-skills-artifact-huawei-obs在华为云 OBS 持久化 Skill ZIP,并缓存到当前节点否
agents-flex-skills-artifact-volcengine-tos在火山引擎 TOS 持久化 Skill ZIP,并缓存到当前节点否
agents-flex-skills-artifact-s3在 AWS S3 或 S3-compatible 存储中持久化 Skill ZIP否
agents-flex-skills-open-sandbox连接 OpenSandbox Server,按需创建 Sandbox 实例是
agents-flex-skills-aio-sandbox连接已经运行的 AIO Sandbox 服务否

下一步 ​