Eining 9 / 11

AI umboðsmenn og verkfæranotkun

Hagnaður:

  • Skilgreina umboðsmann sem 'módel + verkfæri + lykkja' og ákveða hvenær þess er þörf
  • Að skrifa tólaskilgreininguna með nafni, lýsingu og input_schema
  • Eftirlit með flæði og villumeðhöndlun á tool_use og tool_result lykkjunni

Hingað til hefur líkanið alltaf unnið eitt starf: taka á móti textainnslátt, framleiða textasvör. En raunveruleg vinna krefst oft meira en texta; framkvæma útreikning, spyrja gagnagrunn, kalla API, finna út núverandi gengi. Fyrirsætan getur ekki gert þessa hluti sjálf - en hún getur ákveðið hvenær það þarf að gera það og beðið einhvern um að gera þá. Þetta er það sem verkfæranotkun gefur líkaninu og þetta er grundvöllur gervigreindar umboðsmanna. Í þessari einingu munum við læra hvað umboðsmaður er, hvernig tólið er skilgreint og hvernig tool_use lykkjan virkar.

Hvað er umboðsmaður? Gerð + verkfæri + lykkja

Gervigreind umboðsmaður samanstendur af þremur hlutum: líkaninu (heilinn sem tekur ákvörðunina), verkfærunum (aðgerðirnar sem líkanið getur kallað: veður, gagnagrunnsfyrirspurn, senda tölvupóst) og lykkjuna (lykkjan; líkanið kallar á verkfærið, fær niðurstöðuna, ákveður aftur hvað á að gera, og svo framvegis).

Mikilvægur greinarmunur: Eitt mynstursímtal er ekki umboðsmaður. Umboðsmaður er ferli þar sem líkanið heldur áfram skref fyrir skref, í hverju skrefi velur næsta skref út frá verkfærinu. "Hugsaðu eins og maður, notaðu hendurnar, skoðaðu niðurstöðuna, hugsaðu aftur."

Mikilvæg staðreynd: Líkanið sjálft stýrir ekki ökutækinu. Líkanið segir bara "Ég vil kalla þetta tól með þessum inntakum". Forritið þitt (kallað beisli) keyrir tólið og skilar niðurstöðunni í líkanið. Þetta er mikilvægt fyrir öryggi: líkanið snertir ekki kerfið þitt beint; Sérhver aðgerð er undir þinni stjórn.

Ábending: Ekki reyna að leysa öll vandamál með umboðsmanni. Umboðsmaður; eykur hættuna á töfum, kostnaði og mistökum. Spurðu fyrst: "Verður þetta leyst með einu símtali eða föstu verkflæði?" Ef svarið er já, þá er engin þörf á umboðsmanni. Umboðsmaður er fyrir opin verkefni þar sem ekki er hægt að vita skrefin fyrirfram.

Tól Skilgreining: nafn, lýsing, input_schema

Til að kynna tól inn í líkanið gefur þú þrennt:

  • nafn: Auðkenni ökutækis, t.d. fá_veður.
  • lýsing: Hvað verkfærið gerir og hvenær á að kalla það. Þetta er mikilvægasta svæðið sem gerir líkaninu kleift að velja rétt tól á réttum tíma. Skrifaðu ekki bara „hvað gerir“ heldur líka „hringdu hvenær“.
  • input_schema (inntaksskema): JSON skema sem skilgreinir hvaða færibreytur tólið býst við, í hvaða gerð.

# Ökutækisskilgreining (hugmyndalegt — JSON schema){ "name": "get_order_status", "description": "Sækir núverandi sendingarstöðu pöntunar. Hringdu þegar notandinn spyr hvar pöntunarnúmer er eða hvenær það mun berast.", "input_schema": { "type": "object", "properties": { "order_no": "Pantunarnúmer": {"Orderdescription": {:" t.d. SP-1024"} }, "required": ["order_no"] }}

Reglur fyrir góða verkfæralýsingu: skýrt og hnitmiðað nafn, lýsing með „hvenær á að nota“, lýsing fyrir hverja færibreytu, setja þær raunverulegu lögboðnu inn sem krafist er. Haltu fjölda farartækja fókus; Tugir svipaðra bíla koma á óvart.

svæði

Hvað gerir það?

gott dæmi

slæmt dæmi

nafn

Auðkenni ökutækis

order_status_getir

koma með

lýsingu

Hvað það gerir + hvenær á að hringja

"Skýrar farmstöðu; hringdu þegar notandinn spyr hvar pöntunin er"

"sækir gögn"

inntaksskema

Gerð færibreytu og krafa

{pöntunarnr: strengur, með athugasemdum}

engin skýringarmynd / engin lýsing

tool_use → tool_result Lykka

Hringrásin virkar svona, skref fyrir skref:

  1. Þú sendir notendaspurningu + verkfæralýsingu á líkanið.
  2. Líkanið svarar annað hvort beint eða býr til tool_use blokk: "hringdu order_durumu_getir með order_no=SP-1024."
  3. Forritið þitt keyrir í raun tólið (sækir fyrirspurnir um gagnagrunninn).
  4. Þú sendir niðurstöðuna aftur í líkanið sem tool_result.
  5. Með þessari niðurstöðu framleiðir líkanið annað hvort lokasvarið eða kallar á annað tól. Hringrásin heldur áfram þar til líkanið segir "Ég er búinn."

# Umboðslykkja (hugmynda)skilaboð = [user_question] meðan satt: svar = model.uret(skilaboð, tól=tól_skilgreiningar) ef response.tur == "tool_use": niðurstaða = harness.run(response.tool_name, response.entries) # APPLICATION keyrir skilaboð +_= [endurkoma #niðurstaða, útkoma brot: + svar; lykkju endar

Nútíma SDKs bjóða upp á verkfærahlaupara sem keyra þessa lykkju fyrir þig; þú skrifar bara verkfæraaðgerðirnar. En það er einmitt það sem er að gerast á bak við tjöldin.

Villustjórnun

Verkfæri kunna að mistakast: pöntun fannst ekki, API tekur tíma, inntak er ógilt. Ef þú getur ekki keyrt tólið skaltu skila villunni í líkanið sem lýsandi tool_result ("villa: Pöntunarnúmer SP-9999 fannst ekki") og villufánann. Líkanið getur séð þetta og útskýrt það varlega fyrir notandanum, eða reynt aðra leið. Ekki gleypa villuna og skila tómum niðurstöðum; Líkanið verður að vita hvað fór úrskeiðis.

Lýsing á veikum/sterkum ökutæki

Veikt (óákveðið nafnorð, ekkert "hvenær"):

nafn: "gögn", lýsing: "sækir gögn"# Líkanið veit ekki hvenær og hvernig á að hringja; Annað hvort hringir það alls ekki eða hringir vitlaust.

Sterkt (net nafn + þegar + breytulýsing):

name: "musteri_bakiyesi_getir"description: "Skýrir viðskiptareikningsstöðu viðskiptavinar. Hringja þegar notandi biður um debet, kredit eða stöðu. EKKI greiðir."input_schema: {custeri_id: string ("Auðkenni viðskiptavinar")}# Líkanið hringir á réttum tíma, með réttum breytum, vitandi takmörk sín.

Þrjú Mini Cass

Mál 1 - Óþarfur umboðsmaður. Eitt teymi byggði upp „samantektartexta“ viðskiptin með umboðsmanni fjöltóla; Hver samantekt tekur 4 símtöl og 9 sekúndur. Starfið var í raun eins útkallsstarf. Þegar við fjarlægðum umboðsmanninn og fækkuðum því í eitt símtal minnkaði tíminn í 1,5 sekúndur og kostnaðurinn lækkaði í einn fjórðung. Lexía: notaðu umboðsmanninn þegar raunverulega er nauðsynlegt.

Tilfelli 2 — Veik skýring, rangt símtal. Í stuðningsfulltrúa var óljóst tól sem kallast sækja var kallað af handahófi af líkaninu í bæði jafnvægisspurningunni og sendingarspurningunni. Þegar ökutækjunum var skipt í balance_getir og cargo_durumu_getir og „símtal þegar“ skýringum var bætt við, fækkaði rangt ökutækisval úr 18 í 1 af hverjum 50 dæmum.

Tilfelli 3 - Villa gleypt. Umboðsmaður var að skila tómum niðurstöðum þegar pöntunin fannst ekki; Líkanið túlkaði þetta sem „pöntunin var afhent“ og afvegaleiddi viðskiptavininn. Þegar villuboðin eru skrifuð beinlínis á tool_result ("pöntun fannst ekki"), segir líkanið rétt "Ég fann ekki þetta númer, geturðu athugað það?" byrjaði hann að segja.

Algeng mistök

  • Að snúa öllu til umboðsmanns: Þó að eitt símtal sé nóg, bætir umboðsmaðurinn við kostnaði og seinkun.
  • Óljós lýsing á ökutæki: Fyrirmyndin veit ekki hvenær hún á að hringja; velur rangt.
  • Að hugsa um að líkanið reki ökutækið: Beislið rekur ökutækið; módelið vill bara.
  • Að kyngja villunni: Líkanið verður að vita hvað fór úrskeiðis; Gefðu villuna sem open tool_result.
  • Of mörg svipuð farartæki: Gerð ruglast; Haltu verkfærasettinu einbeitt og í lágmarki.
Athugið: Bara vegna þess að líkanið segir „hringdu í það farartæki“ þýðir það ekki að grípa eigi til aðgerða. Í eyðileggjandi verkfærum (eyða, borga, senda tölvupóst) ætti forritið þitt ekki að framkvæma símtalið í blindni - þetta er kjarninn í öryggisatriðinu í næstu einingu.

Í stuttu máli

  • Umboðsmaður = líkan (ákvörðun) + verkfæri (aðgerðir) + lykkja (kalla tól, fá niðurstöðu, ákveða aftur).
  • Eitt mynstursímtal er ekki umboðsmaður; umboðsmaður er skref-fyrir-skref ferli.
  • Líkanið keyrir ekki ökutækið; Forritið þitt keyrir (beisla) og skilar niðurstöðunni sem tool_result.
  • Tólið er auðkennt með nafni, lýsingu (sérstaklega „hringja þegar“) og input_skema.
  • Lykkjan heldur áfram eins og tool_use → belti keyrir → tool_result → líkan heldur áfram þar til líkanið segir "búið"; villur eru skýrt tilkynntar til líkansins.

Umsóknarverkefni

Hannaðu 3 verkfæri úr þínu eigin fyrirtæki sem hægt er að gefa umboðsmanni. (1) Skrifaðu nafn, lýsingu með "símtal þegar" og input_schema fyrir hvert; Láttu að minnsta kosti eitt vera óeyðandi lestrartæki og eitt útreikning. (2) Veldu raunhæfa notendaspurningu og skrifaðu handvirkt skref fyrir skref (í lykkju) hvaða af þessum verkfærum líkanið mun kalla með hvaða inntak og hvað það mun gera eftir að tool_result kemur. (3) Settu upp atburðarás þar sem eitt af verkfærunum bilar og sýndu hvernig villuboðin munu fara aftur í líkanið.

gátlisti

  • [ ] Ég get skilgreint umboðsmanninn sem "módel + verkfæri + lykkja" og ákveðið hvenær þess er þörf.
  • [ ] Ég veit að beislið keyrir ökutækið, módelið vill það bara.
  • Ég get skrifað trausta farartækislýsingu með [ ] nafni, lýsingu ("hringja þegar") og input_schema.
  • Ég get fylgst með [ ] tool_use → tool_result lotunni skref fyrir skref.
  • [ ] Ég tilkynni verkfæravillur til líkansins sem open tool_result.