Cloudflare Agents Week 2026 拆解:Code Mode、Agent Memory 与 MCP 治理如何把 Agent 推进生产

发布时间:2026/8/31 4:23:56
Cloudflare Agents Week 2026 拆解:Code Mode、Agent Memory 与 MCP 治理如何把 Agent 推进生产 Agent 为什么先卡在权限而不是模型某个周五晚上团队跑了半年的客户支持 Agent 突然向企业管理员账号发起删除存储桶操作好在人工审批拦住了。事故没有发生不代表设计合格。真正该追问的是模型为什么能把一句含糊的话变成高风险工具调用。权限、上下文和审批没有落到系统边界模型再聪明也只是拿着钥匙乱走。很多团队把安全写进系统提示词要求 Agent 不要越权、不要删除、不要泄露数据。提示词能表达意图却不能替数据库拒绝一条危险请求。用户输入可以改变模型的注意力工具参数也可能在多轮对话里漂移。只要执行层没有独立校验模型说得再谨慎真正落笔的那一刻仍然没有硬门。Cloudflare 在 2026 年 Agents Week 集中展示的能力价值不在于又增加了几个云产品按钮。它把工具调用、长期记忆、用户身份和 MCP 流量放到基础设施层处理。这个思路很适合拿来审视自己的 Agent。模型负责理解任务平台负责限制动作业务系统负责决定什么能真正发生。这也是平台层必须承担的责任。不能只靠模型自律。生产里的 Agent 通常会同时碰到几类边界它要读内部资料要调用外部接口还可能更新工单或触发支付。每个动作都可能跨越身份、网络和业务规则三层。把这些边界交给一个提示词维护等于让同一个人既写申请、又批准申请、还负责记账。架构上必须把职责拆开。权限边界要能独立回读。这篇文章不把发布会内容当成产品清单而是把它们翻译成工程问题。Code Mode 解决工具描述过多Agent Memory 解决上下文无法长期保存Managed OAuth 解决共享账号无法问责影子 MCP 治理解决企业看不见工具流量。四个问题连起来才是一条能验收的生产路径。每个能力都要有拒绝路径。每次调用都要留下证据。Code Mode 怎样减少工具调用和 Token 消耗工具接得越多模型越容易被工具说明淹没。Cloudflare 官方文章用自家 API 做过量级对比传统方式若把两千五百多个端点全部做成工具必填参数就可能占掉约二十四万 Token连可选参数展开后超过一百一十万。数字的重点不是精确预算而是说明逐个暴露端点会迅速失控。缺少任何一项链路都不完整。Code Mode 的做法是把大量工具收敛成搜索和执行两个入口。Agent 不再把每个端点的完整参数表背进上下文而是先找到需要的能力再生成一小段 JavaScript 调用。真正的参数校验、凭证注入和网络访问由运行时完成。模型看到的接口变少了执行层反而获得了更多可控位置。这才是成本下降的前提。这会改变工具调用的成本结构。传统方案每轮都可能重复加载一大批静态描述调用次数一多延迟和费用一起上涨。Code Mode 把大块说明移到服务端模型只携带当前任务需要的代码片段。官方示例把上下文占用压到约一千 Token 的量级具体数值会随接口和实现变化但方向非常清楚。更重要的变化是渐进式发现。Agent 先询问可用能力再选择一个端点随后把参数放进受控执行环境。它不需要一次知道全部 API也不必让开发者为每个新端点都维护一段工具包装。接口变更时搜索结果和运行时可以同步更新。模型的知识不再成为工具目录的单一来源。验收结果必须能够追溯。Code Mode 不是给任意代码开绿灯。生成的 JavaScript 仍然要经过沙箱、超时、资源上限和出口策略。运行时只应开放本次任务所需的接口禁止读取主机文件禁止访问未申报地址也不能直接拿到长期凭证。工具数量减少了安全检查反而要更集中因为一个执行入口可能覆盖很多动作。边界清楚组合才安全。它最适合工具数量多、接口更新快、调用链需要组合的场景。内部工单系统有几十个端点时逐个注册会让定义文件越来越难审。Code Mode 允许 Agent 在一次受控执行中完成查询、筛选和汇总减少来回传输。若任务只是调用一个固定接口直接工具反而更简单不必为了潮流增加一层运行时。验收时不要只测响应速度要同时测上下文、权限和错误处理。记录一次传统工具调用和一次 Code Mode 调用的输入长度、请求数量和失败原因。故意给出未授权端点、超长循环和错误参数看沙箱是否拒绝。只有成本下降、动作范围没有扩大、日志还能还原过程压缩才算真正有价值。Agent Memory 记住什么又该忘掉什么长对话会把 Agent 推到另一个难题上模型需要记住用户偏好、任务进度和历史决定却不能把全部聊天记录反复塞进上下文。把每句话永久写入向量库。看似解决了记忆实际上制造了隐私和越权。记忆系统必须回答的并不是“能召回多少”而是“谁可以在什么时候读到哪一条”。Cloudflare 把 Agent Memory 做成托管能力文档显示它可以从 Workers 调用也能让其他基础设施通过接口接入。它的定位不是普通聊天历史而是给长任务提供可管理的记忆层。业务可以把记忆写入、召回、列出和遗忘拆成独立动作。这样每个动作都能挂上身份、租户和审计信息。这才是记忆系统的基本账本。记忆的生命周期至少要有五个环节产生时判断是否值得保存写入时绑定用户和会话召回时限制范围使用后记录来源过期时执行删除。任何一个环节缺失系统就可能把一次性的验证码当成长期偏好。工程上宁可少记也不要把所有上下文打包存档。记忆不是越多越聪明。服务还强调通过假设性答案帮助检索意思是先围绕问题构造可能的答案再用它去寻找相关记忆。它和简单的关键词匹配不同适合用户换一种说法继续追问。检索效果不能只看命中数量还要看返回内容是否属于同一个用户、同一个项目和同一个时间范围。相关性高但主体错了仍然是安全事故。多租户是记忆系统最容易出错的地方。每条记录都要带租户标识、用户标识、会话标识和用途标签召回查询必须由服务端补齐过滤条件不能相信模型自己传来的筛选值。跨租户测试要使用相似问题和相似姓名确认系统不会因为语义相近就把别人的记忆召回。日志也不能泄露完整原文。遗忘接口要和保存接口同等重要。产品需要定义过期时间、人工删除、账号注销和合规导出四种路径并记录删除是否真正完成。平台支持导出时业务应定期演练迁移而不是等供应商改接口才临时处理。一个不能可靠删除的记忆服务越好用积累的风险越大。三天试用期也应有清理证据。验收 Agent Memory 可以设计四组用例先写入一条用户偏好再用改写后的问题召回。换成另一个用户确认召回为空。执行遗忘后再次查询确认结果不再出现模拟租户注销核对索引和备份都完成处理。还要测召回失败时 Agent 是否会诚实说明未知而不是凭空补全。记忆的价值必须服从可追责。Managed OAuth 如何替代共享服务账号共享服务账号的问题不只是密钥容易泄露更大的麻烦是无法回答“究竟是谁做的”。日志里只有一个固定账号管理员、客服和自动任务都混在一起。Agent 一旦拿到长期凭证就能在没有用户参与的情况下持续调用内部接口。出了事故团队只能追到账号追不到真实意图和授权来源。用于 Access 的 Managed OAuth 针对的就是这条断裂。它依据 RFC 9728 的受保护资源元数据方式让 Agent 能发现受保护资源对应的认证端点。这里的重点不是把登录页面换个样式而是让认证协议知道资源是谁、授权服务器在哪里、用户授权覆盖什么范围。发现过程由协议完成比把地址和密钥写死在提示词里可靠。典型流程从一次未授权响应开始。Agent 访问受保护资源后收到 401根据响应中的发现信息读取授权服务器元数据再按规定发起授权流程。用户在浏览器中确认身份和范围系统签发与用户绑定的访问令牌。Agent 负责转交请求Access 仍然依据用户策略判断能不能访问代理不能偷偷扩大权限。这和给 Agent 发一个永久服务账号完全不同。令牌代表某个用户在某个时间段内的授权日志可以同时记录用户、代理、资源和动作。用户离职或权限变化时原有策略可以立即生效不需要到处轮换同一个密钥。审计人员看到的不再是一条孤立账号记录而是一条完整的授权链。受保护资源也不只是一台 MCP 服务器。内部网页、接口、知识库和管理后台只要由 Access 统一保护都可以沿用同一套身份边界。这样做的好处是 Agent 的身份逻辑不用在每个业务系统里重写。系统管理员可以集中设置允许的范围、令牌有效期和重新确认条件。它也可以保护内部页面。范围也要逐项记录。接入时仍要给高风险动作加额外门槛。读内部文档可以采用短时令牌改工单状态需要再次确认删除数据和发起支付则应生成审批任务。刷新令牌不应自动绕过新的用户授权浏览器认证也不能被后台脚本永久代替。OAuth 解决“谁授权”它不替业务规则回答“这次动作该不该做”。验收 Managed OAuth 要从身份链开始分别记录发现地址、授权主体、令牌范围、过期时间和撤销结果。换一个用户重复同一请求返回内容和日志主体必须随身份改变。故意删除令牌再观察 Agent 是否停在重新授权而不是切换共享账号。若日志只能看到代理名称说明问责链仍未闭合。确认范围必须能回读。影子 MCP 与企业治理从哪里下手影子 MCP 指的是没有登记、没有评审、没有监控的 MCP 服务器或连接。某个团队为了快速测试可能把一个服务器放到公网再让 Agent 通过它读取内部数据。安全团队如果只看传统接口清单就看不到这条新链路。协议标准化了调用方式却不会自动替企业建立资产清单。登记动作不能靠口头约定。每日都要复核。Cloudflare 在网关中加入了识别影子 MCP 的检测方向目标是从网络流量里发现未申报的工具通信。它不要求每个 Agent 都安装一个复杂探针而是把观测放到已有网关层。对于企业来说入口统一后更容易形成基线也更容易把告警、身份和访问策略关联起来。治理先要看见再谈阻断。每一段都要能单独关闭。一条可落地的治理链可以分成三段Access 负责把身份放在 MCP 服务器前面AI 网关 负责观测和执行流量策略网关 规则负责识别未登记的通信。三段不是三个孤立产品而是从“谁在访问”到“访问了什么”再到“有没有申报”的连续证据。缺一段调查时就会出现空白。网关可以拒绝明显违规请求。边界要写进策略。上线检测不宜一开始就全量阻断。先用一周左右建立流量基线记录服务器地址、发起用户、代理名称、工具动作和数据方向再把结果交给业务确认。误报处理完后读操作可以进入告警写操作进入审批明确恶意或违规的连接才直接拒绝。治理需要分级不能只靠一个开关。工具权限也要区分读和写。查询订单、读取文档和列出资源风险主要是数据暴露。修改状态、删除资源和触发付款风险还包括业务损失。门户层如果能对写操作增加审批拦截就应该把它设成默认路径。即便某次写入带着合法令牌也不能跳过业务确认。清单必须能跟实时状态对上。网络检测并不等于内容审查。网关可以发现某个 Agent 正在访问未登记的 MCP 服务器却未必知道请求里包含哪位客户的数据。对于敏感操作还需要在工具入口解析动作名、资源标识和数据分类。网络层负责发现异常业务层负责判断后果两层证据合在一起才足够支撑决定。两层日志必须关联。企业可以用四个问题验收影子 MCP 治理生产服务器是否都有登记。访问者是否能映射到真实用户写操作是否有审批记录异常连接是否能在规定时间内被定位。答案不能来自一张静态表格而要来自实时日志和回放测试。若新建服务器几分钟内就能绕过检测治理只是在做台账。把 Cloudflare 方案接进一条 Agent 工作流假设有一条内部知识问答 Agent它要读企业内部文档、查询工单还能在用户确认后更新工单状态。接入时不要从模型提示词开始改而要从请求入口画边界。用户身份先进入 Access随后才产生 Agent 会话。没有身份的请求不能获得记忆也不能拿到任何写工具。每个用户都要有独立审计线并可回放。身份边界稳定后再把内部文档和工单接口接到 Managed OAuth。每次调用都携带用户绑定的短时令牌服务端按资源范围过滤。Agent 可以把用户问题转成查询但不能自己决定扩大权限。授权失败要返回可识别的状态让前端引导用户重新确认而不是让模型编一个“系统暂时不可用”的解释。授权失败不应触发降级账号。工具数量较多时把 MCP 服务器升级到支持 Code Mode 的实现。搜索入口只返回当前任务相关的能力执行入口只接收经过策略检查的代码和参数。沙箱需要限制网络、文件、时间和资源出口凭证由运行时注入。模型生成的代码即使语法正确也必须经过动作白名单和超时检查。沙箱出口也要单独审计。接着接入 Agent Memory但从小范围开始。只保存用户明确同意的偏好和任务状态不保存密码、一次性验证码和完整客服原文。每次写入都带用户、租户、会话和过期时间召回时按同样字段过滤。记忆服务不可用时Agent 应退化为无记忆回答不能把上次内容凭空补回来。保留范围要写进策略。网关层要同时看见四种事件授权发现和令牌签发工具搜索和执行记忆写入和召回影子 MCP 告警和处置。每类事件都要有请求编号才能把用户的一次提问串成完整链路。日志内容要做脱敏尤其不能把访问令牌、原始密钥和完整客户资料写进普通检索系统。每种事件都要能单独查询。工具调用前还要放一层确定性回调。它检查动作是否在白名单资源是否属于当前用户参数是否超过业务阈值是否需要人工确认。检查失败就返回固定错误码不把危险参数继续交给签名服务。模型可以根据错误调整回答但不能通过换一种措辞绕过同一个规则。回调结果要可回放。下面的 Python 程序可以直接运行它用 HMAC 模拟请求签名再用用户资源表和动作规则做调用前检查。真实环境应把密钥换成受保护的密钥服务把用户身份换成 Managed OAuth 令牌里的主体。这个本地程序的价值是让团队先把验签、过期和拒绝路径跑通再接入云端组件。审批记录必须和请求编号关联。import hashlib import hmac import json import time from dataclasses import dataclass dataclass class Request: user: str action: str resource: str timestamp: int def canonical(request): data { user: request.user, action: request.action, resource: request.resource, timestamp: request.timestamp, } return json.dumps(data, ensure_asciiFalse, sort_keysTrue, separators(,, :)).encode(utf-8) def sign(request, secret): return hmac.new(secret, canonical(request), hashlib.sha256).hexdigest() def verify(request, digest, secret, permissions, max_age300): age abs(int(time.time()) - request.timestamp) if age max_age: return False, timestamp_expired expected sign(request, secret) if not hmac.compare_digest(expected, digest): return False, bad_signature if request.user not in permissions: return False, unknown_user if request.resource not in permissions[request.user]: return False, resource_denied if request.action in {delete, iam_update, payment}: return False, human_approval_required return True, allowed if __name__ __main__: secret bdemo-secret-rotate-in-production permissions {alice: {logs, metrics}} good Request(alice, read, logs, int(time.time())) good_digest sign(good, secret) print(verify(good, good_digest, secret, permissions)) risky Request(alice, delete, logs, int(time.time())) risky_digest sign(risky, secret) print(verify(risky, risky_digest, secret, permissions))APIAccessOAuthAccessCode ModeMCPMemoryTokenMCPAI代码里有两个重要判断签名证明请求没有被篡改权限表证明用户确实能碰目标资源。危险动作即便签名正确也会被送进人工审批。生产版还要加入请求编号、重放保护、密钥轮换和结构化日志但这些能力都应建立在同一条确定性拒绝路径上。不要让模型替你解释验签结果。从发布会功能清单到生产验收发布会里的能力状态会变化文章或演示能说明方向却不能替代你自己的版本核对。Agent Memory 的公开范围、Code Mode 的实现方式和写操作保护可能处在不同阶段。上线前要逐项确认正式可用、测试可用还是仅供申请。状态不明的能力只能放在可回退的实验链路里。状态标签要随版本一起核对。生产验收可以从一条低风险读链路开始。用户登录后读取一篇内部文档网关记录身份和资源Agent 通过 Code Mode 完成筛选记忆层只保存用户同意的偏好。链路中任何一步失败都要返回明确错误并保留编号。读链路稳定后再单独开一个需要确认的工单写入动作。错误编号要贯穿全链路。风险测试要覆盖提示注入、越权资源、过期令牌、重放请求、恶意代码和影子服务器。输入内容可以诱导 Agent 忽略规则但不能改变网关白名单。代码可以尝试联网和读取文件但沙箱必须拒绝。令牌可以被复制到第二次请求但签名、时间戳和请求编号必须让重放失效。异常用例不能只测一次。记忆验收要把“忘掉”写成可观察的动作。删除一条偏好后主索引不能再返回它异步副本也要有处理状态。用户注销后租户下的记忆、缓存和导出文件都要进入清理流程。若平台暂时不能给出完整删除证据就不要把敏感数据放进长期记忆。删除动作也要有回执并可查。写操作必须有人工确认且确认内容要和即将执行的载荷绑定。审批人看到的资源、金额、动作和用户不能在点击后被 Agent 替换。签名应在审批通过后生成不能先签一份模糊载荷再让审批页面展示另一份。这个顺序会多一次校验却能避免“审批通过的不是实际执行内容”。审批页面应展示完整载荷。上线后还要保留回退开关能单独关闭写工具、暂停记忆写入、撤销某类 OAuth 范围和阻断未登记 MCP。回退动作本身也要有权限和审计不能让普通 Agent 自己打开。团队每月用真实日志做一次回放抽查调用主体、策略结果、人工审批和公开页面是否一致。每次回归都要保留证据。异常不能只测一次。模型可以更强接口可以更多平台也会继续增加新能力但安全边界不能跟着宣传词移动。上线前要把读写权限、令牌范围和日志回放逐项核对。每次放量都要验证人工审批、租户隔离和回退开关。异常必须要暂停。把权限、上下文和审批落到系统边界Agent 才能真的进入生产。