Birlik 9 / 11

AI agentlari va asboblardan foydalanish

Daromadlar:

  • Agentni "model + asboblar + halqa" sifatida belgilash va qachon kerak bo'lishini hal qilish
  • Asbob ta'rifini nom, tavsif va kirish_sxema bilan yozish
  • Tool_use va tool_result siklining oqimi va xatolarni boshqarish monitoringi

Hozirgacha model har doim bitta vazifani bajargan: matn kiritish, matnli javoblarni ishlab chiqarish. Lekin haqiqiy ish ko'pincha matndan ko'proq narsani talab qiladi; hisoblashni amalga oshirish, ma'lumotlar bazasini so'rash, APIni chaqirish, joriy valyuta kursini aniqlash. Model bu ishlarni o'zi qila olmaydi - lekin u qachon qilish kerakligini hal qilishi va kimdandir buni qilishni so'rashi mumkin. Bu vositadan foydalanish modelni beradi va bu AI agentlarining asosidir. Ushbu bo'limda biz agent nima ekanligini, vosita qanday aniqlanishini va tool_use tsikli qanday ishlashini bilib olamiz.

Agent nima? Model + Asboblar + Loop

AI agenti uch qismdan iborat: model (qaror qabul qiladigan miya), asboblar (model chaqirishi mumkin bo'lgan funktsiyalar: ob-havo, ma'lumotlar bazasi so'rovi, elektron pochta xabarlarini yuborish) va tsikl (loop; model asbobni chaqiradi, natijani oladi, nima qilishni yana qaror qiladi va hokazo).

Kritik farq: bitta naqshli chaqiruv agent emas. Agent - bu model bosqichma-bosqich davom etadigan jarayon bo'lib, har bir qadamda asbob natijasiga qarab keyingi harakatni tanlaydi. "Odam kabi o'ylang, qo'lingizni ishlating, natijaga qarang, yana o'ylab ko'ring".

Muhim fakt: Modelning o'zi avtomobilni boshqarmaydi. Model faqat "Men ushbu vositani ushbu kirishlar bilan chaqirmoqchiman" deydi. Ilovangiz (jabduq deb ataladi) asbobni ishga tushiradi va natijani modelga qaytaradi. Bu xavfsizlik uchun juda muhim: model tizimingizga bevosita tegmaydi; Har bir harakat sizning nazoratingiz ostida.

Maslahat: Agent bilan har qanday muammoni hal qilishga urinmang. Agent; kechikishlar, xarajatlar va xatolar xavfini oshiradi. Avval so'rang: "Bu bitta qo'ng'iroq yoki belgilangan ish jarayoni bilan hal qilinadimi?" Agar javob ha bo'lsa, agentga ehtiyoj yo'q. Agent qadamlarni oldindan bilib bo'lmaydigan ochiq vazifalar uchun.

Asbob ta'rifi: ism, tavsif, kiritish_sxema

Modelga asbobni kiritish uchun siz uchta narsani berasiz:

  • nomi: transport vositasining identifikatori, masalan. ob-havo.
  • tavsif: Asbob nima qiladi va uni qachon chaqirish kerak. Bu modelga to'g'ri vaqtda to'g'ri vositani tanlash imkonini beruvchi eng muhim sohadir. Faqat "nima qiladi" emas, balki "qachon qo'ng'iroq qilish" ni ham yozing.
  • input_schema (kirish sxemasi): JSON sxemasi, asbob qaysi parametrlarni kutayotganini, qaysi turdagi turini belgilaydi.

# Avtomobil ta'rifi (kontseptual — JSON sxemasi){ "name": "get_order_status", "description": "Buyurtmaning joriy jo'natish holatini oladi. Foydalanuvchi buyurtma raqami qayerda yoki qachon kelishini so'raganida qo'ng'iroq qiling.", "input_schema": { "type": "object", "properties": { { "order_type:"no", "string":"no" "Buyurtma raqami, masalan, SP-1024"} }, "kerakli": ["buyurtma_no"] }}

Yaxshi vosita tavsifi uchun qoidalar: aniq va ixcham nom, "qachon foydalanish kerakligi" bilan tavsif, har bir parametr uchun tavsif, zarur bo'lgan haqiqatan ham majburiy bo'lganlarni qo'yish. Avtomobillar sonini diqqat bilan kuzatib boring; O'nlab shunga o'xshash avtomobil modellari hayratlanarli.

hudud

Bu nima qiladi?

yaxshi misol

yomon misol

nomi

Avtomobil identifikatori

order_status_getir

olib keling

tavsifi

Bu nima qiladi + qachon qo'ng'iroq qilish kerak

"Yuk holatini qaytaradi; foydalanuvchi buyurtma qayerdaligini so'raganda qo'ng'iroq qiling"

"ma'lumotlarni oladi"

kiritish_sxema

Parametr turi va talablari

{order_no: string, annotated}

diagramma / tavsif yo'q

tool_use → tool_result Loop

Tsikl quyidagicha ishlaydi, bosqichma-bosqich:

  1. Modelga foydalanuvchi savolini + asbob tavsiflarini yuborasiz.
  2. Model to'g'ridan-to'g'ri javob beradi yoki tool_use blokini yaratadi: "order_durumu_getir bilan order_no=SP-1024 qo'ng'iroq qiling."
  3. Sizning ilovangiz aslida asbobni ishga tushiradi (ma'lumotlar bazasini so'raydi).
  4. Natijani modelga tool_result sifatida yuborasiz.
  5. Ushbu natija bilan model yakuniy javobni ishlab chiqaradi yoki boshqa vositani chaqiradi. Tsikl model “Men tugatdim” deguncha davom etadi.

# Agent halqasi (kontseptual)xabarlari = [foydalanuvchi_savol]hozirda: javob = model.uret(xabarlar, asboblar=tool_ta'riflar) agar answer.tur == "tool_foydalanish": natija = harness.run(response.tool_name, respond.entries) # APPLICATION xabarlarni ishga tushiradi (yakuniy natija) tool #result; javob berish; halqa tugaydi

Zamonaviy SDK'lar siz uchun ushbu tsiklni boshqaradigan asboblarni taklif qiladi; Siz faqat asbob funktsiyalarini yozasiz. Lekin aynan shu narsa parda ortida sodir bo‘lmoqda.

Xatolarni boshqarish

Asboblar muvaffaqiyatsiz bo'lishi mumkin: buyurtma topilmadi, API vaqti tugadi, kiritish noto'g'ri. Agar siz asbobni ishga tushira olmasangiz, xatoni modelga tavsiflovchi tool_result (“xato: Buyurtma raqami SP-9999 topilmadi”) va xato belgisi sifatida qaytaring. Model buni ko'rishi va foydalanuvchiga muloyimlik bilan tushuntirishi yoki boshqa yo'lni sinab ko'rishi mumkin. Xatoni yutib yubormang va bo'sh natijalarni qaytarmang; Model nima noto'g'ri bo'lganini bilishi kerak.

Zaif/kuchli avtomobil tavsifi

Zaif (noaniq ot, "qachon" yo'q):

nomi: "ma'lumotlar", tavsif: "ma'lumotlarni oladi"# Model qachon va qanday qo'ng'iroq qilishni bilmaydi; Yo umuman qo'ng'iroq qilmaydi yoki noto'g'ri qo'ng'iroq qiladi.

Kuchli (aniq nom + qachon + parametr tavsifi):

nomi: "musteri_bakiyesi_getir" tavsifi: "Mijozning joriy hisobidagi qoldiqni qaytaradi. Foydalanuvchi debet, kredit yoki balansni so‘raganda qo‘ng‘iroq qiling. TO‘LOM QILMAYDI."input_schema: {custeri_id: string (“Customer ID”)}# Model o‘z chegarasini bilgan holda kerakli vaqtda, to‘g‘ri parametrlar bilan qo‘ng‘iroq qiladi.

Uchta mini korpus

1-holat - keraksiz agent. Bir jamoa ko'p vositali agent bilan "matnni umumlashtirish" biznesini qurdi; Har bir takrorlash 4 ta model chaqiruvi va 9 soniyani oladi. Ish aslida bir chaqiriq ish edi. Biz agentni olib tashlab, uni bitta qo'ng'iroqqa qisqartirganimizda, vaqt 1,5 soniyagacha qisqardi va narx chorakgacha kamaydi. Dars: kerak bo'lganda agentdan foydalaning.

2-holat - zaif tushuntirish, noto'g'ri qo'ng'iroq. Yordamchi agentda fetch deb nomlangan noaniq vosita model tomonidan balans savolida ham, jo'natish masalasida ham tasodifiy chaqirilgan. Avtotransport vositalari balans_getir va yuk_durumu_getirga bo'linganda va "qachon qo'ng'iroq qiling" tushuntirishlari qo'shilganda, noto'g'ri transport vositasini tanlash 50 misolda 18 dan 1 gacha kamaydi.

3-holat - yutib yuborilgan xato. Buyurtma topilmaganda agent bo'sh natijalarni qaytarayotgan edi; Model buni “buyurtma yetkazib berildi” deb talqin qilgan va mijozni adashtirgan. Xato xabari tool_result ("buyurtma topilmadi") ga aniq yozilsa, model to'g'ri "Men bu raqamni topa olmadim, tekshirib ko'ra olasizmi?" — deya boshladi.

Umumiy xatolar

  • Hamma narsani agentga aylantirish: bitta qo'ng'iroq etarli bo'lsa-da, agent xarajat va kechikishni qo'shadi.
  • Avtomobilning noaniq tavsifi: Model qachon qo'ng'iroq qilishni bilmaydi; noto'g'ri tanlaydi.
  • Model transport vositasini boshqaradi deb o'ylash: Jabduqlar transport vositasini boshqaradi; model shunchaki xohlaydi.
  • Xatoni yutish: Model nima noto'g'ri bo'lganini bilishi kerak; Xatoni ochiq tool_result sifatida bering.
  • Juda ko'p o'xshash transport vositalari: Model chalkashib ketadi; Asboblar to'plamini diqqat bilan va minimal darajada saqlang.
Diqqat: Modelda "bu transport vositasiga qo'ng'iroq qiling" degani, bu harakat qilish kerak degani emas. Buzg'unchi vositalarda (o'chirish, chiqish, elektron pochta) ilovangiz qo'ng'iroqni ko'r-ko'rona amalga oshirmasligi kerak - bu keyingi blokdagi xavfsizlik mavzusining asosiy qismidir.

Xulosa

  • Agent = model (qaror) + asboblar (funktsiyalar) + halqa (qo'ng'iroq qilish vositasi, natijani oling, qayta qaror qiling).
  • Bitta naqshli chaqiruv agent emas; agent - bu bosqichma-bosqich jarayon.
  • Model avtomobilni boshqarmaydi; Ilovangiz ishlaydi (jabduqlar) va natijani tool_result sifatida qaytaradi.
  • Asbob nomi, tavsifi (xususan, "qachon qo'ng'iroq qilish") va input_schema bilan aniqlanadi.
  • Loop, tool_use → jabduqlar ishlaydi → tool_result → model “bajarildi” deguncha davom etadi; xatolar aniq modelga xabar qilinadi.

Ilova vazifasi

O'z biznesingizdan agentga berilishi mumkin bo'lgan 3 ta vositani loyihalashtiring. (1) Har biri uchun ism, tavsifni "qachon qo'ng'iroq qilish" bilan va kiritish_sxemasini yozing; Hech bo'lmaganda bittasi buzilmaydigan o'qish vositasi va bittasi hisob-kitob bo'lsin. (2) Haqiqiy foydalanuvchi savolini tanlang va ushbu vositalardan qaysi biri model qaysi kirishlar bilan chaqirishi va tool_natijasi kelgandan keyin nima qilishini bosqichma-bosqich (davrda) qo'lda yozing. (3) Asboblardan biri ishlamay qolgan stsenariyni o'rnating va xato xabari modelga qanday qaytishini ko'rsating.

nazorat ro'yxati

  • [ ] Men agentni "model + asboblar + halqa" sifatida belgilashim va qachon kerak bo'lishini hal qilishim mumkin.
  • [ ] Bilaman, jabduqlar transport vositasini boshqaradi, model faqat buni xohlaydi.
  • Men [ ] nomi, tavsifi ("qachon qo'ng'iroq qilish") va input_schema bilan mustahkam avtomobil tavsifini yozishim mumkin.
  • Men [ ] tool_use → tool_result siklini bosqichma-bosqich kuzatishim mumkin.
  • [ ] Men asboblar xatoliklari haqida modelga ochiq tool_result sifatida xabar beraman.