Apps SDK on praktiline valik, kui vajate peagi ChatGPT-s töötavat töövoogu või soovite oma tööriistu seal katsetada, enne kui investeerite kohandatud agentide tehnoloogiapinusse. Kui peate agenti igal sammul täielikult juhtima, siis see tavaliselt ei sobi.
Valige Apps SDK, kui peamine kasutuskeskkond peaks olema ChatGPT ning soovite kasutada tööriistu ja väikseid kasutajaliidese elemente ilma terviklikku vestlustoodet loomata. Valige oma agentide tehnoloogiapinu, kui vajate täpset kontrolli voo, mälu, viipade ja kirjutustoimingute üle.
Apps SDK sobib toodetele, mis ühendavad vestluse mõne lühikese kasutajaliidese etapiga. Saate lahenduse kiiremini välja anda, kuid loobute osast kontrollist.
Meie puhul tagasid edu selgelt määratletud tööriistad, vidinate käitumine ja järgmised sammud. Voo kujundamisel tuginesime neile, mitte LLM-ile. Mudel oli kõige kasulikum siis, kui selgitas süsteemi juba tehtud valikute tulemusi.
Allpool selgitame esmalt, kuidas valida, ning seejärel, mis toimis ja mis mitte.
Enamik meeskondi piirdub endiselt tehisintellekti katseprojektidega või kasutab seda väikese riski ja tuluga kõrvalistes valdkondades. Vähesed annavad välja ärikriitilise toote, mida kasutajad igal nädalal kasutavad. ChatGPT Apps SDK aitab seda lõhet vähendada, kui soovite jõuda ChatGPT-sse, mitte kogu assistenti ise ehitada.
Meie õppetunnid pärinevad kliendiprojektist, mille nõuete järgi pidi peamine kasutuskeskkond olema ChatGPT ning lahendus tuli kiiresti kasutusele võtta, ilma et klient peaks rahastama täiesti kohandatud vestlustoodet.
Apps SDK vastas neile tingimustele, sest klient vajas järgmist:
Puudus vajadus luua ja majutada eraldi vestlustoodet — klient soovis jõuda kasutajateni ChatGPT-s, mitte pakkuda järjekordset eraldiseisvat assistendiliidest.
Vestlus koos väikese ülesandepõhise kasutajaliidesega — mõni konkreetne vidinaetapp, mitte teine terviktoode töövoo sees.
MCP-tööriistade kaudu kättesaadav tagasüsteemi loogika — standardsed tööriistakutsed, mitte täielikult kliendi hallatav kohandatud agendi käituskeskkond.
Leitavus ChatGPT-s — kasutajad peaksid töövooga kokku puutuma keskkonnas, kus nad juba töötavad.
Kontrollisime neid valikuid arenduse käigus koos kliendiga. Kompromiss jääb siiski samaks: kui seanssi majutab ChatGPT, ei kuulu väline käituskeskkond teile. Saate seda suunata, kuid mitte täielikult juhtida.
Apps SDK rakendus ühendab kolm komponenti:
ChatGPT agendi käituskeskkond
Teie MCP-tööriistad
Teie vidina kasutajaliides
Praktiline töövoog:
Kasutaja küsib ChatGPT-lt midagi.
ChatGPT võib kutsuda mõnda teie MCP-tööriista.
Teie server tagastab struktureeritud tööriistatulemuse.
ChatGPT loeb tulemust ja otsustab järgmise sammu: uued tööriistakutsed, vastus kasutajale või mõlemad. Kui sidusite selle tööriistaga vidina, võidakse seda selles vestlusvoorus kuvada.
Kasutaja jätkab vestluses või vidinas, sisestades täpsustava teksti, tehes valiku või käivitades vidinast tööriistakutse. See värskendab vestluslõime; ChatGPT alustab uut vooru ning samme 2–4 korratakse, kuni ülesanne on valmis.
Asja mõte ongi ühendada vestlus, tagasüsteemi toimingud ja lühikesed kasutajaliidese etapid. See tähendab ka, et kõige hapramad kohad on vestluse, tööriistade ja kasutajaliidese vahelised üleminekud.
Te ei pea vestlusliidest, tööriistade ühendusi, autentimismustreid ega vidinakesta nullist looma. Paljude toodete puhul lühendab see arendusaega märgatavalt, võimaldades keskenduda valdkonnaloogikale ja kaitsemeetmetele.
ChatGPT sees arendamine ei ole sama mis oma agendi käitamine. Projekti keerukaim osa ei olnud viipadega trikitamine. Tööriistad, vidinad ja järgmised sammud tuli määratleda piisavalt selgelt, et mudel ja kasutajaliides püsiksid kooskõlas.
Apps SDK pakub tavapärasest kasutajaliidesest erinevat tootevormi, kuid oluline on teada, millistesse olukordadesse see kõige paremini sobib.
Kasutage Apps SDK-d, kui soovite
ChatGPT töövoo kiiresti välja anda.
Lasta ChatGPT-l vestlust majutada.
Ühendada loomulik keel mõne konkreetse kasutajaliidese etapiga.
Vältida oma vestlusliidese, agendikonteineri ja leitavuslahenduse loomist.
Viimane punkt on oluline, kui kasutajad juba veedavad oma tööpäeva ChatGPT-s.
Looge oma agent, kui vajate
Kindlat samm-sammulist voogu, mille järgimist saab koodis jõustada.
Kohandatud kasutajaliidest ja kinnitusvoogu, mida juhite algusest lõpuni.
Oma mälu- ja olekumudelit.
Igal käituskorral prognoositavat käitumist.
Agendi jälgi, logisid ja mõõdikuid.
Kui plaanija, süsteemiviibad ja kogu töövoog moodustavad teie toote, sobib tavaliselt paremini kohandatud tehnoloogiapinu.
Küsimus | ChatGPT Apps SDK | Teie enda agendid |
|---|---|---|
Kus kasutuskogemus paikneb? | ChatGPT sees | Teie tootes |
Kes juhib vestluse etappe? | ChatGPT, mida suunavad teie tööriistad ja kasutajaliides | Teie agendisüsteem |
Kui mahuka kasutajaliidese loote? | Konkreetsed vidinad vestluses | Nii mahuka kui vaja |
Kui palju saate viipasid kontrollida? | Kaudselt | Täielikult |
Kui lihtne on luua kindlaid ja korratavaid vooge? | Nõuab hoolikat kavandamist | Koodis on neid lihtsam jõustada |
Aeg esimese versiooni väljalaskmiseni | Sageli lühem | Alguses sageli pikem |
Teie hallatava platvormitöö maht | Väiksem | Suurem |
Võimalus hiljem suunda muuta | Väiksem | Suurem |
Meie projektis kerkis ikka ja jälle esile kontroll: ühel pool kiirus ja tuttav majutuskeskkond, teisel pool vaid osaline kontroll käituskeskkonna üle. Klient nõustus selle kompromissiga, sest pidas kasutajateni ChatGPT-s jõudmist olulisemaks kui kogu tehnoloogiapinu omamist.
Ideaalne töövoog kõlab lihtsalt: kasutaja küsib, tööriist käivitub, andmed tagastatakse ja valiku tegemise hetkel ilmub vidin.
Praktikas tekitasid raskusi üleminekud. Vidin ei ole kaunistus. Kui see ekraanile ilmub, mõjutab see mudeli nähtavat teavet ja järgmisi toiminguid. Käsitlege vidinatoiminguid nimega sündmuste, mitte vaba vestlusena.
Projektis kasutatud tehnoloogiapinu oli lihtne: FastMCP, Pydantic, React ja TypeScript. Nende lõimimine kulges hästi. Tegelik töö seisnes selles, et mudel, tööriistad ja kasutajaliides oleksid järgmise sammu suhtes ühel meelel.
Muutke iga üleminek üheselt mõistetavaks
Lõpetasime tööriistatulemuste käsitlemise tagasüsteemi toorandmetena. Igast tagastusest sai selge üleminek.
Hea tööriistatulemus:
Annab vidinale renderdamiseks vajaliku teabe.
Annab ChatGPT-le struktureeritud faktid, millele vastus rajada.
Kui voog seda vajab, ütleb see ette järgmise sammu, et mudel ei peaks arvama.
Vidinatoimingud ei tohiks saata vestluslõime ebamäärast teksti. Need peaksid ütlema, mida kasutaja tegi ja mis peab järgmisena juhtuma.
Selged üleminekud suurendasid töökindlust.
Mudel järgib lühikesi ja selgeid juhiseid, kui need sisalduvad tööriista väljundis ja vidinatoimingutes.
Allpool on meie kasutatud väike Pydanticu struktuur. Väli output sisaldab vidina kuvamiseks vajalikke struktureeritud andmeid ja fakte, mida ChatGPT peaks seansi ajal kasutama. Väli agent_directions sisaldab lühikest juhist selle kohta, mida assistent peaks järgmisena tegema. Reason on valikuline.
Python
Hoidke vidinad väikesed
Toimivad vidinad võimaldasid teha ühe otsuse ja andsid seejärel juhtimise tagasi. Lühikesed loendid, kinnitused või kompaktne ülevaatekuva toimisid paremini kui vidina muutmine minirakenduseks. Kui soovisime muuta voo deterministlikumaks, oli abi ka vähesest vidinaloogikast, näiteks lihtsast valideerimisest või fikseeritud järgmisest sammust.
Kolmas isik vidinasõnumites
Lõpetasime vidina järelteadete kirjutamise kasutaja vestlussõnumitena („I selected…”, „I confirmed…”). Kirjutasime need hoopis lühikeste aruannetena kasutaja tegevusest („The user selected…”, „The user confirmed…”). Proovisime seda lähenemist, sest ChatGPT lisas vidinasõnumeid tööriista-, mitte kasutajasõnumitena.
Otsetoimingud, kui järgmine samm on ilmne
Kui nupp viitas selgelt järgmisele tööriistakutsele, toimis selle käivitamine otse vidinast paremini kui uue vestlusvooru nõudmine. See sobib ainult siis, kui järgmine tööriistakutse ei vaja ChatGPT-lt sisendandmeid.
See aitas deterministlikke vooge jõustada ja vähendas latentsust, sest uus vestlusvoor jäi ära.
Veakäsitlus
Kui tööriistakutse nurjus, tagastasime tööriistast õiged MCP veakoodid ja lühikesed lihtsad teated. Nii sai ChatGPT nurjunud kutse kohta tegelikku teavet lugeda, kasutajale probleemi selgitada ja/või valida mõistliku järgmise sammu.
Tööriistakonteksti haldamine
Hoidsime seansi olekut oma serveris. ChatGPT saadab tööriistakutsetega seansipõhise konteksti; FastMCP-s andsime igale tööriistale parameetri Context, et töötleja saaks seda olekut lugeda ja värskendada.
Püsivad ID-d ja varasemad tulemused jäid seanssi, selle asemel et paluda ChatGPT-l need iga kutsega uuesti tööriista argumentidena edastada.
Kui tekkisid tööriistakutsete tsüklid, saime korduvad kutsed tuvastada ja tööriistatulemuse kaudu selge vea tagastada.
Seansilogid jäid silumiseks ja toe pakkumiseks meie poolele.
Alguses kuvasime vidina, eeldasime, et mudel „sai aru”, ja ootasime õiget järgmist tööriistakutset. Mõnikord see juhtus. Sageli mitte.
Selge ülemineku puudumisel võis ChatGPT teha kokkuvõtte, kui ootasime toimingut, paluda kasutajal valikut korrata või jätkata plaanimist, kuigi oleks pidanud peatuma.
Lahendus oli kirjutada järgmine samm selgelt struktureeritud väljunditesse ja vidina andmetesse, mitte loota, et mudel selle ise tuletab.
Proovisime Apps SDK dokumentatsiooni järgi jagada vastused nutikalt tööriista väljundi, peidetud metaandmete ja vestlusteksti vahel. Vidinad ei saanud aga peidetud metaandmeid lugeda. Seetõttu ei saanud me seda lahendust kasutada.
Apps SDK dokumentatsioon kirjeldab tööriistu, mille saab agendi tööriistaloendist välja jätta, et agent neid ei valiks, kuid mida saab siiski vidinast kutsuda. Kui määrasime nähtavuseks app-only, kadusid need tööriistad lisaks agendile ka vidina jaoks. Meil ei õnnestunud luua seadistust, kus agent tööriista ei näinud, kuid vidin nägi.
Vaikus või üldine „õnnestumine”, kui midagi kasulikku ei juhtunud, oli hullem kui otsene veateade. Seetõttu käsitlesime tööriista- ja vidinatõrkeid täisväärtuslike väljunditena: kui sammu ei saanud jätkata, ütlesime seda lihtsas keeles ja tagastasime selge vea, selle asemel et jätta kasutaja vaatama renderdatud vidinat, mis teda edasi ei aidanud. See parandas kasutatavust ja muutis mudeli käitumise töökindlamaks.
Kui soovite ChatGPT-s töövoogu, mis nõuab vähem kohandatud platvormitööd, on Apps SDK selleks praktiline lahendus. Loobute osast kontrollist, kuid võidate kiiruses ja jõuate kasutajateni keskkonnas, kus nad juba töötavad.
Kui peate juhtima voo iga haru, kasutajaliidest ja iga sammu üle otsustajat, kavandage kohe algusest peale oma agentide tehnoloogiapinu. Tõenäoliselt kasvate ainult ChatGPT sees arendamisest välja.
Apps SDK võimaldab käitada MCP-serverit ChatGPT sees enne, kui loote ise vestluse, autentimise ja agendi ühenduskihid, ning viia lahenduse hiljem oma tehnoloogiapinule, kui toode seda vajab.
Sarnases olukorras meeskondade järgmine samm: valige üks selge tulemusega töövoog, kirjeldage vestluse, tööriistade ja vidinate vahelisi üleminekuid ning koormustestige korduskatseid ja vigu, enne kui kulutate palju aega viipade häälestamisele.