Mga nadagdag:
- Ang pagtukoy sa isang ahente bilang 'modelo + tool + loop' at pagpapasya kung kailan ito kinakailangan
- Pagsusulat ng kahulugan ng tool na may pangalan, paglalarawan at input_schema
- Pagsubaybay sa daloy at paghawak ng error ng tool_use at tool_result loop
Hanggang ngayon, ang modelo ay palaging gumagawa ng isang trabaho: tumanggap ng text input, gumawa ng mga tugon sa teksto. Ngunit ang tunay na trabaho ay kadalasang nangangailangan ng higit pa sa teksto; pagsasagawa ng kalkulasyon, pagtatanong ng database, pagtawag ng API, paghahanap ng kasalukuyang halaga ng palitan. Ang modelo ay hindi maaaring gawin ang mga bagay na ito sa kanyang sarili — ngunit siya ay maaaring magpasya kung kailan sila kailangang gawin at hilingin sa isang tao na gawin ang mga ito. Ito ang ibinibigay ng paggamit ng tool sa modelo, at ito ang batayan ng mga ahente ng AI. Sa unit na ito, malalaman natin kung ano ang isang ahente, kung paano tinukoy ang tool, at kung paano gumagana ang tool_use loop.
Ano ang Ahente? Modelo + Tools + Loop
Ang isang ahente ng AI ay binubuo ng tatlong bahagi: ang modelo (ang utak na gumagawa ng desisyon), ang mga tool (ang mga function na maaaring tawagan ng modelo: lagay ng panahon, database query, magpadala ng email), at ang loop (ang loop; ang modelo ay tumatawag sa tool, nakuha ang resulta, nagpasya muli kung ano ang gagawin, at iba pa).
Kritikal na pagkakaiba: Ang isang pattern na tawag ay hindi isang ahente. Ang ahente ay isang proseso kung saan nagpapatuloy ang modelo nang hakbang-hakbang, sa bawat hakbang na pinipili ang susunod na hakbang batay sa kinalabasan ng tool. "Mag-isip tulad ng isang tao, gamitin ang iyong mga kamay, tingnan ang resulta, isipin muli."
Isang mahalagang katotohanan: Ang modelo mismo ay hindi nagpapatakbo ng sasakyan. Sinasabi lang ng modelo na "Gusto kong tawagan ang tool na ito gamit ang mga input na ito". Ang iyong application (tinatawag na harness) ay nagpapatakbo ng tool at ibinabalik ang resulta sa modelo. Ito ay mahalaga para sa seguridad: hindi direktang hinahawakan ng modelo ang iyong system; Ang bawat aksyon ay nasa ilalim ng iyong kontrol.
Tip: Huwag subukang lutasin ang bawat problema sa ahente. Ahente; pinatataas ang panganib ng mga pagkaantala, gastos at mga pagkakamali. Itanong muna: "Mareresolba ba ito sa isang tawag o isang nakapirming daloy ng trabaho?" Kung oo ang sagot, hindi na kailangan ng ahente. Ang ahente ay para sa mga bukas na gawain kung saan ang mga hakbang ay hindi malalaman nang maaga.
Kahulugan ng Tool: pangalan, paglalarawan, input_schema
Upang ipakilala ang isang tool sa modelo, magbibigay ka ng tatlong bagay:
- pangalan: Pagkakakilanlan ng sasakyan, hal. get_weather.
- paglalarawan: Ano ang ginagawa ng tool at kung kailan ito tatawagan. Ito ang pinakamahalagang lugar na nagpapahintulot sa modelo na pumili ng tamang tool sa tamang oras. Isulat hindi lamang ang "kung ano ang ginagawa" kundi pati na rin ang "tumawag kung kailan."
- input_schema (input schema): JSON schema na tumutukoy kung aling mga parameter ang inaasahan ng tool, kung anong uri.
# Depinisyon ng sasakyan (conceptual — JSON schema){ "name": "get_order_status", "description": "Binukuha ang kasalukuyang katayuan sa pagpapadala ng isang order. Tumawag kapag tinanong ng user kung nasaan ang isang order number o kung kailan ito darating.", "input_schema": { "type": "object", "properties": { "order_no": "", "Order_no": { "order_no": {" hal. SP-1024"} }, "kinakailangan": ["order_no"] }}
Mga panuntunan para sa isang mahusay na paglalarawan ng tool: malinaw at maigsi na pangalan, paglalarawan na may "kailan gagamitin", paglalarawan para sa bawat parameter, na inilalagay ang mga talagang mandatoryo sa kinakailangan. Panatilihing nakatutok ang bilang ng mga sasakyan; Dose-dosenang mga katulad na modelo ng sasakyan ang nakakagulat.
lugar
Ano ang ginagawa nito?
magandang halimbawa
masamang halimbawa
pangalan
ID ng sasakyan
order_status_getir
dalhin
paglalarawan
Ano ang ginagawa + kung kailan tatawag
"Ibinabalik ang katayuan ng kargamento; tumawag kapag tinanong ng user kung nasaan ang order"
"kumukuha ng data"
input_schema
Uri ng parameter at kinakailangan
{order_no: string, annotated}
walang diagram / walang paglalarawan
tool_use → tool_result Loop
Ang cycle ay gumagana tulad nito, hakbang-hakbang:
- Ipapadala mo ang tanong ng user + mga paglalarawan ng tool sa modelo.
- Ang modelo ay maaaring direktang tumugon o bumuo ng isang tool_use block: "tumawag sa order_durumu_getir na may order_no=SP-1024."
- Ang iyong application ay aktwal na nagpapatakbo ng tool (nagtatanong sa database).
- Ipapadala mo ang resulta pabalik sa modelo bilang tool_result.
- Sa resultang ito, ang modelo ay maaaring gumawa ng panghuling sagot o tumawag ng isa pang tool. Nagpapatuloy ang pag-ikot hanggang sa sabihin ng modelo na "Tapos na ako."
# Agent loop (conceptual)mensages = [user_question]while True: response = model.uret(messages, tools=tool_definitions) if response.tur == "tool_use": result = harness.run(response.tool_name, response.entry) # APPLICATION ay nagpapatakbo ng mga mensahe += [response, tool_result;break; nagtatapos ang loop
Nag-aalok ang mga modernong SDK ng mga tool runner na nagpapatakbo ng loop na ito para sa iyo; isulat mo lang ang mga function ng tool. Ngunit iyon mismo ang nangyayari sa likod ng mga eksena.
Pamamahala ng Error
Maaaring mabigo ang mga tool: hindi nahanap ang order, nag-time out ang API, invalid ang input. Kung hindi mo maaaring patakbuhin ang tool, ibalik ang error sa modelo bilang isang mapaglarawang tool_result ("error: Order number SP-9999 not found") at ang error flag. Makikita ito ng modelo at malumanay itong ipaliwanag sa user, o sumubok ng ibang paraan. Huwag lunukin ang error at ibalik ang mga walang laman na resulta; Dapat alam ng modelo kung ano ang mali.
Mahina/Malakas na Paglalarawan ng Sasakyan
Mahina (hindi tiyak na pangngalan, walang "kailan"):
pangalan: "data", paglalarawan: "kumuha ng data"# Hindi alam ng modelo kung kailan at paano tatawag; Hindi man lang ito tumatawag o hindi tama ang tawag.
Malakas (net name + when + parameter description):
name: "musteri_bakiyesi_getir"description: "Ibinabalik ang kasalukuyang balanse sa account ng isang customer. Tumawag kapag humihingi ng debit, credit o balanse ang user. HINDI nagbabayad."input_schema: {custeri_id: string ("Customer ID")}# Tumatawag ang modelo sa tamang oras, na may mga tamang parameter, alam ang limitasyon nito.
Tatlong Mini Case
Kaso 1 — Hindi kinakailangang ahente. Isang team ang nagtayo ng negosyong "summarize text" gamit ang isang multi-tool agent; Ang bawat recap ay tumatagal ng 4 na modelong tawag at 9 na segundo. Ang trabaho ay talagang isang one-call na trabaho. Kapag inalis namin ang ahente at binawasan ito sa isang tawag, ang oras ay bumaba sa 1.5 segundo at ang gastos ay bumaba sa isang quarter. Aralin: gamitin ang ahente kung talagang kinakailangan.
Kaso 2 — Mahinang paliwanag, maling tawag. Sa isang ahente ng suporta, random na tinawag ng modelo ang isang hindi kilalang tool na tinatawag na fetch sa parehong tanong sa balanse at tanong sa pagpapadala. Nang hinati ang mga sasakyan sa balance_getir at cargo_durumu_getir at "tumawag kapag" idinagdag ang mga paliwanag, ang maling pagpili ng sasakyan ay bumaba mula 18 hanggang 1 sa 50 halimbawa.
Case 3 — Error swallowed. Ang isang ahente ay nagbabalik ng mga walang laman na resulta nang hindi natagpuan ang order; Isinalin ito ng modelo bilang "naihatid na ang order" at nilinlang ang customer. Kapag ang mensahe ng error ay tahasang isinulat sa tool_result ("order not found"), tama ang sinasabi ng modelo na "Hindi ko mahanap ang numerong ito, maaari mo bang suriin ito?" sinimulan niyang sabihin.
Mga karaniwang pagkakamali
- Ginagawa ang lahat sa isang ahente: Habang ang isang tawag ay sapat, ang ahente ay nagdaragdag ng gastos at pagkaantala.
- Malabong paglalarawan ng sasakyan: Hindi alam ng modelo kung kailan tatawag; mali ang pinipili.
- Iniisip na ang modelo ang nagpapatakbo ng sasakyan: Ang harness ang nagpapatakbo ng sasakyan; gusto lang ng model.
- Paglunok ng error: Dapat alam ng modelo kung ano ang naging mali; Ibigay ang error bilang open tool_result.
- Napakaraming katulad na sasakyan: Nalilito ang modelo; Panatilihing nakatutok at minimal ang toolset.
Pansin: Dahil lang sa sinabi ng modelo na "tawagan ang sasakyang iyon" ay hindi nangangahulugan na dapat gawin ang aksyon. Sa mga mapanirang tool (tanggalin, pag-checkout, email) ang iyong application ay hindi dapat bulag na isagawa ang tawag — ito ang pangunahing paksa ng seguridad sa susunod na yunit.
Sa buod
- Ahente = modelo (desisyon) + tool (function) + loop (tool sa pagtawag, kumuha ng resulta, magpasya muli).
- Ang isang solong pattern na tawag ay hindi isang ahente; Ang ahente ay isang hakbang-hakbang na proseso.
- Hindi pinapatakbo ng modelo ang sasakyan; Ang iyong application ay tumatakbo (harness) at ibinabalik ang resulta bilang tool_result.
- Nakikilala ang tool sa pamamagitan ng pangalan, paglalarawan (partikular na "tumawag kapag"), at input_schema.
- Nagpapatuloy ang loop habang tumatakbo ang tool_use → harness → tool_result → nagpapatuloy ang modelo hanggang sa sabihin ng modelo na "tapos na"; ang mga error ay tahasang iniuulat sa modelo.
Gawain ng aplikasyon
Magdisenyo ng 3 tool mula sa iyong sariling negosyo na maaaring ibigay sa ahente. (1) Sumulat ng pangalan, paglalarawan na may "tawag kung kailan", at input_schema para sa bawat isa; Hayaan ang kahit isa ay isang hindi mapanirang tool sa pagbabasa at ang isa ay isang pagkalkula. (2) Pumili ng isang makatotohanang tanong ng user at manu-manong isulat ang hakbang-hakbang (sa isang loop) kung alin sa mga tool na ito ang tatawagin ng modelo kung aling mga input at kung ano ang gagawin nito pagkatapos dumating ang tool_result. (3) Mag-set up ng senaryo kung saan nabigo ang isa sa mga tool at ipakita kung paano babalik ang mensahe ng error sa modelo.
checklist
- [ ] Maaari kong tukuyin ang ahente bilang "modelo + tool + loop" at magpasya kung kailan ito kinakailangan.
- [ ] Alam ko na ang harness ang nagpapatakbo ng sasakyan, gusto lang ito ng modelo.
- Maaari akong magsulat ng isang solidong paglalarawan ng sasakyan na may [ ] pangalan, paglalarawan ("tawag kapag") at input_schema.
- Maaari kong sundin ang [ ] tool_use → tool_result cycle nang hakbang-hakbang.
- [ ] Iniuulat ko ang mga error sa tool sa modelo bilang bukas na tool_result.