aidoc.uz

3-qism · Ilg'or imkoniyatlar·11-bob

Agent rejalashtirish va feedback

Agentni chatbotdan avtomatik fikrlaydigan tizimga aylantiruvchi qism. Ketma-ket va iterativ rejalashtirish, o'z rejachini qurish, feedback turlari va hammasini birlashtirish.

Reja qura olmaydigan, faqat oddiy muloqot qiladigan agent — bu shunchaki chatbot.

Butun kitob davomida maqsad bitta edi: bot emas, avtonom fikrlaydigan agent qurish — maqsadni olib, uni qanday yechishni o'ylab, natija bilan qaytadigan agent.

Bu — rejalashtirish. Va u agentni chatbotdan ajratib turadigan asosiy qism.

Rejalashtirish nima#

1-bobda ko'rgan sxemani eslang: foydalanuvchi maqsad beradi, agent uni qadamlarga bo'ladi, bajaradi va natija qaytaradi.

"O'tgan yilgi savdolar hisobotini tayyorla"
foydalanuvchi maqsadi
Agent maqsadni qadamlarga bo'ladi
1. ma'lumot yig', 2. tahlil, 3. vizuallashtir, 4. taqdim et
Har qadamni bajaradi
kerakli asboblarni chaqirib
Hisobot tayyor
Agent rejalashtirish jarayoni

Reja qura oladi va qura olmaydi#

Farqni ko'rish uchun: xom LLM mustaqil reja qura olmaydi.

Maqsad bering: "Vikipediyadan mavzuni qidir, eng yaxshi sahifani qaytar va faylga saqla."

Xom LLM (rejasiz) buni bajara olmaydi — u faqat matn generatsiya qiladi, asboblarni ketma-ket chaqira olmaydi. Reja quruvchi agent esa buni qadamlarga bo'lib bajaradi.

Ketma-ket rejalashtirish (planner)
  • Agent butun rejani OLDINDAN tuzadi
  • Qadamlar ichki bajariladi
  • Yig'ish avtomatik
  • Foydalanuvchi faqat yakuniy natijani ko'radi
Iterativ bajarish (LLM standarti)
  • Har qadamdan keyin foydalanuvchidan «davom etamizmi?» so'raydi
  • Qadamlar ko'rinadi
  • Yig'ish qo'lda
  • LLM'ning standart xatti-harakati

Planner qadamlarni ichkarida bajaradi va yakuniy natija beradi — avtonomroq. Iterativ usul har qadamda to'xtaydi — nazoratliroq, lekin ko'proq odam aralashuvi. Tanlov avtonomiya darajasiga bog'liq.


O'z rejachingizni qurish#

LangChain va Semantic Kernel tayyor plannerlar beradi. Lekin o'z plannerimizni yozish oson va o'rgatuvchi.

import json
import anthropic
 
client = anthropic.Anthropic()
 
 
def reja_tuz(maqsad, mavjud_asboblar, client):
    """Maqsadni bajariladigan qadamlar rejasiga bo'ladi."""
    asboblar_matni = "\n".join(f"- {nom}: {tavsif}" for nom, tavsif in mavjud_asboblar.items())
 
    prompt = f"""Maqsad: {maqsad}
 
Mavjud asboblar:
{asboblar_matni}
 
Bu maqsadga erishish uchun qadamlar rejasini tuz.
Har qadam: qaysi asbob, qanday argument bilan.
Natijani JSON qilib qaytar:
[{{"qadam": 1, "asbob": "...", "argument": "...", "sabab": "..."}}]"""
 
    javob = client.messages.create(
        model="claude-opus-5",
        max_tokens=2048,
        messages=[{"role": "user", "content": prompt}],
    )
    matn = "".join(b.text for b in javob.content if b.type == "text")
    boshi, oxiri = matn.find("["), matn.rfind("]") + 1
    return json.loads(matn[boshi:oxiri])
 
 
def rejani_bajar(reja, bajaruvchilar):
    """Rejadagi har qadamni ketma-ket bajaradi."""
    natijalar = []
    for qadam in reja:
        print(f"[{qadam['qadam']}] {qadam['asbob']}: {qadam['sabab']}")
        natija = bajaruvchilar[qadam["asbob"]](qadam["argument"])
        natijalar.append(natija)
    return natijalar

Ishlatish:

asboblar = {
    "vikipediya_qidir": "Vikipediyadan mavzu bo'yicha sahifalarni topadi",
    "sahifa_ol": "Sahifa ID bo'yicha matnni oladi",
    "faylga_saqla": "Matnni faylga yozadi",
}
 
reja = reja_tuz("Kvant kompyuterlar haqida Vikipediyadan ma'lumot yig'ib faylga saqla",
                asboblar, client)
natija = rejani_bajar(reja, BAJARUVCHILAR)

Feedback: rejani o'zgartirish#

Qat'iy reja yetarli emas. Real dunyoda muhit o'zgaradi, qadamlar muvaffaqiyatsiz bo'ladi. Feedback rejani moslashtiradi.

1
Muhit feedbacki
Harakat natijasidan. Qidiruv bo'sh natija berdi, API xato qaytardi. Agent buni ko'rib rejani o'zgartiradi.
2
Odam feedbacki
Foydalanuvchidan. «Yo'q, bu emas», «boshqa yondashuv sina». Miqdoriy (baho) yoki sifatli (maslahat).
3
LLM feedbacki
Boshqa model (yoki o'zi) rejani baholaydi. «Bu qadam keraksiz», «bu tartib noto'g'ri». O'z-o'zini tuzatish.

Feedback bilan reja sikl bo'ladi:

Reja tuziladi
maqsaddan
Qadam bajariladi
asbob chaqiriladi
Natija baholanadi
muhit / odam / LLM feedbacki
Maqsad bajarildimi?
ha → tugadi
Yo'q → reja qayta tuziladi
yangi ma'lumot asosida
Feedback sikli: bajarish → baholash → tuzatish
def feedback_bilan_bajar(maqsad, asboblar, bajaruvchilar, client, maks_iter=5):
    """Reja tuzadi, bajaradi, baholaydi va kerak bo'lsa qayta rejalashtiradi."""
    kontekst = ""
 
    for iteratsiya in range(maks_iter):
        # 1. Reja tuzamiz (oldingi kontekstni hisobga olib)
        reja = reja_tuz(maqsad + "\n\nOldingi urinishlar: " + kontekst, asboblar, client)
 
        # 2. Bajaramiz
        natijalar = rejani_bajar(reja, bajaruvchilar)
 
        # 3. LLM feedbacki — maqsad bajarildimi?
        baho = client.messages.create(
            model="claude-opus-5",
            max_tokens=512,
            messages=[{"role": "user",
                       "content": f"Maqsad: {maqsad}\nNatijalar: {natijalar}\n\n"
                                  f"Maqsad to'liq bajarildimi? HA yoki YO'Q, va nima uchun."}],
        )
        baho_matni = "".join(b.text for b in baho.content if b.type == "text")
 
        if "HA" in baho_matni.upper()[:20]:
            return natijalar                       # maqsad bajarildi
 
        kontekst += f"\nIteratsiya {iteratsiya}: {baho_matni}"
 
    return "Maksimal iteratsiyaga yetildi"

Hammasini birlashtirish#

Bu — butun kitobning cho'qqisi. Agent quramiz, unda barcha besh komponent birlashadi:

PROFIL
persona, tizim ko'rsatmasi
1, 9-bob
HARAKAT
function calling, asboblar
5-bob
XOTIRA
RAG, semantik xotira
8-bob
FIKRLASH
CoT, self-consistency
10-bob
REJA + FEEDBACK
planner, tuzatish sikli
11-bob
To'liq agent: besh komponent bir tizimda

To'liq agentning ish oqimi:

1. PROFIL:     agent rolini oladi (persona)
2. XOTIRA:     o'tgan suhbatlar va bilimni tortadi
3. REJA:       maqsadni qadamlarga bo'ladi
4. FIKRLASH:   har qadamni CoT bilan o'ylaydi
5. HARAKAT:    asboblarni chaqiradi
6. FEEDBACK:   natijani baholaydi, kerak bo'lsa rejani tuzatadi
7. XOTIRA:     yangi bilimni saqlaydi (keyingi safar uchun)
Amaliy topshiriq

To'liq tadqiqot agentini quring

Butun kitobni birlashtiruvchi loyiha: barcha besh komponentli tadqiqot agenti.

  1. Profil — persona bilan
  2. Harakat — uch asbob (qidiruv, o'qish, saqlash)
  3. Reja — maqsadni qadamlarga bo'lish
  4. Fikrlash — har qadamni CoT bilan
  5. Feedback — natijani baholash, qayta rejalash

Murakkab maqsad bering: "[Mavzu] bo'yicha uch manbadan ma'lumot yig'ib, solishtirib, xulosa yoz va faylga saqla."

Kuzating:

  • Agent qanday reja tuzdi?
  • Qaysi qadamda feedback kerak bo'ldi va nima o'zgardi?
  • Necha iteratsiya ketdi va jami narx qancha?

Himoyalarni unutmang: maks_iter, byudjet chegarasi, progress tekshiruvi.

Bu loyihani tugatsangiz — siz haqiqiy, to'liq agent qura olasiz. Bu butun kitobning maqsadi.

Maslahatni ko'rsatish

Barcha komponentlarni birlashtiring: 1. PROFIL: system message bilan «Siz sinchkov tadqiqotchisiz» 2. HARAKAT: uch asbob (qidiruv, fayl o'qish, saqlash) 3. REJA: maqsadni qadamlarga bo'ling (reja_tuz) 4. FIKRLASH: har qadamni CoT bilan 5. FEEDBACK: natijani baholang, kerak bo'lsa qayta rejalang Maqsad bering: «[Mavzu] bo'yicha uch manbadan ma'lumot yig'ib, solishtirib, xulosa yoz va faylga saqla» Kuzating: - Agent qanday reja tuzdi? - Qaysi qadamda feedback kerak bo'ldi? - Necha iteratsiya ketdi? - Jami narx qancha? Himoyalarni qo'shing: maks_iter, byudjet, progress tekshiruvi. Bu — kitobdagi hamma narsani birlashtiruvchi loyiha. Uni tugatsangiz, siz haqiqiy agent qura olasiz.


Xulosa#

Yodda saqlang
  • 01Reja qura olmaydigan agent — bu chatbot. Rejalashtirish agentni avtonom fikrlaydigan tizimga aylantiradi.
  • 02Function calling reaktiv (har qadamda keyingisini tanlaydi), planner proaktiv (butun rejani oldindan tuzadi). Planner xatoni kamaytiradi, lekin qat'iy.
  • 03Feedback qat'iy rejani moslashtiradi. Uch manba: muhit (natija), odam (baho), LLM (o'z-o'zini tuzatish).
  • 04Refleksiya sikli xavfli — agent qotib qolishi mumkin. Maksimal iteratsiya, byudjet va progress tekshiruvi — uchtasi ham kerak.
  • 05To'liq agent besh komponentni birlashtiradi: profil, harakat, xotira, fikrlash, reja+feedback. Har biriga kerakli darajada e'tibor.
  • 06Hammasini birdan qurmang. Oddiydan boshlang, ehtiyoj paydo bo'lganda komponent qo'shing. Bu butun kitobning takrorlanuvchi darsi.

Kitob tugadi.

Biz LLM'ga oddiy so'rovdan boshladik va besh komponentli, reja tuzadigan, feedbackdan o'rganadigan avtonom agentgacha yetdik.

Eslab qolish kerak bo'lgan asosiy fikr: agent — bu besh komponentning birlashmasi. Profil, harakat, xotira, fikrlash, reja. Har qanday yangi vosita yoki freymvork — bu shu beshtaning boshqa qadoqlanishi, xolos.

Endi navbat sizniki. Kichik agentdan boshlang, komponentlarni birma-bir qo'shing va har o'zgarishni o'lchang.

Omad tilaymiz.