Lokal (.NET)

Microsoft.Agents.AI.LocalCodeAct führt generierten Python-Code in einem Unterprozess in der Umgebung des Agenten aus. 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.

Warnung

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.

            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())

Sicherheitskontrollen nach dem Prinzip der Tiefenverteidigung

Local CodeAct bietet Folgendes:

  • AST-Validierung mit konfigurierbaren erlaubten und blockierten Importen und Built-ins.
  • Direkte Python Ausführung von Unterprozessen ohne Aufrufen einer Shell.
  • Zeit-, Ausgabe-, Ergebnis- und Erfassungsdateigrößenbeschränkungen.
  • Explizite Registrierung des Host-Tools.
  • Schreibgeschützte und mit Lese-/Schreibzugriff versehene Datei-Mounts.
  • Konfigurierbare Arbeitsverzeichnis- und Unterprozessumgebung.

Diese Steuerelemente verringern das Risiko, bieten aber keine Eindämmung. Lassen Sie die Validierung aktiviert, übergeben Sie ein eingeschränktes Umgebungswörterbuch, machen Sie nur wenige Host-Tools verfügbar und führen Sie den Prozess innerhalb einer robusten externen Sandbox aus.

Auswählen einer CodeAct-Laufzeit

Laufzeit Wählen Sie diese Option, 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