Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Microsoft.Agents.AI.LocalCodeAct uruchamia wygenerowany kod Pythona w procesie potomnym w środowisku agenta. Zapewnia wzorzec dostawcy CodeAct bez konieczności korzystania ze środowiska uruchomieniowego gościa Hyperlight.
Ta integracja wykorzystuje wzorzec CodeAct i opiera się na środowisku hosta w celu zapewnienia izolacji.
Warning
Local CodeAct nie jest piaskownicą zabezpieczeń. Uruchom go tylko wtedy, gdy zewnętrzny kontener, maszyna wirtualna lub zarządzane środowisko hostingu zapewnia proces, system plików, sieć i izolację poświadczeń.
Instalowanie pakietu
dotnet add package Microsoft.Agents.AI.LocalCodeAct --prerelease
Pakiet wymaga jawnej ścieżki pliku wykonywalnego Python.
Konfiguruj dostawcę
Zarejestruj narzędzia hosta za pomocą LocalCodeActProviderOptions. Wygenerowany kod może wywoływać tylko te narzędzia za pomocą polecenia await call_tool(...). Zastosuj limity wykonania, aby ograniczyć czas działania podprocesu i przechwytywane dane wyjściowe.
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())
Mechanizmy kontroli dogłębnej ochrony
Lokalny CodeAct zapewnia:
- Walidacja AST z konfigurowalnymi dozwolonymi i zablokowanymi importami oraz wbudowanymi elementami.
- Bezpośrednie uruchamianie podprocesu w Pythonie bez wywoływania powłoki.
- Limity czasu, danych wyjściowych, wyników i przechwyconych plików.
- Jawna rejestracja narzędzia-hosta.
- Instalacja plików tylko do odczytu i zapisu.
- Konfigurowalny katalog roboczy i środowisko podrzędne przetwarzania.
Te mechanizmy kontroli zmniejszają ryzyko, ale nie zapewniają powstrzymania. Pozostaw włączoną walidację, przekaż słownik zmiennych środowiskowych o ograniczonym zakresie, udostępnij ograniczony zestaw narzędzi hosta i uruchom proces w solidnej zewnętrznej piaskownicy.
Wybieranie środowiska uruchomieniowego CodeAct
| Runtime | Wybierz ją, gdy |
|---|---|
| Hyperlight | Potrzebujesz izolowanej piaskownicy z kontrolą systemu plików i sieci. |
| Lokalny CodeAct | Agent .NET działa już w środowisku zewnętrznie odizolowanym. |
| Monty | Potrzebujesz wieloplatformowego interpretera z ograniczeniami dla agentów Python. |