CodeAct

O CodeAct permite que um agente resolva uma tarefa escrevendo código e executando-a por meio de uma execute_code ferramenta. Em vez de solicitar que o modelo emita uma chamada de ferramenta de cada vez, o CodeAct fornece um local em área restrita para combinar fluxo de controle, transformação de dados e orquestração de ferramentas dentro de uma única etapa de execução.

No Agent Framework, CodeAct é exposto por meio de pacotes específicos de back-end em vez de um único tipo de núcleo interno. Um conector pode adicionar a ferramenta execute_code, injetar orientação de execução e, opcionalmente, expor ferramentas pertencentes ao provedor que podem ser chamadas de dentro do sandbox.

Por que CodeAct

Os agentes de IA modernos geralmente não são limitados pela qualidade do modelo, mas pela sobrecarga de orquestração. Quando um agente une muitas chamadas de ferramentas pequenas, cada etapa geralmente requer outra virada de modelo, o que aumenta a latência e o uso do token.

CodeAct simplifica o ciclo modelo -> ferramenta -> modelo. Em vez de solicitar que o modelo escolha 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 permanecem as mesmas, o modelo permanece o mesmo, e a principal alteração é que o plano é executado uma vez dentro de uma sandbox em vez de ser espalhado por várias chamadas de ferramenta.

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

Quando CodeAct é uma boa opção

Use CodeAct quando uma tarefa se beneficiar de:

  • combinando várias chamadas de ferramenta com loops, ramificação, filtragem ou agregação
  • transformando resultados da ferramenta antes de retornar uma resposta final
  • gerando saídas estruturadas ou artefatos maiores como parte de uma execução
  • mantendo algumas ferramentas disponíveis somente dentro de um ambiente de execução controlada
  • Agrupar muitas consultas pequenas e encadeáveis ou cálculos leves em uma etapa de processamento

Continue usando a chamada direta de ferramentas quando:

  • a tarefa só precisa de uma ou duas chamadas de ferramenta, portanto, há pouca sobrecarga de orquestração para remover
  • cada chamada tem efeitos colaterais que devem permanecer visíveis de forma individual para o modelo e o usuário
  • você precisa 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 coisas para uma execução:

  1. Adiciona uma execute_code ferramenta à superfície de ferramenta voltada para o modelo.
  2. Fornece instruções para o tempo de execução do sandbox configurado.
  3. Opcionalmente, expõe ferramentas de propriedade do provedor por meio de call_tool(...).
  4. Aplica limites de funcionalidade, como acesso ao sistema de arquivos ou listas de permissões de rede de saída.

Como o conector possui a configuração de runtime, os detalhes exatos da instalação dependem do back-end escolhido.

Limitações atuais

CodeAct é ideal para fluxos de trabalho que exigem muitas ferramentas, mas há algumas restrições atuais a serem mantidas em mente.

  • O conector documentado do Agent Framework hoje prioriza Python por meio do CodeAct do Hyperlight. A documentação do .NET ainda estará disponível em breve.
  • As aprovações atualmente se aplicam à execute_code chamada como um todo. Se você precisar que as 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 ainda acessadas call_tool(...) são executadas no processo do host. Use ferramentas de host específicas e revisadas para E/S sensíveis em vez de ampliar o acesso ao sandbox desnecessariamente.
  • CodeAct funciona melhor quando a sobrecarga de orquestração domina. Para tarefas pequenas com apenas uma ou duas chamadas de ferramenta, a abstração adicionada pode não trazer muitos benefícios.
  • Nomes de ferramentas, metadados de parâmetro e formas de retorno importam mais aqui porque o modelo está escrevendo código em conformidade com esse contrato, em vez de selecionar uma chamada direta de ferramenta por vez.

Introdução

Em breve.

Introdução

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

O pacote do Hyperlight fornece:

  • HyperlightCodeActProvider para execuções baseadas em provedor de contexto
  • HyperlightExecuteCodeTool quando você deseja conectar execute_code diretamente
  • ferramentas gerenciadas pelo provedor que permanecem disponíveis dentro do sandbox por meio de call_tool(...)
  • configuração opcional de sistema de arquivos e rede de saída para o sandbox runtime

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

Próximas Etapas