Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Microsoft.Agents.AI.LocalCodeAct executa código Python gerado em um processo filho no ambiente do agente. Ele fornece o padrão de provedor CodeAct sem exigir um runtime de convidado do Hyperlight.
Essa integração usa o padrão CodeAct e depende do ambiente do host para isolamento.
Aviso
O CodeAct local não é um sandbox de segurança. Execute-o somente quando um contêiner externo, uma máquina virtual ou um ambiente de hospedagem gerenciada fornecer isolamento de processo, sistema de arquivos, rede e credencial.
Instalar o pacote
dotnet add package Microsoft.Agents.AI.LocalCodeAct --prerelease
O pacote requer um caminho executável Python explícito.
Configure o provedor
Registre as ferramentas de host usando LocalCodeActProviderOptions. O código gerado pode chamar apenas essas ferramentas por meio de await call_tool(...). Aplique limites de execução ao runtime de subprocesso associado e à saída capturada.
new Dictionary<string, object> { ["id"] = 3, ["name"] = "Charlie", ["role"] = "admin" },
],
["products"] =
[
new Dictionary<string, object> { ["id"] = 101, ["name"] = "Widget", ["price"] = 9.99 },
new Dictionary<string, object> { ["id"] = 102, ["name"] = "Gadget", ["price"] = 19.99 },
],
};
return data.TryGetValue(table, out var rows) ? rows : [];
}
// ── LocalCodeAct provider with sandbox-only host tools ───────────────────────
var codeActOptions = new LocalCodeActProviderOptions
{
Tools =
[
AIFunctionFactory.Create(Compute, name: "compute"),
AIFunctionFactory.Create(FetchData, name: "fetch_data"),
],
ExecutionLimits = new ProcessExecutionLimits { TimeoutSeconds = 5 },
};
var codeAct = new LocalCodeActProvider(pythonExecutable, codeActOptions);
// ── Build the hosted agent ───────────────────────────────────────────────────
// WARNING: DefaultAzureCredential is convenient for development but requires careful
// consideration in production. Consider a specific credential (for example
// ManagedIdentityCredential) to avoid latency, unintended credential probing, and
// fallback security risks.
AIAgent agent = new AIProjectClient(new Uri(endpoint), new DefaultAzureCredential())
Controles de defesa em profundidade
O CodeAct local fornece:
- Validação de AST com importações e funções integradas permitidas e bloqueadas configuráveis.
- Execução direta de subprocessos em Python sem invocar um shell.
- Limites de tempo, saída, resultado e tamanho do arquivo capturado.
- Registro explícito da ferramenta host.
- Montagens de arquivo somente leitura e leitura/gravação.
- Diretório de trabalho configurável e ambiente de subprocesso.
Esses controles reduzem o risco, mas não fornecem contenção. Mantenha a validação habilitada, passe um dicionário restrito de variáveis de ambiente, exponha um conjunto limitado de ferramentas do host e execute o processo dentro de um sandbox externo robusto.
Escolher um runtime do CodeAct
| Tempo de execução | Escolha-o quando |
|---|---|
| Hyperlight | Você precisa de uma sandbox isolada com controles do sistema de arquivos e de rede. |
| Local CodeAct | Seu agente de .NET já é executado dentro de um ambiente de área restrita externa. |
| Monty | Você precisa de um interpretador restrito multiplataforma para agentes em Python. |