Lokaal (.NET)

Microsoft.Agents.AI.LocalCodeActvoert gegenereerde Python uit in een onderliggend proces in de omgeving van de agent. Het biedt het CodeAct-providerpatroon zonder dat hiervoor een Hyperlight-gastruntime is vereist.

Deze integratie maakt gebruik van het CodeAct-patroon en is afhankelijk van de hostomgeving voor isolatie.

Warning

Local CodeAct is geen beveiligings sandbox. Voer deze alleen uit wanneer een externe container, virtuele machine of beheerde hostingomgeving proces-, bestandssysteem-, netwerk- en referentieisolatie biedt.

Installeer het pakket

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

Voor het pakket is een expliciet Python uitvoerbaar pad vereist.

Configureer de provider

Registreer hosthulpprogramma's via LocalCodeActProviderOptions. Gegenereerde code kan alleen die hulpprogramma's aanroepen via await call_tool(...). Uitvoeringslimieten toepassen op afhankelijke subprocesruntime en vastgelegde uitvoer.

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

Diepgaande beveiligingsmaatregelen

Lokale CodeAct biedt:

  • AST-validatie met configureerbare toegestane en geblokkeerde import- en ingebouwde importbewerkingen.
  • Directe Python uitvoering van subprocessen zonder een shell aan te roepen.
  • Limieten voor tijd, uitvoer, resultaat en vastgelegde bestandsgrootte.
  • Expliciete registratie van hosthulpprogramma's.
  • Alleen-lezen- en lezen-schrijven bestandskoppelingen.
  • Configureerbare werkmap en subprocesomgeving.

Deze besturingselementen verminderen het risico, maar bieden geen insluiting. Validatie ingeschakeld houden, een woordenlijst met beperkte omgeving doorgeven, smalle hosthulpprogramma's beschikbaar maken en het proces uitvoeren in een sterke externe sandbox.

Een CodeAct-runtime kiezen

Runtime Kies deze wanneer
Hyperlight U hebt een geïsoleerde sandbox met bestandssysteem- en netwerkbesturingselementen nodig.
Lokale CodeAct Uw .NET-agent wordt al uitgevoerd in een externe sandbox-omgeving.
Monty U hebt een platformoverschrijdende beperkte interpreter nodig voor Python agents.

Volgende stappen