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.LocalCodeActexecuções geradas Python 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.
Warning
CodeAct local não é uma área restrita 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
Registrar ferramentas de host por meio de LocalCodeActProviderOptions. O código gerado pode chamar apenas essas ferramentas por meio await call_tool(...)de . Aplique limites de execução ao runtime de subprocesso associado e à saída capturada.
// ── 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 ───────────────────────────────────────────────────
AIAgent agent = new AIProjectClient(new Uri(endpoint), credential)
.AsAIAgent(new ChatClientAgentOptions
{
Name = Environment.GetEnvironmentVariable("AGENT_NAME") ?? "hosted-local-codeact",
Description = "Hosted CodeAct agent with sandbox-only compute and fetch_data tools.",
ChatOptions = new ChatOptions
{
ModelId = deploymentName,
Instructions =
"""
You are a helpful assistant. Keep your answers brief. Prefer orchestrating your work
in a single `execute_code` block using `await call_tool(...)` over issuing many
direct tool calls. The sandbox exposes `compute` and `fetch_data` via `call_tool`.
""",
},
AIContextProviders = [codeAct],
});
Controles de defesa em profundidade
O CodeAct local fornece:
- Validação do AST com importações e internos configuráveis permitidos e bloqueados.
- Execução direta Python subprocesso sem invocar um shell.
- Limites de tempo, saída, resultado e tamanho do arquivo capturado.
- Registro explícito da ferramenta de 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 de ambiente restrito, exponha ferramentas de host estreitas e execute o processo dentro de uma área restrita externa forte.
Escolher um runtime do CodeAct
| Runtime | Escolha-o quando |
|---|---|
| Hiperleve | Você precisa de uma área restrita isolada com controles de rede e sistema de arquivos. |
| 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 Python agentes. |