世界從未停止變化。RSS
BIGCHANGE.AI

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

![Conceptual charcoal illustration of a small computer with an external drive connected and a network cable lying unplugged beside its port.](https://bigchange.ai/api/media/file/mxc-explicit-connections-hero-v1.png)
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。其公開 API 必須從`@microsoft/mxc-sdk/v1`匯入,而非從套件根目錄匯入。.NET 套件也包含原生資產。Rust crate 會將 SDK、引擎和選定的後端建置到使用中的應用程式中。原生執行器則需要針對平台建置存放庫。

撰寫原則前先選擇後端。存放庫列出`processcontainer`做為 Windows 11 的預設後端,`bubblewrap`做為 Linux 的預設後端,並以`seatbelt`做為 macOS 的預設後端。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 表示原則位於代理工作負載之外,因此產生的程式碼無法擴大自身權限。命令預期輸出包括一般的標準輸出、標準錯誤和結束狀態,以及 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`會傳回擷取的標準輸出和標準錯誤、結束代碼、逾時狀態及警告。遭封鎖的檔案存取可能只會讓工作負載看到一般的存取遭拒錯誤;命令成功結束,也不能證明所有預期限制都已測試。依照本指南的成功標準,請在所選且受支援的後端上,先執行會使用已授權資源的可信任工作負載,再另外刻意嘗試存取未授權資源。使用代理程式產生的命令前,應檢查操作結果和診斷資訊。[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`;直接規則與執行階段 Proxy 的行為及後端支援各不相同。

## 診斷拒絕操作,再啟用強制執行

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)將這些學習診斷功能限定在以 Windows AppContainer 為基礎的 ProcessContainer 路徑。其他主機即使接受相同的原則欄位,也不會因此提供相同的報告功能。

在撰寫原則時,Windows 原生執行器支援可信任工具使用`--audit`流程產生原則檔。Microsoft 警告,此流程會關閉受分析工作負載的沙箱安全,因此不適用於不受信任的命令。若主機支援,較安全的診斷方式是拒絕並記錄:存取仍會遭封鎖,報告則指出遭拒的項目。請逐一檢查記錄的路徑或功能是否符合任務需求,只授予命令所需的權限,並在強制執行模式中執行最終工作負載。報告可能揭露敏感資源名稱,應妥善處理。

後端選擇會影響原則能提供什麼保證。[結構描述指南](https://github.com/microsoft/mxc/blob/main/docs/schema.md)指出,`isolation_session`無法限制網路,並要求明確設定為不限制網路。指南也指出,UI 限制只由 Windows ProcessContainer 和 macOS Seatbelt 強制執行;其他後端不會實作這些限制,而 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)區分目前穩定版`1.0.0`原生 JSON 與可變動的`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 最低版本、型別化請求、run 輸出和主機偵測。範例為改編內容,並未執行。
- [MXC 結構描述指南](https://github.com/microsoft/mxc/blob/main/docs/schema.md) — 穩定版原生 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) — Windows ProcessContainer 和 IsolationSession 的最低組建版本。
- [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 電子報

掌握全貌,按照自己的步調。

關於人工智慧和機器人技術的近期報導、值得關注的轉變,以及可運用的實用想法。選擇每日快訊、每週摘要或每月觀點。