本文目錄
Microsoft 開源的 Conductor CLI 用 YAML 定義多智能體工作流,並對接 GitHub Copilot、OpenAI、Anthropic Claude 等提供方。Conductor 0.1.44 於 GitHub 發佈時間 2026-11-01T16:50:01Z(2026-11-02 00:50 Asia/Shanghai),把很多 Agent 棧仍混在一起的兩件事拆開:用哪家模型回答,以及 Agent 循環、工具和 MCP 調用實際跑在哪裏。
發佈說明把這種拆分叫作 agent execution realms and profiles。工作流或步驟指向一個 execution.profile,該配置會解析到隔離的 Docker runner,或 Azure Container Apps(ACA) dynamic session;模型提供方仍是另一套設置。我們暫時還沒有在生產環境完整跑過 Conductor 0.1.44;下文按 GitHub 發佈說明、項目 README 與倉庫內 ACA 提供方文檔的字面整理。僅供參考。
讀者範圍收窄:已經在寫 Conductor 工作流的人,或正在評估「不信任的工具循環必須離開宿主機」這類 harness 的人。只在 Copilot/Claude Code 裏聊天、從不碰 Conductor YAML 的讀者可以跳過。站內相關的運行時/harness 背景:AWS 開源 Infinity:面向高並發 Agent 的研究型運行時、Microsoft 在 Foundry Agent Service 公測推出 Copilot harness、同一個模型換套 coding harness,通過率幾乎不動,帳單為什麼差這麼多?、Cursor Agent SDK 發布:資料夾定義、Eval 與部署。
0.1.44 加了什麼
按 Conductor 0.1.44 GitHub 發佈說明:
- 可通過
execution.profile,在隔離的 Docker 容器或 Azure Container Apps dynamic sessions 裏跑 LLM Agent。 - Docker profile 接受
runner_image,讓 Agent 循環、stdio MCP 工具與暫存的工作區依賴,同處一個長生命週期的 runner 容器。 - 遠程 runner 支持
/interrupt(中途定向暫停)、多提供方執行(Copilot、OpenAI、Claude),以及按調用、按 Agent 範圍把密鑰投遞給 stdio MCP 進程的env_overlay——不必把密鑰泄漏進 runner 進程環境。 - 宿主機解析到的憑證與端點在 runner 內仍具權威性;Docker interrupt 會沿傳輸關閉持續監控,競態完成會保留其結果;保留的 Docker 工作區會記錄 Agent dispatch,resume 時若缺少 staging 標記會拒絕,而不是覆蓋 Agent 已寫文件。
- ACA execution profiles 在環境文檔的
aca塊裏配置 pool 與 session 範圍,與 Agent 的模型提供方彼此獨立。舊的provider: aca寫法仍可用,但帶有 棄用提示。
同版本還修了 Fleet TUI 門禁文本輸入,並移除過時的 conductor.providers.aca_protocol 模塊(改從 conductor.runner.protocol 引入)。對日常操作有用,但本頁的產品主線是 profile 拆分。
以前「模型」和「執行環境」爲什麼粘在一起
更早的 Conductor ACA 用法,把 跑在哪裏 和 用哪套模型 綁死了:選舊的 ACA provider,就等於在沙箱裏強制走 Copilot,還容易把 pool 憑證寫進工作流 YAML。倉庫內 ACA 提供方文檔把遷移目標寫得很直白:execution profiles 把「跑什麼」和「在哪跑」拆開。工作流寫模型提供方;環境文檔配 ACA pool(或 Docker backend)。筆記本本地跑還是 Azure 沙箱跑,更多是換 --environment 文件,而不是改每一個 Agent 步驟。
這和其他 harness 文章的寫法一致:模型卡與承載工具、文件、網絡策略的運行時,是兩根不同的槓桿。Conductor 0.1.44 把槓桿名字寫進 YAML——一邊是 runtime.provider,一邊是 execution.profile/環境裏的 profiles.*.backend。
execution.profile 怎麼解析
工作流在 workflow.defaults.execution.profile 聲明默認 profile 名,步驟上還可覆蓋 execution.profile。執行環境文檔(例如 .conductor/environments/ 下)把邏輯名映射到具體後端:
backend: docker— 本地或自託管 Docker runner;發佈說明強調runner_image、工作區暫存、interrupt、面向 MCP 密鑰的env_overlay。backend: aca— Azure Container Apps dynamic-sessions 沙箱;pool endpoint、API 版本、identifier scope、egress、lifecycle、auth 寫在 profile 的aca塊。
項目自帶的 ACA profile 示例形態:工作流 runtime.provider: copilot,再加 defaults.execution.profile: aca_sandbox;環境文件定義 profiles.aca_sandbox.backend: aca 與 pool 設置。倉庫裏的 docker-agent 環境示例則並排放了 docker_agent(含 image/runner_image)和 aca_sandbox,同一套工作流思路可通過換環境指向不同後端。
項目文檔裏用 conductor validate … --environment … 預覽 profile 如何解析。我們暫時還沒有逐項測試 0.1.44 二進制對照的每張校驗表;以項目自身環境與 CLI 輸出爲準。
ACA 仍是 Experimental
項目 README 把 Azure Container Apps sandboxed execution 列在 Experimental,並有專節 Using ACA (Experimental);提供方對比表裏 ACA 列也標 Experimental。ACA 提供方文檔同樣把 ACA 放在 experimental 檔,並列出能力缺口。
因此 0.1.44 裏的「ACA execution profile」不是在說:Microsoft 已把 ACA 後端 Conductor 運行提升到 README 表裏與 Copilot/OpenAI 相同的穩定檔。Experimental 意味着可能有缺口、邊角更鋒利、策略還會變;README 沒寫的 GA 日期也不在這裏編造。
舊寫法 provider: aca 與遷移
發佈說明保留舊的 provider: aca,並給出棄用提示。ACA 提供方文檔裏,操作者會看到:
provider: aca is deprecated; use provider: copilot with an ACA execution profile
文檔口徑的遷移步驟:
- 把工作流(或步驟)的模型提供方改成受支持的值,例如
copilot、openai、claude。 - 用
execution.profile指向backend: aca的環境 profile。 - 把
pool_endpoint、api_version、identifier_scope、egress、lifecycle、auth等移進該環境 profile 的aca塊——離開工作流 YAML。 - 丟掉舊結構化 ACA provider 裏的
inner_provider;內層模型選擇變成普通的provider:字段。
仍用 provider: aca 的舊工作流可經兼容層繼續跑(按該文檔);新工作直接上 profile 形態,讓憑證留在環境文檔裏。
MIT、模型賬單、Azure 賬單
microsoft/conductor 倉庫是 MIT。開源 CLI 不等於 模型推理免費,也 不等於 Azure Container Apps 容量免費。Copilot 訂閱用量、OpenAI/Claude 按量計費、ACA 專用節點/預熱池費用,仍是分開的計量。ACA 提供方文檔還寫明:用量視圖裏的 sandbox 牆鐘行只是可見性代理,不是 Azure 賬單行——池子規模仍要對照真實 Azure 賬單。
當有人說 Conductor 開源時,讀法是 harness 代碼是 MIT,而不是一整包抹掉提供方或雲賬單。
隔離是功能表述,不是安全認證
Docker runner 與 ACA dynamic sessions 被寫成適合安放不信任或對隔離敏感的 Agent 循環——生成代碼、寬權限工具、不宜坐在宿主機 shell 裏的 MCP 進程。這個表述有用,但當作安全保證並不完整。
我們暫時還沒有測試 Docker/ACA 隔離是否足以當安全保證。憑證如何進沙箱、egress 設置、鏡像來源、池多租戶、interrupt 競態等,這裏都不當作已認證的安全邊界。需要安全邊界的團隊自己做威脅建模、鏡像釘死與憑證收窄;單靠「隔離容器」四個字填不了合規清單。
面向 0.1.44 的操作清單
- 版本。 安裝或升級目標是 Conductor 0.1.44(若倉庫已有更新 tag,以實際 tag 的發佈說明爲準)。
- 兩處設置分開。 工作流寫模型提供方;execution profile 寫 Agent 循環跑在哪。能放進環境文檔的 pool 端點,留在環境文檔,而不是寫進工作流文件。
- 有意選擇 Docker 或 ACA。 Docker 適合捆綁 runner 鏡像與本地/自託管容器主機;ACA 適合 Azure dynamic-sessions 池,並帶 README 的 Experimental 標籤。
- 遷離
provider: aca。 按 ACA 文檔改成 provider +execution.profile。 - 密鑰用 overlay,不當環境噪聲。 發佈說明裏的
env_overlay給 MCP 進程投遞密鑰,讓 runner 進程環境更乾淨。 - 先 validate 再信。 對目標環境文件跑
conductor validate,項目文檔中的 execution resolution 表會出現在結果裏。 - 預算三筆賬。 Conductor MIT 源碼 ≠ 模型 API 花費 ≠ Azure 池花費。
- 安全結論留在內部。 隔離強度我們暫時還沒有測夠;碰生產密鑰或不信任代碼時,仍保留內部評審。
和其他運行時的位置關係
Conductor 是 2026 年前後一批「Agent 質量既看模型名、也看 harness/執行環境」押注中的一個。AWS Infinity(高併發研究型運行時)、Foundry 上的 Copilot harness 公測、Cursor Agent SDK 的打包方式,以及站內關於 harness 成本的討論,都圍繞同一條縫:模型卡 vs 循環跑在哪裏。Conductor 0.1.44 的貢獻,是給出可寫進 YAML 的詞彙——execution.profile——以及 Docker/ACA 後端,同時 README 仍把 ACA 標爲 Experimental。
收束
Conductor 0.1.44 讓模型提供方與執行環境成爲可分開設置的一等配置:execution.profile 可指向隔離的 Docker runner 或 Azure Container Apps dynamic sessions,同時 Copilot、OpenAI、Claude 等提供方可獨立配置。0.1.44 的 GitHub 發佈時鐘是 2026-11-01T16:50:01Z(2026-11-02 00:50 Asia/Shanghai)。ACA 在項目 README 仍爲 Experimental。倉庫 MIT;開源抹不掉模型或 Azure 賬單。我們暫時還沒有測試 Docker/ACA 隔離是否足以當安全保證。控制檯行爲若與這裏寫的不一致,以 GitHub 發佈說明與項目 README 爲準(它們優先)。僅供參考。
