A Mastra eszközutánzatokkal teszi biztonságosabbá az ügynökkísérleteket

A Mastra új eszközutánzat funkciójával az ügynökkísérletek élő API-k megkeresése nélkül futtathatók. A fejlesztők előre megadhatják az eszközök bemeneteit és kimeneteit, így veszélyes vagy végleges műveletek meghívása nélkül ellenőrizhetik az ügynök válaszait.
- A Mastra tool mockokkal élő API-hívások nélkül futtat ügynökkísérleteket.
- A dataset elemei mock bemeneteket és kimeneteket tartalmazhatnak.
- A funkció jelenleg agent célpontokhoz érhető el.
- A @mastra/[email protected] vagy újabb verzió szükséges.
- A nem deklarált eszközök a unmockedToolPolicy beállítással blokkolhatók.
Élő API-hívások nélkül tesztelhetők az ügynökök
A Mastra szeptember 23-i bejelentése szerint a datasetek egyes elemeihez mock bemenetek és kimenetek rendelhetők. A kísérletek ezeket használják a valódi eszközhívások eredményei helyett, ezért az eszköz execute függvénye nem fut le, és az ügynök nem éri el a valós API-t.
Az eszközök gyakran API-kkal kommunikálnak, és olyan műveleteket is végezhetnek, amelyek károsak vagy véglegesek lehetnek. Ilyen például egy felhasználó törlése, egy visszatérítés indítása vagy egy e-mail elküldése. A Mastra szerint a tool mockokkal ezek meghívása nélkül is ellenőrizhető, hogy az ügynök a várt eredményre jut-e.
A funkció előtt a fizetési vagy üzenetküldési API-kat használó ügynökök teszteléséhez tesztkörnyezetekre, illetve a környezeti változók cseréjének kezelésére volt szükség. A tool mockok használatakor a projektben nem kell módosítani az ügynököt, a környezeti változókat vagy az eszközbeállításokat.
Adatkészletek és egyező sémák
A tool mockok jelenleg az agent célpontokhoz támogatottak, a workflow tool mockok támogatása később érkezik. A használathoz legalább a @mastra/[email protected] verzió szükséges. A funkció a Mastra közleménye szerint a 18036-os pull requestben került be.
A kísérletek futtatásához tárolási adapter kell, amely megőrzi az adatkészleteket és a kísérleti eredményeket. A Mastra dokumentációja ehhez a @mastra/libsql csomag telepítését, valamint a Turso környezeti változóinak hozzáadását mutatja be a LibSQLStore konfigurációjához. A Mastra platformon történő telepítéskor a közlemény szerint automatikusan létrejön egy Turso-adatbázis.
A példában a billingAgent két eszközt használ, a getOrder és a refundPayment eszközt. Minden eszközhöz bemeneti és kimeneti séma tartozik, a mockoknak pedig ugyanezt az adatstruktúrát kell követniük. Egy rendelés lekérdezésénél például a mock a getOrder eszköz nevét, az orderId bemenetet, valamint a rendelés azonosítóját, termékét, összegét és állapotát adja meg.
A fejlesztők blokkolhatják a nem deklarált eszközöket
Az adatkészletek és kísérletek a TypeScript API-n vagy a Studio felületen hozhatók létre. Minden adatkészletelemhez megadható a pontozáshoz használt groundTruth, valamint a mockokat tartalmazó toolMocks tömb. A kísérlet egy dataset azonosítója alapján indítható, majd beállítható a cél típusa, a cél azonosítója és a pontozók listája.
A unmockedToolPolicy: 'deny' beállítás letiltja azokat az eszközöket, amelyekhez nem készült mock. Ez megakadályozza, hogy az ügynök deklarálatlan eszközökön keresztül élő hívásokat indítson. A kísérleti eredményekben külön jelentés mutathatja a kiszolgált mockokat, az élő hívásokat és az esetleges hibát.
Ez a fejlesztők számára azt jelenti, hogy ugyanazt az ügynököt és konfigurációt használhatják, amelyet éles futtatásban is alkalmaznak, miközben a kísérletekben előre meghatározott eredményekkel dolgoznak. A Mastra szerint a megoldás különösen az API-kat, fizetési folyamatokat és üzenetküldést érintő ügynökök ellenőrzését teheti kontrolláltabbá.
Mastra: Introducing Experiment Tool Mocks | Mastra Blog


