待检验的论断
本文认为,正确的框架是放大,而非新颖性;正确的应对是边界控制,而非替换系统。重写是一个多年期的项目;而放大风险在本季度就已存在。边界控制成本低、可测试、可回滚,而且它们还能减少普通配置错误的自动化所带来的危害——在实践中,这远比蓄意对手更常见。
是放大,不是新颖性
人类攻击者受注意力限制。一个人能同时考虑少数几个假设,以有限的速度打字,并且上下文切换是有代价的。智能体集群受预算和速率限制约束。如果两者都不存在,集群就会扩张到目标所能接受的程度。瓶颈从攻击者的认知转移到目标的容忍度。
这种转变在遗留接口缺少三个特定属性时最为关键:
- 速率限制。 没有按主体的请求预算,智能体可以一直探测某个端点,直到找到边界情况。这不是新洞;这是一个旧洞,只是以前穿过它的代价很高。
- 幂等键。 无法区分重试和新意图的写入路径,在重试压力下会产生重复记录。智能体会激进地重试,因为重试对它们来说很便宜。
- 审计追踪。 如果调用无法归因到某个主体,操作者就无法区分突发流量和 bug,也无法区分 bug 和入侵,直到事后很久才能发现。
在这些缺失存在的地方,智能体会比人类团队更快地找到并利用它们,不是因为更聪明,而是因为它不会感到无聊。故障模式很少是戏剧性的入侵。而是耗尽和噪音:导致真实用户无法登录的账户锁定、重试负载下的服务降级,以及重复部分写入造成的状态损坏。一个从未见过每小时超过几百次写入的遗留系统,可能会看到数千次,而它对序列化和冲突解决的假设将不再成立。
一个具体的机制可以让这一点变得清晰。设想一个遗留的 SOAP 或 REST 端点,暴露了一个 createRecord 操作,没有幂等键,也没有按主体的配额。在慢速后端下,一个带有超时重试策略的智能体循环会多次发出同一个逻辑写入。每次尝试在服务器看来都是有效的。结果不是经典意义上的安全事件;而是一个数据质量事件,之后必须手工对账。乘以一个集群,对账成本才是真正的损害。

在边界处有效的控制
有用的干预点是智能体边界——智能体框架与遗留接口之间的那一层——而不是智能体框架内部。框架内部的控制是建议性的;智能体可以被重新配置,而不同的框架不会共享这些控制。边界处的控制无论哪个智能体、供应商或脚本在调用,都会被强制执行。
三项控制承担了大部分作用。
在遗留接口上按主体设置请求预算,并在智能体框架之外强制执行。 遗留系统前面的网关按主体、按端点、按时间窗口统计请求,超出预算就拒绝或排队。预算应根据遗留系统已证明的容忍度来设定,而不是根据智能体的野心。这既是容量决策,也是安全决策。
对智能体可能触及的任何写入路径要求幂等性。 每次写入调用都携带一个客户端生成的键。网关或服务将该键与结果一起存储,重复的相同键会返回原始结果,而不是再次执行写入。这是对接口契约的小改动,却是对故障模式的大改动:重试变得安全,部分写入造成的损坏不再累积。
用于探索的只读镜像。 让智能体对任何探索性查询访问副本。将记录系统保留在显式、经过审计的调用之后。探索是智能体产生最多流量、每次调用价值最低的地方;也是陈旧副本危害最小的地方。权衡是诚实的:副本会引入复制延迟,而一个从副本读取、然后写入记录系统的智能体可能会基于陈旧状态行动。这对于搜索和分诊是可以容忍的,对于事务性工作流则不可容忍。边界应明确区分这一点,而不是留给智能体自行判断。
一个简短的网关草图让形态变得具体:
agent -> boundary gateway -> legacy interface
|
|- principal identity
|- per-endpoint budget
|- idempotency store
|- audit log (append-only)
|- read/write routing (replica vs system o

## 为什么重写是错误的第一个动作
替换项目需要数年。它们也往往由同样的论点来证明其合理性——即遗留系统不安全——这意味着安全论证被用来资助一个不会减少本季度风险的项目。与此同时,放大风险是活生生的。智能体集群不会等待迁移完成。
边界控制有三个替换所不具备的属性。相对于重写,它们成本低,因为它们位于系统前面而不是内部。它们可测试,因为预算和幂等存储可以在被信任之前用合成负载进行演练。它们可回滚,因为如果网关策略被证明过于严格,可以放宽。重写不具备这些中的任何一项。
还有一个容易被忽视的二阶好处。同样的控制减少了普通配置错误的自动化所带来的危害。一个有重试 bug 的 cron 任务、一个在瞬时错误上循环的脚本、一个重放队列的配置错误的集成——这些是遗留系统事故的日常原因。按主体预算和幂等键在应对智能体放大的同时,也应对了它们。这是基础设施工作中罕见的属性:一项控制,两类危害。
## 首先做什么
实际步骤很短。盘点智能体可以触及的遗留接口,并为每一个记录它是否有按主体预算、写入是否有幂等键,以及是否有可归因的审计追踪。在没有这些的接口前面放置一个网关。根据观察到的容忍度设定预算。将探索性读取路由到副本。然后,只有到那时,才决定系统本身是否需要替换——如果需要,边界控制仍将是在替换构建期间保持系统安全的东西。
智能体使遗留系统变得新危险的说法只对了一半。它们并没有使系统变得新脆弱。它们使现有漏洞的利用变得更便宜,而这是一个吞吐量问题,需要吞吐量的答案。
_封面照片:panumas nikhomkhai / Pexels。_
