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.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. |