微软开源Orchard:一个让AI智能体“动手干活”的统一平台
微软开源Orchard框架,提供统一的Orchard Env操作环境服务,支持AI智能体在代码、浏览器与通用计算机环境中执行真实任务。其核心价值在于标准化沙箱基础设施、预置主流Agent Harness、高效并行能力(1000环境/26秒)及三类落地Recipe(SWE/GUI/Claw),并开源107K条SWE轨迹与3K条GUI多模态数据集。
环境,是智能体从“思考”走向“行动”的桥梁。
想象一下这个场景:你对一个AI说,“帮我分析一下这份代码的性能瓶颈,然后去GitHub上把修复提交上去”。AI得先读懂代码,再找到瓶颈,接着修改文件,最后还要能操作Git,发起Pull Request。这一连串动作,已经不只是“思考”了,它需要“动手”——在真实的软件工程环境里执行命令、读写文件、操作浏览器。
这就是Agentic Modeling——我们姑且称它为“智能体建模”——要解决的问题。而微软刚开源了一个叫Orchard的框架,就是冲着这个来的。

统一的操作环境,是智能体从理解任务到执行任务的底座。
智能体的“动手”难题
一个AI模型,读了海量数据,能说会道。可一旦要它真正去操作一个软件、浏览一个网页、或者在你的电脑上完成一个任务,问题就来了。
环境是割裂的。
搞软件工程的,有自己的一套模拟环境;做浏览器自动化的,又得另起炉灶;想训练一个能帮你操作电脑的“个人助理”,又得重新搭台子。每做一项新研究,就得把轮子从头造一遍。数据集不通用,训练代码不通用,评估方法也不通用——换个项目,一切推倒重来。
更何况,训练一个能“动手”的智能体,需要海量的“动手”数据。它得反复试错,在一个环境里执行命令,观察结果,再决定下一步。这个过程成本极高,效率是关键。
Orchard的出发点很简单:与其每项研究都重建一套环境,不如做一个统一的环境服务,让所有研究都跑在上面。 数据集、训练方法、评估标准,都基于同一个稳定的基底。这就是Orchard Env。
它不是什么复杂的理论突破,而是一个务实的工程基础设施。就像一个标准化的“练兵场”,不管你想训练哪种技能的智能体,都能在这个场子里反复操练,而且所有的训练记录(数据)、训练方法(代码)和最终考核(评估)都基于同一套标准。
Orchard Env:一个标准化的智能体“练兵场”
Orchard Env的设计思路非常清晰:它把“一个能运行代码、读写文件、访问网络的操作环境”封装成了一个标准化的服务。
你可以把它理解成一个“按需生成的操作空间”。当你需要训练或运行一个智能体时,通过一行命令或几行代码,就能在云端瞬间拉起一个隔离的、干净的、包含所需全部工具的容器。智能体通过一个标准的网络接口(REST API)与这个空间交互,执行命令、读写文件、打补丁。任务完成,空间销毁,不留痕迹。
这比传统的方案要快得多。文档里有个对比数据:Orchard Env平均执行一条命令的延迟是0.28秒。作为参照,另一个流行的方案E2B是0.747秒,慢了近三倍;还有一个Modal是2.046秒,慢了七倍多。这意味着,在需要执行成千上万次命令的训练过程中,Orchard Env能省下大量的等待时间。
更关键的是,它能大规模并行。文档提到,它能在26秒内并行启动1000个这样的独立环境,成功率100%。这意味着研究者可以同时跑成千上万个训练任务,效率提升是惊人的。如果用云端计算资源,它也比同类托管服务便宜得多——大约是托管的十分之一。
它还有一个巧妙的设计:任何基础镜像都可以直接用。因为Orchard Env会把它的“智能体助手”通过一个初始化容器注入进去,这个助手自带了一个独立的Python解释器。这意味着,你甚至不需要在你想用的基础镜像里预装Python。你想用一个极其精简的Alpine Linux镜像?没问题。你想用一个包含了完整CUDA驱动的深度学习镜像?也没问题。
拿来就用:内置的主流智能体“驾驶舱”
智能体要在环境里“动手”,它需要一个“驾驶舱”——也就是Agent Harness,负责把模型的“思考”翻译成具体的操作。比如,模型说“我要看这个文件的内容”,驾驶舱就得把它转成cat /path/to/file命令,然后执行,再把结果返回给模型。
Orchard Env非常贴心地预装了好几个主流驾驶舱,包括codex、claude、pi、opencode、hermes,它们直接就在系统路径(PATH)上。这意味着你切换不同的驾驶舱来训练或评估你的智能体,就像切换一个命令行参数一样简单。你不需要在容器里安装任何东西,不需要联网下载,环境开箱即用。
这为什么重要? 因为你训练时的驾驶舱和部署时的驾驶舱往往不同,这种“不匹配”会导致智能体在真实环境中表现失常。Orchard Env让你可以轻松地在训练和评估时使用相同的驾驶舱,甚至在不同的驾驶舱之间做对比实验,看看你的智能体泛化能力到底怎么样。
怎么用?
上手非常简单,三步走。
首先,安装Python包:
pip install -e "orchard_env[dev]"然后,设置两个环境变量,告诉你的代码你的Orchard环境在哪里:
export SANDBOX_BASE_URL="http://your-orchestrator-host"
export SANDBOX_API_KEY="your-api-key"最后,在你的Python代码里使用它:
from orchard_env import SandboxClient
# 用上下文管理器,自动创建和销毁环境
with SandboxClient() as client:
# 创建一个基于python:3.11-slim镜像的沙箱
with client.create_sandbox("python:3.11-slim") as sandbox:
# 在沙箱里执行一条命令
result = sandbox.exec("echo 'Hello, Orchard!'")
print(result.stdout) # 打印出 Hello, Orchard!这段代码演示了最核心的工作流:连接、创建、执行、自动销毁。如果你没有现成的Orchestrator,项目文档里还提供了脚本,可以在Azure AKS上大约20分钟就部署一套自己的集群。
避坑要点
- 不要忽略自动清理:上面的代码用了
with语句,这保证了无论执行成功还是出错,沙箱都会被销毁。如果你手动管理,务必在finally块里调用delete()。否则,成千上万的“僵尸”沙箱会迅速耗尽你的集群资源。 - 网络是隔离的:默认情况下,沙箱内的网络是“拒绝出站”的。也就是说,智能体在里面不能随便访问外网。这主要是出于安全和可控的考虑,你需要哪些网络访问权限,需要显式配置。
- API Key是必须的:Orchestrator默认开启了API Key认证,不要让你的Key泄露。
三份“烹饪配方”:从软件工程到图形界面
有了Orchard Env这个统一“厨房”,研究者们已经“烹饪”出了三份各具特色的“菜谱”(Recipes),分别覆盖了软件工程、图形界面和计算机使用三个领域。

三份 Recipes 建在同一个环境底座之上,因而可以复用训练、评估与基础设施。
1. Orchard-SWE:软件工程的“AI程序员”
这是第一个“菜谱”,目标是让AI能像人类程序员一样解决GitHub上的issue(问题)。
- 数据:用了107,000条高质量的“解题轨迹”数据。这些数据怎么来的?是用一个更强的模型(Teacher)在Orchard Env里实际解决GitHub issue,把它的每一步操作都记录下来,形成了一个“标准答案”。这比只给模型“问题和答案”要丰富得多,因为它包含了“解题思路”。
- 方法:先在107K条轨迹上做“模仿学习”(SFT),让模型学习基本的解题模式。然后,用一个叫“平衡自适应 rollout”的技术做强化学习。简单说,就是让模型自己去解题,解得好就奖励,解不好就惩罚。关键在于,他们不是简单地看最后结果对不对,而是用了一个“过程奖励模型”去评估解题过程中的每一步是不是走在正确的方向上。这解决了“漫长解题过程,最后一步才给奖励”的信用分配难题。
- 结果:在业界公认的SWE-bench Verified基准测试上,Orchard-SWE拿到了73.0%的通过率。这是一个很高的数字,要知道,很多商业系统也不过如此。而且,它不只是会做“标准题”,在更难的多语言测试集SWE-bench Multilingual上,它也拿到了51.0%,远超同类开源模型OpenSWE-32B的28.7%。
最厉害的是它的泛化性。用另一个从没在训练中见过的“驾驶舱”(比如Kimi-CLI)来评估,Orchard-SWE在SWE-bench Verified上依然能保持45.0%的通过率,而OpenSWE-32B直接崩溃到3.6%。在更难的Terminal-Bench 2.0上,Orchard-SWE有20.1%,OpenSWE-32B则是0.0。这说明,在Orchard Env上训练出来的智能体,学到的不是取巧于某个特定工具的“花架子”,而是真正的解题能力。
2. Orchard-GUI:会看屏幕的“浏览器助理”
第二个菜谱,训练智能体操作图形界面,具体来说是浏览器。
- 数据:只用400条(0.4K)模仿学习数据,和2,200个强化学习任务。数据量相比动辄百万的大模型预训练数据,简直少得可怜。
- 方法:先让模型模仿一个更强的多模态模型(比如GPT-4V)操作浏览器。这400条数据教会了模型“基本操作”。然后,关键一步来了——在真实的、在线的网站上进行强化学习。模型打开真实网站,尝试完成比如“在Reddit上找到关于AI的置顶帖”这样的任务。成功或失败,都作为奖励信号。
难点在于,真实网站是多变的、不稳定的。可能网络延迟,可能页面加载失败,可能元素位置变了。Orchard-GUI项目在Orchard Env之上构建了一个“容错的在线浏览器环境”,有重试机制、超时处理、失败归因。这样,当训练出问题时,你能分清是模型笨,还是网站卡了。
- 结果:在三个在线网页任务测试集上,Orchard-GUI平均得分68.4%。作为对比,它自己作为老师的那个235B参数的大模型,在同样的任务上得分可能还不如它。用两个数量级更少的训练数据,用一个小得多的模型,在推理能力上逼近甚至超越了老师,这就是在线强化学习 + 稳定环境的威力。
3. Orchard-Claw:通用计算机使用的“多面手”
第三个菜谱,目标是让AI能像人一样操作电脑上的各种应用,而不仅仅是浏览器。
- 数据:只有200个合成的任务。是的,你没看错,200个。数据极少,因为这类任务(比如“帮我整理一下桌面上的文件”)比解决GitHub issue或浏览网页都更复杂,数据更难获取。
- 方法:核心思想是跨不同驾驶舱的训练。他们的训练数据虽然少,但涵盖了两种不同的操作方式(驾驶舱)。这使得模型学到的不是针对某个特定操作界面的“肌肉记忆”。
- 结果:在同一个测试集上,当使用一个较弱的驾驶舱时,Orchard-Claw的得分是59.6%(pass@3,即生成3个答案,有一个正确就算对)。当换成一个更强的驾驶舱ZeroClaw后,得分飙升到了73.9%,提升了14.3个百分点。在所有被测试的模型中,它是受益于驾驶舱升级最大的一个。这完美验证了他们的核心论点:环境与驾驶舱解耦,可以让你自由地升级任何一层,另一层的投资不会被浪费。
数据集:107K条SWE轨迹 + 3K条GUI轨迹
除了框架和环境,微软还开源了在Orchard Env上生产的两大数据集。
- SWE子集:107,185条多轮软件工程“解题轨迹”,覆盖了2,788个代码仓库的19,287个独立任务。平均每条轨迹有47.5步交互。这些轨迹都带有“是否解决”的标签。这是目前已知的最大的、开源的、带过程标注的SWE数据集。它不只是“对不对”的标签,而是记录了“如何做”的过程,这对于训练智能体的推理能力至关重要。
- GUI子集:3,070条经过人工验证的、成功的浏览器操作轨迹。每条轨迹都带有一张屏幕截图,是典型的多模态数据。这些轨迹是在409个WebVoyager风格的任务上采集的,覆盖了常见的网页浏览场景。
这两份数据都放在了Hugging Face上,搜索microsoft/Orchard就能找到,直接可用于训练和评估。
动手部署你自己的Orchard集群
如果你不只是想用Python SDK连接公共服务,而是想拥有一套完全属于自己的Orchard环境,无论是用于内部研发还是数据安全考虑,项目提供了完整的部署方案。这里简述基于Azure AKS的步骤:
- 准备Azure账号:你需要一个Azure订阅,并安装好
az命令行工具,登录你的账号。 - 设置环境变量:定义一系列环境变量,比如资源组名称、集群名称、虚拟机大小(默认
Standard_D4s_v3,4核16G内存)、节点数量等。 - 运行部署脚本:项目提供了四个脚本,按顺序执行:
provision-aks.sh:创建Azure Kubernetes Service集群和配套的数据库(Redis)。build-and-push.sh:构建Orchard Env的Docker镜像,并推送到你的Azure容器注册表。deploy-orchard.sh:将Orchard Env服务部署到你的AKS集群上。test-deployment.sh:运行几个测试,验证部署是否成功。
整个过程脚本化,大约20分钟就能完成。对于非Azure的Kubernetes集群,文档也提供了手动部署的YAML文件,你可以根据自己集群的情况调整。
未来展望:让智能体能“反悔”和“反思”
文档最后提到了一个非常有意思的后续规划,叫“状态化沙箱”。目前的Orchard Env是“线性的”——启动,操作N步,销毁。如果你想探索另一种可能性,比如在第5步时做个不同的选择,必须从头再来一遍,成本极高。
“状态化沙箱”则允许:
- 暂停/恢复:可以把沙箱的整个状态(文件系统、进程等)像游戏存档一样存下来,下次直接从这儿继续。
- 分支:从同一个存档点,派生N个不同的分支,每个分支走不同的路。这相当于可以并行地探索不同的“可能性”。
这对强化学习中的“信用分配”问题帮助巨大。目前,一个长达47.5步的轨迹,最后只得到一个“成功/失败”的奖励。到底是第3步的决策起了决定性作用,还是第30步?很难说。有了分支能力,你就可以从第3步开始分叉出多个分支,看看不同选择带来的不同结果,从而更准确地判断第3步的价值,为每一步都提供更精确的反馈信号,让训练更高效。这个能力直接构建在环境层,所有上层的训练代码都能自动受益。
总结
Orchard给我们带来的最大启发,是它把AI智能体研究从一个“单兵作战”的手工时代,推向了“标准化、工程化、可复现”的平台时代。
它证明了,一个统一、高效、可靠的环境服务,是所有上层研究的基石。无论是做软件工程、图形界面操作,还是通用计算机使用,研究者都不需要再为环境分心,可以把精力集中在算法、数据和模型设计这些真正产生创新的环节上。
对于任何想在智能体领域动手实践、做点实在东西的开发者或研究者来说,Orchard提供了一个绝佳的起点。它不仅是一个工具,更是一个思路:与其追逐一个跑得更快的模型,不如先铺好一条让所有模型都能自由奔跑的赛道。 这条路,或许才是通往通用人工智能更务实的一步。
JOTO 企业落地观察
- Orchard Env 的沙箱隔离与快速启停能力,对企业部署智能体服务具有明确工程价值:它使生产环境中的任务执行具备可预测的资源边界与确定性生命周期,避免传统无状态函数调用在文件IO、进程管理、状态残留等方面的不确定性风险。
- Orchard 提出的“环境-驾驶舱-模型”三层解耦架构,直接影响企业智能体工程中的模块复用策略:当业务需求变更导致操作界面升级(如从CLI迁移到GUI),企业无需重训底层模型,只需替换对应驾驶舱,大幅降低迭代成本与知识资产沉没风险。
- Orchard-SWE 在 SWE-bench 上的高通过率与强泛化性,揭示了 RAG 知识工程的新取舍:相比向大模型注入大量代码片段,构建可执行、可验证的沙箱环境并辅以过程轨迹监督,更能训练出具备真实工程意图理解与调试能力的智能体,这对企业内部代码辅助场景更具实操意义。
- Orchard 的“状态化沙箱”路线图,为企业 AI 安全治理提供了新抓手:沙箱快照与分支能力天然支持操作审计回溯、异常行为隔离分析与合规性验证,使智能体执行过程从“黑盒调用”转向“白盒可验”,满足金融、政务等强监管场景的留痕与问责要求。
立即咨询 JOTO
JOTO 提供覆盖企业智能体规划与搭建、AI 平台私有化部署、RAG 知识工程、AI 安全治理、FDE 驻场共创及持续运营优化的全周期 AI 落地服务,帮助企业把验证中的 AI 能力转化为安全、可控、可持续迭代的生产力。 联系 JOTO 获取 AI 落地咨询
想把这些做法用到你的业务里?
留下你的场景和痛点,我们帮你判断从哪一步开始。
联系我们


