CodeAct

Med CodeAct kan en agent lösa en uppgift genom att skriva kod och köra den via ett execute_code verktyg. I stället för att be modellen att avge ett verktygsanrop i taget ger CodeAct den en plats i begränsat läge för att kombinera kontrollflöde, datatransformering och verktygsorkestrering i ett enda körningssteg.

I Agent Framework exponeras CodeAct via serverdelsspecifika paket i stället för en enda inbyggd kärntyp. En anslutningsapp kan lägga till execute_code verktyget, mata in körningsvägledning och eventuellt exponera providerägda verktyg som kan anropas inifrån sandbox-miljön.

Varför CodeAct

Moderna AI-agenter begränsas ofta inte av modellkvalitet, utan av orkestreringsöverhead. När en agent kedjar ihop många små verktygsanrop kräver varje steg vanligtvis en annan modellsväng, vilket ökar både svarstiden och tokenanvändningen.

CodeAct döljer modellen –> verktyget –> modellloopen. I stället för att be modellen att välja ett verktyg i taget kan Agent Framework exponera ett enda execute_code verktyg och låta modellen uttrycka hela planen som ett kort program. Verktygen förblir desamma, modellen förblir densamma och den viktigaste ändringen är att planen körs en gång i en sandbox-miljö i stället för att vara utspridda över flera verktygsanropssvängar.

För verktygsintensiva arbetsbelastningar kan den ändringen avsevärt minska svarstiden från slutpunkt till slutpunkt och tokenanvändning samtidigt som planen hålls kompakt och granskningsbar i ett kodblock. Se Hyperlight CodeAct-integreringen för en jämförelse av anslutningar sida vid sida.

När CodeAct passar bra

Använd CodeAct när en uppgift drar nytta av:

  • kombinera flera verktygsanrop med loopar, förgrening, filtrering eller aggregering
  • transformera verktygsresultat innan du returnerar ett slutligt svar
  • generera större strukturerade utdata eller artefakter som en del av en körning
  • hålla vissa verktyg tillgängliga endast i en kontrollerad körningsmiljö
  • komprimera många små, länkbara sökningar eller enkla beräkningar i ett körningssteg

Håll dig till direktverktygsanrop när:

  • uppgiften kräver bara ett eller två verktygsanrop, så det finns därför inte så mycket orkestreringsöverhead att eliminera
  • varje anrop har biverkningar som bör vara individuellt synliga för modellen och användaren
  • du behöver frågor om godkännande per samtal i stället för ett godkännandebeslut runt hela execute_code körningen

Så här passar CodeAct in i Agent Framework

En CodeAct-anslutning gör vanligtvis fyra saker under en körning:

  1. Lägger till ett execute_code verktyg på en verktygsyta som vetter mot modellen.
  2. Tillhandahåller instruktioner för den konfigurerade sandbox-körningen.
  3. Det är valfritt att exponera providerägda verktyg via call_tool(...).
  4. Tillämpar kapacitetsbegränsningar som filsystemåtkomst eller listor över tillåtna utgående nätverk.

Eftersom anslutningen äger körkonfigurationen beror de exakta konfigurationsinställningarna på vilken bakända du väljer.

Aktuella begränsningar

Warning

Det går inte att kombinera FIDES med aktuella CodeAct-leverantörer. FIDES är för närvarande endast för Python och är inte tillgängligt i .NET CodeAct-leverantörer.

Providerhanterade värdverktygsanrop inuti genererad kod passerar inte genom agentens middleware-pipeline per funktion. Kontroller av direct agent-verktyg eller det yttre execute_code anropet upprättar inte FIDES-tillämpning för kapslade anrop eller kod interna mellanliggande värden. De omfattar inte heller fil- eller nätverksfunktioner.

Värdverktyg måste upprätthålla sina egna kontroller för auktorisering och destinationer. Behåll FIDES-beroende verktyg som direktagentverktyg, inte CodeAct-hanterade verktyg, eller låt CodeAct vara inaktiverat för arbetsflöden som kräver dessa garantier. Den här kompatibilitetsgränsen är en aktuell integreringsbegränsning, inte en inbyggd begränsning i CodeAct-mönstret. Se Agentens säkerhet med FIDES.

CodeAct passar bra för verktygsintensiva arbetsflöden, men tänk på följande begränsningar:

  • Hyperlight CodeAct stöder Python och .NET. Monty är endast för Python; Local CodeAct är endast för .NET.
  • Godkännanden gäller för närvarande för anropet execute_code som helhet. Om du behöver enskilda åtgärder för att godkännas en i taget behåller du dessa åtgärder som direkta agentverktyg i stället för att förlita dig på call_tool(...).
  • Verktyg som nås via call_tool(...) körs fortfarande i värdprocessen. Använd smala, granskade värdverktyg för känslig I/O i stället för att bredda sandbox-åtkomsten i onödan.
  • CodeAct fungerar bäst när orkestreringens överkostnader är övervägande. För små uppgifter med bara ett eller två verktygsanrop kanske den tillagda abstraktionen inte är värd det.
  • Verktygsnamn, parametermetadata och returformer betyder mer här eftersom modellen skriver kod mot kontraktet i stället för att välja från ett direkt verktygsanrop i taget.

Get started

För .NET levereras Hyperlight CodeAct som Microsoft.Agents.AI.Hyperlight paket. Local CodeAct kör genererad Python i en subprocess och förlitar sig på extern isolering.

Hyperlight-paketet innehåller:

  • HyperlightCodeActProvider — en AIContextProvider som matar in execute_code och CodeAct-vägledning för varje körning
  • HyperlightExecuteCodeFunction – fristående AIFunction för statiska/manuella ledningar när sandbox-konfigurationen är fast
  • providerhanterade verktyg som fortfarande är tillgängliga i sandbox-miljön via call_tool(...)
  • CodeActApprovalMode och ApprovalRequiredAIFunction integrering för godkännande
  • valfri filsystemkonfiguration (FileMounts, HostInputDirectory) och utgående nätverk (AllowedDomains) för sandbox-körningen

Important

.NET-paketet är i förhandsversion och är beroende av Hyperlight.HyperlightSandbox.Api NuGet, som inte har publicerats på nuget.org ännu. Se Hyperlight CodeAct för aktuella installationskrav och plattformskrav.

Se Hyperlight CodeAct för installation, exempel och körningsspecifik vägledning.

Get started

För Python använder du Hyperlight CodeAct för en isolerad sandbox-miljö eller Monty för en plattformsoberoende begränsad tolk.

Hyperlight-paketet innehåller:

  • HyperlightCodeActProvider för kontextproviderbaserade körningar
  • HyperlightExecuteCodeTool när du vill kabelansluta execute_code direkt
  • providerhanterade verktyg som fortfarande är tillgängliga i sandbox-miljön via call_tool(...)
  • valfritt filsystem och utgående nätverkskonfiguration för sandbox-körningen

Se Hyperlight CodeAct för installation, exempel, körningsspecifik vägledning, till exempel när du ska använda print(...) och /output/, och de aktuella Hyperlight-specifika begränsningarna.

Note

Go-stöd för den här funktionen kommer snart. Se Agent Framework Go-lagringsplatsen för den senaste statusen.

Nästa steg