Na semana passada, a Microsoft disponibilizou o Orchard por completo sob a licença MIT — um framework construído especificamente para treinar e avaliar agentes. O resultado que chama a atenção: o Qwen3.5-35B-A3B, um modelo com aproximadamente 3 bilhões de parâmetros ativos, alcançou 69,7% no SWE-bench Verified — 73,0% após reranking com modelo de valor — aproximando-se de sistemas de fronteira com mais de dez vezes o seu número de parâmetros. E ainda vem acompanhado de: 107.000 trajetórias de treinamento SWE e as receitas de treinamento completas que as produziram.
Para desenvolvedores, o significado prático vai além de um único benchmark. Treinar seu próprio agente de código, agente GUI ou assistente pessoal não exige mais construir infraestrutura de sandbox do zero — a camada de ambiente, os dados e os scripts de treinamento já existem, prontos para rodar.
A Ideia Central: Uma Fundação, Três Receitas
A filosofia de design do Orchard é fácil de resumir: tratar o ambiente como uma camada de serviço estável, e não como uma parte descartável do stack de treinamento. Todas as receitas compartilham a mesma fundação, e destilação, RL on-policy e avaliação reutilizam toda a cadeia.
A fundação: Orchard Env, um serviço de sandbox nativo do Kubernetes
- Uma API REST limpa cobre todo o ciclo de vida do sandbox — criar, executar, arquivos, patch, deletar — em um protocolo com o qual qualquer linguagem pode se comunicar.
- Um SDK Python oferece modos síncrono e assíncrono com retries, limpeza automática e context managers embutidos.
- Qualquer imagem base funciona. O agente é injetado por meio de um init container que carrega seu próprio interpretador Python — sua imagem nem precisa ter Python instalado.
- Harnesses vêm pré-instalados: codex, claude, pi, opencode e hermes estão no PATH de todos os sandboxes. Trocar de harness significa trocar um comando, não reconstruir uma imagem.
- Isolamento e controle de custos são padrão: o NetworkPolicy do Calico bloqueia o tráfego de saída por padrão, cada sandbox recebe limites de CPU, memória e timeout, TTLs fazem a limpeza de resíduos, e chaves de API controlam o acesso.
Os números oficiais de desempenho comprovam a tese: latência média de execução de comandos de 0,28 segundos, contra 0,747s do E2B e 2,046s do Modal. Subir 1.000 sandboxes em paralelo teve 100% de sucesso em 26 segundos de ponta a ponta. Rodar 128 sandboxes por 240 horas custa US$ 3.362 on-demand ou US$ 673 em instâncias spot — uma diferença de cerca de dez vezes — enquanto serviços gerenciados de sandbox cobram de US$ 7.078 a US$ 10.305 pela mesma carga de trabalho.
Três receitas, três agentes
| Receita | Modelo base | Dados de treinamento | Técnicas-chave | Resultado principal |
|---|---|---|---|---|
| Orchard-SWE | Qwen3.5-35B-A3B | 107K trajetórias destiladas | SFT com atribuição de crédito, rollout adaptativo balanceado, destilação on-policy, recompensas de processo baseadas em rubricas, reranking com modelo de valor | 73,0% no SWE-bench Verified |
| Orchard-GUI | Qwen3-VL-4B-Thinking | 0,4K SFT + 2,2K tarefas RL | Primeiro destilar, depois RL online em sites reais | 68,4% de média (74,1 / 67,0 / 64,0) |
| Orchard-Claw | Qwen3-30B-A3B-Thinking | 0,2K tarefas sintéticas | Tarefas sintetizadas pelo Opus, treinado em dois harnesses | 59,6% pass@3 (73,9% sob ZeroClaw) |
Os números de generalização falam mais alto que as pontuações de destaque. O Orchard-SWE mantém 51,0 no SWE-bench Multilingual, onde o OpenSWE-32B alcança apenas 28,7. Transferido para o harness Kimi-CLI — que ele nunca viu durante o treinamento — ainda pontua 45,0, enquanto o OpenSWE-32B desaba para 3,6. E o Orchard-Claw ganha +14,3 pass@3 ao ser atualizado para o harness ZeroClaw, mais forte. Treinar contra ambientes agnósticos ao harness é o que torna a transferência de capacidades possível.
O problema mais difícil: atribuição de crédito
O modelo de ambiente atual é linear: um sandbox é criado, conduzido por N turnos e destruído. Uma trajetória gera uma única recompensa final que precisa ser distribuída por uma média de 47,5 turnos. O artigo contorna isso indiretamente com estimativa de valor retrospectiva; o roteiro aponta para algo melhor — snapshots (pausar e retomar), branching (bifurcar k continuações a partir de um mesmo estado) e compartilhamento de prefixos, transformando o valor de cada turno de uma inferência em uma medição. Esses primitivos entram direto na camada de ambiente, e são o núcleo do próximo ciclo de pesquisa.
Dez Minutos até um Sandbox em Execução
# 1. Instale (SDK puro em Python, no diretório orchard_env)
pip install -e "orchard_env[dev]"
# 2. Aponte para o seu orquestrador (ainda não tem um? A documentação
# ensina a subir um no AKS em cerca de 20 minutos)
export SANDBOX_BASE_URL="http://your-orchestrator-host"
export SANDBOX_API_KEY="your-api-key"
# 3. Crie um sandbox, execute um comando, leia a saída
from orchard_env import SandboxClient
with SandboxClient() as client: # lê as variáveis de ambiente acima
with client.create_sandbox("python:3.11-slim") as sandbox:
result = sandbox.exec("echo 'Hello, Orchard!'")
print(result.stdout) # Hello, Orchard!
Sem cluster? Quatro scripts sobem um no Azure AKS — provisionamento, build e push das imagens, deploy e teste de fumaça — em cerca de vinte minutos. Clusters fora do Azure e estimativas de custo estão em orchard_env/docs/deployment.md.
Quer treinar seu próprio agente SWE? O dataset e o stack de treinamento também estão disponíveis:
# Dataset: huggingface.co/datasets/microsoft/Orchard
# subset swe: 107.185 trajetórias SWE multi-turno
# (19.287 instâncias de tarefa / 2.788 repositórios, com
# rótulos de solução verificados: 74.649 resolvidas / 32.536 não resolvidas)
# subset gui: 3.070 trajetórias de navegação web anotadas com
# capturas de tela (409 tarefas do WebVoyager)
#
# Treinador: trainer/slime/ (um fork do slime da THUDM)
# scripts de RL em trainer/slime/examples/orchard/
# todas as mudanças locais documentadas em ORCHARD_CHANGES.md
Conselhos Práticos
- Para reproduzir os resultados: comece pelo modelo base Qwen3.5-35B-A3B com o dataset microsoft/Orchard, execute o exemplo orchard do treinador slime e siga a ordem do artigo — SFT com atribuição de crédito, depois destilação on-policy, depois RL.
- Para reduzir custos: rode avaliação e replay em instâncias spot. 128 sandboxes por 240 horas a US$ 673 custam uma ordem de grandeza menos que serviços gerenciados de sandbox.
- Para eliminar o descompasso entre treino e deploy: veja o trabalho complementar de RL do OpenForge (arXiv:2607.21557), que treina dentro de harnesses reais — ZeroClaw, OpenClaw, Codex — em vez de reimplementações simplificadas.
- Para validar rapidamente: deixe o Kubernetes de lado por ora. Leia a documentação do SDK e da API REST (docs/sdk.md, docs/api.md) e integre o SDK ao seu próprio projeto primeiro.
Por Que Isso Importa
A verdadeira contribuição do Orchard não é um número em ranking. É a tese — agora demonstrada — de que a camada de ambiente é o lugar certo para investir quando agentes se tornam algo sério: um serviço estável, mensurável e versionável que toda receita downstream reutiliza. Checkpoints de modelos expiram; um bom ambiente acumula valor. Com a fundação, três receitas comprovadas, um dataset de 107 mil trajetórias e o stack de treinamento todos públicos, o gargalo para treinar um agente de código confiável acabou de migrar da infraestrutura de volta para as ideias.
O projeto está em github.com/microsoft/Orchard, o artigo em arXiv:2605.15040, os dados no Hugging Face, e o relato da própria Microsoft no blog do Microsoft Research.