Kitengo 9 / 11

Mawakala wa AI na Matumizi ya Zana

Faida:

  • Kufafanua wakala kama 'mfano + zana + kitanzi' na kuamua inapohitajika
  • Kuandika ufafanuzi wa zana kwa jina, maelezo na input_schema
  • Kufuatilia mtiririko na kushughulikia makosa ya tool_use na tool_result loop

Hadi sasa, mtindo huo daima umefanya kazi moja: kupokea pembejeo ya maandishi, kuzalisha majibu ya maandishi. Lakini kazi halisi mara nyingi huhitaji zaidi ya maandishi; kufanya hesabu, kuuliza hifadhidata, kupiga API, kutafuta kiwango cha ubadilishaji wa sasa. Mwanamitindo hawezi kufanya mambo haya yeye mwenyewe - lakini anaweza kuamua wakati yanapohitaji kufanywa na kumwomba mtu afanye. Hivi ndivyo utumiaji wa zana unatoa mfano, na huu ndio msingi wa mawakala wa AI. Katika kitengo hiki, tutajifunza wakala ni nini, jinsi zana inavyofafanuliwa, na jinsi kitanzi_cha matumizi kinavyofanya kazi.

Je, Wakala ni nini? Mfano + Zana + Kitanzi

Wakala wa AI huwa na sehemu tatu: mfano (ubongo unaofanya uamuzi), zana (kazi ambazo mtindo anaweza kuziita: hali ya hewa, swala la hifadhidata, kutuma barua pepe), na kitanzi (kitanzi; mfano huita kifaa, hupata matokeo, huamua tena nini cha kufanya, na kadhalika).

Tofauti muhimu: Simu ya muundo mmoja sio wakala. Wakala ni mchakato ambao modeli huendelea hatua kwa hatua, kwa kila hatua kuchagua hatua inayofuata kulingana na matokeo ya zana. "Fikiria kama mwanadamu, tumia mikono yako, angalia matokeo, fikiria tena."

Ukweli muhimu: mfano yenyewe haifanyi kazi gari. Mfano unasema tu "Nataka kupigia kifaa hiki na pembejeo hizi". Programu yako (inayoitwa kuunganisha) huendesha chombo na kurudisha matokeo kwa mfano. Hii ni muhimu kwa usalama: mtindo haugusi mfumo wako moja kwa moja; Kila kitendo kiko chini ya udhibiti wako.

Kidokezo: Usijaribu kutatua kila tatizo na wakala. Wakala; huongeza hatari ya ucheleweshaji, gharama na makosa. Uliza kwanza: "Je, hili litatatuliwa kwa simu moja au mtiririko maalum wa kazi?" Ikiwa jibu ni ndiyo, hakuna haja ya wakala. Wakala ni wa kazi wazi ambapo hatua haziwezi kujulikana mapema.

Ufafanuzi wa Zana: jina, maelezo, input_schema

Ili kuanzisha chombo katika mfano, unatoa mambo matatu:

  • jina: Utambulisho wa gari, k.m. pata_hali ya hewa.
  • maelezo: Chombo hufanya nini na wakati wa kuiita. Hili ndilo eneo muhimu zaidi linaloruhusu mtindo kuchagua chombo sahihi kwa wakati unaofaa. Andika sio tu "nini hufanya" lakini pia "piga simu wakati."
  • input_schema (schema ya ingizo): Schema ya JSON inayofafanua ni vigezo gani zana inatarajia, katika aina gani.

# Ufafanuzi wa gari (dhana — JSON schema){ "name": "get_order_status", "description": "Hurejesha hali ya sasa ya usafirishaji wa agizo. Piga simu mtumiaji anapouliza nambari ya agizo iko wapi au itafika lini.", "input_schema": { "type": "object", "properties": "string": "order": {order": {Order_description": "order": {Order_schema] nambari, k.m. SP-1024"} }, "required": ["order_no"] }}

Sheria za maelezo mazuri ya zana: jina wazi na fupi, maelezo na "wakati wa kutumia", maelezo kwa kila parameta, kuweka zile za lazima kweli zinazohitajika. Weka idadi ya magari kuzingatia; Kadhaa ya mifano ya magari sawa ni ya kushangaza.

eneo

Inafanya nini?

mfano mzuri

mfano mbaya

jina

Kitambulisho cha gari

kuagiza_hali_getir

kuleta

maelezo

Inafanya nini + wakati wa kupiga simu

"Hurejesha hali ya shehena; piga simu wakati mtumiaji anauliza agizo liko wapi"

"inachukua data"

input_schema

Aina ya parameta na mahitaji

{order_no: string, annoted}

hakuna mchoro / hakuna maelezo

tool_use → Kitanzi_cha_matokeo cha zana

Mzunguko hufanya kazi kama hii, hatua kwa hatua:

  1. Unatuma swali la mtumiaji + maelezo ya zana kwa modeli.
  2. Muundo huu unajibu moja kwa moja au utengeneze kizuizi cha matumizi ya zana: "call order_durumu_getir with order_no=SP-1024."
  3. Programu yako inaendesha zana (huuliza hifadhidata).
  4. Unatuma matokeo kwa mfano kama tool_result.
  5. Kwa matokeo haya, mfano huo hutoa jibu la mwisho au huita chombo kingine. Mzunguko unaendelea hadi mfano unasema "Nimemaliza."

# Kitanzi cha wakala (dhana) = [swali_la_mtumiaji] wakati Kweli: majibu = model.uret(ujumbe, zana=tool_definitions) if response.tur == "tool_use": result = harness.run(response.tool_name, response.entries) # APPLICATION huendesha ujumbe, +=_majibu #mwitikio #mwitikio kitanzi mwisho

SDK za kisasa hutoa viendeshaji zana vinavyoendesha kitanzi hiki kwa ajili yako; unaandika tu kazi za zana. Lakini hicho ndicho hasa kinachotokea nyuma ya pazia.

Udhibiti wa Hitilafu

Zana zinaweza kushindwa: agizo halijapatikana, API imeisha, ingizo ni batili. Ikiwa huwezi kuendesha zana, rudisha hitilafu kwa kielelezo kama matokeo_ya_maelezo ("kosa: Nambari ya agizo SP-9999 haijapatikana") na alama ya hitilafu. Mfano unaweza kuona hili na kuelezea kwa upole kwa mtumiaji, au jaribu njia tofauti. Usimeze kosa na urudishe matokeo tupu; Mwanamitindo lazima ajue ni nini kilienda vibaya.

Maelezo ya Gari dhaifu/Nguvu

Dhaifu (nomino isiyojulikana, hakuna "wakati"):

name: "data", description: "fetches data"# Muundo haujui ni lini na jinsi ya kupiga simu; Labda haipigi simu kabisa au inapiga vibaya.

Nguvu (jina halisi + wakati + maelezo ya parameta):

name: "musteri_bakiyesi_getir"description: "Hurejesha salio la sasa la akaunti ya mteja. Piga simu mtumiaji anapouliza malipo, mkopo au salio. HAFAI malipo."input_schema: {custeri_id: string ("Kitambulisho cha Mteja")}# Muundo hupiga simu kwa wakati unaofaa, ukiwa na vigezo vinavyofaa, ukijua kikomo chake.

Kesi Tatu Ndogo

Kesi ya 1 - wakala asiyehitajika. Timu moja iliunda biashara ya "muhtasari wa maandishi" na wakala wa zana nyingi; Kila muhtasari huchukua simu 4 za muundo na sekunde 9. Kazi hiyo kwa kweli ilikuwa kazi ya simu moja. Tulipoondoa wakala na kuipunguza hadi simu moja, muda ulipungua hadi sekunde 1.5 na gharama ilipungua hadi robo moja. Somo: tumia wakala inapobidi sana.

Kesi ya 2 - Maelezo dhaifu, simu isiyo sahihi. Katika wakala wa usaidizi, zana isiyojulikana inayoitwa kuleta iliitwa nasibu na muundo katika swali la salio na swali la usafirishaji. Magari yalipogawanywa kuwa balance_getir na cargo_durumu_getir na maelezo ya "call when" yaliongezwa, uteuzi usio sahihi wa gari ulipungua kutoka 18 hadi 1 kati ya mifano 50.

Kesi ya 3 - Kosa limemezwa. Wakala alikuwa akirudisha matokeo tupu wakati agizo halijapatikana; Mtindo alifasiri hii kama "agizo liliwasilishwa" na akapotosha mteja. Wakati ujumbe wa hitilafu umeandikwa kwa uwazi kwa tool_result ("amri haipatikani"), mfano unasema kwa usahihi "Sikuweza kupata nambari hii, unaweza kuiangalia?" akaanza kusema.

Makosa ya kawaida

  • Kugeuza kila kitu kwa wakala: Ingawa simu moja inatosha, wakala huongeza gharama na kuchelewa.
  • Maelezo ya gari yasiyoeleweka: Mfano haujui wakati wa kupiga simu; huchagua vibaya.
  • Kufikiri kwamba mfano huendesha gari: kuunganisha huendesha gari; mfano anataka tu.
  • Kumeza kosa: Ni lazima mfano ujue ni nini kilienda vibaya; Toa hitilafu kama open tool_result.
  • Magari mengi yanayofanana: Model huchanganyikiwa; Weka chombo cha zana kulenga na kidogo.
Tahadhari: Kwa sababu tu mtindo unasema "piga gari hilo" haimaanishi kwamba hatua inapaswa kuchukuliwa. Kwenye zana haribifu (futa, malipo, barua pepe) programu yako haipaswi kutekeleza simu bila upofu - huu ndio msingi wa mada ya usalama katika kitengo kinachofuata.

Kwa muhtasari

  • Wakala = mfano (uamuzi) + zana (kazi) + kitanzi (chombo cha simu, pata matokeo, amua tena).
  • Simu ya muundo mmoja sio wakala; wakala ni mchakato wa hatua kwa hatua.
  • Mfano hauendeshi gari; Programu yako inaendesha (kuunganisha) na inarudisha matokeo kama tool_result.
  • Zana inatambuliwa kwa jina, maelezo (haswa "piga simu wakati"), na input_schema.
  • Kitanzi kinaendelea kama tool_use → harness inaendesha → tool_result → model inaendelea hadi kielelezo kitakaposema "nimemaliza"; makosa yanaripotiwa kwa uwazi kwa mfano.

Jukumu la maombi

Tengeneza zana 3 kutoka kwa biashara yako ambazo unaweza kupewa wakala. (1) Andika jina, maelezo na "call when", na input_schema kwa kila; Acha angalau moja ziwe zana isiyoharibu ya kusoma na moja hesabu. (2) Chagua swali la kweli la mtumiaji na uandike mwenyewe hatua kwa hatua (katika kitanzi) ni kipi kati ya zana hizi ambacho kielelezo kitaita na ingizo zipi na itafanya nini baada ya tool_result kufika. (3) Sanidi hali ambayo moja ya zana itashindwa na uonyeshe jinsi ujumbe wa hitilafu utakavyorudi kwa mfano.

orodha ya ukaguzi

  • [ ] Ninaweza kufafanua wakala kama "mfano + zana + kitanzi" na kuamua inapohitajika.
  • [ ] Ninajua kuwa kamba huendesha gari, modeli inaitaka tu.
  • Ninaweza kuandika maelezo thabiti ya gari yenye [ ] jina, maelezo ("call when") na input_schema.
  • Ninaweza kufuata [ ] tool_use → tool_result mzunguko hatua kwa hatua.
  • [ ] Ninaripoti hitilafu za zana kwa modeli kama open tool_result.