传统架构的局限性与边缘原生 AI 栈

在构建超快响应的 MCP(Model Context Protocol)和 Agent 时,传统基于区域限制的架构无法满足全球用户的低延迟需求。如果部署位置不当,部分用户会经历极高的延迟和糟糕的体验。更严重的是,若选择容器或虚拟机作为分发单元,在应对突发流量进行快速扩展时,冷启动延迟可能从数秒延长至数分钟。虽然可以通过过度配置基础设施来缓解这一问题,但这会导致大量资源闲置,不仅增加云支出成本,还带来不可持续的环境足迹。此外,许多高级解决方案依赖专有 SDK 或特定的部署单元,导致迁移到其他云厂商时面临极高的复杂度和成本。

"Traditional region-bound architectures or infrastructures fall short when you want to address a global audience and they come with some frictions which lead to the inception of edge native architectures."

为了解决上述痛点,演讲者提出了边缘原生 AI 栈(Edge Native AI Stack)的概念。该方案的核心是采用 WebAssembly (Wasm) 技术,将其视为容器之于虚拟机的演进:它是极小的二进制文件、易于分发、运行速度极快且具备可移植性。这一技术栈由两个主要部分组成:一个是 CNCF 项目 Spin,另一个是 Akamai Functions。其中,Spin 是一个供应商中立的运行时环境,允许开发者在服务器或云端执行 Wasm 应用。

Spin:构建 WebAssembly 应用的三大支柱

Spin 作为开发者工具,旨在简化 Wasm 应用的生命周期管理。它由三个主要支柱构成:首先是 CLI(命令行界面),用于处理开发者日常操作中的“内循环”任务;其次是运行时环境(Runtime),基于 Wasmtime 构建,支持在本地、微控制器或资源受限环境中运行应用;最后是语言特定的 SDK。尽管 Spin 本身是语言无关的,支持所有能编译为 WebAssembly(包括 Wasm Interface Types)的语言,但它提供了针对特定语言的 SDK 以提升生产力。

这些 SDK 极大地简化了日常开发工作,例如与 HTTP 服务交互、集成数据库或其他外部资源。开发者无需从零开始处理底层细节,只需关注业务逻辑。Spin 的文档和更多信息可以通过其官方网站 spinframework.dev 获取。

"Spin itself consists of three major pillars. So it is a CLI... It is a runtime... Last but not least, Spin gives us language specific SDKs to boost the developer productivity."

Akamai Functions:零冷启动的全球分布式平台

如果说 Spin 是构建工具,那么 Akamai Functions 则是首个真正全球分布且具备零冷启动(Zero Cold Starts)特性的无服务器计算平台。该平台完全托管,开发者只需通过简单的单行命令即可将应用全球分发,无需编写 Terraform 或调整任何配置参数。其核心优势在于每次请求触发冷启动的平均时间不到半毫秒(less than half a millisecond)。这意味着应用能够即时响应,彻底消除了传统无服务器架构中常见的延迟痛点。

在安全性方面,Akamai Functions 利用 WebAssembly 的沙箱机制来保障安全。工作负载无法与外部资源交互,除非开发者显式授予权限。此外,为了构成完整的无服务器平台,Akamai Functions 内置了一个多租户键值存储(Key-Value Store)。该持久层自动与应用关联,开发者无需管理凭证或滚动密钥,极大地简化了数据存储的集成过程。

"Echi functions is the first truly serverless computing platform that is globally distributed and has zero cold start at all... on average we can cold start in less than half a millisecond."

实战演示:使用 WMCP 快速构建 MCP Server

为了展示如何高效构建 MCP Server,演讲者引入了 WMCP 工具。与其手动实现 HTTP 协议或指定的 API,使用 WMCP 是更智能的选择。WMCP 是一个与 Spin CLI 无缝集成的命令行工具,它允许开发者专注于 MCP 的核心业务逻辑——即实现 Tools、Resources 或 Prompts。所有非功能性需求,如使用 OIDC 进行用户认证等复杂问题,均由 WMCP 开箱即用(out-of-the-box)地处理。

在演示中,演讲者使用 wmcp new 命令创建了一个名为 "hello" 的新 MCP Server,选择了 TypeScript 语言和默认的仅包含 Tools 的模板。安装依赖后,生成的代码库提供了现成的样板文件。开发者只需定义输入方案和工具列表,即可快速组装出一个完整的 MCP Server 组件。这种组合方式使得开发者能够利用 Spin 或 Akamai Functions 轻松运行最终的应用,实现了从开发到全球部署的极简流程。

"There is a smarter way of doing that and a smarter way is WMCP... we implement our tools, we implement our resources or prompts, and we are good to go."

工具定义与服务编排流程

在构建基于大语言模型(LLM)的工具时,开发者必须扮演好“数字公民”的角色,提供精确的描述以确保人类和 LLM 能够正确处理这些工具。在代码实现中,通常将工具列表置于一个简单的数组中,并设置一个名为 call_tool 的摄入函数。该函数根据接收到的负载(payload)决定执行哪个具体工具。以示例中的 handle_example_tool 为例,其逻辑相对基础:首先验证所有传入参数,若无误则将接收到的输入与特定前缀拼接后返回给用户。这种设计虽然简单,但为后续自动化构建了基础。

为了将本地代码转化为可运行的服务,开发者利用 make 命令流程。该过程首先将 JavaScript 代码编译为 WebAssembly (Wasm),生成一个工具组件。随后进入 MCP Compose 阶段,系统自动拉取必要组件并组合成一个完整的 MCP(Model Context Protocol)服务器。在此演示中,为了简化流程,忽略了身份验证机制以专注于核心功能。最终生成的 server.wasm 文件可在本地通过命令启动,监听 localhost:3000。开发者随后使用 npx mcp-inspector 在浏览器中连接该服务,成功列出并执行了包含输入参数 foo 的示例工具,验证了本地环境的可用性。

Rust 实现与全局分布式部署

为了展示更复杂的场景,演示切换至使用 Rust 实现的决策锁定(Decision Lock)MCP Server。在 Rust 代码中,通过 call_tool 函数分支处理 CRUD API 或 MCP 提供的工具。关键区别在于存储层的抽象:代码中定义的工具列表引用了一个“store”,在本地开发时,Spin 运行时自动使用 SQLite 创建键值存储以支持开发调试。然而,当部署到 Akamai EdgeCompute Functions (ECF) 时,无需任何额外配置,系统自动切换为利用全球分布的键值存储。这种无缝迁移得益于应用清单(application manifest)与构建流程的结合,开发者只需执行 spin build 即可编译、组合并生成 MCP 服务器。

部署过程通过 spin ecomi deploy 命令完成。开发者指定 MCP 服务器的名称(如 ADR-MCP),终端与服务注册表交互。系统从 Wasm 文件和应用程序清单生成 OCI(Open Container Initiative)层,并将其上传至 ECF。在服务器端,这些文件被分发到全球所有服务区域。每个区域需确认接收并具备运行该工作负载的能力,随后实例化一次并进行内部健康检查。当所有区域返回 HTTP 200 状态码后,系统自动分配一个通用子域名。整个过程使得 MCP Server 在大约 60 秒内实现全球分布。> "Obviously you can shield that with other products and services like the property manager to shield it behind whatever you want."

客户端集成与 AI Agent SDK 应用

部署完成后,演示转向客户端验证。使用支持 MCP 协议的 Zed IDE(或其他兼容客户端),添加远程服务器并填入生成的 URL。连接成功后,IDE 自动识别出五个预定义的 CRUD 工具。开发者可以在项目上下文中与 IDE 聊天,例如指示其跟踪一个使用 Rust 2.0 Hello World 的决策。LLM 识别意图后,请求权限运行 insert_decision 工具。获得授权后,IDE 调用 ECF 上的服务记录决策。随后,通过 list_decisions 工具查询所有已跟踪的决策细节。

这一架构的核心优势在于无论用户身处何地,请求都会被路由到最近的服务区域。开发者可以使用 TypeScript、Python 或 Rust 模板编写工具、提示词(prompts)或资源。进一步地,对于 AI Agent 的开发,故事并无二致但工具更丰富。推荐使用 Vercel AI SDK,它允许开发者使用 TypeScript 快速创建 Spin App。在一个简单的游戏 Agent 演示中,应用定义了翻转硬币和掷骰子(可指定面数)的工具。HTTP 处理器加载配置,将 Agent指向部署在拥有专用 GPU 的 Lenode 实例上的 Llama 模型。Agent 被赋予身份和指令,从而能够基于本地工具与远程推理能力协同工作。

"We have a globally distributed MCP server that's routing all the requests to the closest service region no matter where your users are."

"For AI agents, the story is no different. However, instead of using another CLI, we can simply pick any kind of SDK that's out there and that's popular."

WebAssembly 编译机制实现依赖预热

在部署名为 "game agent" 的 AI 应用时,开发者通过 CLI 执行构建命令。由于采用解释型语言(如 JavaScript)编译为 WebAssembly (Wasm) 的技术路径,系统在编译阶段会加载解释器、自定义 JavaScript 代码并评估全局作用域。这一过程带来的核心优势在于,不仅运行时环境被预热(Hot),所有依赖库也在快照生成前完成加载。随后,系统会将内存状态写入 WasmStore 并持久化到磁盘。这意味着基于 JavaScript编写的 WebAssembly 应用在冷启动速度和运行时性能上,优于原生 JavaScript 应用。唯一的代价是必须随用户代码一起分发 JavaScript 运行时环境。为此,Akamai 采用了优化后的 SpiderMonkey JS 引擎,其体积仅约 10 MB。这种机制确保了每次实例启动时都能直接复用已加载好的依赖状态,从而消除传统 Serverless 架构中常见的冷启动延迟。

LLM 交互全流程耗时实测数据

部署完成后,通过替换 URL 进行 "抛硬币"(toss a coin)的测试。请求进入 Akamai 网络,入口点位于 Santa Clara,而最近的 AI Agent 服务区域为 LAX。通过观察响应头中的 X-envoy-upstream-service-time 字段,可以精确追踪请求生命周期。初次测试中因用户端错误导致内部服务器报错(Internal Server Error),此时测得延迟仅为 34 毫秒,这仅反映了网络传输和基础逻辑处理时间。修正错误后重新测试,完整的 AI Agent 循环包括:接收请求、执行业务逻辑、调用大语言模型(LLM)生成响应并返回用户。实测数据显示,完整循环耗时约为 866 毫秒。再次测试 "Tails"(反面)时,平均耗时稳定在 820 毫秒左右。这一数据证明了在无服务器架构下,通过 Wasm 技术实现包含 LLM 调用的复杂 AI Agent 仍能保持毫秒级的快速响应,且具备极高的稳定性。

Spin CLI 工作流与零运维优势

开发者的标准工作流程高度统一:无论构建业务应用、MCP(模型上下文协议)还是 AI Agent,均可使用 Rust, TypeScript, Python 或 Go 等语言开发并编译为 Wasm。本地测试使用 Spin CLI,部署仅需一条命令 spin deploy,最后将客户端指向生成的 MCP 或 Agent URL。Thorsten Hans 强调的核心价值在于 可移植性,Spin 应用可在任何符合 Wasm 标准的运行时(如 Akamai Functions)运行。这些标准由 Bytecode Alliance、CNCF 和 Wasm 社区共同治理。开发者无需管理基础设施或非功能性需求,实现了真正的 "No Ops"。除了部署命令外,Spin 还提供指标收集、日志检索和版本升级等功能。Akamai 致力于将 开发者体验(Developer Experience) 作为最高指标,鼓励用户访问 Akamai Developer Hub 获取相关案例与实验数据。

结论

该方案通过 WebAssembly (Wasm) 与边缘计算结合,成功实现了 MCP Server 和 AI Agent 的零冷启动部署。实测数据显示,Akamai Functions 平台将平均冷启动时间控制在半毫秒以内;在包含 LLM 调用的完整 AI Agent 循环中,请求耗时稳定在 820-866 毫秒。这种架构确保了全球用户访问时的低延迟与高稳定性,同时利用 Wasm 沙箱机制和内置键值存储简化了安全与数据管理。

其核心优势在于极致的开发体验(No Ops)和全球自动分发能力,应用可在约 60 秒内完成全球部署。然而,该方案依赖于特定的运行时环境(如 Akamai Functions)和 SDK 生态,且 JavaScript Wasm 需分发约 10 MB 的运行时引擎。它主要适用于对延迟敏感、需要全球分布且希望简化基础设施运维的边缘 AI 应用场景,而非追求极致二进制体积或完全脱离特定云厂商生态的场景。