A LangChain új módszerrel tanítja az ügynököket önellenőrzésre

A LangChain RubricMiddleware nevű megoldása lehetővé teszi, hogy a Deep Agents ügynökei előre meghatározott szempontok szerint ellenőrizzék saját munkájukat, majd szükség esetén javítsák is azt. A rendszer külön értékelő alügynököt használ, amely akár teszteket is futtathat az eredmény ellenőrzéséhez.
- A RubricMiddleware rubrika alapján értékeli és javíttatja az ügynökök kimenetét.
- A külön grader alügynök eszközöket is hívhat, például teszteket futtathat.
- A ciklus siker esetén lezárul, vagy a beállított iterációs korlátnál áll meg.
- A LangChain példájában a kód az első hibás próbálkozás után, a második iterációban javult.
- A RubricMiddleware béta állapotú, az API változhat.
Ellenőrzési ciklust kapnak a Deep Agents ügynökei
A LangChain június 2-án mutatta be a RubricMiddleware megoldást a Deep Agents nyílt forráskódú ügynökarchitektúrájához. A fejlesztők egy úgynevezett rubrikában, vagyis ellenőrzőlistában adhatják meg, mit jelent az elkészült munka. Az ügynök ezután addig értékeli és javítja az eredményt, amíg minden feltétel teljesül, vagy el nem éri a beállított próbálkozási korlátot.
A megoldást olyan feladatokra szánják, amelyeknél egyértelműen ellenőrizhető a siker. Ilyen lehet egy kód átalakítása, amely akkor kész, ha az összes teszt lefut, egy jelentés, amely minden előírt részt tartalmaz, vagy egy olyan kimenet, amelyben nem jelennek meg tiltott minták.
A LangChain szerint az ügynökök gyakran jó irányba indulnak el, de első próbálkozásra nem jutnak el a feladat végéig. A hosszabb kontextus, a félreérthető utasítások, az eszközök hibás használata és a nem determinisztikus hibák együtt ronthatják a kimenet minőségét.
Külön alügynök vizsgálja meg az eredményt
A futtatás befejezése előtt egy külön grader alügynök ellenőrzi az eredményt a megadott rubrika alapján. Ha minden szempont teljesül, a folyamat lezárul. Ha valamelyik feltétel nem teljesül, az értékelő szempontonkénti visszajelzést ad, ezt a rendszer visszailleszti a beszélgetésbe, majd az ügynök újra megpróbálja elvégezni a feladatot.
Az értékelő alügynök a teljes beszélgetési előzményt felhasználhatja, és opcionálisan eszközöket is hívhat bizonyítékok gyűjtéséhez. A LangChain példájában egy run_test_suite eszköz futtatja a teszteket. Ha nincs ilyen eszköz megadva, az értékelő az előzmények alapján próbál következtetni.
A ciklus akkor ér véget, ha a rubrika teljesül, elérik a maximális iterációszámot, a futtatás hibával leáll, vagy az értékelő alügynök hibát jelez. A fejlesztő külön állíthatja be az értékeléshez használt modellt, az értékelő szerepét leíró rendszerüzenetet, az elérhető eszközöket és a maximális iterációszámot.
A bemutatott kód a második próbálkozásra javult
A LangChain kódgenerálási példájában az ügynöknek egy olyan Python-függvényt kellett írnia, amely visszaadja a listában többször szereplő elemeket, az első előfordulásuk sorrendjében. A rubrika előírta, hogy minden teszt sikeres legyen, valamint hogy a függvény neve find_duplicates legyen, és egyetlen listaargumentumot fogadjon.
Az első megoldás látszólag helyes volt, de egy teszten megbukott. Az értékelő konkrétan azt jelezte, hogy a test_unhashable teszt sikertelen, mert a függvény TypeError hibával leáll, ha a bemeneti lista nem hashelhető elemeket, például listákat tartalmaz. Az ügynök ennek alapján módosította a kódot, amely a második iterációban már minden teszten átment.
A LangChain kiemeli, hogy a visszajelzés nem általános felszólítás az újrapróbálkozásra. Minden kritériumhoz külön értékelés tartozik, így az ügynök célzottan láthatja, min kell javítania.
A fejlesztőkre háruló kézi ellenőrzés csökkenhet
A RubricMiddleware célja, hogy az ügynökök változó teljesítményéből fakadó ellenőrzési terhet részben levegye a fejlesztők válláról. A fejlesztő egyszer meghatározza, mit tekint megfelelő eredménynek, a rendszer pedig elvégzi az értékelést és a szükséges újrafuttatásokat.
Ez főként azoknál a feladatoknál lehet hasznos, ahol a helyesség tesztekkel vagy más konkrét ellenőrzésekkel igazolható. A LangChain szerint a megoldás megbízhatóbb ügynököket eredményezhet az ilyen munkafolyamatokban.
A RubricMiddleware jelenleg béta állapotú, ezért a programozási felülete változhat. A LangChain teljes útmutatót is kínál a konfigurációról, a megfigyelhetőségről és a rubrikák tartós mentéséről.


