CodeAct

A CodeAct lehetővé teszi, hogy az ügynök egy kódot írva és egy eszközzel végrehajtva oldjon meg egy execute_code feladatot. Ahelyett, hogy arra kérné a modellt, hogy egyszerre egyetlen eszközhívást adjon ki, a CodeAct egy tesztkörnyezetet biztosít a vezérlési folyamat, az adatátalakítás és az eszközök vezénylése egyetlen végrehajtási lépésben való kombinálásához.

Az Agent Frameworkben a CodeAct egy beépített magtípus helyett háttérspecifikus csomagokon keresztül érhető el. Az összekötő hozzáadhatja a execute_code eszközt, beillesztheti a futásidejű útmutatást, és opcionálisan elérhetővé teheti a tesztkörnyezetből hívható, szolgáltatói tulajdonú eszközöket.

Miért a CodeAct?

A modern AI-ügynököket gyakran nem a modell minősége, hanem a vezénylési többletterhelés okozza. Ha egy ügynök számos kis eszközhívást láncolja össze, minden lépéshez általában egy másik modellfordulás szükséges, ami növeli a késést és a tokenhasználatot is.

A CodeAct összevonja a modell –> eszköz –> modellhurkot. Ahelyett, hogy azt kérné a modelltől, hogy egyszerre válasszon ki egy eszközt, az Ügynök-keretrendszer egyetlen execute_code eszközt tehet közzé, és lehetővé teszi, hogy a modell rövid programként fejezze ki a teljes tervet. Az eszközök változatlanok maradnak, a modell változatlan marad, és a fő változás az, hogy a terv egyszer fut egy tesztkörnyezetben ahelyett, hogy több eszközhívási fordulóban szétszóródna.

Az eszközigényes számítási feladatok esetében ez a változás jelentősen csökkentheti a végpontok közötti késést és a tokenhasználatot, miközben a terv kompakt és naplózható marad egy kódblokkban. A párhuzamos vezetékek összehasonlítását a Hyperlight CodeAct-integrációban tekintheti meg.

Ha a CodeAct jó választás

A CodeAct használata, ha egy tevékenység a következő előnyökből származik:

  • több eszközhívás összekapcsolása hurkokkal, elágaztatással, szűréssel vagy összesítéssel
  • az eszköz eredményeinek átalakítása a végső válasz visszaadása előtt
  • nagyobb strukturált kimenetek vagy összetevők generálása futtatás részeként
  • bizonyos eszközök csak ellenőrzött végrehajtási környezetben érhetők el
  • sok kis, láncolható lekérdezés vagy könnyű számítás összevonása egyetlen végrehajtási lépésben

Maradjon közvetlen eszközhívással, ha:

  • a feladatnak csak egy vagy két eszközhívásra van szüksége, ezért kevés vezénylési többletterhelést kell eltávolítani
  • minden hívásnak vannak mellékhatásai, amelyeknek külön-külön láthatónak kell maradniuk a modell és a felhasználó számára
  • hívásonkénti jóváhagyási kérésekre van szüksége, nem pedig egy jóváhagyási döntésre az egész execute_code futtatás során

Hogyan illeszkedik a CodeAct az Agent Frameworkben?

A CodeAct-összekötők általában négy dolgot hajtanak végre egy futtatáshoz:

  1. Hozzáad egy execute_code eszközt a modell irányába néző eszközfelülethez.
  2. Útmutatás a konfigurált tesztkörnyezeti futtatókörnyezethez.
  3. Opcionálisan közzéteheti a szolgáltató tulajdonában lévő eszközöket.call_tool(...)
  4. Olyan képességkorlátokat alkalmaz, mint a fájlrendszer-hozzáférés vagy a kimenő hálózati engedélyezési listák.

Mivel az összekötő a futtatókörnyezet konfigurációjának tulajdonosa, a pontos beállítás részletei a választott háttérrendszertől függenek.

Jelenlegi korlátozások

Warning

A FIDES és az aktuális CodeAct-szolgáltatók kombinálása nem támogatott. A FIDES jelenleg csak Pythonhoz érhető el, és nem érhető el a .NET CodeAct-szolgáltatókban.

A szolgáltató által felügyelt hosteszköz-hívások a létrehozott kódon belül nem haladnak át az ügynök függvényenkénti middleware-folyamatán. A közvetlen ügynök eszközeinek vagy a külső execute_code hívásnak az ellenőrzése nem biztosítja a FIDES-kényszerítést a beágyazott hívásokhoz vagy a kód belső köztes értékeihez. A fájl- és hálózati képességeket sem fedik le.

A gazdaeszközöknek saját engedélyezést és célhely-vezérlést kell kikényszeríteniük. A FIDES-függő eszközöket hagyja közvetlen ügynökeszközként, ne CodeAct által felügyelt eszközökként, vagy hagyja letiltva a CodeAct-et az ilyen garanciákat igénylő munkafolyamatok esetében. Ez a kompatibilitási határ egy jelenlegi integrációs korlátozás, nem pedig a CodeAct-minta eredendő korlátozása. Lásd Ügynökbiztonság a FIDES-sel.

A CodeAct jó választás eszközigényes munkafolyamatokhoz, de tartsa szem előtt a következő korlátozásokat:

  • A Hyperlight CodeAct támogatja a Pythont és a .NET-et. Monty csak Pythonhoz; Local CodeAct csak .NET-hez.
  • A jóváhagyások jelenleg a execute_code hívás egészére vonatkoznak. Ha az egyes műveleteket egyenként kell jóváhagyni, tartsa ezeket a műveleteket közvetlen ügynökeszközökként ahelyett, hogy call_tool(...)-ra támaszkodna.
  • A(z) call_tool(...) által elért eszközök még mindig a gazdafolyamatban kerülnek végrehajtásra. Használjon korlátozott, ellenőrzött gazdagép eszközöket a bizalmas I/O-hoz ahelyett, hogy szükségtelenül bővíti a tesztkörnyezeti hozzáférést.
  • A CodeAct akkor működik a legjobban, ha a vezénylési többletterhelés dominál. A csak egy vagy két eszközhívással rendelkező kis feladatok esetében előfordulhat, hogy a hozzáadott absztrakció nem éri meg.
  • Az eszköznevek, a paraméter-metaadatok és a visszaadott alakzatok itt sokkal fontosabbak, mivel a modell nem egy közvetlen eszközhívásból, hanem a szerződés alapján ír kódot.

Első lépések

.NET esetében a Hyperlight CodeAct a Microsoft.Agents.AI.Hyperlight csomagként érhető el. A helyi CodeAct az előállított Python-kódot egy alfolyamatban futtatja, és külső elkülönítésre támaszkodik.

A Hyperlight csomag a következő lehetőségeket biztosítja:

  • HyperlightCodeActProvider — olyan, AIContextProvider amely minden futtatáshoz injektál execute_code és CodeAct-útmutatást ad
  • HyperlightExecuteCodeFunction — különálló AIFunction statikus/manuális kábelezéshez, ha a tesztkörnyezet konfigurációja ki van javítva
  • szolgáltató által felügyelt eszközök, amelyek továbbra is elérhetők maradnak a sandboxban a call_tool(...)
  • CodeActApprovalMode és ApprovalRequiredAIFunction integráció a jóváhagyásokhoz
  • a tesztkörnyezeti futtatókörnyezet fájlrendszerének (FileMounts, HostInputDirectory) és kimenő hálózatának (AllowedDomains) opcionális konfigurációja

Important

A .NET csomag előzetes verzióban érhető el, és a Hyperlight.HyperlightSandbox.Api NuGettől függ, amelyet még nem tettek közzé nuget.org. Tekintse meg a Hyperlight CodeAct aktuális telepítési kikötéseit és platformkövetelményeit.

A telepítéssel, példákat és futásidejű útmutatással kapcsolatban lásd a Hyperlight CodeAct-et .

Első lépések

Pythonhoz használja a Hyperlight CodeAct eszközt izolált sandboxhoz, vagy a Monty-t többplatformos korlátozott értelmezőhöz.

A Hyperlight csomag a következő lehetőségeket biztosítja:

  • HyperlightCodeActProvider környezetszolgáltató-alapú futtatásokhoz
  • HyperlightExecuteCodeTool amikor közvetlenül vezetékezni szeretne execute_code
  • szolgáltató által felügyelt eszközök, amelyek továbbra is elérhetők maradnak a sandboxban a call_tool(...)
  • nem kötelező fájlrendszer- és kimenő hálózati konfiguráció a sandbox környezet futtatásához

A Hyperlight CodeAct ismerteti a telepítést, példákat, valamint a futtatókörnyezet-specifikus útmutatást, például mikor használjuk a print(...) és /output/ elemeket, és az aktuális Hyperlight-specifikus korlátozásokat.

Note

A funkció Go-támogatása hamarosan érkezik. A legújabb állapotot az Agent Framework Go-adattárában tekinthet meg.

Következő lépések