企业级 Skills
在企业规模部署 Agent Skills 的治理、安全审查、评估和组织指南。
本指南面向需要在组织中治理 Agent Skills 的企业管理员和架构师。涵盖如何审查、评估、部署和管理大规模 Skills。有关编写指南,请参阅最佳实践。有关架构详情,请参阅 Skills 概览。
安全审查和审核
在企业中部署 Skills 需要回答两个不同的问题:
- Skills 总体上安全吗? 有关平台级安全详情,请参阅概览中的安全注意事项部分。
- 如何审查特定的 Skill? 使用下面的风险评估和审查清单。
风险等级评估
在批准部署之前,根据这些风险指标评估每个 Skill:
| 风险指标 | 关注内容 | 关注级别 |
|---|---|---|
| 代码执行 | Skill 目录中的脚本(*.py、*.sh、*.js) | 高:脚本以完全环境访问权限运行 |
| 指令操纵 | 指示忽略安全规则、对用户隐藏操作或有条件地改变 Claude 行为的指令 | 高:可能绕过安全控制 |
| MCP 服务器引用 | 引用 MCP 工具的指令(ServerName:tool_name) | 高:扩展超出 Skill 本身的访问权限 |
| 网络访问模式 | URL、API 端点、fetch、curl 或 requests 调用 | 高:潜在数据泄露向量 |
| 硬编码凭据 | Skill 文件或脚本中的 API 密钥、令牌或密码 | 高:在 Git 历史和上下文窗口中暴露的密钥 |
| 文件系统访问范围 | Skill 目录外的路径、宽泛的 glob 模式、路径遍历(../) | 中:可能访问非预期数据 |
| 工具调用 | 指示 Claude 使用 bash、文件操作或其他工具的指令 | 中:审查执行的操作 |
审查清单
在部署任何来自第三方或内部贡献者的 Skill 之前,完成以下步骤:
- 阅读所有 Skill 目录内容。 审查 SKILL.md、所有引用的 markdown 文件以及任何捆绑的脚本或资源。
- 验证脚本行为与声明目的一致。 在沙盒环境中运行脚本,确认输出与 Skill 的描述一致。
- 检查对抗性指令。 查找指示 Claude 忽略安全规则、对用户隐藏操作、通过响应泄露数据或根据特定输入改变行为的指令。
- 检查外部 URL 获取或网络调用。 在脚本和指令中搜索网络访问模式(
http、requests.get、urllib、curl、fetch)。 - 验证无硬编码凭据。 检查 Skill 文件中的 API 密钥、令牌或密码。凭据应使用环境变量或安全凭据存储,不应出现在 Skill 内容中。
- 识别 Skill 指示 Claude 调用的工具和命令。 列出所有 bash 命令、文件操作和工具引用。当 Skill 同时使用文件读取和网络工具时,考虑组合风险。
- 确认重定向目标。 如果 Skill 引用外部 URL,验证它们指向预期的域。
- 验证无数据泄露模式。 查找读取敏感数据然后写入、发送或编码以进行外部传输的指令,包括通过 Claude 的对话响应。
未经完整审计,切勿部署来自不受信任来源的 Skills。恶意 Skill 可能指示 Claude 执行任意代码、访问敏感文件或向外部传输数据。以与在生产系统上安装软件相同的严谨性对待 Skill 安装。
部署前评估 Skills
如果 Skills 触发不正确、与其他 Skills 冲突或提供糟糕的指令,可能会降低智能体性能。要求在任何生产部署前进行评估。
评估内容
在部署任何 Skill 之前,为这些维度建立批准门槛:
| 维度 | 衡量内容 | 失败示例 |
|---|---|---|
| 触发准确性 | Skill 是否为正确的查询激活,对不相关的查询保持不活跃? | Skill 在每次提到电子表格时都触发,即使用户只想讨论数据 |
| 隔离行为 | Skill 单独工作是否正确? | Skill 引用其目录中不存在的文件 |
| 共存性 | 添加此 Skill 是否会降低其他 Skills 的性能? | 新 Skill 的描述过于宽泛,从现有 Skills 抢走触发 |
| 指令遵循 | Claude 是否准确遵循 Skill 的指令? | Claude 跳过验证步骤或使用错误的库 |
| 输出质量 | Skill 是否产生正确、有用的结果? | 生成的报告有格式错误或数据缺失 |
评估要求
要求 Skill 作者提交评估套件,每个 Skill 3-5 个代表性查询,覆盖 Skill 应该触发、不应该触发和模糊边缘情况。要求在组织使用的模型(Haiku、Sonnet、Opus)上进行测试,因为 Skill 的有效性因模型而异。
有关构建评估的详细指南,请参阅最佳实践中的评估和迭代。有关一般评估方法,请参阅开发测试用例。
使用评估进行生命周期决策
评估结果表明何时采取行动:
- 触发准确性下降:更新 Skill 的描述或指令
- 共存冲突:合并重叠的 Skills 或缩小描述
- 输出质量持续低下:重写指令或添加验证步骤
- 跨更新持续失败:弃用该 Skill
Skill 生命周期管理
规划
识别重复性、易出错或需要专业知识的工作流。将这些映射到组织角色,并确定哪些适合作为 Skills。
创建和审查
测试
要求在隔离环境(单独 Skill)和与现有 Skills 一起(共存测试)中进行评估。在批准生产之前,验证触发准确性、输出质量以及在活跃 Skill 集中无回归。
部署
通过 Skills API 上传以实现工作区范围访问。参阅使用 API 的 Skills了解上传和版本管理。在内部注册表中记录 Skill 的目的、所有者和版本。
监控
跟踪使用模式并收集用户反馈。定期重新运行评估以检测工作流和模型演变时的漂移或回归。使用分析目前不可通过 Skills API 获取。实现应用级日志以跟踪请求中包含的 Skills。
迭代或弃用
要求在推广新版本之前通过完整评估套件。当工作流变更或评估分数下降时更新 Skills。当评估持续失败或工作流退役时弃用 Skills。
大规模组织 Skills
召回限制
作为一般准则,限制同时加载的 Skills 数量以保持可靠的召回准确性。每个 Skill 的元数据(名称和描述)在系统提示中竞争注意力。当太多 Skills 活跃时,Claude 可能无法选择正确的 Skill 或完全错过相关的 Skill。使用评估套件测量添加 Skills 时的召回准确性,当性能下降时停止添加。
请注意,API 请求每个请求最多支持 8 个 Skills(参阅使用 API 的 Skills)。如果角色需要的 Skills 超过单个请求支持的数量,考虑将窄范围的 Skills 合并为更广泛的,或根据任务类型将请求路由到不同的 Skill 集。
从具体开始,后续合并
鼓励团队从窄范围的、工作流特定的 Skills 开始,而不是宽泛的、多用途的。当组织中出现模式时,将相关的 Skills 合并为基于角色的捆绑包。
使用评估来决定何时合并。仅当合并后的 Skill 的评估确认与其替代的单个 Skills 性能相当时,才将窄范围的 Skills 合并为更广泛的。
示例进展:
- 开始:
formatting-sales-reports、querying-pipeline-data、updating-crm-records - 合并:
sales-operations(当评估确认性能相当)
命名和编目
在组织中使用一致的命名约定。最佳实践中的命名约定部分提供格式化指南。
为每个 Skill 维护内部注册表,包含:
- 目的:Skill 支持的工作流
- 所有者:负责维护的团队或个人
- 版本:当前部署版本
- 依赖:所需的 MCP 服务器、包或外部服务
- 评估状态:上次评估日期和结果
基于角色的捆绑包
按组织角色分组 Skills,保持每个用户的活跃 Skill 集专注:
- 销售团队:CRM 操作、管道报告、提案生成
- 工程:代码审查、部署工作流、事件响应
- 财务:报告生成、数据验证、审计准备
每个基于角色的捆绑包应仅包含与该角色日常工作流相关的 Skills。
分发和版本控制
源代码控制
将 Skill 目录存储在 Git 中以进行历史跟踪、通过拉取请求进行代码审查和回滚能力。每个 Skill 目录(包含 SKILL.md 和任何捆绑文件)自然映射到 Git 跟踪的文件夹。
基于 API 的分发
Skills API 提供工作区范围的分发。通过 API 上传的 Skills 对所有工作区成员可用。参阅使用 API 的 Skills了解上传、版本管理和管理端点。
版本策略
- 生产:将 Skills 固定到特定版本。在推广新版本之前运行完整评估套件。将每次更新视为需要完整安全审查的新部署。
- 开发和测试:使用最新版本在生产推广之前验证变更。
- 回滚计划:维护前一个版本作为后备。如果新版本在生产中评估失败,立即恢复到上一个已知良好版本。
- 完整性验证:计算已审查 Skills 的校验和,并在部署时验证。在 Skill 仓库中使用签名提交以确保来源。
跨平台注意事项
自定义 Skills 不会跨平台同步。上传到 API 的 Skills 在 claude.ai 或 Claude Code 中不可用,反之亦然。每个平台需要单独的上传和管理。
将 Skill 源文件维护在 Git 中作为唯一的真实来源。如果您的组织跨多个平台部署 Skills,请实现自己的同步过程以保持一致。完整详情请参阅跨平台可用性。