AI Agent Runtime 层的架构革命:Session-as-Event-Log 与无状态执行器

1. 这不是新赛道,而是 runtime 层的“操作系统时刻”来了

上周二,Anthropic 宣布 Claude Managed Agents 进入公开测试阶段。新闻稿里写满了“十倍提速”“沙箱执行”“会话持久化”“凭证隔离”这些词,媒体通稿也照例把 Notion、Rakuten、Sentry 拉出来站台。但如果你真去翻 Anthropic 那篇工程博客,会发现他们真正想说的,其实就一句话:我们把 agent 的运行时,做成了一个可独立演进、可故障恢复、可审计追溯的稳定抽象层。

这不是在造新轮子,而是在给整个 AI 应用栈打地基。就像 90 年代操作系统把硬件抽象成虚拟内存和文件描述符一样,Anthropic 把 agent 的生命周期拆成了三个清晰、解耦、可替换的部件: Session(会话)是持久化的事件日志,Harness(执行器)是无状态的函数调用器,Sandbox(沙箱)是按需生成、用完即焚的 cattle 式环境 。这三者之间只通过明确定义的接口通信,彼此不耦合。这意味着,你今天用 Claude Sonnet 写的 agent,明天换成 Haiku 或 Opus,甚至后天换成非 Anthropic 的模型,只要它能响应 execute(name, input) → string 这个契约,Harness 就能无缝接管——根本不用动业务逻辑。

我去年亲手搭过一套全链路 agent 系统,当时所有状态都堆在 LLM 的 context window 里。结果有一次跑一个跨 7 步的财务数据核验任务,到第 45 分钟,context 直接爆了。模型没报错,也没中断,而是开始悄悄丢掉最早几轮的 tool call 结果,然后基于残缺的历史继续推理。最后生成的是一份看起来很专业、实则关键字段全错的报告。更糟的是,我们完全没法回溯——没有日志、没有快照、没有 checkpoint,连问题出在哪一步都得靠猜。那周我们重写了整个 state manager,把 session state 全部抽离到 Redis + PostgreSQL 组合里,用 event sourcing 模式记录每一步操作。Anthropic 现在卖的,就是我们当时花一周时间自己造出来的那个东西,而且做得更稳、更安全、更开箱即用。

关键词里的 “Towards AI - Medium”,恰恰点出了这件事的本质:它不是一篇技术公告,而是一份行业判读报告。它告诉你,runtime 层正在经历和当年虚拟化技术一模一样的历史路径——从 VMware 的高价专有产品,到 Xen/KVM 的开源追赶,再到 AWS/GCP/Azure 把它变成云基础设施的默认底座。Anthropic 不是第一个踩进去的人,AWS Bedrock AgentCore 去年 11 月就已全面可用,Google Vertex AI Agent Builder 和微软 Azure AI Foundry 也都已落地。这场发布,表面是创新,内里是防守。它的核心问题从来不是“该不该做”,而是“如果 Anthropic 不做,它的客户会不会明天就把 Claude 模型塞进 AWS 的 microVM 里跑?当 AWS 把 session-hour 定价压到 $0.03,而 Anthropic 还收 $0.08,客户换平台的成本有多高?”

所以,别被“Managed Agents”这个新名字带偏。它真正的信号,是 runtime 层正在加速 commoditize(商品化)。而商品化的终点,从来不是谁家的 runtime 更快,而是谁家的 runtime 能让你忘了它的存在——就像你现在写 Python 代码,不会去关心 Linux kernel 是怎么调度你的进程的。

2. 核心设计拆解:为什么是 Session-as-Event-Log,而不是 Context-as-Storage?

2.1 传统 agent 架构的致命伤:Context Window 是个脆弱的“内存条”

绝大多数早期 agent 框架,比如 LangChain 的早期版本、AutoGen 的默认配置,都把 session state 当作一种“临时内存”来用。用户输入、工具调用结果、中间思考步骤、错误重试记录……全一股脑塞进 prompt 的 system message + chat history 里。这在单步、短流程任务中确实简单直接,但一旦进入真实业务场景,立刻暴露出三大硬伤:

第一是 容量不可控 。Claude 3.5 Sonnet 的上下文窗口是 200K tokens,听起来很大,但实际一算就很紧张。一个典型的企业级 PDF 解析任务,光是原始文档文本就可能占掉 80K;加上系统提示词(含 tool schema)、多轮对话历史、上一轮 tool call 的 JSON 输出(往往带大量冗余字段)、以及 agent 自己生成的 intermediate reasoning,很容易在 5–6 轮交互后就逼近上限。更麻烦的是,LLM 并不会主动告诉你“我要溢出了”,它只会默默截断最老的 token,导致历史丢失。

第二是 状态不可靠 。LLM 的输出本质上是概率采样,不是确定性计算。当你依赖模型从 context 中“回忆”上一步的 tool result 来决定下一步动作时,你实际上是在让一个统计模型做数据库查询。我实测过,在 context 接近 90% 占用率时,模型对“上一轮调用了哪个 API”这类事实性问题的准确率会从 99.2% 陡降到 83.7%。这不是 bug,是原理决定的——它不是在查表,而是在猜。

第三是 调试与审计为零 。所有状态都在黑盒里,你无法导出某次会话的完整 trace,无法用 SQL 查询“过去 24 小时内,哪些会话在调用 Salesforce API 时返回了 401 错误”,也无法做合规审计:“这个销售线索 agent 是否在未经用户明确授权的情况下,访问了客户的身份证号字段?”——因为根本没有结构化日志。

提示:很多团队在项目初期会忽略这个问题,直到上线后出现“用户投诉 agent 记错了他的订单地址”,而你翻遍所有日志,只看到一条模糊的 “LLM generated response”,却找不到任何中间证据链。这种问题一旦发生,修复成本远高于前期架构投入。

2.2 Anthropic 的解法:把 Session 从“内存”变成“数据库”

Managed Agents 的核心突破,就是彻底废除了“context as storage”这个模式。它引入了一个外部、持久、结构化的 Session 存储层。每一次 tool call、每一次 model output、每一次 human feedback、每一次 error retry,都会被序列化为一个标准化的 event,写入这个 event log。这个 log 是:

  • 持久的 :会话可以持续数天甚至数周,不受模型重启、服务扩缩容影响;
  • 可查询的 :提供 REST API 和 CLI 工具,支持按 sessionId、timestamp、toolName、status 等字段组合查询;
  • 可回放的 :你可以用 replay(sessionId) 重新触发整个会话流,从任意 step 开始,用于 debug 或 A/B 测试;
  • 可审计的 :每个 event 都带 timestamp、callerId、inputHash、outputHash,满足 SOC2 和 GDPR 的基本留痕要求。

这个设计背后,是典型的“分层解耦”思想。Harness(执行器)只负责一件事:接收一个 event,调用对应的 tool,把结果打包成新 event 发回去。它本身不存任何状态,因此可以水平无限扩展,宕机了也不影响 session 数据。Sandbox(沙箱)则只负责执行 tool code,它拿到的只有本次调用的 input JSON,看不到 session 全貌,更接触不到 credentials。Credential 隔离正是通过这个机制实现的:credentials 存在 Anthropic 自建的 Vault 里,Sandbox 启动时由 Harness 注入 runtime,且只注入当前 tool 所需的最小权限凭证,绝不会以环境变量形式暴露给 agent 代码。

这和 AWS AgentCore 的 microVM 设计异曲同工,但 Anthropic 的抽象更激进。AgentCore 的沙箱是强隔离的 OS 层(microVM),而 Anthropic 的沙箱是轻量级容器(Docker-in-Docker 或 gVisor),启动更快,资源开销更低,代价是隔离强度略弱——但对于绝大多数企业级 tool call(调用 REST API、SQL 查询、PDF 解析),这个强度已经足够,且更符合开发者对“serverless functio

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值