Locale (.NET)

Microsoft.Agents.AI.LocalCodeActesecuzioni generate Python in un processo figlio nell'ambiente dell'agente. Fornisce il modello di provider CodeAct senza richiedere un runtime guest Hyperlight.

Questa integrazione usa il modello CodeAct e si basa sull'ambiente host per l'isolamento.

Avvertimento

Local CodeAct non è un sandbox di sicurezza. Eseguirlo solo in cui un contenitore esterno, una macchina virtuale o un ambiente di hosting gestito fornisce isolamento di processi, file system, rete e credenziali.

Installare il pacchetto

dotnet add package Microsoft.Agents.AI.LocalCodeAct --prerelease

Il pacchetto richiede un percorso eseguibile Python esplicito.

Configura il provider

Registrare gli strumenti host tramite LocalCodeActProviderOptions. Il codice generato può chiamare solo gli strumenti tramite await call_tool(...). Applicare limiti di esecuzione al runtime del sottoprocesso associato e all'output acquisito.

// ── 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],
    });

Controlli di difesa avanzata

CodeAct locale fornisce:

  • Convalida AST con importazioni consentite e bloccate configurabili e predefinite.
  • Esecuzione diretta Python sottoprocesso senza richiamare una shell.
  • Limiti relativi a tempo, output, risultato e dimensioni dei file acquisiti.
  • Registrazione esplicita dello strumento host.
  • Montaggi di file di sola lettura e di lettura/scrittura.
  • Directory di lavoro configurabile e ambiente del sottoprocesso.

Questi controlli riducono il rischio, ma non forniscono contenimento. Mantenere abilitata la convalida, passare un dizionario dell'ambiente con restrizioni, esporre strumenti host ristretti ed eseguire il processo all'interno di una sandbox esterna avanzata.

Scegliere un runtime CodeAct

Runtime Sceglilo quando
Hyperlight È necessaria una sandbox isolata con file system e controlli di rete.
Codice localeAct L'agente .NET è già in esecuzione all'interno di un ambiente in modalità sandbox esterna.
Monty È necessario un interprete con restrizioni multipiattaforma per gli agenti Python.

Passaggi successivi