CodeAct

O CodeAct permite que um agente resolva uma tarefa escrevendo código e executando-a através de uma execute_code ferramenta. Em vez de pedir ao modelo que emita uma chamada de ferramenta de cada vez, o CodeAct dá-lhe um espaço sandbox para combinar fluxo de controlo, transformação de dados e orquestração de ferramentas num único passo de execução.

No Agent Framework, o CodeAct é exposto através de pacotes específicos do backend em vez de um único tipo de núcleo incorporado. Um conector pode adicionar a ferramenta execute_code, injetar orientação durante a execução e, opcionalmente, expor ferramentas pertencentes ao fornecedor que podem ser chamadas a partir do sandbox.

Porquê CodeAct

Os agentes de IA modernos muitas vezes não são limitados pela qualidade do modelo, mas sim pela sobrecarga de orquestração. Quando um agente encadeia muitas chamadas de pequenas ferramentas, cada passo normalmente requer mais um turno de modelo, o que aumenta tanto a latência como o uso de tokens.

O CodeAct colapsa esse ciclo modelo -> ferramenta -> modelo. Em vez de pedir ao modelo para escolher uma ferramenta de cada vez, o Agent Framework pode expor uma única execute_code ferramenta e permitir que o modelo expresse o plano completo como um programa curto. As ferramentas mantêm-se iguais, o modelo mantém-se igual, e a principal mudança é que o plano corre uma vez dentro de um sandbox em vez de estar disperso por vários turnos de chamadas de ferramenta.

Para cargas de trabalho intensivas em ferramentas, isso pode reduzir significativamente a latência de ponta a ponta e o uso de tokens, mantendo o plano compacto e auditável numa única unidade de código. A amostra do benchmark Hyperlight compara essa forma diretamente.

Quando o CodeAct é uma boa opção

Use o CodeAct quando uma tarefa beneficia de:

  • combinar múltiplas invocações de ferramentas com loops, bifurcação, filtragem ou agregação
  • Transformar os resultados da ferramenta antes de devolver uma resposta final
  • gerando saídas estruturadas maiores ou artefactos como parte de uma execução
  • manter algumas ferramentas disponíveis apenas dentro de um ambiente de execução controlado
  • condensar muitas pequenas pesquisas encadeáveis ou cálculos leves numa única etapa de execução

Opte por continuar com a chamada direta a ferramentas quando:

  • A tarefa só precisa de uma ou duas chamadas de ferramenta, por isso há pouca sobrecarga de orquestração a eliminar
  • Cada chamada tem efeitos secundários que devem permanecer visíveis individualmente para o modelo e para o utilizador
  • Precisas de prompts de aprovação por chamada em vez de uma decisão de aprovação para toda a execução execute_code

Como o CodeAct se encaixa no Agent Framework

Um conector CodeAct normalmente faz quatro funções numa execução:

  1. Adiciona uma execute_code ferramenta à superfície de ferramentas voltada para o modelo.
  2. Fornece instruções para o ambiente de execução sandbox configurado.
  3. Opcionalmente, expõe ferramentas pertencentes ao fornecedor através de call_tool(...).
  4. Aplica limites de capacidade, como acesso ao sistema de ficheiros ou listas de permissão na rede de saída.

Como o conector detém a configuração em tempo de execução, os detalhes exatos da configuração dependem do backend que escolheres.

Limitações atuais

O CodeAct é uma boa opção para fluxos de trabalho pesados em ferramentas, mas existem algumas restrições atuais a ter em conta:

  • O conector do Agent Framework documentado atualmente é Python-first através do Hyperlight CodeAct. A documentação do .NET ainda está a chegar em breve.
  • Atualmente, as aprovações aplicam-se à execute_code chamada como um todo. Se precisar que operações individuais sejam aprovadas uma a uma, mantenha essas operações como ferramentas de agente direto em vez de depender de call_tool(...).
  • As ferramentas acessadas através de call_tool(...) continuam a executar no processo hospedeiro. Use ferramentas de host específicas e revisadas para I/O sensível em vez de expandir desnecessariamente o acesso ao sandbox.
  • O CodeAct funciona melhor quando a sobrecarga de orquestração é predominante. Para tarefas pequenas com apenas uma ou duas chamadas de ferramenta, a abstração adicional pode não lhe trazer muito.
  • Nomes de ferramentas, metadados de parâmetros e formas de retorno são mais importantes aqui porque o modelo está a escrever código em conformidade com esse contrato, em vez de se limitar a uma invocação direta de ferramenta de cada vez.

Introdução

Brevemente.

Introdução

Para Python, o conector documentado hoje é o Hyperlight CodeAct.

O pacote Hyperlight oferece:

  • HyperlightCodeActProvider para execuções baseadas em provedor de contexto
  • HyperlightExecuteCodeTool Quando queres ligar execute_code diretamente
  • Ferramentas geridas pelo fornecedor que permanecem disponíveis dentro do sandbox através de call_tool(...)
  • Configuração opcional de sistema de ficheiros e rede de saída para o ambiente de execução em sandbox

Consulte Hyperlight CodeAct para instalação, exemplos, orientações específicas para o tempo de execução como quando usar print(...) e /output/, e as limitações atuais específicas do Hyperlight.

Passos seguintes