CodeAct

CodeAct permite a un agente resolver una tarea escribiendo código y ejecutándolo a través de una execute_code herramienta. En lugar de pedir al modelo que emita una llamada de herramienta a la vez, CodeAct le proporciona un lugar aislado para combinar el flujo de control, la transformación de datos y la orquestación de herramientas dentro de un solo paso de ejecución.

En Agent Framework, CodeAct se expone a través de paquetes específicos del back-end en lugar de un único tipo de núcleo integrado. Un conector puede añadir la herramienta execute_code, inyectar orientación en tiempo de ejecución y, opcionalmente, exponer herramientas propiedad del proveedor que se pueden llamar desde dentro del espacio aislado.

Por qué CodeAct

A menudo, los agentes de inteligencia artificial modernos no están limitados por la calidad del modelo, sino por la sobrecarga de orquestación. Cuando un agente encadena muchas llamadas a herramientas pequeñas, cada paso normalmente requiere otro turno de modelo, lo que aumenta la latencia y el uso del token.

CodeAct contrae ese modelo:> herramienta:> bucle de modelo. En lugar de pedir al modelo que elija una herramienta a la vez, Agent Framework puede exponer una sola execute_code herramienta y permitir que el modelo exprese el plan completo como un programa corto. Las herramientas permanecen iguales, el modelo permanece igual, y el cambio principal es que el plan se ejecuta una vez dentro de un entorno aislado, en lugar de estar distribuido en varias ejecuciones de llamada a herramientas.

En el caso de las cargas de trabajo intensivas en herramientas, que pueden reducir materialmente la latencia de un extremo a otro y el uso de tokens, al tiempo que mantiene el plan compacto y auditable en un bloque de código. El ejemplo de pruebas comparativas de Hyperlight compara esa forma directamente.

Cuando CodeAct es una buena opción

Use CodeAct cuando una tarea se beneficia de:

  • combinar varias llamadas a herramientas con bucles, ramificación, filtrado o agregación
  • transformar los resultados de la herramienta antes de devolver una respuesta final
  • generar salidas o artefactos estructurados más grandes como parte de una ejecución
  • mantener algunas herramientas disponibles solo dentro de un entorno de ejecución controlado
  • contraer muchas búsquedas pequeñas y encadenables o cálculos ligeros en una sola etapa de ejecución

Permanezca con llamadas directas a herramientas cuando:

  • la tarea solo necesita una o dos llamadas a herramientas, por lo que hay poco coste de orquestación para reducir
  • cada llamada tiene efectos secundarios que deben permanecer visibles individualmente para el modelo y el usuario
  • necesita solicitudes de aprobación por llamada en lugar de una decisión de aprobación para toda la ejecución de execute_code.

Cómo encaja CodeAct en Agent Framework

Normalmente, un conector CodeAct realiza cuatro cosas para una ejecución:

  1. Agrega una execute_code herramienta a la superficie de herramientas orientada al modelo.
  2. Proporciona instrucciones para el entorno de ejecución de zona configurado.
  3. Opcionalmente, expone herramientas propiedad del proveedor a través de call_tool(...).
  4. Aplica límites de funcionalidad, como el acceso al sistema de archivos o las listas de permitidos de red saliente.

Dado que el conector posee la configuración en tiempo de ejecución, los detalles exactos de configuración dependen del back-end que elija.

Limitaciones actuales

CodeAct es una opción segura para flujos de trabajo pesados de herramientas, pero hay algunas restricciones actuales que debe tener en cuenta:

  • El conector de Agent Framework documentado hoy es el primero en Python a través de Hyperlight CodeAct. La documentación de .NET todavía estará disponible próximamente.
  • Las aprobaciones se aplican actualmente a la totalidad de la llamada execute_code. Si necesita que las operaciones individuales se aprueben una por una, considere mantener esas operaciones como herramientas que actúan directamente a través de un agente en lugar de confiar en call_tool(...).
  • Las herramientas alcanzadas a través de call_tool(...) todavía se ejecutan en el proceso del anfitrión. Utilice herramientas de host limitadas y revisadas para E/S confidenciales en lugar de ampliar innecesariamente el acceso del entorno de sandbox.
  • CodeAct funciona mejor cuando domina la sobrecarga de orquestación. Para tareas pequeñas con solo una o dos llamadas a herramientas, es posible que la abstracción adicional no le aporte mucho.
  • Los nombres de herramientas, los metadatos de los parámetros y los tipos de retorno son más importantes aquí porque el modelo está escribiendo código según ese contrato en lugar de elegir llamadas directas a herramientas de una en una.

Empieza ahora

Próximamente.

Empieza ahora

Para Python, el conector documentado hoy es Hyperlight CodeAct.

El paquete Hyperlight proporciona:

  • HyperlightCodeActProvider para ejecuciones basadas en proporcionador de contexto
  • HyperlightExecuteCodeTool cuando desea conectar execute_code directamente
  • herramientas administradas por el proveedor que permanecen disponibles dentro del espacio aislado a través de call_tool(...)
  • configuración opcional del sistema de archivos y de la red externa para el tiempo de ejecución de la sandbox

Consulte Hyperlight CodeAct para la instalación, ejemplos, instrucciones específicas del entorno de ejecución, como cuándo usar print(...) y /output/, y las limitaciones actuales específicas de Hyperlight.

Pasos siguientes