Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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. |