本文目录

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

文档口径的迁移步骤:

  1. 把工作流(或步骤)的模型提供方改成受支持的值,例如 copilot、openai、claude。
  2. 用 execution.profile 指向 backend: aca 的环境 profile。
  3. 把 pool_endpoint、api_version、identifier_scope、egress、lifecycle、auth 等移进该环境 profile 的 aca 块——离开工作流 YAML。
  4. 丢掉旧结构化 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 的操作清单

  1. 版本。 安装或升级目标是 Conductor 0.1.44(若仓库已有更新 tag,以实际 tag 的发布说明为准)。
  2. 两处设置分开。 工作流写模型提供方;execution profile 写 Agent 循环跑在哪。能放进环境文档的 pool 端点,留在环境文档,而不是写进工作流文件。
  3. 有意选择 Docker 或 ACA。 Docker 适合捆绑 runner 镜像与本地/自托管容器主机;ACA 适合 Azure dynamic-sessions 池,并带 README 的 Experimental 标签。
  4. 迁离 provider: aca。 按 ACA 文档改成 provider + execution.profile。
  5. 密钥用 overlay,不当环境噪声。 发布说明里的 env_overlay 给 MCP 进程投递密钥,让 runner 进程环境更干净。
  6. 先 validate 再信。 对目标环境文件跑 conductor validate,项目文档中的 execution resolution 表会出现在结果里。
  7. 预算三笔账。 Conductor MIT 源码 ≠ 模型 API 花费 ≠ Azure 池花费。
  8. 安全结论留在内部。 隔离强度我们暂时还没有测够;碰生产密钥或不信任代码时,仍保留内部评审。

和其他运行时的位置关系

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 为准(它们优先)。仅供参考。