微软Wassette:用Rust构建的开源利器,赋能Wasm-MCP AI智能体
微软推出Wassette,这是一个旨在弥合WebAssembly(Wasm)组件与新兴模型上下文协议(MCP)之间鸿沟的全新开源项目,此举有望重新定义人工智能代理与外部工具和数据的交互方式。Wassette由微软Azure核心正常运行时间团队使用Rust开发,是实现高度可定制和可组合功能的基础性一步,这些功能可以安全地部署到本地AI代理,包括在Visual Studio Code中运行的GitHub Copilot等环境中。
Wassette的核心是一个相对简单但功能强大的运行时。它利用成熟的Wasmtime运行时进行健壮的沙盒隔离,高效加载和执行WebAssembly组件。这种沙盒能力至关重要,它提供了一种与现代浏览器引擎相媲美的安全模型,其中组件在最小权限框架内运行,对任何请求的服务都需要明确的权限。Wassette随后将这些Wasm组件的强类型接口转换为MCP功能,从而实现与任何支持MCP的代理无缝集成。这种创新方法允许开发人员通过将自己的自定义组件与公开可用的WebAssembly模块相结合,快速组装一个安全的定制工具库,从而根据特定的项目需求定制代理功能。
微软发布Wassette与行业内标准化AI代理交互的更广泛趋势相吻合。模型上下文协议(MCP)最初由Anthropic于2024年11月推出,并迅速获得了关注,OpenAI和Google DeepMind等主要的AI参与者已正式采用它。Google DeepMind的首席执行官Demis Hassabis甚至将MCP描述为“正在迅速成为AI代理时代的开放标准”,这突显了其在简化AI工具连接和互操作性方面的关键作用。微软自身也对开源AI表现出坚定的承诺,例如旨在自动化复杂任务的多代理AI系统Magnetic-One项目,以及涵盖云和边缘环境(包括Azure AI Foundry和Windows AI Foundry等计划)的全面“AI应用和代理工厂”愿景。Wassette完美契合了这一愿景,为扩展代理能力提供了安全灵活的机制。
Wassette的入门设计得非常便捷。Windows用户可以通过WinGet安装,而Linux用户除了支持Homebrew和Nix外,还可以选择使用curl和安装脚本。虽然初始设置可能会遇到一些小障碍,例如Windows Defender中出现误报病毒检测,或者偶尔需要在Visual Studio Code中手动注册MCP服务器,但开发团队正在积极解决这些问题。一旦集成,Wassette将作为GitHub Copilot等开发环境中的一个额外工具出现,允许代理利用新功能。一个简单的例子展示了它的强大功能:一个基本的时间客户端,作为WebAssembly组件从远程OCI注册表加载,使GitHub Copilot能够获取当前时间——这是基本代理本身不具备的功能。
Wassette的可扩展性和安全模型是其关键差异化因素。开发人员可以使用各种语言编写自己的WebAssembly组件,包括Rust、Python、JavaScript和Go,只要Wasmtime支持它们。这种多语言能力,结合WebAssembly接口类型,意味着组件将函数作为强类型库接口公开,确保精确和受控的交互。WebAssembly固有的安全性,其默认拒绝的能力系统,意味着组件必须明确请求网络访问等资源的权限,允许用户直接通过代理聊天界面批准或阻止这些请求,从而防止未经授权的数据访问或恶意活动。
展望未来,虽然Wassette仍处于初始发布阶段,目前缺乏OCI注册表及其存储组件的内置发现功能,但其开源性质鼓励社区贡献以解决此类限制。除了面向开发人员的代理,Wassette在更广泛的应用中也具有重要前景。它安全高效地添加小型、专业化功能的能力,在各种代理平台中都可能极具价值,从扩展CRM功能的客户服务系统,到任何需要安全、严格控制地访问外部资源或专有数据的场景。这种模块化、沙盒化代码的融合,加上它提供的快速可扩展性,呼应了早期代理框架的愿景,但具有现代安全范式和广泛语言支持的独特优势,使开发人员能够以无与伦比的灵活性和控制力构建复杂的AI代理。