Það sem við lærðum af útgáfu með ChatGPT Apps SDK

Reynsla af útgáfu með ChatGPT Apps SDK sýnir hvenær högun þess hentar og hvar meiri stjórnunar er þörf.

Samantekt fyrir stjórnendur

  • Apps SDK er hagnýtur kostur ef þú þarft fljótlega verkflæði í ChatGPT eða vilt prófa verkfærin þín þar áður en þú fjárfestir í sérsniðnum tæknistafli fyrir fulltrúa. Ef þú þarft að stjórna hverju skrefi í hegðun fulltrúans er það yfirleitt ekki rétti kosturinn.

  • Veldu Apps SDK þegar ChatGPT á að vera aðalviðmótið og þú vilt verkfæri og fáa, einfalda viðmótsþætti án þess að smíða heila spjallvöru. Veldu eigin tæknistafla fyrir fulltrúa þegar þú þarft nána stjórn á flæði, minni, kvaðningum og skrifaðgerðum.

  • Apps SDK hentar vörum sem blanda spjalli saman við fá, stutt viðmótsskref. Þú kemur vörunni fyrr út en gefur eftir hluta af stjórninni.

  • Það sem virkaði hjá okkur voru skýr verkfæri, skýr hegðun græja og skýr næstu skref. Við létum þetta stýra flæðinu, ekki LLM. Líkanið kom að mestu gagni við að útskýra niðurstöður sem kerfið hafði þegar valið.

  • Hér á eftir: fyrst hvernig velja skal, síðan hvað virkaði og hvað ekki.

Flest teymi keyra enn aðeins tilraunaverkefni með gervigreind eða nota hana í jaðartilvikum þar sem bæði áhætta og ávinningur eru lítil. Fá þeirra gefa út vöru sem er rekstrinum mikilvæg og notendur nýta í hverri viku. ChatGPT Apps SDK er ein leið til að brúa þetta bil ef markmiðið er að koma lausninni inn í ChatGPT í stað þess að smíða allan aðstoðarmanninn sjálf.

Hvers vegna við notuðum Apps SDK

Lærdómurinn byggist á verkefni fyrir viðskiptavin þar sem kröfurnar kölluðu á ChatGPT sem aðalviðmót og hraða leið sem krafðist ekki fjármögnunar á fullkomlega sérsniðinni spjallvöru.

Apps SDK féll að þessum kröfum því viðskiptavinurinn þurfti:

  • Enga sérstaka spjallvöru sem þyrfti að smíða og hýsa—hann vildi ná til notenda innan ChatGPT, ekki búa til enn eina sjálfstæða umgjörð um aðstoðarmann.

  • Spjall ásamt litlu, verkefnamiðuðu viðmóti—fá afmörkuð skref í græju, ekki aðra heila vöru inni í verkflæðinu.

  • Bakendavirkni aðgengileg með MCP-verkfærum—stöðluð verkfæraköll, ekki sérsniðið keyrsluumhverfi fulltrúa sem viðskiptavinurinn ræki frá upphafi til enda.

  • Uppgötvun innan ChatGPT—notendur ættu að finna verkflæðið þar sem þeir vinna nú þegar.

Við sannreyndum þessar ákvarðanir með viðskiptavininum jafnóðum og við smíðuðum lausnina. Málamiðlunin stendur þó: þegar ChatGPT hýsir setuna stjórnar þú ekki ytra keyrsluumhverfinu. Þú leiðbeinir því en stjórnar því ekki að fullu.

Það sem Apps SDK býður upp á

Apps SDK-forrit tengir saman þrennt:

  1. Keyrsluumhverfi fulltrúa í ChatGPT

  2. MCP-verkfærin þín

  3. Notendaviðmót græjunnar þinnar

Flæðið í framkvæmd:

  1. Notandinn biður ChatGPT um eitthvað.

  2. ChatGPT kann að kalla í eitt af MCP-verkfærunum þínum.

  3. Þjónninn þinn skilar skipulagðri niðurstöðu verkfærakallsins.

  4. ChatGPT les niðurstöðuna og velur næsta skref: fleiri verkfæraköll, svar til notandans eða hvort tveggja. Ef græja er tengd verkfærinu getur hún birst í þessari umferð.

  5. Notandinn heldur áfram í spjallinu eða græjunni, með framhaldstexta, vali eða verkfærakalli sem græjan ræsir. Þá uppfærist þráðurinn, ChatGPT keyrir aðra umferð og skref 2–4 endurtaka sig þar til verkefninu er lokið.

Kjarninn er einmitt þessi blanda af spjalli, bakendaaðgerðum og stuttum viðmótsskrefum. Það þýðir líka að viðkvæmustu hlutarnir eru skilin milli spjalls, verkfæra og viðmóts.

Þú þarft ekki að endursmíða spjallviðmót, verkfæratengingar, auðkenningarmynstur eða umgjörð græjunnar frá grunni. Fyrir margar vörur styttir þetta þróunartímann verulega svo þú getur einbeitt þér að sértækri virkni og varnarreglum.

Að byggja innan ChatGPT er ekki það sama og að keyra eigin fulltrúa. Erfiðasti hluti verkefnisins var ekki brellur við gerð kvaðninga. Hann fólst í að gera verkfæri, græjur og næstu skref nógu skýr til að líkanið og viðmótið héldust samstíga.

Hvernig skal velja

Apps SDK gefur vörunni annað form en hefðbundinn framendi, en mikilvægt er að vita við hvaða aðstæður það hentar best.

Notaðu Apps SDK þegar þú vilt

  • Gefa hratt út verkflæði fyrir ChatGPT.

  • Láta ChatGPT hýsa samtalið.

  • Sameina eðlilegt mál og fá, afmörkuð viðmótsskref.

  • Komast hjá því að smíða eigið spjallviðmót, umgjörð fulltrúa og uppgötvunarleið.

Síðasta atriðið skiptir máli þegar notendurnir eru þegar í ChatGPT.

Smíðaðu eigin fulltrúa þegar þú þarft

  • Fast, skrefaskipt flæði sem þú getur framfylgt í kóða.

  • Sérsniðið viðmót og staðfestingarferli sem þú stjórnar frá upphafi til enda.

  • Eigið líkan fyrir minni og stöðu.

  • Hegðun sem verður að vera fyrirsjáanleg í hverri keyrslu.

  • Rakningar, annálar og mælingar fyrir fulltrúann.

Ef áætlanagerðin, kerfiskvaðningarnar og allt verkflæðið eru varan þín hentar sérsniðinn tæknistafli yfirleitt betur.

Málamiðlanir í hnotskurn

Spurning

ChatGPT Apps SDK

Eigin fulltrúar

Hvar fer upplifunin fram?

Innan ChatGPT

Í vörunni þinni

Hver stýrir skrefum samtalsins?

ChatGPT, undir leiðsögn verkfæra og viðmótsins þíns

Fulltrúakerfið þitt

Hve mikið viðmót smíðar þú?

Afmarkaðar græjur í spjallinu

Allt sem þú þarft

Hve mikla stjórn hefur þú á kvaðningum?

Óbeina

Fulla

Hve auðvelt er að útfæra föst, endurtekningarhæf flæði?

Krefst vandaðrar hönnunar

Auðveldara að framfylgja í kóða

Tími fram að fyrstu útgáfu

Oft styttri

Oft lengri í upphafi

Vinna við verkvang sem þú berð ábyrgð á

Minni

Meiri

Svigrúm til að breyta um stefnu síðar

Minni

Meiri

Í verkefninu kom eitt orð sífellt upp: stjórn. Annars vegar hraði og kunnuglegur hýsingaraðili, hins vegar aðeins að hluta til yfirráð yfir keyrsluumhverfinu. Þetta var málamiðlunin sem viðskiptavinurinn samþykkti þegar hann valdi að hitta notendur í ChatGPT fremur en að stjórna öllum tæknistaflanum.

Hvar vandinn liggur

Eðlilega flæðið hljómar einfalt: notandinn biður um eitthvað, verkfærið keyrir, gögnin berast og græjan birtist þegar velja þarf.

Í framkvæmd reyndust skilin milli kerfishluta erfiðust. Græja er ekki skraut. Um leið og hún birtist á skjánum breytir hún því sem líkanið sér og gerir næst. Meðhöndlaðu aðgerðir græju sem nafngreinda atburði, ekki óformlegt spjall.

Tæknistaflinn í verkefninu var einfaldur: FastMCP, Pydantic, React og TypeScript. Samþætting þess gekk vel. Vinnan fólst í að láta líkanið, verkfærin og viðmótið sammælast um næsta skref.

Það sem virkaði

Gerðu hver skil augljós

Við hættum að meðhöndla niðurstöður verkfærakalla sem hrá gögn frá bakenda. Hvert svar varð að skýrum skilum milli kerfishluta.

Góð niðurstaða verkfærakalls:

  • Gefur græjunni það sem hún þarf til að birtast rétt.

  • Gefur ChatGPT skipulagðar staðreyndir sem svarið getur byggst á.

  • Þegar flæðið krefst þess tilgreinir hún næsta skref svo líkanið þurfi ekki að giska.

Aðgerðir græjunnar ættu ekki að senda óljóst mál aftur inn í þráðinn. Þær ættu að tilgreina hvað notandinn gerði og hvað eigi að gerast næst.

Áreiðanleikinn jókst þegar skilin urðu skýr.

Líkanið fylgir stuttum og skýrum fyrirmælum þegar þau eru í úttaki verkfærisins og aðgerðum græjunnar.

Hér fyrir neðan er lítið Pydantic-gagnasnið sem við notuðum. Reiturinn output geymir skipulögðu gögnin sem græjan þarf þegar hún er sýnd og staðreyndirnar sem ChatGPT á að nota í setunni. Reiturinn agent_directions geymir stutta línu sem segir hvað aðstoðarmaðurinn á að gera næst. Reason er valfrjálst.

Python

from typing import Generic, TypeVar
from pydantic import BaseModel
T = TypeVar("T")
class AgentDirections(BaseModel): assistant_instruction: str reason: str | None = None
class ToolResults(BaseModel, Generic[T]): agent_directions: AgentDirections output: T

Hafðu græjur litlar

Græjurnar sem virkuðu sáu um eina ákvörðun og skiluðu síðan stjórninni aftur. Stuttir listar, staðfestingar eða hnitmiðaður yfirferðarskjár virkuðu betur en að breyta græjunni í smáforrit. Einföld rökvísi í græjunni, svo sem grunnstaðfesting eða fast næsta skref, hjálpaði þó þegar við vildum gera flæðið fyrirsjáanlegra.

Þriðja persóna í skilaboðum græju

Við hættum að skrifa framhaldsskilaboð græjunnar eins og spjall frá notandanum („I selected…,“ „I confirmed…“). Við skrifuðum þau sem stuttar lýsingar á því sem notandinn gerði („The user selected…,“ „The user confirmed…“). Við prófuðum þessa aðferð vegna þess að ChatGPT bætti skilaboðum græjunnar við sem verkfæraskilaboðum en ekki notandaskilaboðum.

Beinar aðgerðir þegar næsta skref er augljóst

Ef hnappur gaf næsta verkfærakall skýrt til kynna virkaði betur að láta græjuna ræsa það beint en að knýja fram aðra spjallumferð. Þetta á aðeins við ef næsta verkfærakall þarf ekki inntak frá ChatGPT.

Þetta auðveldaði að framfylgja fyrirsjáanlegu flæði og minnkaði líka biðtíma með því að sleppa annarri spjallumferð.

Meðhöndlun villna

Þegar verkfærakall mistókst skiluðum við réttum MCP-villukóðum og stuttum, skýrum skilaboðum frá verkfærinu. Þá fékk ChatGPT raunverulegar upplýsingar um misheppnuð köll og gat útskýrt vandann fyrir notandanum og/eða valið skynsamlegt næsta skref.

Stjórnun samhengis verkfæra

Við geymdum stöðu setunnar á þjóninum okkar. ChatGPT sendir setubundið samhengi með verkfæraköllum. Í FastMCP gáfum við hverju verkfæri Context-færibreytu svo meðhöndlarinn gæti lesið og uppfært stöðuna.

  • Stöðug auðkenni og fyrri niðurstöður voru geymd í setunni í stað þess að láta ChatGPT senda þau aftur sem verkfærisbreytur í hverju kalli.

  • Þegar verkfæraköll festust í lykkju gátum við greint tvítekin köll og skilað skýrri villu í niðurstöðu verkfærisins.

  • Setuannálar voru geymdir hjá okkur til villuleitar og þjónustu.

Það sem virkaði ekki

Að ætla að líkanið myndi álykta næsta skref

Í upphafi birtum við græju, gerðum ráð fyrir að líkanið „skildi þetta“ og biðum eftir rétta framhaldsverkfærakallinu. Stundum gerðist það. Oft gerðist það ekki.

Án skýrra skila gat ChatGPT tekið saman upplýsingar þegar við vildum aðgerð, beðið notandann að endurtaka val sitt eða haldið áfram að áætla þegar það átti að hætta.

Lausnin var að tilgreina næsta skref í skipulögðum úttökum og gögnum græjunnar í stað þess að vona að líkanið ályktaði það.

Að dreifa merkingunni milli laga

Við reyndum að vera útsjónarsöm við að skipta svörum milli verkfæraúttaks, falinna lýsigagna og spjalltexta í samræmi við skjöl Apps SDK. En græjurnar gátu ekki lesið falin lýsigögn. Því gátum við ekki notað þessa aðferð.

Að fela verkfæri fyrir líkaninu

Í skjölum Apps SDK er lýst verkfærum sem má halda utan verkfæralista fulltrúans svo hann velji þau ekki, en kalla samt í þau úr græjunni. Þegar við stilltum sýnileikann á app-only urðu verkfærin einnig óaðgengileg úr græjunni, ekki aðeins fulltrúanum. Okkur tókst aldrei að setja þetta upp þannig að fulltrúinn sæi ekki verkfærin en græjan sæi þau.

Ófullnægjandi villuskilaboð

Þögn eða almennt „tókst“ þegar ekkert gagnlegt gerðist var verra en skýr villa. Því meðhöndluðum við bilanir í verkfærum og græjum sem fullgild úttök: ef ekki var hægt að halda áfram sögðum við það skýrt og skiluðum ótvíræðri villu í stað þess að láta notendur horfa á græju sem birtist en kom þeim ekkert áfram. Þetta bætti notagildi og gerði hegðun líkansins áreiðanlegri.

Lokaorð

Ef markmiðið er verkflæði í ChatGPT með minni sérsniðinni vinnu við verkvanginn er Apps SDK hagnýt leið að því marki. Þú gefur eftir hluta af stjórninni í skiptum fyrir hraða og að ná til notenda þar sem þeir vinna nú þegar.

Ef þú þarft að stjórna hverri grein flæðisins, viðmótinu og því hver ákveður hvert skref skaltu gera ráð fyrir eigin tæknistafli fyrir fulltrúa frá upphafi. Líklega vex varan upp úr því að vera aðeins smíðuð innan ChatGPT.

Þú getur einnig notað Apps SDK til að keyra MCP-þjóninn þinn innan ChatGPT áður en þú smíðar spjall, auðkenningu og tengingar fulltrúa, og síðan fært þig yfir í eigin tæknistafla þegar varan krefst þess.

Næsta skref fyrir teymi í sömu stöðu er að velja eitt verkflæði með skýrri niðurstöðu, skrá skilin milli spjalls, verkfæra og græja og álagsprófa síðan endurtilraunir og villur áður en miklum tíma er varið í fínstillingu kvaðninga.

Höfundur

Malan Evans