技能签名和审查
通过版本控制、校验和和审批工作流实施技能治理,确保只有审查通过的代码才会被执行。
技能签名和审查是一项安全功能,对自定义技能施加了审批门限。在任何代理可以使用技能之前,必须由工作空间管理员或审查者进行审查和批准。每项技能都经过加密签名,并配有校验和以检测篡改。
为什么技能需要审查
自定义技能功能强大 — 它们为代理提供了新的功能,并通常可以访问外部系统。不经过审查:
- 恶意代码 — 不正当的技能可能会盗取数据或造成损害
- 意外行为 — 开发者可能无意中引入错误或反模式
- 合规缺口 — 受监管的团队需要审计在生产环境中运行的代码
- 供应链风险 — 如果技能从注册表导入,您需要验证其内容
技能审查如何工作
- 作者创建或编辑技能 — 以 draft 状态开始
- 作者提交审查 — 状态变更为 pending_review
- 审查者检查 — 查看代码、文件附件和差异(如果是更新)
- 审查者决定 — 批准(代理可以使用)或 拒绝(并反馈)
- 如果批准 — 技能现已激活;代理可将其加载到任务中
- 如果稍后编辑 — 批准被清除,需要重新审查
技能生命周期
draft
新技能或未批准的编辑。代理 不能 使用它。只有作者和工作空间管理员可以完整查看它。
pending_review
技能等待审查者决定。它出现在 技能 → 待审查 队列中。代理仍然不能使用它。
approved
审查者已同意。技能是 活跃的,代理可将其加载到任务中。批准通过校验和在加密上与精确内容绑定。
rejected
审查者拒绝了该技能并附带反馈。作者可以编辑并重新提交,或放弃。代理不能使用它。
revoked
技能的内容在批准后被篡改(校验和不匹配)。技能立即被禁用,代理无法加载它。这是一个需要调查的安全信号。
版本控制和校验和
每次创建或编辑技能时,AACWorkflow:
- 计算技能内容和任何附加文件的 校验和(SHA256)
- 与批准一起存储校验和,以便批准绑定到 精确内容
- 保留 版本历史,以便审查者可以看到差异
当代理在任务时间尝试使用技能时:
- AACWorkflow 验证存储的校验和是否与当前内容匹配
- 如果校验和不匹配(内容被编辑或篡改),技能被标记为 revoked
- 代理无法加载它,并收到安全问题的通知
检测到篡改但已防止。 如果技能的校验和不匹配,代理会自动跳过它。如果发生这种情况,请查看审计日志 — 这可能表示数据库不一致或篡改尝试。
创建和提交技能进行审查
创建技能
- 转到 技能 → 创建技能
- 填写名称、描述和内容
- 根据需要附加文件(Python 脚本、数据文件等)
- 点击 创建
技能以 draft 状态开始。只有您和工作空间管理员可以看到它。
提交审查
- 打开技能
- 再次审查内容
- 点击 提交审查
- 可选地向审查者添加消息
技能移到 pending_review 并出现在审查者队列中。
审查前编辑
如果您处于 draft 或 rejected 状态,可以自由编辑。点击 编辑,进行更改,然后保存。
如果技能已 批准 并且您需要进行更改:
- 点击 编辑
- 进行更改并保存
- 技能自动移回 pending_review
- 创建新版本,审查者可以看到更改的差异
审查技能
查看待审查的技能
- 转到 技能 → 待审查
- 查看等待批准的技能列表
审查技能
- 打开待审查的技能
- 阅读描述并检查代码
- 如果这是更新(版本 > 1),点击 查看差异 以查看更改内容
- 决定:
- 批准 — 代码安全且符合您的标准;代理可以使用它
- 拒绝 — 代码有问题;向作者提供反馈
差异视图
审查更新时,差异视图显示:
- 删除的行(红色)— 作者删除的代码
- 添加的行(绿色)— 新代码
- 上下文 — 每个更改前后几行
使用它来识别:
- 对关键部分的意外更改
- 新的外部调用或依赖项
- 范围蔓延或功能偏离
批准技能
- 在 pending_review 中打开技能
- 点击 批准
- 可选地添加审查者备注(这些对作者可见,并出现在审计日志中)
- 点击 确认
技能移到 approved 状态,代理可以立即开始使用它。
拒绝技能
- 在 pending_review 中打开技能
- 点击 拒绝
- 添加必需的反馈 — 解释需要改进的内容
- 点击 确认
技能移到 rejected 状态。作者看到您的反馈,可以编辑并重新提交。
工具限制
审查时,审查者可以选择设置 allowed_tools — 技能被允许使用的外部工具列表。例如:
- 技能
github-pr-reviewer可能仅限于github_api - 技能
aws-cost-checker可能仅限于aws_api
如果技能尝试使用此白名单之外的工具:
- 限制在任务运行时被强制执行
- 代理收到错误且无法继续
- 该尝试被记录在审计跟踪中
这使审查者能够限制爆炸半径,即使技能后来被发现有问题。
审计和合规
每个技能操作都被记录:
- 技能创建、编辑和删除
- 提交审查
- 批准、拒绝和撤销
- 代理何时加载和使用技能
- 校验和不匹配和篡改尝试
在 设置 → 审计日志 中访问审计日志,并按"技能"筛选以:
- 追踪谁批准了哪些代码
- 查看何时编辑了技能
- 调查安全事件(撤销的技能、校验和失败)
最佳实践
- 彻底审查 — 技能代表代理运行;像对待代码审查一样对待它们
- 预期问题 — 要求作者解释关键部分
- 使用工具限制 — 将每项技能限制为其所需的最少工具
- 轮流审查 — 不要让一个人批准所有内容
- 检查更新 — 编辑技能时仔细审查差异
- 如果可疑则撤销 — 如果技能行为异常,撤销它并调查
批量操作
企业管理员可以:
- 撤销技能 — 立即在工作空间范围内禁用它(如果怀疑篡改)
- 需要重新批准 — 强制所有批准的技能进入 pending_review(例如在政策变更后)
- 审计所有版本 — 查看完整的版本历史和差异
使用 设置 → 技能 → 治理 执行这些批量操作。