Qazanclar:
- Agenti 'model + alətlər + döngə' olaraq təyin etmək və nə vaxt lazım olduğuna qərar vermək
- Alət tərifinin adı, təsviri və input_schema ilə yazılması
- Tool_use və tool_result döngəsinin axınının və səhvlərin idarə edilməsinin monitorinqi
İndiyə qədər model həmişə bir iş görürdü: mətn daxiletməsini qəbul etmək, mətn cavabları hazırlamaq. Amma real iş çox vaxt mətndən daha çox şey tələb edir; hesablama aparmaq, verilənlər bazasını sorğulamaq, API çağırmaq, cari məzənnəni öyrənmək. Model bu işləri özü edə bilməz, lakin o, nə vaxt edilməsi lazım olduğuna qərar verə və kiminsə bunu etməsini xahiş edə bilər. Alətdən istifadə modeli bu verir və bu, AI agentlərinin əsasını təşkil edir. Bu bölmədə biz agentin nə olduğunu, alətin necə müəyyən edildiyini və tool_use loopunun necə işlədiyini öyrənəcəyik.
Agent nədir? Model + Alətlər + Döngü
Süni intellekt agenti üç hissədən ibarətdir: model (qərar verən beyin), alətlər (modelin çağıra biləcəyi funksiyalar: hava, verilənlər bazası sorğusu, e-poçt göndərmə) və dövrə (dövrə; model aləti çağırır, nəticəni alır, nə edəcəyinə yenidən qərar verir və s.).
Kritik fərq: Tək nümunə çağırışı agent deyil. Agent, modelin addım-addım davam etdiyi, hər addımda alətin nəticəsi əsasında növbəti hərəkəti seçdiyi bir prosesdir. "İnsan kimi düşün, əllərini işlə, nəticəyə bax, yenidən düşün."
Əhəmiyyətli bir fakt: Modelin özü avtomobili idarə etmir. Model sadəcə "Mən bu aləti bu girişlərlə çağırmaq istəyirəm" deyir. Tətbiqiniz (qoşqu adlanır) aləti işə salır və nəticəni modelə qaytarır. Bu təhlükəsizlik üçün çox vacibdir: model birbaşa sisteminizə toxunmur; Hər bir hərəkət sizin nəzarətinizdədir.
İpucu: Agentlə hər problemi həll etməyə çalışmayın. agent; gecikmələr, xərclər və səhvlər riskini artırır. Əvvəlcə soruşun: "Bu, bir zəng və ya sabit iş axını ilə həll ediləcəkmi?" Cavab bəlidirsə, agentə ehtiyac yoxdur. Agent addımları əvvəlcədən bilmək mümkün olmayan açıq tapşırıqlar üçündür.
Alət tərifi: ad, təsvir, giriş_şeması
Modelə bir alət təqdim etmək üçün üç şey verirsiniz:
- ad: Nəqliyyat vasitəsinin şəxsiyyəti, məs. get_hava.
- Təsvir: Alət nə edir və onu nə vaxt çağırmaq lazımdır. Bu, modelin doğru zamanda doğru aləti seçməsinə imkan verən ən vacib sahədir. Yalnız "nə edir" deyil, həm də "nə vaxt zəng et" yazın.
- input_schema (giriş sxemi): alətin hansı parametrləri, hansı tipdə gözlədiyini müəyyən edən JSON sxemi.
# Nəqliyyat vasitəsinin tərifi (konseptual — JSON sxemi){ "name": "get_order_status", "description": "Sifarişin cari göndərmə statusunu alır. İstifadəçi sifariş nömrəsinin harada olduğunu və ya onun nə vaxt gələcəyini soruşduqda zəng edin.", "input_schema": { "type": "object", "properties": { { "order_type:"no", "string":"no" "Sifariş nömrəsi, məs. SP-1024"} }, "tələb olunur": ["sifariş_no"] }}
Yaxşı bir alət təsviri üçün qaydalar: aydın və qısa ad, "nə vaxt istifadə edilməli" ilə təsvir, hər bir parametr üçün təsvir, həqiqətən məcburi olanları tələb edən. Nəqliyyat vasitələrinin sayını diqqət mərkəzində saxlayın; Onlarla oxşar avtomobil modeli təəccübləndirir.
sahə
Bu nə edir?
yaxşı nümunə
pis nümunə
ad
Avtomobilin ID-si
order_status_getir
gətirmək
təsviri
Nə edir + nə vaxt zəng etmək lazımdır
"Yük statusunu qaytarır; istifadəçi sifarişin harada olduğunu soruşduqda zəng edin"
"məlumat gətirir"
giriş_şeması
Parametr növü və tələbi
{sifariş_no: sətir, annotasiyalı}
diaqram yoxdur / təsvir yoxdur
tool_use → tool_result Loop
Dövr addım-addım belə işləyir:
- Modelə istifadəçi sualını + alət təsvirlərini göndərirsiniz.
- Model ya birbaşa cavab verir, ya da tool_use bloku yaradır: "sifariş_no=SP-1024 ilə order_durumu_getir çağırın."
- Tətbiqiniz əslində aləti işlədir (verilənlər bazasını sorğulayır).
- Nəticəni modelə alət_nəticəsi olaraq geri göndərirsiniz.
- Bu nəticə ilə model ya yekun cavabı verir, ya da başqa aləti çağırır. Dövr, model "bitirdim" deyənə qədər davam edir.
# Agent döngəsi (konseptual) mesajları = [istifadəçi_sualı]doğrudur: cavab = model.uret(mesajlar, alətlər=alət_tərifləri) əgər cavab.tur == "alət_istifadəsi": nəticə = harness.run(response.tool_name, respond.entries) # APPLICATION mesajları işə salır, başqa alət: #nəticəni qaytarır cavab; döngə bitir
Müasir SDK-lar sizin üçün bu döngəni idarə edən alətlər təklif edir; sadəcə alət funksiyalarını yazırsınız. Amma pərdə arxasında baş verənlər məhz budur.
Səhv İdarəetmə
Alətlər uğursuz ola bilər: sifariş tapılmadı, API vaxtı keçdi, daxiletmə yanlışdır. Aləti işə sala bilmirsinizsə, səhvi modelə təsviri alət_nəticəsi ("xəta: Sifariş nömrəsi SP-9999 tapılmadı") və xəta bayrağı kimi qaytarın. Model bunu görə bilər və istifadəçiyə yumşaq bir şəkildə izah edə bilər və ya başqa bir şəkildə cəhd edə bilər. Səhvi udmayın və boş nəticələr qaytarmayın; Model nəyin səhv olduğunu bilməlidir.
Zəif/Güclü Avtomobil Təsviri
Zəif (qeyri-müəyyən isim, "nə vaxt" yoxdur):
ad: "data", təsvir: "məlumat gətirir"# Model nə vaxt və necə zəng edəcəyini bilmir; Ya ümumiyyətlə zəng etmir, ya da səhv zəng edir.
Güclü (xalis ad + zaman + parametr təsviri):
ad: "musteri_bakiyesi_getir"təsviri: "Müştərinin cari hesab balansını qaytarır. İstifadəçi debet, kredit və ya balans tələb etdikdə zəng edin. ÖDƏNMƏYİR."input_schema: {custeri_id: string ("Customer ID")}# Model öz limitini bilə-bilə doğru zamanda, doğru parametrlərlə zəng edir.
Üç mini qutu
1-ci hal - Lazımsız agent. Komandalardan biri çox alətli agentlə “mətni ümumiləşdirmək” biznesini qurdu; Hər təkrarlama 4 model zəngi və 9 saniyə çəkir. İş əslində bir çağırış işi idi. Agenti çıxarıb bir zəngə endirdiyimiz zaman vaxt 1,5 saniyəyə, xərc isə dörddə birinə qədər azaldı. Dərs: həqiqətən lazım olduqda agentdən istifadə edin.
2-ci hal - Zəif izahat, yanlış çağırış. Dəstək agentində fetch adlı qaranlıq bir alət həm balans sualında, həm də göndərmə sualında model tərəfindən təsadüfi olaraq çağırıldı. Nəqliyyat vasitələri balans_getir və yük_durumu_getir bölünərək "nə vaxt zəng et" izahatları əlavə edildikdə, yanlış vasitə seçimi 50 nümunədə 18-dən 1-ə enib.
3-cü hal - Udulduqda xəta. Sifariş tapılmayanda agent boş nəticələr qaytarırdı; Model bunu “sifariş çatdırıldı” kimi şərh edərək müştərini yanıltdı. Səhv mesajı açıq şəkildə tool_result-a yazıldıqda ("sifariş tapılmadı"), model düzgün şəkildə "Mən bu nömrəni tapa bilmədim, yoxlaya bilərsinizmi?" deməyə başladı.
Ümumi səhvlər
- Hər şeyi agentə çevirmək: Bir zəng kifayət etsə də, agent xərc və gecikmə əlavə edir.
- Avtomobilin qeyri-müəyyən təsviri: Model nə vaxt zəng edəcəyini bilmir; səhv seçir.
- Modelin avtomobili idarə etdiyini düşünərək: Qoşqu avtomobili idarə edir; model sadəcə istəyir.
- Xətanı udmaq: Model nəyin səhv getdiyini bilməlidir; Xətanı açıq alət_nəticəsi kimi verin.
- Həddindən artıq oxşar avtomobillər: Model çaşqın olur; Alətlər dəstini diqqətli və minimal saxlayın.
Diqqət: Modelin "o avtomobilə zəng edin" deməsi tədbir görülməli olduğu anlamına gəlmir. Dağıdıcı alətlərdə (silmək, yoxlama, e-poçt) tətbiqiniz zəngi kor-koranə yerinə yetirməməlidir — bu, növbəti bölmədəki təhlükəsizlik mövzusunun əsasını təşkil edir.
Xülasə
- Agent = model (qərar) + alətlər (funksiyalar) + loop (alətə zəng edin, nəticə əldə edin, yenidən qərar verin).
- Tək nümunəli zəng agent deyil; agent addım-addım bir prosesdir.
- Model avtomobili idarə etmir; Tətbiqiniz işləyir (qoşqu) və nəticəni tool_result kimi qaytarır.
- Alət ad, təsvir (xüsusilə "nə vaxt zəng et") və input_schema ilə müəyyən edilir.
- Döngə alət_istifadəsi → qoşqu işlədiyi kimi davam edir → alət_nəticə → model model "bitdi" deyənə qədər davam edir; səhvlər modelə açıq şəkildə bildirilir.
Tətbiq tapşırığı
Öz biznesinizdən agentə verilə bilən 3 alət dizayn edin. (1) Hər biri üçün adı, təsviri "zəng edən zaman" və giriş_şemasını yazın; Heç olmasa biri dağıdıcı olmayan oxu aləti, biri isə hesablama olsun. (2) Həqiqi istifadəçi sualı seçin və modelin bu alətlərdən hansını hansı girişlərlə çağıracağını və alət_nəticəsi gəldikdən sonra nə edəcəyini addım-addım (dövrdə) əl ilə yazın. (3) Alətlərdən birinin uğursuz olduğu bir ssenari qurun və səhv mesajının modelə necə qayıdacağını göstərin.
yoxlama siyahısı
- [ ] Agenti "model + alətlər + döngə" kimi təyin edə bilərəm və nə vaxt lazım olduğuna qərar verə bilərəm.
- [ ] Mən bilirəm ki, qoşqu avtomobili idarə edir, model sadəcə bunu istəyir.
- Mən [ ] adı, təsviri ("nə vaxt zəng et") və input_schema ilə möhkəm bir avtomobil təsviri yaza bilərəm.
- Mən [ ] alət_istifadəsi → alət_nəticə dövrünü addım-addım izləyə bilərəm.
- [ ] Mən alət səhvlərini modelə açıq alət_nəticəsi kimi bildirirəm.