Lokal (.NET)

Microsoft.Agents.AI.LocalCodeActwird Python in einem untergeordneten Prozess in der Umgebung des Agents ausgeführt. Es stellt das CodeAct-Anbietermuster bereit, ohne dass eine Hyperlight-Gastlaufzeit erforderlich ist.

Diese Integration verwendet das CodeAct-Muster und basiert auf der Hostumgebung zur Isolierung.

Warning

Lokaler CodeAct ist keine Sicherheits-Sandbox. Führen Sie sie nur aus, wenn ein externer Container, ein virtueller Computer oder eine verwaltete Hostingumgebung Prozess-, Dateisystem-, Netzwerk- und Anmeldeinformationsisolation bereitstellt.

Installiere das Paket

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

Das Paket erfordert einen expliziten Python ausführbaren Pfad.

Konfigurieren Sie den Anbieter

Registrieren Sie Hosttools über LocalCodeActProviderOptions. Generierter Code kann nur diese Tools über await call_tool(...)aufrufen. Wenden Sie Ausführungsgrenzwerte auf gebundene Teilprozesslaufzeit und erfasste Ausgabe an.

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

Umfassende Abwehrsteuerelemente

Lokale CodeAct bietet Folgendes:

  • AST-Validierung mit konfigurierbaren zulässigen und blockierten Importen und integrierten Importen.
  • Direkte Python Ausführung von Unterprozessen ohne Aufrufen einer Shell.
  • Zeit-, Ausgabe-, Ergebnis- und Erfassungsdateigrößenbeschränkungen.
  • Explizite Registrierung des Hosttools.
  • Schreibgeschützte und Schreibzugriffsdatei-Bereitstellungen.
  • Konfigurierbare Arbeitsverzeichnis- und Unterprozessumgebung.

Diese Steuerelemente verringern das Risiko, bieten aber keine Eindämmung. Halten Sie die Überprüfung aktiviert, übergeben Sie ein Wörterbuch für eingeschränkte Umgebungen, machen Sie schmale Hosttools verfügbar, und führen Sie den Prozess in einer starken externen Sandbox aus.

Auswählen einer CodeAct-Laufzeit

Runtime Wählen Sie es aus, wenn
Hyperlight Sie benötigen eine isolierte Sandbox mit Dateisystem- und Netzwerksteuerelementen.
Lokaler CodeAct Ihr .NET-Agent wird bereits in einer externen Sandkastenumgebung ausgeführt.
Monty Sie benötigen einen plattformübergreifenden eingeschränkten Dolmetscher für Python Agenten.

Nächste Schritte