每个上线的Agent都带着一个没人排期的退役日。上线有文档、有运行手册、有评测套件、有认证关卡,唯独"结束"这一段是空白。一个不再有用的Agent不会干净地死掉——它留下没人记得权限范围的凭证、没人导出的状态,还有一群出于习惯继续信任它输出的同事。这片坟场看不见,而且在变大。
退役一个Agent,比下线一个服务难得多。服务被关掉时,行为跟着一起消失:请求大声失败,告警响起来,总有人注意到。Agent不一样,危险藏在两处。
第一,它持有的凭证比服务分散得多。配置文件、钥匙串、执行框架的设置、集成令牌、webhook,每一个都是活的能力,寿命比Agent的用处更长。第二,也是没人提前规划的部分:Agent会训练人。团队围绕它的输出养成了习惯——摘要被快速扫过,建议被赋予权重,沉默被解读出含义。Agent退役了,习惯还在,只是指向了空处。这是披着运维外衣的人的问题,也是退役Agent能拖上几年而不是几个月的原因。
硬清单:五件事,按顺序做,没有一件可选
- 吊销每一个凭证。全部,包括写死在配置文件里的、以及你已经忘了曾经创建过的。令牌、集成授权、webhook订阅、SSH密钥、服务账号。共享过的凭证要轮换而不只是吊销。如果这一项没法用"谁、哪天"签字确认,就不算做完。
- 导出并归档状态。对话日志、决策记录、记忆文件,Agent积累的一切。归档不是念旧,是证据底座——某天有人问"三月的时候Agent为什么做那件事",这个问题会在你早就不指望它的时候到来。
- 处理数据。Agent的输出落到了哪里,谁手里还有?它写的报告、改过的数据行、提过的工单。有些需要留存,有些需要更正,全部需要有一个负责人说清楚怎么处理。
- 排空队列。在途任务、定时运行、待审批项。一个还挂着定时任务的Agent不算退役。查cron、查调度器、查执行框架的任务列表、查审批收件箱——你忘掉的那个Agent,正是凌晨三点开火的那个。
- 通知依赖方。每一个消费过它输出的系统和每一个人。会显示过期数据的看板、会挂起等待响应的流水线、会继续向它提问的人。沉默不是通知。
软清单:没人写下来的那一半
审查被习惯化的信任。人们在哪些地方依赖过Agent的判断?那些工作流现在跑在按一个已不存在的系统调校过的人类习惯上。点出最要紧的三处,决定用什么替代——"大家会自己想办法的"就是两个季度静默出错的配方。
把替代行为写下来。在以前会去问Agent的那些场景里,团队现在具体怎么做?运行手册里写一段。没有这一段,空出来的位置会被房间里最自信的那个人填上,那不是治理模型。
安排事后检查。退役三十天后,一个人花一小时找生命迹象:吊销后幸存的过期凭证、打向已死Agent的调用、还在渲染它最后输出的看板。事后检查负责抓住清单的漏网之鱼,而每份清单都有漏网之鱼。
一个提示:如果"谁拥有这个Agent"的诚实答案是"没人",那这个Agent其实已经退役了,只是没人通知它。退役清单比不死版本便宜。
退役演练
你不会希望第一次Agent退役发生在事故当中。故意退役一个低风险的Agent:挑一个几乎没人用的,或者当初当演示做出来的,把清单两半完整跑一遍。计时。找出哪些项比预期更久——吊销和依赖发现从来都会超时。记下清单漏了什么。
演练把清单从一份文档变成一种能力,这个差别在第一次真正有紧迫性的退役里会显出来。没有演练、在压力下下线,就是一个本不该幸存的凭证活了下来,而那个幸存的凭证,就是你之后要解释的那起事故。
诚实的局限
这份清单来自实践,不是来自一次完美退役的案例研究。演练之所以存在,正是因为没人第一遍就能把五个硬项全做对,而软的那一半更接近手艺而非流程。按风险大小缩放:演示级Agent只需要第1项和第4项;持有生产凭证、还养出了人类习惯的Agent,需要全部,而且做两遍。
方向没有疑问。每个团队部署的Agent都比退役的多,这意味着坟场在复利增长,而坟场里全是令牌。
所以问题在这里:你的团队今天跑着多少个Agent,其中有多少个,你现在就能说出它持有的每一个凭证?如果第二个数字比第一个小,你找到了下个季度的静默安全项目,这份清单就是它的方案。
热门跟贴