Har bir turn bir nechta model so‘rovini o‘z ichiga olishi mumkin — va ularning har biri iz qoldiradi. Avval ikkita so‘zni aniq belgilab olamiz, chunki qolgan hamma narsa shulardan kelib chiqadi.
| Atama | Ta’rif |
|---|---|
| Step | Bitta so‘rov: modelga bitta chaqiruv plus uning natijasida chaqirilgan tool’lar |
| Turn | Bir nechta step: biror narsa so‘ralgan paytdan boshlab hech narsa kutilmaguncha. Bir nechta step bo‘lishi mumkin, yoki umuman bo‘lmasligi ham mumkin |
Turn va step o‘rtasidagi farq — miqyos farqi: turn butun ish, step shu ishdagi bitta aylanish. Modelga har bir murojaat — yangi step, va har bir stepning o‘z narxi bor.
Turn/start’dan turn/end’gacha
Turn/start va turn/end o‘rtasida 16 ta event bor. Event’ning qaysi ustunda ekani — tizimning qaysi qismi uni chiqarishini bildiradi: sessiya (session), agent yoki qobiliyat (capability). Bir ustundan boshqasiga sakrash — kod ulanadigan joy (seam).
| Tartib | Event | Qaysi qismdan |
|---|---|---|
| 1 | turn/start |
session |
| 2 | agent/pre-step |
agent |
| 3 | step/start |
session |
| 4 | user/message |
session |
| 5 | agent/request |
agent |
| 6 | llm/stream |
capability |
| 7 | assistant/chunk |
session |
| 8 | assistant/message |
session |
| 9 | tool/call |
agent |
| 10 | tools/pre-execute |
capability |
| 11 | tools/execute |
capability |
| 12 | tools/post-execute |
capability |
| 13 | tool/result |
session |
| 14 | step/end |
session |
| 15 | agent/turn-stopping |
agent |
| 16 | turn/end |
session |
Ketma-ketlik qanday ishlaydi
- Turn ochiladi. Siz yozgan narsa olinadi. Ko‘rsatmalar va mavjud tool’lar ro‘yxati yig‘iladi.
- Yuborishdan oldin nuqta. Har qanday o‘rnatilgan qism model ko‘rmoqchi bo‘lgan narsani qayta yozishi yoki butunlay rad etishi mumkin.
- Step ochiladi. Xabaringiz log’ga yoziladi. Model ko‘radigan tarix quriladi. So‘rov chiqadi va javob bo‘laklar (fragment) bo‘lib keladi — ular ham saqlanadi.
- Tool so‘ralgan bo‘lsa — so‘rov uch fazadan o‘tadi: ruxsat hal qilinadi, bajariladi, natija o‘zgartirilishi mumkin. Natija log’ga yoziladi.
- Step yopiladi. Agar tool’lar biror narsani kutilayotgan qoldirgan bo‘lsa — yangi step ochiladi. Turn shu yerda cho‘ziladi: har bir step — modelga yangi so‘rov, o‘z narxi bilan.
- Hech narsa qolmaganida turn yopiladi.
Dizayn haqida eng ko‘p gapiradigan detal
Pre-flight filtri xabaringizni rad etsa ham — turn baribir yopiladi va yozib qo‘yiladi, garchi modelga bironta ham so‘rov yetib bormagan bo‘lsa ham.
Ma'lumot
«Hech qachon ishlamagan narsani ham audit qilish mumkin.» Rad etilgan xabar ham log’da qoladi — bu shunchaki xatolik emas, bu dizayn qarori: tizim nima bo‘lganini va nima rad etilganini ham qayd qiladi.
Qaysi event’lar doimiy?
Turn, step, message va tool event’lari doimiy (durable) — ular log’ga yoziladi. Qolganlari jonli kengaytirish nuqtalari (live extension points).
Ulardan oltitasi o‘rash (wrapping) middleware kabi ishlaydi: ularning listener’lari zanjir davom etishi uchun o‘zlari ochiq delegatsiya qilishi kerak. Turn oxirini e’lon qiladigan event esa istisno: u tartibda bajariladi va delegatsiya qilmaydi.
Muhim
Event nomlarini yodlashning o‘zi maqsad emas — asosiy narsa joylashuvni tushunish: qaysi event doimiy (log’ga yoziladi), qaysi biri jonli kengaytirish nuqtasi va qaysi biri o‘rash middleware sifatida ishlaydi. Bu bilim plagin yozishda nima kutishni aniqlab beradi.
Xulosa
Turn — «so‘raganingizdan boshlab hech narsa kutilmaguncha» davom etadigan jarayon. U 16 ta event orqali turn/start’dan turn/end’gacha o‘tadi: pre-step filtri, step ichida so‘rov va stream, tool’ning uch fazasi (ruxsat → bajarish → natija). Rad etilgan xabar ham log’ga tushadi. Turn, step, message va tool event’lari doimiy; qolganlari kengaytirish nuqtalari. Keyingi darsda bu log’ning o‘zini ko‘ramiz — sessiya jurnali.