Lokal (.NET)

Microsoft.Agents.AI.LocalCodeActmenjalankan Python yang dihasilkan dalam proses anak di lingkungan agen. Ini menyediakan pola penyedia CodeAct tanpa memerlukan runtime tamu Hyperlight.

Integrasi ini menggunakan pola CodeAct dan bergantung pada lingkungan host untuk isolasi.

Warning

Local CodeAct bukan kotak pasir keamanan. Jalankan hanya di mana kontainer eksternal, komputer virtual, atau lingkungan hosting terkelola menyediakan proses, sistem file, jaringan, dan isolasi kredensial.

Pasang paketnya

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

Paket memerlukan jalur eksplisit Python dapat dieksekusi.

Konfigurasikan penyedia

Daftarkan alat host melalui LocalCodeActProviderOptions. Kode yang dihasilkan hanya dapat memanggil alat tersebut melalui await call_tool(...). Terapkan batas eksekusi ke runtime subprosces terikat dan output yang diambil.

// ── 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],
    });

Kontrol pertahanan mendalam

Local CodeAct menyediakan:

  • Validasi AST dengan impor dan bawaan yang diizinkan dan diblokir yang dapat dikonfigurasi.
  • Eksekusi subproscess Python langsung tanpa memanggil shell.
  • Batas waktu, output, hasil, dan ukuran file yang diambil.
  • Pendaftaran alat host eksplisit.
  • Pemasangan file baca-saja dan baca-tulis.
  • Direktori kerja dan lingkungan subprosces yang dapat dikonfigurasi.

Kontrol ini mengurangi risiko tetapi tidak memberikan penahanan. Tetap aktifkan validasi, lewati kamus lingkungan terbatas, ekspos alat host sempit, dan jalankan proses di dalam kotak pasir eksternal yang kuat.

Pilih runtime CodeAct

Runtime Memilihnya ketika
Hyperlight Anda memerlukan kotak pasir terisolasi dengan sistem file dan kontrol jaringan.
Kode LokalAct Agen .NET Anda sudah berjalan di dalam lingkungan yang dikotakpasir secara eksternal.
Monty Anda memerlukan interpreter terbatas lintas platform untuk agen Python.

Langkah berikutnya