Skip to content

🧪 Beta — 能力已可用,接口契约可能微调。

吊销与应急处置

"能不能立刻停下来"是安全评审的必问项,也是本页要给出的诚实答案:不同层级的收权手段,生效速度和影响范围各不相同。把它们讲含糊,等于在事故现场制造误判。

读完本指南,你将知道:

  • 四层收权手段分别能停住什么、多快生效
  • 出事时按什么顺序动手
  • 为什么"短期限"比"能吊销"更重要

四层收权手段

层级手段覆盖范围生效时机
1. 访问密钥停用或轮换访问密钥(enable: false / rotate)该密钥后续发起新委托的能力即时——停用后无法再签发新的委托令牌
2. 已签发的委托令牌等待其自然过期已在 Agent 手里的那一枚令牌以令牌有效期为准(签发时可设 60–86400 秒)
3. 资源侧拒绝列表在你的 API/网关按 act.agent_idgrant_id 拒绝你自己的资源服务即时(由你实现,见下)
4. Agent 整体一键熔断该 Agent该 Agent 的全部授权与派发见下方 Roadmap 说明

没有"单独撤销某次授权"的接口

当前没有grant_id 撤销单次授权的 API。能即时生效的收权动作只有两个:停用访问密钥(掐断继续签发)和你自己资源侧的拒绝列表(截断已签发令牌)。按 grant_id 精确撤销授权属路线图项,与 Agent 级熔断一同发布。

第 2 层是关键事实,务必据此设计

已经签发到 Agent 手里的委托令牌,在其有效期内无法被单枚作废。 这意味着:真正的收权速度上限,取决于你签发时给的有效期。

所以有效期不是一个"随便填填"的参数,而是你的风险窗口

  • 任务级委托给 5–15 分钟,用完即弃
  • 会话级委托给 1–2 小时
  • 只有确定长期低风险的场景才接近 24 小时上限

运行时令牌黑名单(对已签发令牌做即时拦截)是明确的演进方向,但在它可用之前,短期限是唯一可靠的收权手段

第 4 层:Agent 级熔断

🚧 Roadmap — Agent 级一键熔断属控制平面能力,随 Agent 注册与治理一同发布(见 Agent 的身份模型)。它的设计目标是一个动作停掉某个 Agent 的全部在途与后续授权。在此之前,Agent 级止损靠"停用它使用的访问密钥(第 1 层)+ 资源侧按 act.agent_id 拒绝(第 3 层)"两步组合达成接近的效果——这也是为什么建议每个 Agent 用专属密钥:停一把只影响它自己。

应急处置清单

怀疑 Agent 被滥用或凭证泄露时,按这个顺序动手:

  1. 先停源头:停用相关访问密钥(第 1 层)。这一步立刻掐断"继续签发新委托"的能力,是止血的第一刀。
  2. 算清风险窗口:查已签发但未过期的令牌的剩余有效期(第 2 层)。这个数字就是"最坏情况下攻击者还能活动多久"——它决定你要不要在资源侧动手
  3. 资源侧拒绝(窗口不可接受时,通常都不可接受):在你的 API 网关侧拒绝携带特定 act.agent_idgrant_id 的请求(第 3 层)。这是唯一能在有效期内截断已签发令牌的办法,需要你的资源侧预先支持(做法见 保护你的 API)。
  4. 查审计定范围:用 audit_id / grant_id 拉全链,确认实际发生了什么、影响了哪些数据(见 审计与合规报告)。
  5. 轮换与复盘:轮换密钥并重新下发;复盘授权范围与有效期设置——事故往往不是"没能吊销",而是"当初给太宽、给太久"。

日常预防比应急更管用

做法为什么有效
有效期按任务给,不按上限给直接压缩风险窗口,这是最有效的一条
密钥 allowedScopes / allowedAgents 配最小集从源头限制"能委托出去什么"(见 API Reference
每个 Agent 用专属密钥出事只需停一把,不牵连其他 Agent
资源侧支持按 agent_id / grant_id 拒绝给自己留一条最后的截断能力
密钥定期轮换缩短凭证的暴露寿命

常见问题

用户自己能撤销吗? 用户侧的"收回授权"入口需要你的应用来实现——建议提供"我的授权"页面(见 审计与合规报告),让用户看到当前有效的授权。收回动作在平台侧按上表分层落地:停止后续签发是即时的,已发出的令牌以有效期为准。按 grant_id 精确撤销随路线图项发布。

收权动作本身有记录吗? 有。密钥停用、轮换等收权动作都作为事件入审计链:谁在什么时候收回了什么(见 审计与追责链)。

令牌过期后 Agent 会怎样? 调用失败,返回令牌过期错误(SDK 抛 AnimaTokenExpiredError)。你的应用应捕获并决定是重新发起委托还是终止任务。

下一步