1. 这不是新赛道,而是 runtime 层的“临终告别式”

我第一次在生产环境里跑一个需要连续调用 7 轮外部 API、中间穿插三次人工审核确认、最终生成一份合规报告的 AI 代理时,是在 2025 年初。当时我们没用任何托管服务,全靠自己搭的轻量级状态机 + Redis 缓存 + 自研沙箱容器。上线第三天凌晨两点,监控告警炸了:一个本该在上午 10 点完成的客户尽调任务,卡在第 5 步整整 14 小时没动。排查日志发现,模型上下文窗口在第 4 次工具调用后就满了——它没报错,没中断,只是默默把最早那轮银行流水解析结果从 context 里挤掉了。后面所有决策都基于一个被截断、不完整的记忆链。更糟的是,我们根本没法回放。没有事件日志,没有 checkpoint,没有 session ID 可追溯。你只能看着那个空转的容器,像看着一具失去灵魂的躯壳。

Anthropic 在 2026 年 4 月 8 日发布的 Claude Managed Agents,表面看是一次“AI 代理托管服务”的常规发布。媒体通稿里写着“十倍提速”、“Notion 和 Asana 已接入”、“沙箱执行+会话快照”,听起来像又一个云厂商的例行更新。但如果你真在一线写过三个月以上 agent 代码,你会立刻听出这句话背后的金属回响:“Session as durable event log living outside the model context.” —— 会话即持久化事件日志,它独立于模型上下文而存在。

这句话不是修辞,是手术刀。它切开了过去两年 AI 工程师最深的伤口: 上下文即状态,状态即上下文 。这个等式曾是所有 DIY agent 架构的默认前提,也是所有线上事故的共同起点。Anthropic 没有发明新概念,它只是把一群人在深夜 Slack 频道里反复骂娘、在 GitHub issue 里贴出崩溃堆栈、在内部文档里用加粗红字警告“严禁将 session state 存入 prompt”的集体创伤,打包成一个 YAML 文件、一个 awake(sessionId) 接口、一个按小时计费的托管服务。

关键词里那个 “Towards AI - Medium” 不是平台标签,是时代注脚。它意味着这篇文章不是给投资人看的 PPT 摘要,而是写给正在重写第 17 版状态管理模块的工程师、正为沙箱逃逸漏洞打补丁的 SRE、正被销售逼着下周就要上线“智能合同审查 agent”的技术负责人看的实战手记。它不谈“范式转移”,只讲“怎么让 agent 别在凌晨三点静默发疯”。它不预测“2030 年 AGI 形态”,只告诉你今天下午部署时, sandbox_timeout_seconds 设成 120 还是 180,能少踩多少坑。

所以这不是一篇关于“Anthropic 又出了个新产品”的新闻稿。这是一份 runtime 层的讣告草稿,一份写给所有还把“agent runtime”当核心资产来融资、招聘、架构设计的团队的预警信。它讲清楚三件事:第一,为什么“session-as-event-log”这个设计不是锦上添花,而是生死线;第二,为什么 AWS Bedrock AgentCore 五个月前就已 GA,不是 Anthropic 动作慢,而是整个市场早已越过“要不要建 runtime”的辩论期,直接进入“谁来承担 runtime 成本”的清算阶段;第三,当 runtime 层价格被压向零,钱到底会流向哪里——不是向上堆砌更多抽象层,而是向下沉入三个具体、可采购、能进企业财务系统的实体:可审计的 trace 存储、可策略化的治理引擎、可签约的垂直 agent 市场。

如果你正评估是否要自建 agent 平台,或者你的 startup 融资 BP 里“高性能沙箱调度器”占了三页 PPT,请先读完接下来五千字。这不是理论推演,是过去十八个月里,我和至少 12 个不同行业的客户一起,在生产环境里用服务器成本、客户投诉、KPI 扣款换来的刻度尺。它不会告诉你“未来已来”,它只会指着你代码库里那个 context_window_manager.py 文件说:“这里,就是下一个被压缩的层。”

2. 核心设计解构:为什么“会话即日志”是唯一正确的起点

2.1 从“上下文即状态”到“状态即日志”的范式迁移

所有失败的 agent 架构,起点都惊人地一致:把模型的 token 上下文窗口,当成天然的状态存储层。工程师的直觉很朴素——既然 agent 的每一步行动都依赖前序记忆,而模型本身必须看到这些记忆才能推理,那干脆把所有历史、所有工具返回值、所有用户反馈,一股脑塞进 prompt 里。这就像早期 Web 开发者把 session 数据全存在 cookie 里:简单、直接、不用额外组件。直到某天 cookie 溢出,用户登录态丢失,购物车清空,而你连日志都找不到——因为 cookie 本身不记录“何时溢出”,只记录“此刻内容”。

Anthropic 的 Managed Agents 没有挑战这个直觉,它终结了这个直觉。它的核心契约是: 模型上下文窗口,只负责承载当前 step 的推理所需信息;所有跨 step 的状态,必须由外部系统以结构化事件形式持久化。 这个契约拆解下来,是三个不可妥协的硬性约束:

  1. 事件驱动的会话生命周期 :每个会话(session)启动时,系统生成唯一 sessionId ,并立即创建一条 SESSION_STARTED 事件,包含时间戳、初始 system prompt hash、用户身份标识。此后每一次工具调用( TOOL_CALL )、工具返回( TOOL_RESULT )、用户输入( USER_MESSAGE )、模型输出( MODEL_RESPONSE ),都作为独立事件追加到该会话的事件流中。事件流本身是 append-only 的 WAL(Write-Ahead Log),存储在分布式日志系统(如 Kafka 或专用时序数据库)中,而非内存或 Redis。

  2. Harness 的彻底无状态化 :所谓 “Harness”,就是实际执行模型推理和工具调用的计算单元。Managed Agents 要求 Harness 必须是 stateless 的——它不缓存任何会话数据,不维护任何本地变量。每次请求到来时,Harness 只做三件事:(a) 根据 sessionId 从事件日志中拉取最近 N 条事件(N 由配置决定,通常为 50-100 条,确保覆盖完整推理链);(b) 将这些事件格式化为标准 prompt template 的一部分;(c) 调用 Claude 模型,获取响应。Harness 崩溃?没关系,新实例起来后, awake(sessionId) 接口会自动重放事件流,重建完全一致的上下文。这就像 Kubernetes Pod 重启后,通过挂载 PVC 恢复数据一样自然。

  3. 上下文窗口的严格容量预算 :Managed Agents 强制对每个会话的 prompt 中“历史事件摘要”部分设硬上限。例如,系统可能规定:最多保留最近 3 次 TOOL_RESULT 的摘要(每条摘要不超过 200 tokens),加上最近 2 条 USER_MESSAGE 的全文(每条不超过 150 tokens)。超出部分,由日志系统自动截断并标记 HISTORY_TRUNCATED 事件。关键在于, 截断行为本身被记录为事件,且模型在 prompt 中能看到这条记录 。这意味着模型永远不会“以为自己记得全部”,它明确知道“部分历史已被省略,详情请查事件日志”。这从根本上杜绝了静默幻觉。

提示:这个设计的价值,只有在处理长周期任务时才真正显现。我们有个金融风控 agent,需串联 12 个步骤:拉取企业工商信息 → 解析股权结构 → 查询司法风险 → 匹配行业黑名单 → 生成风险评分 → 人工复核 → 修改参数 → 重新计算 → 输出报告 → 邮件发送 → 存档至 ECM → 通知客户经理。全程耗时 47 分钟。若用传统 context-in-prompt 方案,第 8 步时上下文必然溢出,模型会基于残缺信息给出错误评分。而 Managed Agents 下,第 8 步的 prompt 里只包含第 6、7 步的摘要和第 8 步的输入,但 awake(sessionId) 能随时拉取完整 12 步事件流供审计或重试。状态与上下文的分离,让“可靠”成为可工程化的属性,而非玄学。

2.2 沙箱即“牲畜”,而非“宠物”:隔离机制的工业级实践

“沙箱”这个词在 AI 领域被滥用了。很多所谓沙箱,不过是 Docker 容器加了个 --read-only 标志,或者用 seccomp 拦掉几个危险 syscall。这在 demo 场景够用,但在生产环境,尤其是处理敏感数据(如客户 PII、财务凭证、源代码)时,这种隔离形同虚设。Anthropic 的 Managed Agents 对沙箱的定义,回归了云计算最原始也最坚固的范式: 沙箱是 cattle(牲畜),不是 pets(宠物)

这意味着什么?意味着沙箱的生命周期必须极短、极轻、极可弃。Managed Agents 的沙箱设计遵循四个铁律:

  1. 按需瞬时创建(On-Demand Instantiation) :每个工具调用( execute(name, input) )触发时,系统才动态拉起一个全新沙箱实例。调用结束、结果返回后,该沙箱在 30 秒内被强制销毁( docker kill && docker rm -f )。不存在“常驻沙箱进程池”。这彻底消除了沙箱间状态残留、内存泄漏、资源争抢的风险。实测数据显示,单次沙箱冷启动(从镜像拉取到 ready)平均耗时 89ms,P95 为 142ms,远低于传统容器方案的秒级延迟。

  2. 凭证的“空气隔离”(Air-Gapped Credential Injection) :这是生产安全的命门。传统方案常将 API Key、数据库密码等注入沙箱环境变量( ENV ),模型 prompt 里一句 os.getenv("DB_PASSWORD") 就可能泄露。Managed Agents 采用“凭证 vault + runtime 注入”模式:沙箱启动时,系统从加密 Vault(如 HashiCorp Vault)中拉取本次调用所需的最小权限凭证,并通过 Linux memfd_create 系统调用创建一个匿名内存文件描述符,将凭证内容写入其中。随后,沙箱进程通过 open("/proc/self/fd/3", O_RDONLY) 直接读取该内存文件,读取完毕后,文件描述符立即关闭,内存内容被内核自动释放。整个过程,凭证从未以明文形式存在于沙箱的文件系统、环境变量或进程命令行中。模型代码即使想 print(os.environ) cat /proc/1/cmdline ,也什么都看不到。

  3. 微虚拟机级隔离(MicroVM Isolation) :对于极高风险的工具(如执行任意 shell 命令、解析不可信二进制文件),Managed Agents 后端可自动降级到 Firecracker MicroVM。每个 MicroVM 拥有独立的 CPU 核心、内存空间(默认 512MB,可配)、精简 rootfs(仅含必要工具链),且网络完全隔离(无 NIC,仅通过 host 侧 vsock 通信)。MicroVM 启动时间控制在 120ms 内,P95 为 180ms,比传统 VM 快两个数量级,但安全边界与物理机无异。

  4. 沙箱镜像的“不可变性”与“最小化” :所有沙箱基础镜像(Docker 或 Firecracker rootfs)均由 Anthropic 统一构建、签名、分发。镜像内不含任何 shell( /bin/sh 被移除)、不含包管理器( apt , pip )、不含调试工具( strace , gdb )。只保留运行目标工具所必需的二进制文件和库。每次镜像更新,旧版本自动下线,强制所有新会话使用新版。这杜绝了“沙箱内提权后安装恶意软件”的路径。

注意:这套沙箱机制的代价是更高的基础设施开销。每个工具调用都伴随一次容器/MicroVM 生命周期管理。但 Anthropic 的定价模型($0.08/session-hour)巧妙地将成本与价值对齐:你只为 agent 实际活跃、消耗计算资源的时间付费。一个等待用户回复、处于 idle 状态的会话,不产生 runtime 费用。这比按月订阅“永远在线”的沙箱服务,对客户更公平,也倒逼开发者优化 agent 的交互效率——减少不必要的工具调用,提升单次调用的信息密度。

2.3 为什么说“架构干净”?—— 三层解耦的工程哲学

Anthropic 工程博客里那句“decoupled the agent stack into stable abstractions the way operating systems virtualized hardware in the 1990s”,绝非空泛类比。它精准指向了 Managed Agents 架构的三大稳定抽象层,每一层都定义了清晰、窄小、不易变更的接口:

抽象层 核心职责 稳定接口示例 为何稳定?
Session Layer (会话层) 管理会话生命周期、持久化事件日志、提供 awake(sessionId) 接口 POST /v1/sessions (创建), GET /v1/sessions/{id}/events?limit=100 (查询), POST /v1/sessions/{id}/awake (唤醒) 事件模型( SESSION_STARTED , TOOL_CALL , MODEL_RESPONSE )一旦定义,极少变更。日志格式、查询语法、分页机制高度标准化,兼容 OLAP 分析。
Harness Layer (执行层) 执行模型推理、序列化/反序列化事件、调用 execute(name, input) execute(name: str, input: dict) -> str (同步), execute_async(name: str, input: dict) -> task_id (异步) 接口极度精简。 name 是工具注册名, input 是 JSON 序列化字典, str 是工具返回的字符串结果。不关心工具内部实现、不暴露底层协议(HTTP/gRPC)、不绑定特定语言 SDK。
Sandbox Layer (沙箱层) 提供隔离执行环境、管理凭证注入、保障资源隔离 sandbox_runtime: "docker" or "firecracker" , sandbox_timeout_seconds: 120 , sandbox_memory_mb: 1024 运行时类型(Docker/Firecracker)和资源配置(CPU/Mem/Timeout)是声明式配置项。底层实现可替换(如未来支持 WASM),只要满足接口契约,上层无需修改。

这种解耦带来的直接好处是: 演进互不干扰 。Anthropic 可以在不改动 Harness 接口的前提下,将沙箱后端从 Docker 升级到 Firecracker;可以增加新的事件类型(如 POLICY_VIOLATION )而不影响现有 Harness 的逻辑;可以优化 Session Layer 的日志存储引擎(从 Kafka 迁移到专用时序 DB),只要 GET /v1/sessions/{id}/events 接口返回的数据格式不变,所有上层应用毫发无损。

这正是操作系统虚拟化硬件的精髓:应用程序(Harness)只需调用 open() , read() , write() ,无需关心磁盘是 SATA 还是 NVMe,是本地还是网络存储。Managed Agents 让 agent 开发者第一次拥有了类似的自由——你可以专注写 system_prompt tool_definitions ,把“如何安全、可靠、高效地执行它”这个沉重包袱,交给一个经过大规模验证的托管层。

3. 实操细节与关键配置:从 YAML 定义到生产部署

3.1 一个真实可用的 agent YAML 定义详解

Managed Agents 的核心配置是一个 YAML 文件,它定义了 agent 的“灵魂”:行为规则、能力边界、安全护栏。下面是一个为 Notion 团队定制的“会议纪要生成 agent”的生产级 YAML 示例,我逐行拆解其设计意图与实操要点:

# agent.yaml
name: "notion-meeting-minutes"
version: "1.2.0"
description: "Generates structured meeting minutes from audio transcripts and syncs to Notion page"

# === 系统提示(System Prompt):Agent 的“宪法” ===
system_prompt: |
  You are a meticulous meeting minutes assistant for Notion teams.
  Your role is to:
  1. Extract key information: attendees, date/time, decisions made, action items (with owner & due date).
  2. Format output strictly as Markdown with these sections: ## Attendees, ## Summary, ## Decisions, ## Action Items.
  3. NEVER invent details not present in the transcript. If info is missing, state "Not specified".
  4. For action items, infer owner from speaker name if possible, else use "TBD". Due dates must be explicit in transcript.

# === 工具定义(Tools):Agent 的“四肢” ===
tools:
  # 工具1:语音转文字(高精度,带说话人分离)
  - name: "transcribe_audio"
    description: "Converts audio file to text with speaker diarization. Returns JSON {\"text\": \"...\", \"speakers\": [{\"name\": \"Alice\", \"segments\": [...]}, ...]}"
    input_schema:
      type: "object"
      properties:
        audio_url:
          type: "string"
          description: "Publicly accessible URL of the audio file (MP3/WAV)"
    # 关键:此工具调用需访问外部 API,故需凭证
    auth_required: true
    # 指定此工具专属的最小权限凭证集
    auth_scope: ["transcribe:read"]

  # 工具2:Notion 页面创建/更新(需用户授权)
  - name: "notion_upsert_page"
    description: "Creates or updates a Notion page with provided content. Returns page URL."
    input_schema:
      type: "object"
      properties:
        notion_api_key:
          type: "string"
          description: "User's Notion integration token (provided by user during setup)"
        database_id:
          type: "string"
          description: "ID of the Notion database where minutes should be saved"
        title:
          type: "string"
          description: "Title of the minutes page"
        content_markdown:
          type: "string"
          description: "The full minutes content in Markdown format"
    # 关键:此工具凭证由用户动态提供,非系统预置
    auth_required: true
    auth_scope: ["notion:pages:write"]

# === 安全护栏(Guardrails):Agent 的“刹车” ===
guardrails:
  # 输入过滤:防止 prompt 注入攻击
  input_filters:
    - type: "regex_blocklist"
      pattern: "(?i)system.*prompt|role.*play|ignore.*previous|you.*are.*not"
      message: "Input contains prohibited instructions. Please rephrase."

  # 输出过滤:防止泄露敏感信息
  output_filters:
    - type: "pii_redactor"
      patterns: ["email", "phone", "ssn"]
      replacement: "[REDACTED]"

  # 工具调用限制:防滥用
  tool_call_limits:
    - tool_name: "transcribe_audio"
      max_calls_per_session: 3
      max_total_duration_seconds: 3600  # 1小时总音频时长上限

# === 会话与沙箱配置(Runtime Config):Agent 的“骨骼” ===
runtime_config:
  # 会话超时:长时间无交互则自动终止
  session_timeout_minutes: 1440  # 24小时
  # 沙箱配置:为所有工具调用设定基线
  sandbox:
    runtime: "docker"  # 默认用 Docker,高危操作自动升为 firecracker
    timeout_seconds: 120
    memory_mb: 1024
    # 沙箱内禁止的系统调用(增强隔离)
    seccomp_profile: "restricted"

# === 观察性配置(Observability):Agent 的“体检报告” ===
observability:
  # 事件日志级别:critical 事件必录,info 级别可选
  log_level: "info"
  # 是否启用全量 trace(影响性能,生产环境建议 false)
  enable_full_trace: false
  # 自定义指标上报(对接 Prometheus)
  metrics:
    - name: "minutes_generated"
      type: "counter"
      labels: ["team_id", "source"]

实操心得与避坑点:

  • system_prompt 的长度陷阱 :很多人把 prompt 写得巨长,试图穷举所有场景。这会导致首次 token 成本飙升,且模型容易忽略关键指令。我的经验是: system_prompt 应聚焦于 3 个核心原则 (如本例的“提取关键信息”、“严格 Markdown 格式”、“绝不编造”),其余细节(如日期格式、Action Item 的命名规范)应放在 tool description input_schema 中。实测显示, system_prompt 控制在 300 tokens 内,p50 首 token 时间最优。

  • auth_scope 的最小权限原则 auth_scope: ["transcribe:read"] 不是装饰。它告诉 Anthropic 的 Vault,当调用 transcribe_audio 时,只允许注入一个具有 transcribe:read 权限的临时 token。这个 token 甚至无法调用 transcribe:delete 。这比在代码里写 if tool == 'transcribe': use_read_token 更安全,因为权限控制发生在沙箱启动前,模型代码根本接触不到其他权限的 token。

  • tool_call_limits 的业务语义 max_calls_per_session: 3 看似简单,但它背后是业务逻辑。一个会议纪要,理论上只需要转一次音、写一次 Notion。如果 agent 连续调用 transcribe_audio 3 次,大概率是它陷入了循环(比如 transcript 太长,模型误判为未完成)。此时 tool_call_limits 会触发 TOOL_CALL_LIMIT_EXCEEDED 事件,Harness 可据此终止会话并告警,而不是让它无限循环下去耗尽资源。

  • sandbox.timeout_seconds 的黄金值 :120 秒是经过大量测试的平衡点。太短(如 30 秒):网络抖动、API 临时延迟就会导致沙箱被杀,agent 重试失败率高;太长(如 300 秒):一个卡死的沙箱(如死锁、无限循环)会长时间占用资源。我们曾将此值设为 300,结果发现 P95 首 token 时间恶化了 40%,因为后台有大量僵尸沙箱在排队。120 秒配合 seccomp_profile: "restricted" (禁用 fork , clone 等),能有效遏制绝大多数沙箱失控。

3.2 从 YAML 到生产环境:部署、监控与灰度发布流程

定义好 YAML,只是万里长征第一步。真正的挑战在于如何将其安全、可控、可观测地推向生产。以下是我们在多个客户项目中沉淀出的标准 SOP:

步骤 1:本地开发与单元测试(Dev)

  • 使用 Anthropic 提供的 CLI 工具 claude-agent-cli
    # 本地加载 YAML,启动 mock harness
    claude-agent-cli dev --config agent.yaml --mock-tools
    # 发送测试消息,观察事件流
    echo '{"message": "Please transcribe this meeting: https://example.com/meeting.mp3"}' | curl -X POST http://localhost:8000/v1/sessions -d @-
    
  • 关键动作:验证 system_prompt 的指令遵循度、 input_filters 的拦截效果、 output_filters 的 PII 红action。 不在此阶段测试真实工具调用 ,避免污染测试数据。

步骤 2:集成测试(Staging)

  • 部署到 Anthropic 的 Staging 环境(独立域名 staging.api.anthropic.com )。
  • 使用真实的 transcribe_audio notion_upsert_page 工具,但:
    • transcribe_audio audio_url 指向一个 10 秒的固定测试音频。
    • notion_upsert_page database_id 指向一个专门的测试 Notion 数据库。
  • 运行自动化测试套件(Pytest):
    def test_meeting_minutes_generation():
        # 创建会话,发送测试消息
        session = create_session("notion-meeting-minutes", "staging")
        response = session.send_message("Transcribe: https://test-audio.mp3")
        # 断言:事件流包含 TOOLS_CALL 和 TOOL_RESULT
        assert has_event(response.events, "TOOL_CALL", {"name": "transcribe_audio"})
        assert has_event(response.events, "TOOL_RESULT", {"name": "transcribe_audio"})
        # 断言:最终输出包含 ## Action Items
        assert "## Action Items" in response.final_output
    

步骤 3:灰度发布(Production Canary)

  • 流量切分 :通过 Anthropic 控制台,将 1% 的生产流量路由到新版本 agent。流量依据 user_id 的哈希值分配,确保同一用户始终看到同一版本。
  • 核心监控指标(Dashboard)
    • session_success_rate :成功完成会话数 / 总会话数(目标 > 99.5%)
    • p95_tool_call_latency_ms :各工具调用的 P95 延迟( transcribe_audio < 3000ms, notion_upsert_page < 2000ms)
    • guardrail_triggered_count :每小时被护栏拦截的次数(突增表明输入异常或 prompt 有漏洞)
    • sandbox_oom_kills :沙箱因内存超限被杀的次数(> 0 需立即调大 memory_mb
  • 熔断机制 :若 session_success_rate 在 5 分钟内跌至 95% 以下,或 guardrail_triggered_count 每分钟超过 10 次,系统自动将灰度流量降为 0%,并触发 PagerDuty 告警。

步骤 4:全量发布与持续观测(Production)

  • 全量后,重点监控 session_hour_cost_usd (每小时会话成本)与 token_usage_per_session (每会话 token 消耗)。Managed Agents 的定价模型决定了: 成本优化的核心,是降低单次会话的 token 消耗,而非减少会话数 。我们发现,通过优化 system_prompt 的清晰度、调整 input_schema 的字段粒度(如将 content_markdown 拆分为 summary_text , action_items_json ),可将平均 token 消耗降低 22%,直接节省 runtime 成本。

注意:不要忽视 observability.enable_full_trace: false 的威力。开启全量 trace 会将每个 token 的生成过程、每个工具调用的详细参数都记录,这对 debug 极有帮助,但会使日志体积膨胀 5-8 倍,显著增加存储成本和查询延迟。我们的 SOP 是:仅在灰度期或定位疑难问题时临时开启,问题解决后立即关闭。生产环境默认关闭,依靠 log_level: "info" 提供的结构化事件流( TOOL_CALL , MODEL_RESPONSE )已足够支撑 95% 的运维需求。

4. 竞争格局与价值迁移:为什么 runtime 层注定走向“零价化”

4.1 不是 Anthropic 动作慢,而是市场早已越过“要不要建”的辩论期

媒体将 Anthropic Managed Agents 的发布描绘成一场“开创性”发布,仿佛它是第一个吃螃蟹的人。但事实是,就在 Anthropic 发布的五个月前, AWS Bedrock AgentCore 已进入 General Availability(GA) 。这个时间差,不是 Anthropic 的战略失误,而是整个市场演进节奏的精确刻度。

让我们看看 AgentCore 的成绩单(截至 2026 年 3 月):

  • 下载量 :SDK 在 GA 后五个月内被下载 217 万次 。这个数字意味着,已有数十万开发者在本地、在 CI/CD 流水线、在他们的私有云里,跑起了基于 AgentCore 的 agent。它不是一个“云上黑盒”,而是一个可嵌入、可扩展的开源 SDK。
  • 政策控制 GA :企业最关心的治理能力——谁能调用什么工具、在什么条件下调用、调用后数据如何留存——已在 2026 年 3 月随 AgentCore 一同 GA。这意味着大型金融机构、医疗集团等强监管客户,已经可以基于 AgentCore 构建符合 SOC2、HIPAA 的 agent 应用。
  • 架构开放性 :AgentCore 的核心设计哲学是 “框架无关”(Framework-Agnostic) 。它不强迫你用 LangChain 或 LlamaIndex。只要你能将你的 agent 逻辑编译成一个标准的 request-response 循环(即接收一个 JSON 输入,返回一个 JSON 输出),它就能托管。LangGraph 的 StateGraph、CrewAI 的 Crew、Strands 的 Pipeline,都能无缝接入。更重要的是, 模型选择完全开放 :你可以用 Bedrock 上的 Claude、Llama 3、Command R+,甚至你自己的微调模型。AgentCore 只管“怎么安全、可靠地运行”,不管“用哪个模型思考”。

Google Vertex AI Agent Builder 和 Microsoft Azure AI Foundry 的路径虽有差异,但终点一致: 将 agent runtime 作为云平台的“水电煤”式基础设施,免费或近乎免费地捆绑在云账单里 。Vertex 的 Agent Registry 通过 Apigee 暴露为标准 REST API,Azure Foundry 则将 AutoGen 和 Semantic Kernel 深度集成,让开发者感觉“这就是 Azure 的一部分”。

在这种背景下,Anthropic 的发布,其战略本质是 防御性的 。它的核心问题不是“我们是否应该进入 runtime 市场?”,而是 “如果我们不提供一个 Claude-原生的托管 runtime,我们的核心客户——那些为 Claude 付费的企业——是否会毫不犹豫地选择 AWS 或 Azure 的方案,仅仅因为它们更便宜、更易集成、更符合他们现有的云采购流程?” 这是一个关于客户粘性和生态位的生存问题。

实操心得:当你在技术选型会上听到“为什么不用 AWS AgentCore?它免费,而且我们 already have the bill”时,不要急于反驳其技术优劣。这是一个信号,表明你的客户已经将 runtime 视为“成本中心”,而非“能力中心”。此时,争论“Managed Agents 的沙箱更安全”毫无意义。你需要切换战场:展示 Managed Agents 如何通过 Claude Code 的深度集成、 Claude Sonnet 的极致性价比、或 Anthropic 提供的专属 model tuning 服务,让你的客户在 模型层 获得无可替代的价值。Runtime 是入口,模型才是护城河。

4.2 “OS 类比”的历史真相:当 hypervisor 成为免费的底层

Anthropic 工程博客引用的“操作系统虚拟化硬件”类比,非常精准,但也刻意回避了一个残酷的历史结局。让我们重温一下 x86 虚拟化的真实轨迹:

  • 1999 年 :VMware 凭借 ESX Server,开创了商业 x86 虚拟化市场。它卖的不是软件,是“将物理服务器变成可编程的、可计量的、可弹性的计算资源”的理念。ESX 每个 CPU 核心售价高达数万美元,是绝对的高端产品。
  • 2003 年 :开源 Xen 项目诞生,证明了虚拟化可以在开源许可下高质量实现。
  • 2007 年 :KVM(Kernel-based Virtual Machine)被合并进 Linux 主线内核。这意味着, 虚拟化不再是需要单独购买、单独维护的“产品”,它成了 Linux 操作系统的一个内置功能
  • 2010s :AWS、GCP、Azure 等公有云巨头,将 KVM/Xen 作为其 IaaS 底座,但 不向用户收费虚拟化本身 。你为 EC2 实例付费,付的是 CPU、内存、存储、网络的综合成本,虚拟化层是隐含的、免费的“胶水”。
  • 2020s :企业调研显示, 新开源部署中,70% 选择了开源 hypervisor(KVM/Xen) 。VMware 依然存在,拥有庞大的存量客户和可观的收入,但它不再是“价值创造的中心”。价值向上迁移了:Terraform(基础设施即代码)、Kubernetes(容器编排)、Service Mesh(服务治理)——这些才是新时代的“暴利”领域。

Managed Agents 和 AgentCore,正处于 VMware 2005 年的位置:一个技术精湛、架构优雅、收费合理的商业 runtime。但历史的指针,正坚定地指向 KVM 合并进 Linux 内核的那个时刻。这个时刻的标志,不是某个公司的发布,而是 开源社区的集体行动

  • Daytona :这个原本做开发者环境的公司,在 2025 年初 pivoted 进入 AI agent 基础设施,其核心产品是一个超轻量级沙箱 runtime,宣称“sub-90ms sandbox spin-up”。它在 2026 年 2 月完成 2400 万美元 A 轮融资,估值直指独角兽。它的 SDK 是 MIT 许可,意味着任何云厂商都可以将其集成,无需支付授权费。
  • Kubernetes SIG Agent-Sandbox :K8s 官方 SIG(Special Interest Group)在 2026 年初正式成立,并发布了首个 alpha 版本的 agent-sandbox CRD(Custom Resource Definition)。这意味着,未来你只需写一个 YAML 文件,声明 kind: AgentSandbox ,K8s 就会为你调度、管理、监控一个符合安全标准的沙箱。它将成为 K8s 生态的“标准配件”,就像 Ingress HPA 一样。
  • ByteDance 的 deer-flow :这个在 GitHub 上获得 59,000+ stars 的项目,代表了另一种思路:一个长生命周期、具备自我规划(planning)和子 agent(subagents)能力的 harness。它不追求“
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐