Lokalny (.NET)

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.

Następne kroki