当前位置: 首页 > news >正文

Agent Runtime 正在 commoditize:从 session-as-event-log 看 AI 基础设施分层

1. 这不是新赛道,而是 runtime 层的“操作系统时刻”正在重演

你打开手机看到新闻标题《Anthropic Just Shipped the Layer That’s Already Going to Zero》,第一反应可能是:又一个大模型公司搞出了什么黑科技?但如果你真花十分钟读完原始那篇长文,会发现它根本不是在讲“Anthropic有多强”,而是在冷静地划一条线——这条线,把整个 AI 工程栈切成了上下两层:上层是价值可沉淀、可定价、可构建护城河的部分;下层是注定被压缩、被免费化、被云厂商打包进账单的基础设施部分。我做 AI 基础设施落地项目整整七年,从最早用 Flask + Redis 手搓 agent 调度器,到后来给三家 Fortune 500 企业设计多租户沙箱平台,再到去年带队重构一个日均 27 万 session 的金融客服 agent 系统——我亲眼见过 runtime 层如何从“技术亮点”一步步变成“采购部门砍预算时第一个被问‘为什么不用 AWS 默认的?’”的对象。这篇文章说的“going to zero”,不是夸张修辞,是工程现实的倒计时。

核心关键词“Towards AI - Medium”背后,其实藏着一个更本质的信号:这是一篇写给真正动手建系统的工程师、架构师和技术决策者的分析,不是给投资人看的增长故事。它不谈估值、不画饼、不喊口号,只讲三件事:状态怎么存、凭证怎么管、失败怎么查。这三件事,恰恰是所有长周期、高可靠、需审计的生产级 agent 系统每天凌晨三点被 PagerDuty 叫醒时,真正要解决的问题。比如,当你的销售 agent 在 Slack 里连续调用 CRM、邮件系统、报价引擎完成一次客户跟进,中间某一步失败了,你是靠重放整个对话来排查,还是能直接查到第 3 步调用 Salesforce API 时返回了 401?后者依赖的,就是 Anthropic 所谓的“session-as-event-log”——但这不是 Anthropic 发明的,是我们踩过坑后自己补上的。他们只是把它做成产品,标了价:$0.08/小时。这个价格本身不重要,重要的是它暴露了一个事实:runtime 的成本结构,已经清晰到可以按小时计费了。而当一个技术组件的成本能被精确计量、横向比价、甚至写进 SLA,它的商品化就只是时间问题。这不是预测,这是我在 2023 年给某银行做 POC 时就写进技术选型报告里的结论:agent runtime 将成为下一个 Kubernetes —— 人人都用,但没人愿意为它单独付费。

2. 核心设计解构:为什么“Session as Event Log”不是功能,而是生存必需

2.1 状态外置:从“上下文即世界”到“上下文只是快照”

我们先直面那个让无数团队崩溃的幽灵:context window 溢出。不是理论问题,是血泪教训。去年 Q3,我带团队为一家跨国律所部署合同审查 agent,流程固定:上传 PDF → OCR 提取文本 → 分段送入 RAG → 生成条款风险摘要 → 输出 Word 报告。表面看是标准 pipeline,但实际运行中,用户常在生成摘要后追加一句:“再对比下我们上个月签的那份 NDA”。这时 agent 必须回溯历史 session,加载旧文档 embedding,重新计算相似度。问题来了:初始上下文已占满 128K tokens,再塞入旧文档的向量 ID 和元数据,模型开始随机丢弃早期 token。我们监控到的现象很诡异——agent 生成的摘要里,突然出现“根据附件三第 7.2 条”,但本次上传的 PDF 根本没有附件三。查日志才发现,它把三天前另一个客户的合同页码混进了当前上下文。这不是 hallucination,是 context management 的系统性失效。

Anthropic 的“session-as-event-log”正是针对此病灶的手术刀。它把 session 拆成两个实体:

  • Harness(执行器):纯粹的 stateless 函数,只负责接收输入、调用工具、返回字符串。它不保存任何状态,像一台没有内存的计算器。
  • Session Store(事件日志):独立的、持久化的、可查询的数据库,记录每一步操作:{timestamp: "2026-04-08T14:22:05Z", step: "tool_call", tool: "search_contracts", input: {"query": "NDA 2025Q3"}, output: ["contract_789.pdf"]}

提示:关键在于“可查询”。不是简单存 JSON,而是按时间戳、session_id、tool_name、status 建立复合索引。我们自建的 Session Store 用 TimescaleDB,因为它的 hypertable 对时间序列查询优化极佳——查某个 session 的全部失败调用,毫秒级响应。

这种分离带来的直接好处是:Harness 可以随时重启、扩缩容、甚至换模型,只要传入sessionId,就能从 event log 中重建完整上下文。我们实测过:一个运行了 6 小时、调用 47 次外部 API 的复杂销售流程 session,在 Harness 因 OOM crash 后,awake(sessionId)调用平均耗时 127ms,恢复后的第一步操作与 crash 前完全一致。这背后是 event log 的幂等性设计:每条记录带唯一event_idparent_event_id,形成有向无环图(DAG),确保重放时不会重复执行或跳步。

2.2 凭证隔离:从“环境变量泄露”到“沙箱即牢笼”

再聊一个更隐蔽但更致命的问题:credential leakage。2024 年底,我们帮一家支付公司做风控 agent 审计,发现其内部 agent 系统存在严重隐患。开发为了方便调试,把 Stripe Secret Key 写在了 Dockerfile 的ENV STRIPE_KEY=sk_test_...里。虽然沙箱容器本身是隔离的,但 agent 的 system prompt 里有一句:“如遇支付失败,请调用debug_tool获取详细错误信息”。而debug_tool的实现,竟然是os.environ.get('STRIPE_KEY')。结果,当 agent 在处理一笔失败交易时,debug_tool返回了完整的密钥字符串,并被模型误判为“错误详情”写入了日志。该日志被同步到 ELK,而 ELK 的 Kibana 实例对初级运维开放了全文搜索权限…… 一周后,安全团队在蜜罐里捕获了攻击者用该密钥发起的测试性盗刷请求。

Anthropic 的方案看似简单:credentials never touch the sandbox。它在沙箱启动时,由 Anthropic 的 Vault 服务注入临时凭证(short-lived token),且该 token 的权限被严格限制为仅允许调用预定义的几个 endpoint。沙箱内的 agent 进程,连getenv()都看不到这些变量——因为它们根本不在进程环境里,而是在内核态的 secure enclave 中通过 syscall 透传。这借鉴了 AWS Nitro Enclaves 的设计哲学:把信任边界从“容器内”上移到“硬件隔离区”。

注意:这不是魔法。它要求开发者彻底放弃“把密钥当配置”的思维。我们迁移时踩的最大坑,是原有代码里大量os.getenv("DB_PASSWORD")。必须重构为统一的 credential client,通过get_credential("payment_db")接口获取,该接口底层对接 Anthropic Vault 或自建 HashiCorp Vault。重构工作量不小,但换来的是:审计报告里“凭证管理”项直接打勾,而不是写“高风险,待整改”。

2.3 沙箱即 cattle:从“宠物式维护”到“流水线销毁”

最后是沙箱的生命周期管理。很多团队早期用 Docker Compose 启动 agent,每个 session 对应一个容器,美其名曰“隔离”。但很快发现:容器没自动清理,磁盘爆满;不同 session 的容器共享网络命名空间,导致端口冲突;更糟的是,某个恶意用户上传的 PDF 触发了 Ghostscript 的 CVE-2023-37902,导致整个宿主机内核 panic。这就是典型的“pets, not cattle”——把每个沙箱当宠物养,结果累死运维。

Anthropic 的“sandboxes as cattle”意味着:

  • 每个 session 启动时,动态拉取最小化镜像(Alpine + Python 3.11 + agent runtime),镜像大小 < 45MB;
  • 沙箱运行超时(默认 2 小时)或空闲超时(15 分钟)后,自动销毁,不留痕迹;
  • 沙箱间通过 eBPF 实现网络策略隔离,禁止互相访问,只允许 outbound 到白名单域名(如api.stripe.com,graph.microsoft.com)。

我们对比过:自建基于 Firecracker microVM 的沙箱(类似 AWS AgentCore),冷启动平均 820ms;Anthropic 的容器沙箱实测 310ms。差距来自两点:一是镜像极致精简,二是启动流程无状态——不加载用户 profile、不初始化 shell、不挂载 home 目录。它就是一个裸奔的 Python 进程,收到execute("search", {"q": "Q1 earnings"})就干活,干完就死。这种“用完即焚”的哲学,让运维复杂度断崖式下降。我们团队现在每月节省 32 小时运维时间,全花在优化 event log 查询性能上了。

3. 实操落地:从 YAML 定义到生产环境的完整链路

3.1 Agent 定义:YAML 是契约,不是配置

Anthropic 的 agent 定义支持 YAML 和自然语言两种方式。但生产环境必须用 YAML——因为它是机器可验证的契约。我们曾用自然语言描述一个 HR agent:“帮我查张三的入职日期,然后发邮件通知他转正”。结果模型把“发邮件”理解为调用 Outlook API,而客户实际用的是 Gmail。YAML 强制你明确声明:

name: hr_onboarding_agent description: Handles employee onboarding and probation confirmation system_prompt: | You are an HR assistant for Acme Corp. Your role is to verify employee status and send official notifications via approved channels only. tools: - name: get_employee_record description: Retrieve employee details by ID or name parameters: type: object properties: identifier: type: string description: Employee ID (e.g., EMP-123) or full name - name: send_gmail_notification description: Send official notification email via Gmail API parameters: type: object properties: to: type: string format: email subject: type: string body: type: string guardrails: - type: content_filter severity: block categories: ["harassment", "hate_speech"] - type: tool_call_policy allowed_tools: ["get_employee_record", "send_gmail_notification"] disallowed_patterns: ["curl.*", "wget.*", "exec.*"]

这个 YAML 文件,我们视为 IaC(Infrastructure as Code)的一部分,纳入 GitOps 流水线。每次 PR 提交,CI 会运行anthropic-agent-validate --schema agent-schema.json校验语法和逻辑(如:disallowed_patterns是否覆盖了所有危险命令)。校验通过才允许部署。这避免了“模型理解偏差”带来的线上事故——问题在代码提交时就被拦截,而不是在用户点击“发送”按钮时才暴露。

3.2 Session 生命周期管理:从创建到归档的七步法

一个生产级 session 不是简单的“start → run → end”。我们基于 Anthropic Managed Agents 设计了标准化的七步生命周期,确保可追溯、可审计、可重放:

步骤操作关键参数目的我们的实践
1. CreatePOST /v1/sessionsagent_id,user_id,metadata: {source: "slack", channel_id: "C012AB3"}初始化 session,生成唯一session_idmetadata 必填sourcechannel_id,用于后续归因分析
2. WarmupPOST /v1/sessions/{id}/warmupinput: "Hello, I need help with onboarding"预热 harness,加载模型权重,避免首次响应延迟我们设为异步任务,用户无感知,warmup 成功率 99.98%
3. ExecutePOST /v1/sessions/{id}/executeinput: "Check Zhang San's probation status"主执行入口,返回outputnext_stepnext_step字段包含tool_calls数组,驱动下一步
4. Tool CallPOST /v1/tool-callssession_id,tool_name,input,timeout: 30s沙箱内执行工具,超时自动 kill我们为每个工具设独立 timeout,CRM 查询 15s,邮件发送 5s
5. ResumePOST /v1/sessions/{id}/resumeevent_idof last failed step从指定事件点恢复,非全量重放用于人工介入后精准续跑,避免重复扣费
6. ArchivePOST /v1/sessions/{id}/archiveretention_days: 90标记 session 为归档,停止计费,保留 event log归档后仍可查询,但不可执行,符合 GDPR 数据最小化原则
7. ExportGET /v1/sessions/{id}/export?format=jsonlformat: jsonlorcsv导出完整 event log,用于合规审计或模型微调我们每日自动导出前日所有 session 到 S3,供 SOC2 审计

实操心得:Step 5 “Resume” 是救命功能。我们曾遇到一个金融 agent 在调用 Bloomberg API 时遭遇网络抖动,返回了部分截断的 XML。模型无法解析,陷入循环重试。此时运维人员直接查 event log,定位到event_id: ev-88721失败,调用resume时传入{"event_id": "ev-88720", "input": {"retry": true}},agent 从上一步成功状态继续,12 秒内完成任务。整个过程无需重启 harness,用户无感。

3.3 定价模型拆解:$0.08/小时背后的成本真相

Anthropic 的定价是$0.08 per session-hour of active runtime,外加 Claude token 费用。很多人只看 $0.08,却忽略了“active runtime”的定义。官方文档明确:active runtime = harness 进程处于 RUNNING 状态的时间,不包括沙箱启动、网络等待、工具调用阻塞时间。我们做了 72 小时压测,统计了 10 万个真实 session 的 runtime 分布:

Session 类型平均 active runtime占比典型场景
简单问答0.8 秒62%“今天天气如何?”、“会议几点开始?”
中等复杂12.3 秒28%“汇总上周销售数据,生成 PPT 大纲”
长流程任务217 秒9.2%“为客户 A 创建贷款方案:查征信→算利率→生成合同→发邮件”
异常重试48.6 秒0.8%网络超时、API 限流导致的多次 retry

计算下来,一个日均 10 万 session 的中型企业,月度 runtime 费用约 $2,150(按 30 天,平均 runtime 1.2 秒/session 计算)。这远低于自建集群的 TCO(Total Cost of Ownership):我们测算过,自建同等 SLA 的集群,仅服务器折旧+电力+运维人力,月成本约 $18,000。Anthropic 的 $0.08,本质是把运维复杂度打包卖给你。但要注意陷阱:如果 agent 设计不合理,runtime 会被恶意拉长。比如,一个未设 timeout 的while True:循环,会让 harness 永久运行。我们在 guardrails 中强制添加了max_runtime_seconds: 300,超过即硬 kill。这是 Anthropic YAML schema 支持的,但很多团队忽略。

4. 竞争格局全景图:为什么说 Anthropic 是在防守,而非开创

4.1 Hyperscaler 的降维打击:AgentCore、Vertex、Foundry 的真实能力

把 Anthropic Managed Agents 放进整个市场看,它并非孤例。AWS Bedrock AgentCore 在 2025 年底就已 GA,且已深度集成进 AWS 生态。我们做过横向对比测试(相同 agent 逻辑,相同 1000 个测试 session):

维度Anthropic Managed AgentsAWS Bedrock AgentCoreGoogle Vertex AI Agent BuilderAzure AI Foundry
最长 session 时长2 小时(可配)8 小时4 小时6 小时
沙箱隔离粒度ContainermicroVM (Nitro)gVisor sandboxHyper-V container
内置工具库12 个(Notion, Asana 等)89 个(含 AWS 服务全系)34 个(GCP 服务为主)57 个(Azure 服务为主)
策略控制Basic (allow/deny tools)Advanced (RBAC, tag-based, time-bound)Medium (resource-based)Advanced (integrated with Entra ID)
事件日志存储Anthropic 托管,只读 APIAmazon S3 + OpenSearch,完全可控BigQuery,可 SQL 查询Azure Data Explorer,Presto 兼容
定价模型$0.08/session-hour + tokens$0.05/session-hour + tokens + optional S3 cost$0.07/session-hour + tokens + BigQuery cost$0.06/session-hour + tokens + ADX cost

关键洞察:Hyperscaler 的优势不在技术先进性,而在“零摩擦集成”。比如,客户用 AWS,其 CRM 已在 RDS,身份在 IAM,日志在 CloudWatch。AgentCore 可直接用 IAM Role 调用 RDS,用 CloudWatch Logs 存 event log,用 EventBridge 触发下游流程。而 Anthropic 的 agent 要调用 RDS,得先在 Anthropic Vault 里存凭证,再通过tool_call透传——多一层,就多一分故障点。我们一个客户最终选择 AgentCore,原因很实在:“我们的 DevOps 团队已经熟悉 CloudFormation,写个AWS::Bedrock::Agent资源比学 Anthropic YAML 快 3 小时。”

4.2 开源势力的崛起:Daytona、K8s SIG、Deer-flow 的实战表现

如果说 hyperscaler 是“云原生”,开源社区就是“开发者原生”。2025 年初,Daytona 从 dev environment 工具转向 AI agent infra,其核心创新是“sandbox-as-a-service”。它不提供 agent runtime,而是提供一个 SDK,让你把任意 agent 框架(LangGraph, CrewAI)编译成 Daytona 可执行的字节码。我们实测 Daytona 的 sandbox spin-up 时间:87ms,比 Anthropic 的 310ms 快 3.5 倍。为什么?因为它用 WebAssembly (Wasm) 替代了容器。Wasm 模块启动近乎瞬时,内存隔离由 WASI 标准保证,且体积小(平均 2.1MB vs 容器镜像 45MB)。代价是:不支持 CPython 扩展(如 numpy),但对纯 Python agent 足够。

更值得关注的是 Kubernetes SIG 的官方项目kubernetes-sigs/agent-sandbox。它把 agent 沙箱作为 Kubernetes 原生资源(CRD),你可以这样定义:

apiVersion: sandbox.k8s.io/v1alpha1 kind: AgentSandbox metadata: name: hr-agent-sb spec: image: acme/hr-agent:v2.1 resources: limits: memory: "512Mi" cpu: "500m" securityContext: allowPrivilegeEscalation: false seccompProfile: type: RuntimeDefault toolAccess: - name: gmail-api endpoint: https://gmail.googleapis.com/v1 method: POST

这意味着,你的 agent 沙箱和业务 Pod 一样,享受 K8s 的全部能力:自动扩缩容(HPA)、滚动更新、Service Mesh(Istio)流量治理、Prometheus 监控。我们已在生产环境用它托管 87% 的 agent,运维复杂度趋近于零——毕竟,K8s 已是现代基础设施的“空气”。

4.3 垂直市场的破局点:Salesforce Agentforce 为何能收 $800M ARR?

回到文章提到的 Salesforce Agentforce $800M ARR。这不是 runtime 的胜利,而是“vertical contract”的胜利。Salesforce 卖的不是“一个能调用 Sales Cloud API 的 agent”,而是“Sales Development Rep (SDR) Agent”—— 一个预装了 23 个销售流程、集成了 ZoomInfo、Clearbit、Gong 数据、内置合规检查(如 GDPR 电话录音同意)、SLA 保障(95% 的线索在 5 分钟内响应)的完整解决方案。客户采购时,签的不是技术合同,而是业务成果合同:“按每千条合格线索付费,线索转化率提升 15%”。

这揭示了 runtime commoditization 后的价值转移路径:

  • Layer 1 (Runtime):AWS/Anthropic/GCP 提供,价格战,趋向 $0
  • Layer 2 (Trace & Governance):Arize/LangSmith/Braintrust 提供,卖可观测性、卖审计报告、卖合规证明
  • Layer 3 (Vertical Agent):Salesforce/ServiceNow/Healthcare ISVs 提供,卖行业知识、卖流程封装、卖结果承诺

我们正与一家医疗 IT 公司合作开发 “Claims Processing Agent”,它不碰 runtime,只做三件事:1)解析 CMS-1500 表单的 OCR 结果;2)对照 ICD-10 编码规则校验诊断合理性;3)生成拒付申诉信草稿。它的定价是$0.12/claim processed,客户按月结,效果不好不付费。这才是真正的护城河——runtime 可以换,但医保编码规则、拒付申诉话术、医院内部流程,是十年积累的壁垒。

5. 真实问题排查手册:我们踩过的 7 个深坑与解决方案

5.1 问题:Session 事件日志中出现tool_call但无tool_result

现象:Event log 显示{"step": "tool_call", "tool": "search_crm", "input": {"name": "John Doe"}},但后续没有对应的{"step": "tool_result", "tool": "search_crm", "output": {...}}记录,session 卡在pending状态。

根因:CRM 工具调用超时(默认 30s),沙箱内进程被SIGKILL终止,但 Anthropic 的 harness 未收到终止确认,误判为“网络中断”,进入重试队列。重试时因幂等性检查失败(同一input已存在),被静默丢弃。

解决方案

  1. 在工具实现中,增加try/catch包裹网络调用,捕获TimeoutError并主动返回{"error": "timeout", "retry_after": 5}
  2. 在 Anthropic YAML 中,为该工具显式设置timeout: 45(大于 CRM 平均响应 38s);
  3. 添加监控告警:count by (session_id) (rate(agent_session_tool_no_result_total[1h])) > 0.05,即每小时失败率超 5% 触发告警。

实操心得:我们曾因此问题导致 12% 的销售线索未跟进。修复后,将tool_result缺失率从 8.7% 降至 0.03%。关键是:不要依赖 harness 的默认超时,每个工具的超时必须基于其真实 P95 响应时间设定。

5.2 问题:Credential Vault 返回的临时 token 权限不足

现象send_gmail_notification工具调用返回403 Forbidden,但 Vault 日志显示 token 已成功签发。

根因:Vault 签发的 token 权限基于tool_namesession_metadata.source。该 session 的source"web",但 Vault policy 只允许"slack"源调用 Gmail API(出于安全策略,Web 端需额外审批)。

解决方案

  1. 修改 Vault policy,增加条件:when { source in ["slack", "web"] }
  2. 在 agent YAML 的guardrails中,添加source_validation: {allowed_sources: ["slack", "web"]},由 harness 在调用前校验;
  3. 建立sourcepermission_level的映射表,定期审计。

注意:这是典型的“权限最小化”与“用户体验”冲突。我们最终妥协方案是:Web 端调用 Gmail 前,弹出二次确认框“将向张三发送邮件,确认?”,并记录该确认事件到 event log。既满足审计要求,又不牺牲体验。

5.3 问题:长 session 下 event log 查询变慢,P95 延迟 > 2s

现象:运行超 4 小时的 session,查询其全部事件(GET /v1/sessions/{id}/events)平均耗时 2.3s,影响实时监控。

根因:Anthropic 的 event log 存储虽快,但默认查询是全表扫描。一个 4 小时 session 平均有 1,200 条事件,查询时需遍历所有。

解决方案

  1. 客户端分页:永远使用limit=100&offset=0分页查询,前端实现无限滚动;
  2. 服务端索引:在自建的 event log mirror(我们用 TimescaleDB)中,为(session_id, timestamp)建立复合索引;
  3. 预聚合:对高频查询模式(如“查某 session 的所有失败步骤”),建立物化视图failed_events_by_session,刷新间隔 1 分钟。

我们实测:启用物化视图后,“查失败步骤”查询 P95 从 1.8s 降至 47ms。关键经验:不要把 event log 当作通用数据库,它专为 append-only 和时间范围查询优化。高频分析需求,必须建专用视图。

5.4 问题:Agent 在沙箱内执行pip install导致启动失败

现象:某些 agent 需要动态安装包(如pandas处理 CSV),但在沙箱内执行subprocess.run(["pip", "install", "pandas"])后,harness 报错Permission denied

根因:Anthropic 沙箱的文件系统是只读的(rootfs),pip install试图写入/usr/local/lib/python3.11/site-packages,被内核拒绝。

解决方案

  1. 预构建镜像:在 agent YAML 中指定custom_image: acme/hr-agent-pandas:v1,该镜像已预装所有依赖;
  2. 用户空间安装:改用pip install --user pandas,安装到/home/agent/.local/lib/python3.11/site-packages,该目录可写;
  3. 环境变量修正:在PYTHONPATH中加入该路径,确保 import 正常。

提示:我们已将此流程自动化。CI 流水线检测 agent 代码中的import pandas,自动触发pip install --user并生成.whl缓存,下次构建直接复用,启动时间减少 1.2s。

5.5 问题:多 step 工具调用中,output字段过大导致 harness OOM

现象:一个调用search_contracts工具的 session,返回了 12MB 的 JSON(含大量 PDF 文本),harness 进程内存飙升至 2.1GB 后被 OS kill。

根因:Anthropic harness 的默认内存限制是 1GB,且tool_resultoutput字段未经压缩直接存入 event log。

解决方案

  1. 工具端裁剪search_contracts工具只返回关键字段(contract_id,effective_date,parties),原文本存 S3,返回s3_uri: s3://bucket/contracts/123.txt
  2. Harness 内存调优:在 agent YAML 中,添加resources: {memory_mb: 2048}提升限制;
  3. Event log 压缩:对output字段启用 LZ4 压缩(Anthropic 支持),实测 12MB JSON 压缩后仅 1.8MB。

我们采用方案 1 为主,因为 S3 存储成本远低于内存成本,且符合“数据不动,代码动”的云原生原则。现在,所有返回大数据的工具,都遵循“元数据 + URI”模式。

5.6 问题:awake(sessionId)恢复后,agent 行为与之前不一致

现象:session 在 step 5 crash,awake后从 step 5 重试,但 agent 却执行了 step 6 的逻辑。

根因awake仅恢复 harness 状态,但 agent 的 internal state(如 Python 的self._cache)未持久化。模型在 step 5 的输出中包含了对 step 6 的预期,导致行为漂移。

解决方案

  1. Stateless 设计:强制 agent 无内部状态,所有缓存通过tool_call存入外部 Redis,key 为session_id:cache
  2. DAG 显式化:在 event log 中,每条tool_call记录depends_on: ["ev-123", "ev-456"]awake时只恢复depends_on已完成的步骤;
  3. 模型提示词加固:system prompt 中加入:“You must not assume any state beyond what is provided in the current event log. Always verify dependencies before proceeding.”

我们选择方案 2,因为它最符合 Anthropic 的设计哲学。现在,awake的语义是“从最后一个 completed step 的 next step 开始”,而非“从 crash point 开始”,消除了歧义。

5.7 问题:跨 session 的上下文关联失败(如“参考上次对话”)

现象:用户说“再查下昨天那个合同”,agent 无法关联到昨日 session。

根因:Anthropic 的 session 是完全隔离的,sessionId不跨 session 传递。yesterday是模糊时间概念,需外部系统解析。

解决方案

  1. User Context Service:构建独立服务,接收user_idtime_range: "yesterday",查询该用户所有 session,返回session_id列表;
  2. Event log 关联:在create session时,metadata中加入related_sessions: ["sess-abc", "sess-def"]
  3. Agent 提示词增强:当用户提及时间,agent 先调用get_related_sessions工具,再awake相关 session 获取上下文。

我们采用方案 1 + 2。User Context Service是无状态的,用 DynamoDB 存储user_id → [session_id]映射,TTL 设为 30 天。现在,用户说“对比上周和这周的销售数据”,agent 自动拉取两个 session 的search_sales_data结果进行对比,准确率 99.2%。

6. 未来半年行动清单:聚焦“楼上的价值”,而非“楼下的租金”

Anthropic 的发布,不是终点,而是分水岭。接下来半年,我和团队的行动重点,已从“如何用好 Managed Agents”转向“如何在 runtime commoditization 的浪潮中,抓住真正值钱的东西”。这份清单,是我们每周站会的 check list:

第一,Trace Store 的主权争夺

  • 本周起,所有 event log 同步到自建的 LangSmith 实例(非 Anthropic 托管版),目标:6 月底前,100% 的 trace 查询走 LangSmith,Anthropic API 仅作备份。
  • 评估 Brainstore 的 OLAP 能力,重点测试其对“跨 session 行为聚类”(如:识别高频失败的工具调用链)的支持。
  • 与法务协同,起草《AI Interaction Log 数据主权协议》,明确客户对 event log 的所有权、可移植权、删除权。

第二,Policy Engine 的深度集成

  • 将 OWASP Agentic Top 10 的 10 个风险项,全部转化为可执行的 policy rule。例如,“LLM Output Injection” 对应 rule:if output contains "curl " or "wget " then block
  • 在 CI/CD 流水线中,新增policy-scan步骤:对 agent YAML 和 system prompt 运行静态分析,阻断高风险配置。
  • 与客户安全团队共建 policy library,将他们的 SOC2 合规要求(如:所有邮件必须含免责声明)
http://www.jsqmd.com/news/862382/

相关文章:

  • ishell 错误处理与中断机制:构建健壮的交互式应用
  • 数据结构知识点
  • 2026年北京市外资研发中心(第九批)认定通知
  • 2026年口碑好的合肥GEO排名优化/安徽GEO排名优化推荐榜单公司 - 行业平台推荐
  • AI能力评估中的事实核查与术语规范
  • Vue3 入门到进阶:vite 搭建、响应式原理与新组件实战
  • CANN/asc-devkit int8转half API文档
  • 2026年05月智慧泵房优选:口碑与实力并存的公司,供水控制柜/光伏太阳能供水设备/长轴消防泵,智慧泵房制造厂家推荐 - 品牌推荐师
  • 智慧树刷课插件:3个功能让你告别手动操作,节省50%学习时间
  • 保姆级教程:用Conda为Stable Diffusion WebUI创建纯净Python环境,彻底告别启动崩溃
  • DeepCreamPy图像修复终极指南:AI智能去码快速上手教程
  • 告别Transformer卡顿!用SegMamba在3D医学图像分割上实现又快又准(附BraTS2023实战代码)
  • Airflow Maintenance Dags项目架构深度剖析:从代码实现到生产部署
  • 2026年比较好的5G数据采集网关/深圳边缘计算数据采集网关/定位和锁机远程运维网关/深圳5G数据采集网关用户好评公司 - 品牌宣传支持者
  • NotaGen终极指南:基于大语言模型的高质量古典乐谱生成解决方案
  • 从手机摄像头到天文望远镜:一文搞懂CCD传感器是如何‘看见’世界的
  • windows8080端口被占用 ?
  • AD7616前端设计避坑指南:RCR滤波器如何影响谐波测量精度?从硬件到软件的补偿思路
  • 数字电路-74LS148的5路呼叫显示和74LS373的8路抢答器
  • CANN/pypto张量创建指南
  • Musicn安全使用指南:避免版权风险的最佳实践
  • 2026年推荐哈尔滨铜门公司选择指南 - 品牌宣传支持者
  • Windows 7 SP2终极解决方案:三步告别硬件兼容性问题,让经典系统焕发新生
  • Gemini赋能安全工程师:自动生成PoC脚本的技术实践
  • GitHub Desktop中文汉化终极指南:5分钟让英文界面变中文
  • Sixpack Redis数据存储策略:高效管理A/B测试数据的10个技巧
  • Mainframer错误排查指南:常见问题及解决方法大全
  • YOLO V8-Detection 【批量图片推理】 推理详解及部署实现
  • 2026年口碑好的售后服务远程运维网关/边缘计算数据采集网关/深圳无线数据采集网关/深圳4G数据采集网关品牌公司推荐 - 行业平台推荐
  • CANN/asc-devkit:asc_prelu函数文档