Yerel (.NET)

Microsoft.Agents.AI.LocalCodeActaracının ortamındaki bir alt işlemde Python oluşturulan çalıştırmalar. Hyperlight konuk çalışma zamanı gerektirmeden CodeAct sağlayıcı desenini sağlar.

Bu tümleştirme CodeAct desenini kullanır ve yalıtım için konak ortamına dayanır.

Warning

Yerel CodeAct bir güvenlik korumalı alanı değildir. Bunu yalnızca dış kapsayıcı, sanal makine veya yönetilen barındırma ortamının işlem, dosya sistemi, ağ ve kimlik bilgisi yalıtımı sağladığı durumlarda çalıştırın.

Paketi yükle

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

Paket, açık bir Python yürütülebilir yol gerektirir.

Sağlayıcıyı yapılandırma

aracılığıyla LocalCodeActProviderOptionskonak araçlarını kaydedin. Oluşturulan kod aracılığıyla yalnızca bu araçları await call_tool(...)çağırabilir. Bağlı alt işlem çalışma zamanına ve yakalanan çıkışa yürütme sınırları uygulayın.

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

Derinlemesine savunma denetimleri

Yerel CodeAct sağlar:

  • Yapılandırılabilir izin verilen ve engellenen içeri aktarmalar ve yerleşikler ile AST doğrulaması.
  • Bir kabuğu çağırmadan alt işlem yürütmeyi doğrudan Python.
  • Zaman, çıkış, sonuç ve yakalanan dosya boyutu sınırları.
  • Açık konak aracı kaydı.
  • Salt okunur ve okuma-yazma dosyası bağlamaları.
  • Yapılandırılabilir çalışma dizini ve alt işlem ortamı.

Bu denetimler riski azaltır ancak kapsama sağlamaz. Doğrulamayı etkin tutun, kısıtlı bir ortam sözlüğü geçirin, dar konak araçlarını kullanıma sunun ve işlemi güçlü bir dış korumalı alan içinde çalıştırın.

CodeAct çalışma zamanı seçme

Runtime Ne zaman seçeceğini
Hiper ışık Dosya sistemi ve ağ denetimleriyle yalıtılmış bir korumalı alana ihtiyacınız vardır.
Yerel CodeAct .NET aracınız zaten dış korumalı bir ortamda çalışıyor.
Monty Python aracıları için platformlar arası kısıtlanmış bir yorumlayıcıya ihtiyacınız vardır.

Sonraki Adımlar