
Unreal Agent nima?
Unreal Agent — Unreal Labs tomonidan yaratilgan, asinxronlikni birinchi o‘ringa qo‘yadigan agent muhiti. U kiruvchi ma’lumotlarni qabul qilish, sessiya tarixini saqlash, model kontekstini tayyorlash, LLM navbatlarini muvofiqlashtirish, vosita chaqiruvlarini tarjima qilish va uzoq davom etuvchi asinxron amallarni jo‘natish uchun birlashtiriladigan infratuzilmani taqdim etadi.
Loyiha sinxron muvofiqlashtirishni asinxron bajarishdan ajratadi. Vosita tarjimonlari model yaratgan so‘rovlarni tekshiradi va kiritish-chiqarish amallarini bajarmagan holda ketma-ketlashtiriladigan amal tavsiflarini hosil qiladi. Keyin amal menejeri tasdiqlangan amallarni muvofiqlashtiruvchining hodisalar siklidan tashqarida bajaradi.
Repository tuzilishi
Repository uchta asosiy sohaga ajratilgan:
harness/: Qayta foydalaniladigan agent muhiti kutubxonasi.cmd/: Kutubxona yordamida yaratilgan bajariladigan fayllar.benchmarks/: Loyihani baholash uchun benchmark ishga tushiruvchilari.
Frameworkni boshqa ilovaga integratsiya qilayotganda harness/ katalogidan boshlang. Aniq bajariladigan fayl kirish nuqtalarini ko‘rish uchun cmd/ni ko‘rib chiqing, ish vaqtini tekshirish yoki o‘lchash kerak bo‘lganda esa benchmarks/dan foydalaning.
Asosiy tushunchalar
Kirishlar va Inbox
Kirish — chaqiruvchi taqdim etadigan, global jihatdan noyob identifikatorga ega hodisa. Hodisa qayta yetkazilgan taqdirda ham bu identifikator o‘zgarmasligi kerak.
Sessiya inboxi tashqi, boshqaruv va ishdan chiqish kirishlarini xotirada takroriylikdan chiqarish uchun ushbu identifikatorlardan foydalanadi. Bu idempotentlik sessiya doirasida amal qiladi va vaqtinchalikdir, shuning uchun chaqiruvchilar barqaror IDlardan izchil foydalanishlari kerak.
{
"id": "globally-unique-and-stable-id",
"type": "external-input",
"payload": "Example request"
}Bu shakl hujjatlashtirilgan Unreal Agent API turi emas, balki konseptual misoldir. Muhim talab — barqaror va global jihatdan noyob kirish IDsi.
Sessiyalar
Sessiya — faqat qo‘shib boriladigan, saqlangan tarix. Sessiyalarni davom ettirish va tarmoqlash mumkin; bu ilovaga mavjud ishni davom ettirish yoki asl ketma-ketlikni qayta yozmasdan oldingi tarixdan yangi tarmoq yaratish imkonini beradi.
Sessiya ombori kanonik tarix va amal holatiga egalik qiladi. Shuningdek, u vosita chaqiruvining tarjima holatini shu tarjimadan hosil bo‘lgan amallar bilan birga atomar tarzda qayd etadi.
LLM navbatlari
LLM navbati — bitta mantiqiy model so‘rovi atrofida muvofiqlashtiruvchi boshqaradigan ketma-ketlik. Muvofiqlashtiruvchi qabul qilingan kirishlarni saqlaydi, navbatni tayyorlaydi, vosita tarjimonlarini aniqlaydi, natijaviy ishni qayd etadi va tasdiqlangan amallarni jo‘natadi.
Vositalar, tarjimonlar va amallar
Vosita sxema va tarjimonni birlashtiradi. Model vosita chaqiruvini hosil qilganda, tarjimon uni tekshiradi va bir yoki bir nechta amalga aylantiradi.
Vosita tarjimoni muvofiqlashtiruvchining hodisalar siklida sinxron ishlaydi. U kiritish-chiqarish amalini bajarmasligi yoki siklni to‘xtatib qo‘ymasligi kerak.
Tarjima natijasi vosita chaqiruvi holati deb ataladi. U tekshirish xatosini yoki yuborilgan amallarga havolalarni o‘z ichiga oladi. Bu holat amallarning bajarilish holatidan alohidadir.
Amal — asinxron ishning ketma-ketlashtiriladigan, versiyalangan tavsifi. Tarjimonlar ishni tavsiflaydi; amal menejeri esa uni bajaradi.
Asosiy komponentlar
- Sessiya inboxi: Vaqtinchalik, sessiya doirasidagi kirish idempotentligini ta’minlaydi.
- Muvofiqlashtiruvchi: Qabul qilingan kirishlarni saqlaydi, LLM navbatlarini boshqaradi, vosita tarjimonlarini aniqlaydi va tasdiqlangan amallarni jo‘natadi.
- Sessiya ombori: Kanonik sessiya tarixi va amal holatini saqlaydi, tiklash va tarmoqlashni qo‘llab-quvvatlaydi hamda vosita chaqiruvi holatini amallar bilan birga atomar tarzda qayd etadi.
- Kontekst tuzuvchisi: Model kirishini xotirada yig‘adi va chiqarib tashlangan, qisqartirilgan yoki ixchamlangan kontent haqida xabar beradi. U kiritish-chiqarish amalini bajarmaydi va saqlashga bog‘liq emas.
- LLM adapteri: Tayyorlangan kirishni model provayderiga yuboradi va me’yorlashtirilgan yakunlangan javobni qaytaradi. U autentifikatsiya, bekor qilish va provayder xatolarini boshqaradi.
- Vositalar reyestri: Bash, ViewImage va skill-use vositalari ta’riflari hamda tarjimonlariga egalik qiladi, shu bilan birga host tanlagan to‘plamni taqdim etadi.
- Vosita tarjimoni: Chaqiruvlarni tekshiradi, holatlar va amallarni hosil qiladi, qayd etilgan holatlar hamda tayyorlangan amal chiqishini model uchun formatlaydi.
- Amal menejeri: Uzoq muddatli amallar uchun actor runtime’ni taqdim etadi. Mahalliy implementatsiyani almashtirish mumkin.
O‘rnatish va sozlash
README paket menejeri, tilga xos o‘rnatish buyrug‘i yoki barqaror ommaviy API’ni ko‘rsatmaydi. Shuning uchun sozlash taxminiy paket buyrug‘idan emas, repositoryning mahalliy nusxasi va uning build metama’lumotlaridan boshlanishi kerak.
- Unreal Agent repositorysini klonlang yoki yuklab oling.
- Repository ildizini oching va qo‘llab-quvvatlanadigan toolchainni aniqlash uchun build hamda dependency fayllarini ko‘rib chiqing.
- Repository sozlagan vositalar yordamida
harness/ostidagi kutubxonani build qiling yoki o‘rnating. - Harness komponentlarini birlashtiradigan bajariladigan misollar uchun
cmd/ni ko‘rib chiqing. - Asosiy loyiha muvaffaqiyatli build qilingandan keyingina
benchmarks/dan foydalaning.
cd <unreal-agent-repository>
# Kutubxona, bajariladigan fayl va benchmark kataloglarini ko‘rib chiqing.
ls harness
ls cmd
ls benchmarksHost ilovaga tanlangan provayder uchun sozlangan LLM adapteri ham kerak bo‘ladi. Autentifikatsiya, bekor qilish xatti-harakati va provayderga xos xatolarni qayta ishlash shu adapterga tegishli.
Asosiy foydalanish: bitta agent so‘rovini kuzatish
README aniq konstruktor yoki metod nomlarini e’lon qilmagani sababli, foydalanishni tushunishning eng ishonchli usuli hujjatlashtirilgan komponentlar oqimini kuzatishdir.
- Sessiyani yarating yoki davom ettiring. Sessiyalar ombori saqlangan tarix va tiklash imkoniyatini taqdim etadi.
- Barqaror identifikator bilan kiritma yuboring. Bir xil mantiqiy hodisani qayta yetkazishda ayni identifikatordan foydalaning.
- Sessiya kiruvchi qutisi orqali dublikatlarni aniqlang. Kiruvchi quti faol sessiya doirasidagi takroriy kiritmalarni amalga oshirish xatti-harakatiga muvofiq rad etadi yoki e’tiborsiz qoldiradi.
- Qabul qilingan kiritmani saqlang. Koordinator uni sessiyaning kanonik, faqat qo‘shib boriladigan tarixiga yozadi.
- Model kontekstini yarating. Kontekst yaratuvchi xotiradagi model kiritmasini yig‘adi va qoldirib ketgan, qisqartirgan yoki ixchamlashtirgan kontent haqida xabar beradi.
- LLM navbatini ishga tushiring. LLM adapteri tayyorlangan kiritmani provayderga yuboradi va me’yorlashtirilgan yakunlangan javobni qaytaradi.
- Asbob chaqiruvlarini hal qiling. Koordinator ruxsat etilgan har bir asbobni reyestr orqali qidiradi.
- Sinxron tarjima qiling. Tanlangan tarjimon chaqiruvni tekshiradi va tekshiruv xatosi yoki seriyalashtiriladigan amallarni hosil qiladi.
- Atomar tarzda tasdiqlang. Sessiyalar ombori asbob chaqiruvi holati va amallarni birgalikda qayd etadi.
- Asinxron jo‘nating. Amallar menejeri tasdiqlangan amallarni bajaradi va ularning bajarilish holatini tarjima holatidan alohida kuzatadi.
- Natijalarni model uchun formatlang. Tarjimon qayd etilgan chaqiruv holatini tayyorlangan amal chiqishi bilan birlashtirib, modelga mo‘ljallangan natijani hosil qiladi.
Asbob chaqiruvi hayotiy sikliga misol
Barqaror identifikatorli kiritma
-> kiruvchi qutida dublikatlarni aniqlash
-> sessiya hodisasini saqlash
-> kontekstni shakllantirish
-> me’yorlashtirilgan LLM javobi
-> asbob reyestridan qidirish
-> sinxron tekshiruv va tarjima
-> holat va amalni atomar tasdiqlash
-> amalni asinxron bajarish
-> modelga mo‘ljallangan natijani formatlashAgar tekshiruv muvaffaqiyatsiz tugasa, tarjimon amallarni hosil qilish o‘rniga tekshiruv xatosini qayd etadi. Tekshiruv muvaffaqiyatli bo‘lsa, holat yuborilgan amallarga havola qiladi, amallar menejeri esa ushbu amallarning kutilayotgan, bajarilayotgan, tugallangan yoki amalga oshirish mexanizmi tomonidan boshqarilayotgan boshqa holatda ekanini mustaqil ravishda kuzatadi.
Asboblarni tanlash
Asboblar reyestri Bash, ViewImage va ko‘nikmalardan foydalanish uchun ta’riflar hamda tarjimonlarni boshqaradi. Xost ushbu asboblardan qaysilarini ochishni tanlaydi.
Muayyan joylashtirish uchun faqat kerakli imkoniyatlarni oching. README avtorizatsiya yoki sandbox siyosatlarini belgilamaydi, shuning uchun bu masalalar xost muhiti va amallarni bajarish qatlami tomonidan hal qilinishi kerak.
Harnessni kengaytirish
Unreal Agent komponentlari birgalikda tuzilishi uchun mo‘ljallangan. Muqobil amalga oshirishlar interfeysga asoslangan komponentlarning o‘rnini egallashi mumkin, bunda ular hujjatlashtirilgan mas’uliyat va invariantlarni saqlashi kerak.
Asbob tarjimonini amalga oshirish
Maxsus tarjimon quyidagi ketma-ketlikka amal qilishi kerak:
- Model hosil qilgan argumentlarni asbob sxemasiga muvofiq tekshiring.
- So‘rov noto‘g‘ri bo‘lsa, tekshiruv xatosini qaytaring.
- So‘rov to‘g‘ri bo‘lsa, seriyalashtiriladigan, versiyalangan bir yoki bir nechta amal ta’rifini yarating.
- Yuborilgan amallarga havola qiluvchi holatni qaytaring.
- Qayd etilgan holat va tayyorlangan amal chiqishini modelga mo‘ljallangan natijaga aylantiruvchi formatlash mantiqini taqdim eting.
Tarjimani deterministik va tez saqlang. Tarjimon ichida tarmoq so‘rovlarini yubormang, fayllarga murojaat qilmang, quyi jarayonlarni kutmang yoki boshqa kiritish-chiqarish amallarini bajarmang.
Amallar menejerini almashtirish
Mahalliy amallar menejerini almashtirish mumkin. Hujjatlashtirilgan kengaytmalardan biri amallarni seriyalashtirib, ularni masofaviy sandbox jarayoni ichida ishlayotgan boshqa mahalliy amallar menejeriga yuboruvchi proksi menejerdir.
Bu tuzilma koordinator va tarjimonlarni tekshiruv hamda doimiy saqlanadigan maqsadga yo‘naltiradi, bajarilishni esa izolyatsiya qilingan muhitda amalga oshirishga imkon beradi.
Saqlashni amalga oshirish
Muqobil sessiyalar omborlari seriyalashtirilish, versiyalash, tiklash xatti-harakati va asbob chaqiruvi holati bilan hosil qilingan amallar o‘rtasidagi atomar bog‘liqlikni saqlashi kerak.
Loyiha sessiyalar uchun oldinga va orqaga moslikni saqlashga intiladi. Agar sessiya versiyasi qo‘llab-quvvatlanmasa, uni davom ettirish ma’lumotlarni jimgina noto‘g‘ri talqin qilish o‘rniga aniq xato bilan muvaffaqiyatsiz tugashi kerak.
Ilg‘or maslahatlar
- Kirish identifikatorlarini chaqiruvchi chegara qismida yarating. Qayta urinishlar va qayta yetkazib berishlarda ayni identifikator saqlanishi uchun identifikatorni uni yuzaga keltirgan hodisa bilan birga saqlang.
- Inbox deduplikatsiyasini doimiy tarix bilan adashtirmang. Inbox o‘zgaruvchan va sessiya doirasida amal qiladi, sessiyalar ombori esa kanonik hodisalarni saqlaydi.
- Tarjimonlarni sof va sinxron saqlang. Ishni bevosita bajarish o‘rniga so‘rovlarni amallarga tarjima qiling.
- Har bir amal formatini versiyalang. Amallar ularni yaratgan jarayondan uzoqroq yashashi yoki jarayonlar va sandbox chegaralari orqali o‘tishi mumkin.
- Atomik commitlarni saqlang. Muvaffaqiyatli vosita chaqiruvi holatini uning amallaridan alohida qayd etish ishdan chiqishdan keyin sessiyani nomuvofiq holatda qoldirishi mumkin.
- Tarjima va bajarilishni mustaqil kuzating. Yaroqli chaqiruv hali yakunlanmagan, lekin commit qilingan amalni yuzaga keltirishi mumkin.
- Kontekst yaratuvchisi metama’lumotlaridan foydalaning. Model xatti-harakatini tashxislash uchun nimalar chiqarib tashlangani, qisqartirilgani yoki ixchamlashtirilganini kuzating.
- Provayderga oid masalalarni markazlashtiring. Hisob ma’lumotlari, bekor qilish va provayder xatolarini LLM adapteri ichida saqlang.
- Tajriba uchun sessiyalarni fork qiling. Fork manba sessiyasining faqat qo‘shib boriladigan tarixini saqlagan holda boshqa davomni sinab ko‘rish imkonini beradi.
- Izolyatsiya uchun proksi amal menejeridan foydalaning. Seriyalashtirilgan amallarni sinxron tarjimani u yerga ko‘chirmasdan, masofaviy sandbox ichidagi runtime’ga yo‘naltirish mumkin.
Muhim invariantlar
Kengaytmalar quyidagi kafolatlarni saqlashi kerak:
- Sessiyalar omboridagi elementlar seriyalashtiriladigan bo‘lib qoladi.
- Saqlash formati versiyalangan bo‘lib qoladi.
- Qo‘llab-quvvatlanmaydigan sessiya versiyalari davom ettirishda aniq xatolarni yuzaga keltiradi.
- Amallar seriyalashtiriladigan va versiyalangan bo‘lib qoladi.
- Kontekst yaratish hech qanday I/O bajarmaydi va saqlashga bog‘liq bo‘lmaydi.
- Vosita tarjimasi hech qanday I/O bajarmaydi va koordinator hodisalar siklini hech qachon to‘xtatib qo‘ymaydi.
Xulosa
Unreal Agent doimiy sessiyalar, deduplikatsiya qilingan kirishlar, muvofiqlashtirilgan LLM navbatlari, tekshirilgan vosita chaqiruvlari va doimiy asinxron ishga muhtoj agentlar uchun modulli poydevor taqdim etadi. Uning markaziy dizayn tamoyili sinxron tarjima va asinxron bajarilish o‘rtasidagi aniq chegaradir. Mavjud bajariladigan komponentlardan boshlang, hujjatlashtirilgan hodisalar oqimiga rioya qiling hamda komponentlarni almashtirish yoki kengaytirishda seriyalashtirish, versiyalash va atomiklikni saqlang.
