Microsoft Execution Containers (MXC) 1.0.0 发布:面向 AI 代理的策略驱动型容器化方案
TL;DR – MXC 1.0.0 带来了什么以及为何重要
Microsoft Execution Containers (MXC) 1.0.0 现已正式发布,这是一个策略驱动的执行层,旨在将 AI 代理与宿主系统隔离。开发人员可以通过声明 JSON 策略来限制文件、网络和 UI 访问,MXC 则通过特定平台的容器(进程、会话、WSL 或实验性的 MicroVM)来强制执行这些限制。这为企业提供了一种具体的方法,既能利用代理的生产力,又能避免“要么完全不受限制,要么全部封锁”的困境。
容器化是代理的核心安全原语
代理不能成为自身的安全权威。 MXC 强制代理运行在由开发人员或组织定义的边界内,并在代理代码之外强制执行。在实践中,一个负责更新网站的编码代理可以被授予对存储库的读/写权限以及对生产配置的只读权限,而任何修改该配置的企图都会被容器拦截,无论模型意图如何。
“如果没有受管理的执行边界,代理可能会认为更改服务器配置是完成任务的最快方式,并可能破坏生产站点。” – Microsoft 博客
MXC 架构与支持的后端
| 后端 | 平台 | 典型用例 | 关键隔离属性 |
|---|---|---|---|
| 进程容器 | Windows 11, macOS, Linux | 低延迟工作负载、模型生成的代码、工具执行 | 使用 AppContainer (Win), Seatbelt (macOS), Bubblewrap (Linux) – 轻量级沙箱 |
| 会话容器 | 仅限 Windows 11 | 需要桌面、剪贴板、UI 隔离的长期运行代理 | 独立的 Windows 账户与会话;隔离桌面、剪贴板、输入 |
| WSL 容器 (WSLc) | 仅限 Windows 11 | 以 Linux 为先的工具链、依赖 Linux 包的工作负载 | 在 WSL 内执行,提供完整的 Linux 环境 |
| MicroVM | Windows 11, Linux (实验性) | 需要硬件级隔离的高风险工作负载 | 硬件强制的 VM 边界,完全的 Linux 兼容性 |
每个后端都将相同的 JSON 策略映射到特定平台的强制执行机制,让开发人员无论在何种宿主操作系统上,都能编写统一的策略文件。
策略模式 – 可以锁定哪些内容?
MXC 策略分为五个领域:
- 容器化 (Containment) – 选择后端(进程、会话等)。
- 进程 (Process) – 命令行、参数、工作目录、环境变量。
- 文件系统 (File system) – 针对读取、写入和禁止访问路径的显式允许/拒绝列表。
- 网络 (Network) – 入站/出站规则,启用/禁用回环。
- 用户界面 (User interface) – 与桌面、剪贴板或 UI 元素交互的权限。
一个典型的编码代理策略如下所示:
{
"containment": "process",
"process": {"command": "python", "args": ["agent.py"]},
"filesystem": {"allowRead": ["/repo/**"], "allowWrite": ["/repo/**"]},
"network": {"allowOutbound": ["git.example.com:443"]},
"ui": {"allowDesktop": false}
}
该策略位于代理之外,因此代理无法提升自身的权限。
操作模式 – 从学习到强制执行
MXC 支持三种互斥模式,帮助团队迭代最小权限策略:
| 模式 | 访问结果 | 活动报告 | 推荐阶段 |
|---|---|---|---|
| 强制执行 (Enforcement) | 被拦截的操作将被拒绝 | 无报告 | 生产环境 |
| 学习 (Learning) | 被拦截的操作将被拒绝 并 记录 | JSON 活动日志 | 策略编写 |
| 许可 (Permissive) | 所有操作均被允许 但 会被记录 | JSON 活动日志 | 早期测试 |
在学习模式下,被拒绝的文件访问尝试会出现在活动报告中,允许开发人员将缺失的路径添加到策略中,而不会使系统面临风险。
与 Microsoft Entra 和 Agent 365 的集成(未来展望)
微软宣布 Entra 即将能够为代理活动打上与登录用户不同的独特身份标签。这将实现:
- Microsoft Agent 365 中的代理级审计追踪。
- 针对代理主体而非人类用户的策略强制执行,防止受损的代理影响用户的更广泛访问权限。
- 细粒度治理(例如,在保持员工生产力的同时,封锁单个行为异常的代理)。
现实世界的采用 – 合作伙伴与框架
博客列出了一些早期采用者:
- NVIDIA OpenShell – 集成 MXC 以实现文件、网络和凭据控制。
- GitHub Copilot, OpenAI Codex, Replit, LM Studio, Unsloth AI – 已经为开发人员工作流提供了 MXC 沙箱支持。
- 即将获得支持的包括 Anthropic Claude Code, Box, Egnyte, Heidi Health, Nous Research’s Hermes Agent, Manus, Perplexity, Raycast, Simular 等。
这些集成表明 MXC 不仅仅是一个概念验证;它正被用于生产级的编码助手,这些助手需要在保护宿主系统的同时,对存储库和工具链进行细粒度访问。
社区反馈 – 优势与担忧
- 积极评价 – 评论者赞赏终于能够在没有管理员权限的情况下锁定应用权限(例如,关于 Windows 11 25H2 允许在无需提升权限的情况下创建 AppContainer 的说明)。
- 对成熟度的批评 – 一些用户将此版本标记为“技术预览版”而非真正的 1.0 GA,指出文档(特别是 Bubblewrap 集成)缺乏完善,且需要更深层的安全模型重构。
- 企业关注 – 有人提出 MXC 是否会仅限于企业客户,担心普通用户可能无法获得同等级别的保护。
- 替代方案 – 一位评论者建议使用现有的 Linux 容器/虚拟机,认为 Linux 上已经存在“开箱即用”的解决方案。
这些观点强调,虽然 MXC 填补了以 Windows 为中心的代理安全空白,但其采用将取决于工具的成熟度、清晰的文档以及企业许可之外的更广泛可用性。
入门指南
- 克隆 MXC 存储库:
https://github.com/microsoft/mxc。 - 从存储库的
README安装特定语言的 SDK(C#, Python 等)。 - 使用上述模式草拟 JSON 策略。
- 在学习 (Learning) 模式下运行代理以生成活动报告。
- 完善策略,然后切换到强制执行 (Enforcement) 模式进行生产。
欢迎通过 GitHub Issues 追踪器提交反馈和错误报告。
总结
Microsoft Execution Containers 1.0.0 为开发人员提供了一种具体的、策略驱动的方法,可以在主流操作系统上对 AI 代理进行沙箱化,将代理能做什么(容器化)与代理是谁(未来的 Entra 身份)分离开来。通过提供多种隔离后端、清晰的 JSON 策略模型以及用于安全策略迭代的三种操作模式,MXC 将“不受限制或全部封锁”的困境转化为一种可管理的安全性态势——前提是工具链能够成熟,文档能够跟上进度。
Sources
相关
- Dispatch
- 项目
- Dispatch
- 项目
- Dispatch