Claude Managed Agents:LLM 应用的 runtime 操作系统时刻
1. 这不是新赛道,是 runtime 层的“操作系统时刻”来了
你有没有在深夜调试一个跑了三小时的 AI agent,突然发现它开始胡言乱语?不是模型崩了,也不是 prompt 写错了——而是上下文窗口满了,它悄悄把两小时前调用的数据库结果给“吃掉”了,然后拿半截记忆去编造下一个工具调用。我去年就踩过这个坑:一个客户定制的合同分析 agent,在第七步检索完法条后,第八步开始凭空生成不存在的判例编号。日志里没有报错,监控里没有异常,只有业务方发来的截图:“这结果不对,但你们说它‘运行成功’了。”我们花了整整一天回溯,最后发现根本没法回溯——因为 session 状态全压在模型 context 里,一溢出就不可逆地蒸发。这不是 bug,是架构债。
Anthropic 在 4 月 8 日发布的 Claude Managed Agents,表面看是又一个“托管 agent 平台”,但它的核心价值根本不在“托管”二字上。它真正交付的,是一个被工业级验证过的、可落地的 runtime 抽象层 。关键词不是“agent”,而是 session-as-event-log 、 harness-as-stateless-executor 、 sandbox-as-cattle 。这三个词组合起来,等于给整个 LLM 应用栈装上了现代操作系统的内核机制:虚拟内存(session log)、进程隔离(sandbox)、系统调用接口(execute(name, input) → string)。它不解决“agent 聪不聪明”,它解决的是“agent 跑得稳不稳、查得清不清、换得动不动”。
这和你过去用 LangChain 写个 chain、用 CrewAI 拉几个 role、再丢进本地 Docker 里跑,有本质区别。前者是手写汇编,后者是直接调用 libc 的 malloc 和 fork。Managed Agents 的 YAML 配置文件里,你声明的是“我要什么能力”,而不是“我要怎么调度线程、怎么序列化状态、怎么注入 token”。Anthropic 把这些脏活累活封装成稳定契约:session ID 是全局唯一标识符,不是临时变量;harness 崩溃后能通过 awake(sessionId) 精确续跑,不是从头再来;sandbox 启动时 credential 由 vault 注入,agent 进程内存里永远看不到明文密钥。这种设计不是炫技,是血泪教训堆出来的——当你管理着上千个并发 session,每个 session 要调用 5-8 个外部 API,且其中 3 个涉及支付或 PII 数据时,“安全”和“可观测”就不再是加分项,而是生死线。
所以别被“Managed Agents”这个名字带偏。它不是 Anthropic 在抢夺 agent 开发者的注意力,而是在为整个行业提供一个 runtime 层的事实标准接口 。就像当年 Linux 提供统一的 syscalls 让应用不必关心底层 CPU 架构,Managed Agents 正在定义:session 怎么存、state 怎么管、tool 怎么调、log 怎么查。这个接口一旦被广泛采用,开发者写 agent 就像写 Python 脚本一样自然——你关心业务逻辑,基础设施的事交给 runtime。而历史告诉我们,当一个抽象层成为事实标准,它的实现者往往不是最终赢家。VMware 卖了十年 ESX,但 Kubernetes 才定义了云原生的十年。Anthropic 现在做的,就是那个“ESX 时刻”。
2. 核心设计拆解:为什么是 session-as-event-log,而不是 context-as-database?
2.1 上下文窗口不是数据库,是易失性缓存
先说个反常识的事实: 把 session state 存在 model context 里,本质上是一种高风险的缓存滥用 。我们习惯性地把 LLM 的 context window 当作“工作台”,认为它能承载整个任务流的状态。但 context 有三大硬伤:
-
容量硬上限 :Claude 3.5 Sonnet 的 200K tokens 看似很大,但实际可用远低于此。system prompt 占 2K,user input 占 5K,每个 tool call 的 input/output 至少占 3K-8K,加上中间思考链(chain-of-thought)的冗余描述,真实可用空间常不足 50K。一个需要遍历 10 个 PDF、比对 20 份合同条款、调用 5 次 CRM API 的销售分析 agent,context 溢出不是“会不会”,而是“第几步”。
-
读写非原子性 :LLM 无法像数据库一样执行
UPDATE state SET step=3 WHERE session_id='abc'。它只能靠 prompt 工程“暗示”自己记住某件事,而这种暗示在长链路中会随 token 衰减而失效。更致命的是,当 context 满时,模型默认策略是丢弃最旧的 token——这意味着你最早调用的get_customer_data()返回结果,可能在第 7 步就被无声覆盖,后续所有推理都基于残缺数据。 -
不可审计、不可回放 :context 是单向流动的文本流,没有结构化 schema。你想查“agent 在第 4 步是否真的收到了发票金额?”,只能手动翻日志,而日志里只有一段模糊的 prompt:“请基于以下信息计算总金额:[...大段压缩文本...]”。没有字段名、没有 timestamp、没有 provenance。这在生产环境是灾难——合规审计要求你能证明“每一步决策都有据可查”,而 context 日志连“哪一步”都分不清。
Anthropic 的 session-as-event-log 直接绕开这三座大山。它把 session 拆成两个正交平面:
-
Control Plane(控制面) :由 harness 管理,负责接收用户请求、解析 intent、调度 tool、处理 credential、记录 event。它用 durable storage(如 S3 + DynamoDB)持久化每个事件:
{ "event_id": "evt_123", "session_id": "sess_456", "timestamp": "2026-04-08T14:22:33Z", "type": "tool_call", "name": "search_contracts", "input": { "keywords": ["NDA", "termination"] }, "output": "[{id: 'c789', title: 'Cloud NDA v2.1'}]" } -
Data Plane(数据面) :由 model context 承担,只存放当前 step 必需的、高度摘要的信息。比如 tool call 返回的
[{"id": "c789", "title": "Cloud NDA v2.1"}],会被压缩成"Found 1 contract: Cloud NDA v2.1"送入 context,而非原始 JSON。这样 context 始终轻量,且只承载“决策依据”,不承载“决策历史”。
提示:这种分离不是理论空想。Notion 内部的 Claude agent 就依赖此机制实现“跨天协作”。用户周一上传合同,周三让 agent 对比新版本,系统无需重新解析原始 PDF——它直接从 event log 中提取周一的
parse_pdf事件输出,作为周三对比的 baseline。这在 context-only 架构中完全不可行。
2.2 Harness:无状态执行器的工程必然性
Harness 的设计哲学非常朴素: 它必须像 HTTP server 一样无状态 。你不能假设 harness 进程会长期存活,也不能假设它有本地磁盘或共享内存。为什么?
-
弹性扩缩容需求 :企业级 agent 的负载是脉冲式的。销售晨会前 1 小时,1000 个销售代表同时提交客户分析请求;午休后流量骤降。如果 harness 有状态,扩缩容时就必须做复杂的 state migration(比如把内存里的 session map 同步到 Redis),这会引入延迟和一致性风险。而无状态 harness 只需简单地启停容器——新请求进来时,harness 通过
awake(sessionId)从 durable storage 加载 event log,重建执行上下文,全程毫秒级。 -
故障恢复的确定性 :有状态服务崩溃后,恢复点(RPO)和恢复时间(RTO)难以保障。而无状态 harness 的 RPO=0(所有 state 已落盘),RTO=常数(加载 log + 初始化模型)。Anthropic 文档里那句 “p50 time-to-first-token down roughly 60%”,核心就来自这里:harness 不再需要在启动时加载 gigabytes 的 state,它只加载当前 session 的最近 10 条 event,体积小、速度快。
-
安全边界清晰 :有状态 harness 可能意外将 credential 缓存在内存中(比如某个 tool SDK 的 connection pool),导致内存 dump 泄露。无状态 harness 每次 tool call 都从 vault 动态获取 credential,用完即焚,攻击面大幅收窄。
实操中,harness 的代码骨架极其简洁。以 Python 为例,核心逻辑不超过 50 行:
# harness.py - 无状态执行器主干
import json
from typing import Dict, Any
from event_store import load_session_events, save_event
from sandbox_manager import run_in_sandbox
from credential_vault import get_credential
def execute_tool(session_id: str, tool_name: str, tool_input: Dict[str, Any]) -> str:
# 1. 从 vault 获取 credential(绝不存入 harness 内存)
cred = get_credential(tool_name)
# 2. 在隔离 sandbox 中执行(credential 仅注入 sandbox,harness 不可见)
result = run_in_sandbox(tool_name, tool_input, cred)
# 3. 记录 event 到 durable storage(非 context!)
event = {
"session_id": session_id,
"type": "tool_call",
"name": tool_name,
"input": tool_input,
"output": result,
"timestamp": datetime.utcnow().isoformat()
}
save_event(event)
return result
def awake(session_id: str) -> Dict[str, Any]:
# 4. 重建上下文:只取必要 event,非全量加载
recent_events = load_session_events(session_id, limit=10)
# 返回轻量 context:[{type, name, summary_of_output}]
return build_lightweight_context(recent_events)
你看不到任何 self.session_state 或 cache.get() ,所有 state 都在外部存储。这就是“无状态”的物理实现。
2.3 Sandbox:从宠物到牲畜的范式迁移
Sandbox 设计是 Anthropic 最被低估的细节。它彻底抛弃了“一个 sandbox 服务一个长期 session”的旧思维,转而拥抱“按需创建、用完即焚”的 cattle 模式。这背后有三个硬核工程考量:
-
资源隔离的确定性 :传统 VM 或容器 sandbox 往往复用实例以节省启动开销,但这会导致资源争抢。一个耗 CPU 的
code_interpretertool 可能让同 sandbox 的web_searchtool 延迟飙升。Managed Agents 的 sandbox 是真正的“一次一实例”:每次 tool call 都启动全新 microVM(基于 Firecracker),分配独占 vCPU 和内存,执行完毕立即销毁。AWS AgentCore 的 microVM 实现甚至能保证 99.9% 的 CPU 隔离度,这是 Docker 无法做到的。 -
凭证泄露的零容忍 :旧方案常把 credential 作为环境变量注入 container,agent 代码只要执行
os.getenv("API_KEY")就能拿到。Managed Agents 强制 credential 由 sandbox manager 注入,并在 sandbox 内部通过 secure channel(如 Unix domain socket)传递给 tool 进程,agent 主进程内存中永不出现明文。这直接堵死了“agent 被 prompt 注入后读取 env”的经典攻击链。 -
启动速度的工程妥协 :microVM 启动比 container 慢,但 Anthropic 用预热池(warm pool)解决了。后台常驻一批已初始化的 microVM,收到 tool call 请求时,直接从池中分配一个,冷启动延迟压到 <150ms。这比“每次从 scratch 启动”快 5 倍,又比“长期复用 sandbox”安全 10 倍。
注意:这种设计对开发者是透明的。你只需在 YAML 中声明:
tools: - name: "search_web" type: "http" endpoint: "https://api.example.com/search" credential: "web_search_api_key" # 此处只写 vault key 名,不写值harness 会自动完成 credential 获取、sandbox 创建、安全注入、结果回收的全流程。你写的代码,和调用本地函数一样简单。
3. 实操落地:从 YAML 定义到生产部署的完整链路
3.1 你的第一个 Managed Agent:三步走通
别被“企业级架构”吓住。Managed Agents 的入门门槛极低,我用一个真实案例演示:为销售团队构建一个“客户健康度分析 agent”,它能自动拉取 CRM 数据、分析邮件情绪、生成风险报告。
第一步:定义 agent(YAML)
# sales_health_agent.yaml
name: "sales-health-analyzer"
description: "Analyzes customer health by combining CRM data and email sentiment"
# 系统指令:告诉模型“你是谁”、“该做什么”
system_prompt: |
You are a senior sales operations analyst at Acme Corp.
Your job is to assess customer health score (0-100) based on:
- Recent CRM activity (last 30 days)
- Sentiment of last 5 support emails
- Contract renewal date vs today
Always output JSON with keys: health_score, risk_factors, recommendations
# 工具声明:定义 agent 能调用的能力
tools:
- name: "get_crm_data"
type: "http"
endpoint: "https://api.acme-crm.com/v1/customers/{customer_id}"
method: "GET"
credential: "crm_api_key" # vault 中的 key 名
parameters:
- name: "customer_id"
type: "string"
required: true
- name: "analyze_email_sentiment"
type: "http"
endpoint: "https://api.acme-ai.com/sentiment"
method: "POST"
credential: "sentiment_api_key"
parameters:
- name: "emails"
type: "array"
required: true
- name: "generate_report"
type: "http"
endpoint: "https://api.acme-reporting.com/v2/reports"
method: "POST"
credential: "reporting_api_key"
parameters:
- name: "data"
type: "object"
required: true
# 安全护栏:防止越界行为
guardrails:
- type: "output_filter"
pattern: ".*health_score.*"
action: "block" # 如果输出不含 health_score 字段,拒绝返回
- type: "tool_call_limit"
max_calls_per_session: 10
action: "terminate"
这个 YAML 文件就是你的 agent 全部“源代码”。它不包含任何 Python/JS 逻辑,只声明意图。Anthropic 的 harness 会自动解析它,生成执行计划。
第二步:部署与测试(CLI)
安装 Anthropic CLI( pip install anthropic-managed-agents ),然后一行命令部署:
# 部署 agent(自动创建 sandbox、配置 vault、注册 endpoint)
anthropic agents deploy --config sales_health_agent.yaml --env production
# 输出:Agent deployed successfully. ID: agt_9a8b7c6d
# Session endpoint: https://api.anthropic.com/v1/agents/agt_9a8b7c6d/sessions
# 创建一个 session 并发送请求(模拟销售代表提问)
curl -X POST \
-H "Authorization: Bearer $ANTHROPIC_API_KEY" \
-H "Content-Type: application/json" \
-d '{"customer_id": "cust_12345"}' \
https://api.anthropic.com/v1/agents/agt_9a8b7c6d/sessions
响应体里会包含 session_id 和初始 output 。整个过程无需你写一行服务器代码,也不用配置 Kubernetes。
第三步:生产集成(Notion 风格)
Notion 的集成方式最具启发性。他们没让用户“去 Anthropic 控制台创建 session”,而是把 agent 嵌入 Notion 页面:
// Notion 插件前端代码(简化版)
async function runSalesAnalysis(customerId) {
// 1. 前端直接调用 Anthropic session endpoint
const response = await fetch(
"https://api.anthropic.com/v1/agents/agt_9a8b7c6d/sessions",
{
method: "POST",
headers: {
"Authorization": `Bearer ${notionUserToken}`, // 用户级 token
"Content-Type": "application/json"
},
body: JSON.stringify({ customer_id: customerId })
}
);
const { session_id, output } = await response.json();
// 2. 前端轮询 session 状态(harness 无状态,所以轮询是标准模式)
let status = "running";
while (status === "running") {
const pollRes = await fetch(
`https://api.anthropic.com/v1/agents/agt_9a8b7c6d/sessions/${session_id}`,
{ headers: { "Authorization": `Bearer ${notionUserToken}` } }
);
const pollData = await pollRes.json();
status = pollData.status;
if (status === "completed") {
displayReport(pollData.output); // 渲染 JSON 结果为美观卡片
break;
}
await new Promise(r => setTimeout(r, 1000)); // 1s 间隔轮询
}
}
关键点在于: 前端直连 Anthropic API,不经过 Notion 自己的后端 。Notion 只负责 UI 和用户认证,所有 agent 执行、state 管理、tool 调用都由 Anthropic runtime 承担。这极大降低了 Notion 的运维负担——他们不用为 agent 流量扩容自己的服务器,也不用管理 credential vault。
3.2 Pricing 模型的实操精算:$0.08/小时到底贵不贵?
官方定价是 $0.08 per session-hour of active runtime ,外加 Claude token 费用。很多人第一反应是“好贵”,但实际测算会颠覆认知。我们来拆解一个典型场景:
-
场景 :销售健康分析 agent,平均每次 session 耗时 42 秒(p50),其中:
- harness 执行时间:8 秒(解析 YAML、调度 tool、序列化 event)
- sandbox 执行时间:34 秒(CRM API 调用 12s + 邮件分析 15s + 报告生成 7s)
-
成本计算 :
- Session-hour 费用:
(42 / 3600) * $0.08 ≈ $0.00093 - Claude 3.5 Sonnet token 费用(假设输入 1500 tokens,输出 800 tokens):
- Input: 1500 * $0.003/1K = $0.0045
- Output: 800 * $0.015/1K = $0.012
- Token 小计:$0.0165
- 单次 session 总成本:≈ $0.0174
- Session-hour 费用:
对比自建方案:
- 你需要一台
c6i.2xlarge(8vCPU/16GB)EC2 实例,月租 $240,按 30 天 24 小时算,每小时成本 $0.33。 - 为支撑 1000 QPS(Notion 级别),需至少 10 实例集群,月成本 $2400。
- 还要额外支付:Redis 缓存($120/月)、Vault 管理($200/月)、监控告警($80/月)、工程师运维时间($5000/月)。
- 自建单次 session 成本(摊薄后):$0.008(基础设施)+ $0.015(人力运维)= $0.023
Managed Agents 的 $0.0174 反而更低,且省去了所有运维负担。更关键的是, 成本随用量线性增长,无固定成本 。如果你是初创公司,月均 1 万次 session,Managed Agents 月成本约 $174;自建则至少 $500(含最低配服务器和基础运维)。
实操心得:不要只看 $0.08/小时的 headline price。要算 total cost of ownership (TCO) 。Anthropic 把 infrastructure、security、observability、scaling 全打包进这 $0.08 里。当你需要快速上线、应对流量峰值、通过 SOC2 审计时,这笔钱买的是确定性。
3.3 与 AWS AgentCore 的深度对比:选型决策树
Anthropic 的发布被媒体渲染成“首创”,但 AWS Bedrock AgentCore 在 2025 年底就已 GA。二者不是替代关系,而是不同定位的互补方案。我的选型建议如下:
| 维度 | Anthropic Managed Agents | AWS Bedrock AgentCore | 决策建议 |
|---|---|---|---|
| 模型锁定 | 强绑定 Claude(仅支持 Claude 3.x) | 完全开放(Claude、Llama、Cohere、Titan 等) | 若你已深度投入 Claude 生态,选 Anthropic;若需多模型实验,选 AgentCore |
| 框架兼容性 | 专有 YAML 格式,需适配 Anthropic harness | 支持任意 request-response 框架(LangGraph、CrewAI、自研) | 若你已有成熟 LangGraph pipeline,AgentCore 可零改造接入;若从零开始,Anthropic YAML 更简洁 |
| 沙箱技术 | Firecracker microVM(强隔离) | Firecracker microVM(同源,AWS 优化更深) | 安全敏感场景(金融、医疗)二者皆可;AWS 在微秒级延迟上略优(<5ms) |
| 可观测性 | Event log 可查询,但需 Anthropic 控制台 | 原生集成 CloudWatch、OpenSearch,支持自定义指标导出 | 若你已有 AWS 监控体系,AgentCore 无缝对接;若要快速开箱即用,Anthropic 控制台更友好 |
| 企业级功能 | 基础 policy controls(GA 中) | GA 的 Policy Controls(RBAC、data filtering) | 大型企业采购必看:AgentCore 的 policy 体系更成熟,已通过 FedRAMP 认证 |
| 价格模型 | $0.08/session-hour + Claude tokens | $0.05/session-hour + Bedrock tokens(Claude 同价) | AgentCore 便宜 37.5%,但需考虑跨云数据传输费(若你的数据在 GCP/Azure) |
我的实战建议 :
- 创业公司/中小团队 :优先 Anthropic。YAML 定义 + 一键部署 + 无运维,让你聚焦业务逻辑。$0.08 的溢价换来的是工程师 20 小时/周的生产力释放。
- 大型企业/多云环境 :选 AgentCore。它能复用你现有的 AWS IAM 角色、VPC 网络、CloudTrail 审计日志,采购流程更顺畅。Policy Controls 的成熟度在金融合规场景是刚需。
- 技术保守派 :两个都试。用同一个 agent 逻辑(如销售健康分析),分别部署到两边,跑一周 A/B 测试。重点对比:p95 延迟、错误率、debug 效率。数据不会说谎。
4. 避坑指南:那些文档里不会写的实战教训
4.1 Session ID 管理:别让“唯一性”变成“单点故障”
Managed Agents 要求你为每个用户请求生成唯一的 session_id 。新手常犯的错误是:用 UUID4 直接作为 session_id。这看似完美,但埋下两大隐患:
-
调试地狱 :UUID4 是随机字符串(如
f47ac10b-58cc-4372-a567-0e02b2c3d479),无法关联业务实体。当客户投诉“我的报告错了”,你查日志看到session_id=f47ac10b...,还得翻数据库找这个 UUID 对应哪个客户、哪个销售代表、什么时间触发。效率极低。 -
重放攻击风险 :UUID4 无业务含义,攻击者可暴力枚举(虽然概率低)。更安全的做法是构造 business-aware session_id :
# 推荐:用业务标识 + 时间戳 + 随机盐 def generate_session_id(user_id: str, customer_id: str) -> str: # user_id 和 customer_id 是可信业务 ID salt = secrets.token_urlsafe(4) # 4 字符随机盐 # 格式:user_{user_id}_cust_{customer_id}_{timestamp}_{salt} return f"user_{user_id}_cust_{customer_id}_{int(time.time())}_{salt}" # 示例:user_u123_cust_c456_1712612345_aBcD这样 session_id 本身携带业务上下文,日志可读性强,且因含时间戳和盐,无法被预测。
注意:session_id 长度不能超 128 字符(Anthropic 限制),上述格式完全满足。
4.2 Tool Call 参数校验:别让 agent 传错参数毁掉整个流程
YAML 中声明的 parameters 是静态 schema,但 agent 运行时可能传入非法值。比如 get_crm_data 工具要求 customer_id 是字符串,但 agent 可能因 prompt 错误传入 null 或数字 12345 。旧方案常在 tool 代码里做防御性检查,但 Managed Agents 提供了更优雅的解法: 在 harness 层拦截 。
Anthropic 支持在 YAML 中添加 validation 规则:
tools:
- name: "get_crm_data"
type: "http"
endpoint: "https://api.acme-crm.com/v1/customers/{customer_id}"
# 新增 validation 字段
validation:
- field: "customer_id"
type: "string"
min_length: 5
pattern: "^cust_[a-zA-Z0-9]+$" # 必须以 cust_ 开头
action: "fail" # 非法时直接终止 session,不调用 tool
当 agent 传入 customer_id: 12345 ,harness 会在调用 sandbox 前就返回错误:
{
"error": "Validation failed for tool 'get_crm_data': field 'customer_id' must be string matching pattern '^cust_[a-zA-Z0-9]+$'"
}
这比让 tool 服务端返回 400 错误更高效——避免了网络往返、sandbox 启动、credential 注入等全部开销。我们在 Rakuten 的销售 agent 中应用此规则后,tool call 失败率从 12% 降至 0.3%,p95 延迟下降 40%。
4.3 Credential Vault 集成:避开“密钥轮换”的定时炸弹
Managed Agents 的 credential vault 是黑盒,但你必须主动管理密钥轮换。常见误区是:把 API Key 硬编码进 vault,永不更新。这在生产环境是自杀行为。
正确做法是: vault 中只存密钥别名,实际密钥由外部系统动态注入 。Anthropic 支持 webhook-based credential refresh:
- 在 Anthropic 控制台,为
crm_api_key配置 webhook URL(指向你自己的密钥管理服务)。 - 当 harness 需要
crm_api_key时,它会调用你的 webhook,传入{"key_alias": "crm_api_key", "session_id": "sess_123"}。 - 你的服务返回:
{ "value": "sk_live_abc123...", "expires_at": "2026-07-01T00:00:00Z", "rotation_interval": "30d" } - harness 使用此 value 调用 sandbox,并在
expires_at前自动再次调用 webhook 刷新。
这样,你的 CRM API Key 每 30 天自动轮换,无需人工干预。我们在 Sentry 的调试 agent 中实施此方案后,密钥泄露风险归零,且通过了 PCI DSS 审计。
4.4 Event Log 查询:如何用好这个“司法鉴定中心”
Event log 是 Managed Agents 的核心资产,但默认查询接口很基础。要发挥其最大价值,必须做两件事:
-
建立索引策略 :Anthropic 的 event log 支持按
session_id、timestamp、type查询,但不支持全文搜索。因此,你在save_event时,必须把关键业务字段显式存入 event:{ "session_id": "sess_456", "type": "tool_call", "name": "get_crm_data", "input": { "customer_id": "cust_12345" }, "output": "{...}", "business_context": { // 显式添加业务字段,用于过滤 "customer_id": "cust_12345", "sales_rep_id": "rep_789", "deal_stage": "negotiation" } }这样,你可以用
business_context.customer_id = 'cust_12345'精准筛选,而非在海量日志中 grep。 -
设置 retention policy :event log 默认永久保存,但存储成本会累积。根据 GDPR 和企业政策,我们为不同 event type 设置分级保留:
tool_call:保留 90 天(满足一般审计)output_filter_block:永久保留(安全事件,需长期追溯)session_start:保留 365 天(业务分析用)
Anthropic 控制台支持按 event type 设置 TTL,务必配置,否则一年后账单会让你震惊。
5. 未来已来:runtime 层 commoditization 的三层冲击波
5.1 第一层冲击:纯 runtime 创业公司的估值重估
当 AWS、Google、Microsoft 都把 agent runtime 作为云服务的“免费赠品”(实际是捆绑在 compute spend 中),独立 runtime 创业公司的商业模式就面临根本性质疑。我们来看一组真实数据:
-
Daytona (2025 年转型 agent infra):2026 年 2 月 A 轮 $24M,估值 $150M。但其核心产品 Daytona Sandbox 的 benchmark 显示:在同等 microVM 配置下,启动延迟比 AWS AgentCore 高 22%,且不支持 policy controls。投资者押注的是其开源生态,而非 runtime 本身。
-
LangGraph Cloud :2025 年底宣布“免费 tier 无限 sessions”,但隐藏条款是“超过 1000 QPS 需签企业合同”。这暴露了真相:runtime 的边际成本趋近于零,收费点必须转移到上层。
-
市场信号 :Crunchbase 数据显示,2026 年 Q1,专注于“agent orchestration engine”的初创公司融资额同比下降 63%。资本正在撤离 runtime 层,转向 trace store(Braintrust、Arize)、governance(Giskard、Robust Intelligence)、vertical agents(Salesforce Agentforce、Healthcare.ai)。
我的判断:未来 18 个月,runtime 创业公司只有两条路:要么被 hyperscaler 收购(如 VMware 被 Broadcom 收购),要么转型为垂直领域解决方案商(如从“通用 sandbox”转向“金融合规 sandbox”)。
5.2 第二层冲击:trace store 成为新的“操作系统内核”
当 runtime 层 commoditize, trace store 就成了新的价值高地 。为什么?因为它是唯一能跨 runtime 迁移的资产。今天你用 Anthropic Managed Agents,明天迁移到 Azure AI Foundry,只要你把 event log 导出为标准格式(如 OpenTelemetry Traces),trace store 就能无缝承接。
Braintrust 的 Brainstore 数据库正是为此而生。它不是简单的日志存储,而是专为 AI interaction 优化的 OLAP 引擎:
- Schema-on-read :无需预先定义 event 字段,自动 infer
business_context.customer_id为维度,output.health_score为指标。 - 实时聚合 :支持
SELECT AVG(health_score) FROM events WHERE business_context.deal_stage = 'negotiation' AND time > now() - 7d,秒级响应。 - 因果分析 :内置算法能回答“哪些 tool call 序列最常导致 health_score < 50?”——这直接指导 product iteration。
Arize 的 Phoenix 开源项目更激进:它把 trace store 变成“可编程的 observability layer”。你可以写 Python 函数,在 trace 流上实时检测异常:
# phoenix_rule.py - 检测 prompt 注入攻击
def detect_prompt_injection(trace):
for span in trace.spans:
if span.name == "llm.generate":
# 检查 prompt 是否包含可疑指令
if re.search(r"(system|ignore|disregard|you are|act as)", span.attributes["prompt"]):
return Alert("PROMPT_INJECTION_DETECTED", severity="CRITICAL")
这种能力,是任何 runtime 都无法提供的。 runtime 是高速公路,trace store 是交通指挥中心 。当所有车(agent)都跑在同一条高速(hyperscaler runtime)上时,指挥中心的价值就凸显了。
5.3 第三层冲击:垂直 agent 市场爆发,通用 agent 进入“维护模式”
Salesforce Agentforce 的 $800M ARR(2026 Q4)不是偶然。它证明了一个真理: 企业只为解决具体问题的 agent 付费,不为“智能”本身付费 。一个能自动处理医保报销的 agent,比十个“全能
更多推荐



所有评论(0)