Yerel (.NET)

Microsoft.Agents.AI.LocalCodeAct, aracının ortamında bir alt süreçte oluşturulan Python kodunu çalıştırır. Hyperlight konuk çalışma zamanı gerektirmeden CodeAct sağlayıcı örüntüsünü sunar.

Bu tümleştirme CodeAct örüntüsünü kullanır ve yalıtım için konak ortama bağlıdır.

Warning

Yerel CodeAct bir güvenlik sanal 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

Ana bilgisayar araçlarını LocalCodeActProviderOptions aracılığıyla kaydedin. Oluşturulan kod, yalnızca await call_tool(...) aracılığıyla bu araçları çağırabilir. Alt işlem çalışma süresini ve yakalanan çıktıyı sınırlandırmak için yürütme sınırları uygulayın.

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

Derinlemesine savunma denetimleri

Yerel CodeAct sağlar:

  • Yapılandırılabilir izin verilen ve engellenen içe aktarmalar ile yerleşik öğeler için AST doğrulaması.
  • Bir kabuk çağırmadan Python alt işlemini doğrudan yürütme.
  • Zaman, çıkış, sonuç ve yakalanan dosya boyutu sınırları.
  • Ana makine-aracı için açık kayıt
  • Yalnızca okunur ve okuma-yazma dosya 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üğü sağlayın, sınırlı ana makine araçlarını erişime açın ve işlemi güçlü bir harici yalıtım ortamında çalıştırın.

CodeAct çalışma zamanı seçme

Runtime Ne zaman seçeceğini
Hyperlight 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