Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Microsoft.Agents.AI.LocalCodeActejecuta Python generados en un proceso secundario en el entorno del agente. Proporciona el patrón de proveedor CodeAct sin necesidad de un entorno de ejecución de invitado de Hyperlight.
Esta integración usa el patrón CodeAct y se basa en el entorno de host para el aislamiento.
Warning
Local CodeAct no es un espacio aislado de seguridad. Ejecútelo solo cuando un contenedor externo, una máquina virtual o un entorno de hospedaje administrado proporcione el proceso, el sistema de archivos, la red y el aislamiento de credenciales.
Instalar el paquete
dotnet add package Microsoft.Agents.AI.LocalCodeAct --prerelease
El paquete requiere una ruta de acceso ejecutable explícita Python.
Configurar el proveedor
Registre las herramientas de host a través de LocalCodeActProviderOptions. El código generado solo puede llamar a esas herramientas a través de await call_tool(...). Aplique límites de ejecución al tiempo de ejecución de subproceso enlazado y a la salida capturada.
// ── 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],
});
Controles de defensa en profundidad
CodeAct local proporciona:
- Validación de AST con importaciones y bloqueos permitidos y bloqueados configurables y integrados.
- Ejecución directa Python subproceso sin invocar un shell.
- Límites de tiempo, salida, resultado y tamaño de archivo capturado.
- Registro explícito de la herramienta host.
- Montajes de archivos de solo lectura y de lectura y escritura.
- Directorio de trabajo configurable y entorno de subproceso.
Estos controles reducen el riesgo, pero no proporcionan contención. Mantenga habilitada la validación, pase un diccionario de entorno restringido, exponga herramientas de host estrechas y ejecute el proceso dentro de un espacio aislado externo seguro.
Elección de un entorno de ejecución de CodeAct
| Runtime | Selecciónela cuando |
|---|---|
| Hyperlight | Necesita un espacio aislado con controles de red y sistema de archivos. |
| Código localAct | El agente de .NET ya se ejecuta dentro de un entorno de espacio aislado externo. |
| Monty | Necesita un intérprete restringido multiplataforma para Python agentes. |