Lokal (.NET)

Microsoft.Agents.AI.LocalCodeAct kör genererad Python i en underprocess i agentens miljö. Den tillhandahåller CodeAct-providermönstret utan att en Hyperlight-gästkörning krävs.

Den här integreringen använder CodeAct-mönstret och förlitar sig på värdmiljön för isolering.

Varning

Lokal CodeAct är inte en säkerhetssandlåda. Kör den bara där en extern container, virtuell dator eller hanterad värdmiljö tillhandahåller isolering av processer, filsystem, nätverk och autentiseringsuppgifter.

Installera paketet

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

Paketet kräver en explicit Python körbar sökväg.

Konfigurera leverantören

Registrera värdverktyg via LocalCodeActProviderOptions. Genererad kod kan bara anropa dessa verktyg via await call_tool(...). Tillämpa körningsgränser för att begränsa underprocessens körtid och insamlad utdata.

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

Djupskyddskontroller

Local CodeAct tillhandahåller:

  • AST-validering med konfigurerbara tillåtna och blockerade importer och inbyggda funktioner.
  • Direkt Python underprocesskörning utan att anropa ett gränssnitt.
  • Storleksgränser för tid, utdata, resultat och insamlade filer.
  • Uttrycklig registrering av värdverktyg.
  • Skrivskyddade och skrivbara filmonteringar.
  • Konfigurerbar arbetskatalog och underprocessmiljö.

Dessa åtgärder minskar risken men ger inte inneslutning. Håll valideringen aktiverad, skicka en begränsad miljöordlista, exponera smala värdverktyg och kör processen i en stark extern sandbox-miljö.

Välj en CodeAct-körningsmiljö

Runtime Välj den när
Hyperlight Du behöver en isolerad sandbox-miljö med filsystem- och nätverkskontroller.
Lokal CodeAct Din .NET agent körs redan i en externt sandbox-miljö.
Monty Du behöver en plattformsövergripande begränsad tolk för Python-agenter.

Nästa steg