aidoc.uz

3-qism · Murakkab tizimlar·09-bob

Bitta va ko'p agentli tizimlar

Avtonom agentning modullari, til universal interfeys sifatida, ko'p agentli tizimni noldan qurish va biznes modellari — ishlaydigan kod bilan.

Sakkiz bob davomida agentga qismlar qo'shdik: xotira (RAG), sxema (graf), tajribadan o'rganish (RL).

Endi yangi savol: bitta agent yetarli bo'lmasa nima qilamiz?

Avtonom agentning to'rt moduli#

Har qanday jiddiy agent to'rt qismdan iborat:

1
Profil — agent kim?
Agentga rol beriladi: «Siz kod tekshiruvchi tajribali dasturchisiz». Bu tizim ko'rsatmasida yoziladi va agentning butun xatti-harakatini belgilaydi.
2
Xotira — nimani eslaydi?
Qisqa muddatli (suhbat), uzoq muddatli (RAG, graf) va refleksiya (tajribadan xulosa). 4-bobda batafsil ko'rgan edik.
3
Reja — qanday bo'ladi?
Murakkab vazifani qadamlarga bo'lish. Avval bo'lish yoki aralash bo'lish — 4-bobdagi strategiyalar.
4
Harakat — qanday asboblar?
API, kod, qidiruv, ma'lumotlar bazasi. Va — muhimi — BOSHQA MODELNI chaqirish. Bu keyingi bo'limning mavzusi.

Til — universal interfeys#

2023-yilda chiqqan HuggingGPT ishi agentlar sohasida burilish nuqtasi bo'ldi. G'oyasi juda oddiy va juda kuchli:

Har qanday AI modelini so'z bilan tasvirlash mumkin. Demak, LLM ularni boshqara oladi.

Muammo aniq edi: LLM faqat matn biladi. Rasmni ko'ra olmaydi, ovozni eshitmaydi. Ammo bu ishlarni bajaradigan minglab maxsus model allaqachon mavjud — va har birining matnli tavsifi bor.

Agar bu tavsiflarni LLM promptiga solsak — LLM ularni tanlay va chaqira oladi.

"Bu rasmdagi hayvon nima va uni ovoz bilan ayt"
foydalanuvchi so'rovi
1. REJALASHTIRISH
LLM: kerak → rasm tasnifi → matn → nutq
2. MODEL TANLASH
ViT, GPT, nutq sintezi — tavsiflarga qarab
3. BAJARISH
modellar navbat bilan ishga tushadi
4. JAVOB YIG'ISH
LLM natijalarni birlashtiradi
HuggingGPT: LLM dirijyor, maxsus modellar cholg'uchilar

Ko'p agentli tizim quramiz#

Nazariyadan amaliyotga. Kontent yaratish tizimi quramiz — uchta agent, har biri o'z ishida.

1. Tadqiqotchi agent
internetdan ma'lumot yig'adi — asboblar bilan
2. Yozuvchi agent
maqola yozadi — kuchli LLM
3. Muharrir agent
tekshiradi va tuzatadi — tanqidiy nuqtai nazar
Har agent — o'z vositasi. Bu ataylab qilingan.
import anthropic
 
client = anthropic.Anthropic()
 
 
class Agent:
    """Umumiy agent — rol va model bilan sozlanadi."""
 
    def __init__(self, nom, korsatma, model="claude-opus-5"):
        self.nom = nom
        self.korsatma = korsatma
        self.model = model
 
    def bajar(self, vazifa: str) -> str:
        javob = client.messages.create(
            model=self.model,
            max_tokens=4096,
            system=self.korsatma,
            messages=[{"role": "user", "content": vazifa}],
        )
        return "".join(b.text for b in javob.content if b.type == "text")
 
 
# Har agentga o'z roli
tadqiqotchi = Agent(
    "Tadqiqotchi",
    "Siz sinchkov tadqiqotchisiz. Mavzu bo'yicha asosiy faktlar va "
    "statistikani aniq, manbalari bilan yig'asiz. Ortiqcha gap yozmaysiz.",
    model="claude-opus-5",
)
 
yozuvchi = Agent(
    "Yozuvchi",
    "Siz mohir jurnalistsiz. Berilgan faktlardan qiziqarli, tushunarli "
    "maqola yozasiz. Sodda til, aniq misollar.",
    model="claude-opus-5",
)
 
muharrir = Agent(
    "Muharrir",
    "Siz talabchan muharrirsiz. Maqolani tekshirasiz: faktlar to'g'rimi, "
    "til ravonmi, tuzilma mantiqiymi. Aniq tuzatishlar taklif qilasiz.",
    model="claude-opus-5",
)

Endi ularni ketma-ket ishlatamiz:

def maqola_yarat(mavzu: str) -> str:
    print(f"[Tadqiqotchi] {mavzu} bo'yicha ma'lumot yig'ilmoqda...")
    faktlar = tadqiqotchi.bajar(f"'{mavzu}' mavzusida asosiy faktlarni yig'ing.")
 
    print("[Yozuvchi] maqola yozilmoqda...")
    qoralama = yozuvchi.bajar(
        f"Quyidagi faktlar asosida maqola yozing:\n\n{faktlar}"
    )
 
    print("[Muharrir] tekshirilmoqda...")
    fikr = muharrir.bajar(
        f"Quyidagi maqolani tahrir qiling va tuzatilgan variantini bering:\n\n{qoralama}"
    )
 
    return fikr
 
 
print(maqola_yarat("O'zbekistonda quyosh energiyasi"))

Turli xil vositalarni birlashtirish#

Haqiqiy kuch — turli texnologiyalarni bir tizimda birlashtirishda. Sayohat rejalashtiruvchi misolida:

from sklearn.ensemble import RandomForestRegressor
from sentence_transformers import SentenceTransformer, util
import numpy as np
 
 
class ObHavoAgenti:
    """Sonli bashorat — LLM emas, tasodifiy o'rmon aniqroq va arzonroq."""
    def __init__(self):
        self.model = RandomForestRegressor(n_estimators=100)
 
    def organ(self, tarixiy):
        X = np.array([[d["oy"], d["kenglik"], d["uzunlik"]] for d in tarixiy])
        y = np.array([d["ball"] for d in tarixiy])
        self.model.fit(X, y)
 
    def eng_yaxshi_oy(self, kenglik, uzunlik):
        oylar = np.array([[oy, kenglik, uzunlik] for oy in range(1, 13)])
        return int(np.argmax(self.model.predict(oylar))) + 1
 
 
class MehmonxonaAgenti:
    """Ma'no bo'yicha qidiruv — bu 5-bobdagi RAG'ning o'zi."""
    def __init__(self, mehmonxonalar):
        self.encoder = SentenceTransformer("all-MiniLM-L6-v2")
        self.mehmonxonalar = mehmonxonalar
        self.vektorlar = self.encoder.encode([m["tavsif"] for m in mehmonxonalar])
 
    def tavsiya(self, afzalliklar, top_k=3):
        s = self.encoder.encode(afzalliklar)
        ballar = util.cos_sim(s, self.vektorlar)[0]
        return [self.mehmonxonalar[i] for i in ballar.argsort(descending=True)[:top_k]]
 
 
class MarshrutAgenti:
    """Matn generatsiyasi — bu yerda LLM kerak."""
    def __init__(self, agent):
        self.agent = agent
 
    def reja_tuz(self, yonalish, oy, mehmonxona, kun):
        return self.agent.bajar(
            f"{yonalish} shahriga {oy}-oyda {kun} kunlik sayohat rejasini tuzing. "
            f"Turar joy: {mehmonxona['nom']}. Har kun uchun 3 ta faoliyat."
        )

Diqqat qiling: uch agent, uch xil texnologiya. Sonli bashorat uchun LLM ishlatish — uni sekinlashtirish va noaniqlashtirish demak.


Agentlar qanday muloqot qiladi#

Ko'p agentli tizimda o'zaro munosabat turlicha bo'lishi mumkin:

TuriQandayMisol
HamkorlikBirgalikda bitta maqsad sariYuqoridagi maqola tizimi
MuhokamaHar biri fikr aytadi, ko'pchilik ovoziTibbiy konsilium
RaqobatO'yin nazariyasi, adversarialAlphaGo o'zi bilan o'ynagan
IyerarxiyaBoshqaruvchi taqsimlaydi, ijrochilar bajaradiMenejer + xodimlar

Muhokama misoli — bir agent yechim taklif qiladi, ikkinchisi tanqid qiladi:

def muhokama(savol, agent_a, agent_b, raundlar=3):
    """Ikki agent bir savolni muhokama qiladi."""
    javob = agent_a.bajar(savol)
 
    for i in range(raundlar):
        tanqid = agent_b.bajar(
            f"Savol: {savol}\n\nTaklif qilingan javob: {javob}\n\n"
            f"Bu javobning zaif tomonlarini toping va yaxshilang."
        )
        javob = agent_a.bajar(
            f"Savol: {savol}\n\nSizning javobingiz: {javob}\n\n"
            f"Tanqid: {tanqid}\n\nJavobni yaxshilang."
        )
 
    return javob

Ko'p agent har doim ham yaxshiroq emas#

Bu bo'limni alohida o'qing, chunki u ommaviy tasavvurga zid.

Ko'p agent qachon foydali
  • Haqiqiy ixtisoslashuv kerak — turli soha bilimi
  • Parallel ish — bir-biriga bog'liq bo'lmagan vazifalar
  • Nazorat kerak — bir agent boshqasini tekshiradi
  • Muhokama sifatni oshiradi — murakkab qarorlar
Bitta agent qachon yaxshiroq
  • Narx muhim — ko'p agent bir necha barobar qimmat
  • Kechikish muhim — agentlar gaplashishi vaqt oladi
  • Vazifa oddiy — bo'lish ortiqcha murakkablik
  • Nosozlikni tuzatish qiyin — ko'p qism ko'p nosozlik

Amaliy qoida: BITTA agentdan boshlang. Ko'p agentga faqat aniq sabab bo'lganda o'ting. «Ko'p agent zamonaviyroq eshitiladi» — bu sabab emas.


Biznes modellari#

Agent tizimi qurdingiz. Uni qanday sotasiz? To'rt asosiy model shakllangan.

SaaS — dastur xizmat sifatida
obuna. Salesforce, Slack
xavf mijozda
MaaS — model xizmat sifatida
API. OpenAI, Hugging Face
xavf mijozda
DaaS — ma'lumot xizmat sifatida
ma'lumotlar. Snowflake
xavf mijozda
RaaS — natija xizmat sifatida
NATIJA sotiladi
xavf SIZDA
To'rt biznes modeli — xavf kimda?

Farqni bir misolda ko'ramiz:

SaaS:  "Mana sizga hisobot quruvchi dastur, oyiga $50"
MaaS:  "Modelga API orqali kirish, 1M token uchun $5"
DaaS:  "Bizning ma'lumotlar bazasiga kirish, oyiga $500"
RaaS:  "Har oy 100 ta malakali mijoz topib beraman, natija uchun to'laysiz"
Amaliy topshiriq

Uch agentli tizim quring va bitta agent bilan solishtiring

Kod tekshirish tizimini ikki xil quring:

Variant A — uch agent: Tahlilchi (muammolarni topadi), Xavfsizlik (zaifliklarga qaraydi), Tuzatuvchi (kod yozadi).

Variant B — bitta agent: hammasini bir ko'rsatmada bajaradi.

Ikkalasini 10 ta kod namunasida sinang va o'lchang:

  1. Sifat — qancha haqiqiy muammo topildi? (qo'lda tekshiring)
  2. Narx — jami token
  3. Vaqt — necha soniya

Natijalarni jadvalga yozing.

Asosiy savol: uch agent qo'shimcha narxni oqladimi? Javobingizni raqamlar bilan asoslang.

Maslahatni ko'rsatish

G'oya: kod tekshirish tizimi - Agent 1 (Tahlilchi): kodni o'qib, muammolarni ro'yxatlaydi - Agent 2 (Xavfsizlik): faqat xavfsizlik zaifliklariga qaraydi - Agent 3 (Tuzatuvchi): tuzatilgan kod yozadi Solishtirish uchun BITTA agent varianti: bitta = Agent('Hammasi', 'Siz kod tekshiruvchisiz. Muammolar, ' 'xavfsizlik va tuzatishlarni bir javobda bering.') Har ikkalasini 10 ta kod namunasida sinang va o'lchang: - Sifat: qancha haqiqiy muammo topildi? (qo'lda tekshiring) - Narx: jami token (har chaqiruvda usage.input + output) - Vaqt: time.time() bilan Jadval: variant topilgan_muammo narx vaqt ------------------------------------------------ bitta agent 8 $0.04 3s uch agent 11 $0.15 9s Savol: uch agent 3 ta ko'proq muammo topdi, lekin 4 barobar qimmat. Bu arziydimi? Javob loyihaga bog'liq — muhokama qiling.


Xulosa#

Bitta agent
LLM + asboblar
bitta nuqtai nazar
Ko'p agent
agentlar + muloqot
ixtisoslashuv, muhokama
Bitta agent vs ko'p agent
Yodda saqlang
  • 01Til — universal interfeys. Agar biror narsani so'z bilan tasvirlay olsangiz, LLM uni boshqara oladi. Yangi qobiliyat qo'shish uchun qayta o'qitish shart emas.
  • 02Har bir ishga o'z vositasi. Ko'p agentli tizimning kuchi turli texnologiyalarni birlashtirishda. Hamma joyga LLM qo'yish — xato.
  • 03Agentlar tabiiy tilda gaplashadi. Bu tizimni kuzatiladigan qiladi. Loglang.
  • 04Ko'p agent har doim ham yaxshiroq emas. Tadqiqotlar ko'rsatishicha, foyda ko'pincha kichik. Bitta agentdan boshlang.
  • 05RaaS — AI agentlari mumkin qilgan yangi biznes modeli. Natijani sotasiz. Lekin butun xavf sizda.

Keyingi bobda oxirgi qadamni qo'yamiz: bularning hammasidan haqiqiy, ishlaydigan mahsulot qanday quriladi. Interfeys, xatolarni boshqarish, tezlashtirish va Docker bilan joylashtirish.