Markdown 版本
AI-translated from English; not yet reviewed by a fluent editor.
# 如何为代理生成的命令设置 MXC 策略
> Microsoft 的 MXC SDK 允许开发者声明命令及其文件和网络策略。本指南仅依据文档编写,介绍 Node V1 的配置方式、诊断模式和后端限制。
By BIG CHANGE Editorial
Published: 2026-10-08T05:14:55.341Z
Updated: 2026-10-08T05:14:55.341Z
Canonical: https://bigchange.ai/blog/mxc-agent-command-containment-guide

AI-generated conceptual illustration by BIG CHANGE; no MXC product interface, hardware, security test or enforcement result is depicted.
Microsoft 于 2026 年 10 月 7 日宣布 Microsoft Execution Containers(MXC)正式推出。对于运行 AI 代理建议命令的团队,实际问题是命令需要访问哪些文件和网络连接,以及哪个 MXC 后端能够执行这些限制。Microsoft 的[发布公告](https://blogs.windows.com/windowsdeveloper/2026/10/07/microsoft-execution-containers-policy-driven-containment-for-ai-agents/)介绍了隔离目标;[代码库的使用文档](https://github.com/microsoft/mxc)提供了配置细节。本指南依据这些文档编写。BIG CHANGE 未安装 MXC,也未运行受隔离的工作负载。
## 重大变化
- **变化内容:** 开发者可以通过一个 MXC SDK 接口传入命令及其资源策略,由该接口选择受支持的主机后端。10 月 7 日的版本为代理工具提供了有文档说明的集成方式,而不是依赖模型自觉遵守策略。
- **重要之处:** 团队可以允许编程命令访问工作目录,同时将其他文件位置和出站连接排除在工作负载的权限范围之外。实际效果取决于所选后端和主机,因此团队在依赖某项限制前应确认后端实际执行的内容。
- **值得关注:** Microsoft 的策略配置模式有助于诊断受支持的 Windows ProcessContainer 主机上被阻止的操作。下一步需要判断拟授予的权限是否确有必要,以及缩小策略范围后,生产运行是否采用强制执行模式。
## 先了解主机和命令
MXC 是集成在启动工作负载的应用程序中的库。其[README](https://github.com/microsoft/mxc)列出了 Rust、.NET 和 Node SDK,以及供无法嵌入 SDK 的应用程序使用的原生执行程序。Node 包含有原生运行时资源,要求 Node.js 24 或更高版本;在 Windows 上,代码库要求使用 Node 24.21.0 或更高版本,或 26.8.0 或更高版本,以支持原生 stdio 传输。公共 API 从`@microsoft/mxc-sdk/v1`导入,而不是从包根目录导入。.NET 包也包含原生资源。Rust crate 会将 SDK、引擎和所选后端构建到使用它的应用程序中。原生执行程序需要针对相应平台构建代码库。
编写策略前先选择后端。代码库列出的 Windows 11 默认后端是`processcontainer`,Linux 默认后端是`bubblewrap`,macOS 默认后端是`seatbelt`。Windows 还提供`wslc`和`isolation_session`;`windows_sandbox`、`microvm`和`hyperlight`被标记为实验性选项。Linux 需要相应的运行时,例如其默认后端所用的 Bubblewrap。[Windows 版本表](https://github.com/microsoft/mxc/blob/main/docs/backends/process-container/os-version-support.md)列出了 ProcessContainer 和 IsolationSession 所需的最低系统版本。应在实际执行任务的计算机上验证主机是否可用,以及它是否支持所请求的策略。
记录实际命令、工作目录、需要读取和修改的文件,以及所需的网络目标。将这些内容视为由应用程序或操作人员提供的策略输入。Microsoft 表示,策略位于代理工作负载之外,因此生成的代码无法扩大自身权限。命令的预期输出包括常规的 stdout、stderr 和退出状态,以及 SDK 返回的警告或可选元数据。只有在受支持的 Windows ProcessContainer 主机上使用文档说明的诊断模式,才能获得活动报告。
## 使用 Node SDK 声明精简策略
Node SDK [指南](https://github.com/microsoft/mxc/blob/main/sdk/node/README.md)介绍了这一 V1 结构。请在运行受支持 Node 版本的应用程序中安装 SDK:
```bash
npm install @microsoft/mxc-sdk
```
此示例改编自 Microsoft 的运行至完成示例:它请求只读访问应用程序当前目录,同时拒绝出站网络连接。命令本身只打印一行,因此没有测试这两项限制。这是文档中的起点,不是 BIG CHANGE 的测试。请根据要隔离的工作负载替换命令和路径;仅在需要修改的目录中使用`readwritePaths`。
```typescript
import { getPlatformSupport, run } from '@microsoft/mxc-sdk/v1';
import type { ContainerRequest } from '@microsoft/mxc-sdk/v1';
if (!getPlatformSupport().isSupported) {
throw new Error('MXC is not available on this host');
}
const request: ContainerRequest = {
command: 'node -e "console.log(\'hello from container\')"',
filesystem: { readonlyPaths: [process.cwd()] },
network: { egress: { default: 'deny' } },
timeoutMs: 30_000,
};
const result = await run(request);
console.log(result.stdout, result.stderr, result.exitCode, result.warnings);
```
`run`会返回捕获的 stdout 和 stderr、退出代码、超时状态及警告。文件访问被阻止时,工作负载看到的可能只是普通的“访问被拒绝”错误;成功退出本身并不能证明所有预期限制都经过测试。若要达到任务的成功标准,请在选定的受支持后端上运行可信工作负载,确认其使用获准资源,再单独尝试访问未授权资源。对操作结果和诊断信息进行检查后,再将策略用于代理生成的命令。[SDK 示例](https://github.com/microsoft/mxc/blob/main/samples/README.md)涵盖文件系统授权、网络阻断、输出捕获和拒绝日志记录。它们需要预先准备好的主机。BIG CHANGE 未执行这些步骤。
对于原生执行器用户,[稳定版 JSON 架构](https://github.com/microsoft/mxc/blob/main/docs/schema.md)为`1.0.0`;完整请求需要一个`version`、隔离方式选择以及`process.commandLine`。当前开发版架构为`1.1.0-alpha`。V1 SDK 会自行选择传输协议,因此不要在类型化的`ContainerRequest`中填写原生架构版本。架构指南还指出,`network.defaultPolicy`和`allowedHosts`等旧字段已弃用。当前策略采用有方向的`network.egress`和`network.ingress`;直接规则与运行时代理的行为及后端支持各不相同。
## 诊断拒绝情况,然后执行策略
Microsoft 的[10 月 7 日模式表](https://blogs.windows.com/windowsdeveloper/2026/10/07/microsoft-execution-containers-policy-driven-containment-for-ai-agents/)区分了三种结果。**强制执行**模式会阻止未授权访问,且不生成活动报告。**学习**模式会阻止并记录未授权访问。**宽松**模式会记录策略本应拒绝的访问,但仍允许其继续。Microsoft 的[拒绝捕获参考文档](https://github.com/microsoft/mxc/blob/main/docs/logging-access-denied.md)将这些学习功能限定在基于 AppContainer 的 Windows ProcessContainer 路径中。其他主机即使接受同一个策略字段,也不会因此获得同等报告能力。
使用可信工具编写策略时,Windows 原生执行器支持一种可生成策略文件的`--audit`流程。Microsoft 警告,该流程会关闭被分析工作负载的沙盒安全保护,因此不适用于不可信命令。如果主机支持,更安全的诊断方式是拒绝并记录访问:尝试的访问仍会被阻止,报告会指出被拒绝的内容。逐项检查记录的路径或功能是否与任务相关,只授予命令所需的权限,并在强制执行模式下运行最终工作负载。报告可能泄露敏感资源名称,应妥善处理。
后端选择会改变策略能够承诺的效果。[架构指南](https://github.com/microsoft/mxc/blob/main/docs/schema.md)指出,`isolation_session`无法限制网络,并要求明确采用不受限的网络配置。该指南还指出,Windows ProcessContainer 和 macOS Seatbelt 会执行 UI 限制,其他后端则不实现这些限制;WSLC 和 IsolationSession 会拒绝提供的 UI 策略。[Seatbelt 指南](https://github.com/microsoft/mxc/blob/main/docs/backends/seatbelt/seatbelt-backend.md)说明,macOS 原生配置无法筛选单个远程主机;[Bubblewrap 指南](https://github.com/microsoft/mxc/blob/main/docs/backends/bwrap/bubblewrap-backend.md)则介绍 Linux 运行时和网络前提。因此,多个 SDK 类型接受同一个 JSON 字段,并不表示它们都能以同样方式执行策略。请查阅所选后端的指南,并在目标主机上验证请求。
Microsoft 代码库采用 MIT 许可证,但面向用户的文档未列出 MXC 包的价格。主机、计算资源以及模型提供商的费用各不相同。Windows 公告称 MXC 已正式推出,但一些后端选项仍处于实验阶段,原生开发版架构仍为 alpha。选择工作负载运行位置时,应分别考虑这些发布阶段。
## 来源与延伸阅读
- [Microsoft Windows Developer Blog,2026 年 10 月 7 日](https://blogs.windows.com/windowsdeveloper/2026/10/07/microsoft-execution-containers-policy-driven-containment-for-ai-agents/)支持了发布信息、面向代理的用途以及三种模式的定义。这是 Microsoft 对其产品的描述,并非 BIG CHANGE 的安全测试。
- [MXC 代码库 README](https://github.com/microsoft/mxc)列出了 SDK、主机默认后端、实验性后端、构建前提和原生执行器路径。代码库会持续变化;相关信息于 2026 年 10 月 8 日核对。
- [Node SDK 用户指南](https://github.com/microsoft/mxc/blob/main/sdk/node/README.md)说明了 Node 前提、V1 导入方式、类型化请求和捕获的输出。上面的代码改编自其中的示例;本文未运行该代码。
- [配置架构指南](https://github.com/microsoft/mxc/blob/main/docs/schema.md)区分稳定版原生 JSON`1.0.0`和持续变化的`1.1.0-alpha`,并记录策略字段和各后端的限制。
- [学习模式与拒绝捕获参考文档](https://github.com/microsoft/mxc/blob/main/docs/logging-access-denied.md)介绍 Windows ProcessContainer 诊断,并警告宽松模式审计的风险。报告内容取决于主机和模式。
- [后端指南](https://github.com/microsoft/mxc/tree/main/docs/backends)和[Windows 版本表](https://github.com/microsoft/mxc/blob/main/docs/backends/process-container/os-version-support.md)可用于检查特定主机;本文不认证读者计算机上的任何配置。
## Sources
- [Microsoft Execution Containers 发布公告](https://blogs.windows.com/windowsdeveloper/2026/10/07/microsoft-execution-containers-policy-driven-containment-for-ai-agents/) — 正式推出公告、工作负载与资源边界,以及三种模式的定义;供应商说法不等于独立测试。
- [MXC 代码库 README](https://github.com/microsoft/mxc) — SDK、主机默认设置、实验性后端标签、原生执行器路径、源代码许可证和构建前提。
- [MXC Node SDK README](https://github.com/microsoft/mxc/blob/main/sdk/node/README.md) — V1 导入方式、Node 最低版本、类型化请求、运行输出和主机发现。示例经过改编,并未运行。
- [MXC 架构指南](https://github.com/microsoft/mxc/blob/main/docs/schema.md) — 稳定版原生 JSON 1.0.0 与开发版 1.1.0-alpha 合约、网络策略以及后端和 UI 限制。
- [MXC 拒绝捕获指南](https://github.com/microsoft/mxc/blob/main/docs/logging-access-denied.md) — Windows ProcessContainer 中 Learning 和 Permissive 模式的行为、--audit 安全警告及输出限制。
- [MXC SDK 示例](https://github.com/microsoft/mxc/blob/main/samples/README.md) — 文件系统、网络、输出捕获和拒绝捕获示例的官方索引。
- [MXC Windows 操作系统版本支持](https://github.com/microsoft/mxc/blob/main/docs/backends/process-container/os-version-support.md) — ProcessContainer 和 IsolationSession 所需的最低 Windows 版本。
- [MXC Bubblewrap 后端指南](https://github.com/microsoft/mxc/blob/main/docs/backends/bwrap/bubblewrap-backend.md) — Linux 默认后端的前提条件和网络支持。
- [MXC Seatbelt 后端指南](https://github.com/microsoft/mxc/blob/main/docs/backends/seatbelt/seatbelt-backend.md) — macOS 原生配置及远程主机筛选的限制。
BIG CHANGE 新闻通讯
纵览全局,按自己的节奏。
关于人工智能和机器人技术的近期报道、值得关注的变化以及可采用的实用想法。选择每日简报、每周摘要或每月视角。
于贝尔格莱德时间 09:00 发送:每日、每周一或每月第一天。确认后,您的第一期将在下一个预定发送时间送达。