Lokální (.NET)

Microsoft.Agents.AI.LocalCodeAct spustí vygenerovaný Python v podřízeném procesu v prostředí agenta. Poskytuje vzor poskytovatele CodeAct, aniž by vyžadoval hostované běhové prostředí Hyperlight.

Tato integrace používá vzor CodeAct a spoléhá na hostitelské prostředí pro izolaci.

Warning

Local CodeAct není bezpečnostní sandbox. Spusťte ho jenom v případě, že externí kontejner, virtuální počítač nebo spravované hostitelské prostředí poskytují proces, systém souborů, síť a izolaci přihlašovacích údajů.

Nainstalujte balíček

dotnet add package Microsoft.Agents.AI.LocalCodeAct --prerelease

Balíček vyžaduje explicitně zadanou cestu ke spustitelnému souboru Pythonu.

Konfigurujte poskytovatele

Zaregistrujte nástroje hostitele prostřednictvím LocalCodeActProviderOptions. Vygenerovaný kód může volat pouze tyto nástroje prostřednictvím await call_tool(...). Použijte limity provádění k omezení doby běhu podprocesu a objemu zachyceného výstupu.

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

Hloubkové kontroly ochrany

Lokální CodeAct poskytuje:

  • Validace AST s konfigurovatelným seznamem povolených a blokovaných importů a vestavěných funkcí.
  • Přímé spuštění podprocesu v Pythonu bez vyvolání shellu
  • Čas, výstup, výsledek a omezení velikosti zachycených souborů
  • Explicitní registrace hostitelského nástroje
  • Připojení souborů jen pro čtení a pro čtení i zápis.
  • Konfigurovatelný pracovní adresář a prostředí podprocesu

Tyto kontroly snižují riziko, ale neposkytují omezení. Ponechte ověřování zapnuté, předejte omezený slovník proměnných prostředí, zpřístupněte jen omezenou sadu hostitelských nástrojů a spusťte proces v robustním externím sandboxu.

Vyberte běhové prostředí CodeAct

Runtime Zvolte ho, když
Hyperlight Potřebujete izolovaný sandbox se systémem souborů a síťovými ovládacími prvky.
Local CodeAct Váš .NET agent už běží v prostředí s externě izolovaným prostorem (sandbox).
Monty Pro agenty Python potřebujete interpret s omezeným přístupem pro různé platformy.

Další kroky