Apps SDK ir praktiska izvēle, ja drīzumā vajadzīga darbplūsma platformā ChatGPT vai vēlaties tajā izmēģināt savus rīkus, pirms ieguldāt pielāgotā aģentu tehnoloģiju kopā. Taču parasti tā nav īstā izvēle, ja jums pilnībā jākontrolē katrs aģenta darbības posms.
Izvēlieties Apps SDK, ja galvenajai saskarnei jābūt ChatGPT un vēlaties izmantot rīkus un nelielus lietotāja saskarnes elementus, neveidojot pilnvērtīgu tērzēšanas produktu. Veidojiet savu aģentu tehnoloģiju kopu, ja stingri jākontrolē darbplūsma, atmiņa, uzvednes un datu ierakstīšana.
Apps SDK ir piemērots produktiem, kuros tērzēšana apvienota ar dažiem īsiem lietotāja saskarnes posmiem. Produktu var izlaist ātrāk, taču jāatsakās no daļas kontroles.
Mums palīdzēja skaidri definēti rīki, logrīku darbība un nākamie soļi. Darbplūsmas noteikšanai paļāvāmies uz tiem, nevis uz LVM. Modelis visvairāk noderēja, skaidrojot sistēmas jau izvēlētos rezultātus.
Tālāk skaidrojam, kā izvēlēties un kas darbojās vai nedarbojās.
Vairums komandu joprojām īsteno tikai MI pilotprojektus vai izmanto MI mazsvarīgiem uzdevumiem ar zemu riska un ieguvuma attiecību. Tikai dažas izlaiž uzņēmumam kritiski svarīgu produktu, ko lietotāji izmanto ik nedēļu. ChatGPT Apps SDK ir viens no veidiem, kā mazināt šo plaisu, ja vēlaties savu risinājumu ieviest platformā ChatGPT, nevis patstāvīgi veidot visu asistentu.
Atziņas guvām darbā ar klientu, kura prasības paredzēja ChatGPT kā galveno saskarni un ātru risinājuma ieviešanu bez nepieciešamības finansēt pilnībā pielāgota tērzēšanas produkta izstrādi.
Apps SDK atbilda šim uzdevumam, jo klientam bija vajadzīgs tālāk minētais.
Nav jāveido un jāmitina atsevišķs tērzēšanas produkts — klients vēlējās sasniegt lietotājus platformā ChatGPT, nevis radīt vēl vienu savrupu asistenta ietvaru.
Tērzēšana un neliela, konkrētiem uzdevumiem paredzēta saskarne — daži mērķtiecīgi logrīku posmi, nevis vēl viens pilnvērtīgs produkts darbplūsmā.
Aizmugursistēmas funkcijas, kas pieejamas ar MCP rīkiem — standarta rīku izsaukšana, nevis pilnībā pārvaldīta pielāgota aģenta izpildvide.
Atrodamība platformā ChatGPT — lietotājiem darbplūsma jāatrod vidē, kurā viņi jau strādā.
Izstrādes gaitā šīs izvēles pārbaudījām kopā ar klientu. Kompromiss saglabājas: ja sesiju mitina ChatGPT, ārējā izpildvide nav jūsu kontrolē. Varat to virzīt, bet nevarat pilnībā kontrolēt.
Apps SDK lietotne savieno trīs elementus:
ChatGPT aģenta izpildvidi
jūsu MCP rīkus
jūsu logrīka lietotāja saskarni
Darbplūsma praksē:
Lietotājs kaut ko lūdz platformai ChatGPT.
ChatGPT var izsaukt kādu no jūsu MCP rīkiem.
Jūsu serveris atgriež strukturētu rīka rezultātu.
ChatGPT nolasa rezultātu un izvēlas nākamo soli: papildu rīku izsaukumus, atbildi lietotājam vai abus. Ja šim rīkam ir piesaistīts logrīks, tas var tikt parādīts šajā mijiedarbības reizē.
Lietotājs turpina tērzēšanā vai logrīkā, ievadot papildu tekstu, izdarot izvēli vai aktivizējot rīka izsaukumu no logrīka. Tādējādi pavediens tiek atjaunināts; ChatGPT veic nākamo mijiedarbības ciklu, un 2.–4. darbība atkārtojas, līdz uzdevums ir pabeigts.
Būtība ir tieši šajā tērzēšanas, aizmugursistēmas darbību un īsu saskarnes posmu apvienojumā. Tas nozīmē arī to, ka trauslākās vietas ir pārejas starp tērzēšanu, rīkiem un lietotāja saskarni.
Nav no jauna jāveido tērzēšanas saskarne, rīku savienojumi, autentifikācijas risinājumi vai logrīka ietvars. Daudziem produktiem tas būtiski saīsina izstrādi, ļaujot pievērsties jomas loģikai un drošības ierobežojumiem.
Veidot risinājumu platformā ChatGPT nav tas pats, kas darbināt savu aģentu. Sarežģītākā projekta daļa nebija viltīgas uzvednes. Bija pietiekami skaidri jādefinē rīki, logrīki un nākamie soļi, lai modelis un lietotāja saskarne darbotos saskaņoti.
Apps SDK piedāvā no ierastās priekšgalsistēmas atšķirīgu produkta formu, tāpēc ir svarīgi zināt, kādiem scenārijiem tas ir vispiemērotākais.
Izmantojiet Apps SDK, ja vēlaties:
ātri izlaist ChatGPT darbplūsmu;
ļaut ChatGPT mitināt sarunu;
apvienot dabisko valodu ar dažiem mērķtiecīgiem lietotāja saskarnes posmiem;
izvairīties no savas tērzēšanas saskarnes, aģenta konteinera un risinājuma atrašanas mehānisma izveides.
Pēdējais punkts ir īpaši svarīgs, ja lietotāji jau ikdienā izmanto ChatGPT.
Veidojiet savu aģentu, ja jums vajadzīga:
fiksēta, secīga darbplūsma, kuru var noteikt programmas kodā;
pielāgota saskarne un pilnībā jūsu kontrolēts apstiprināšanas process;
sava atmiņas un stāvokļa sistēma;
paredzama darbība katrā izpildes reizē;
aģenta trasējumi, žurnāli un metrika.
Ja plānotājs, sistēmas uzvednes un visa darbplūsma ir jūsu produkta pamatā, parasti piemērotāka ir pielāgota tehnoloģiju kopa.
Jautājums | ChatGPT Apps SDK | Jūsu aģenti |
|---|---|---|
Kur lietotājs mijiedarbojas ar risinājumu? | Platformā ChatGPT | Jūsu produktā |
Kas vada sarunas posmus? | ChatGPT, ko virza jūsu rīki un saskarne | Jūsu aģentu sistēma |
Cik plaša saskarne jāizveido? | Mērķtiecīgi logrīki tērzēšanā | Tik plaša, cik vajadzīgs |
Cik liela ir uzvedņu kontrole? | Netieša | Pilnīga |
Cik viegli izveidot fiksētas, atkārtojamas darbplūsmas? | Vajadzīga rūpīga izstrāde | Vieglāk noteikt programmas kodā |
Laiks līdz pirmajai versijai | Bieži īsāks | Sākumā bieži ilgāks |
Jūsu pārziņā esošā platformas izstrāde | Mazāka | Lielāka |
Iespējas vēlāk mainīt virzienu | Mazākas | Lielākas |
Mūsu sadarbībā atkal un atkal izskanēja vārds “kontrole”: vienā pusē bija ātrums un pazīstama platforma, otrā — tikai daļēja izpildvides pārvaldība. Klients pieņēma šo kompromisu, jo iespēju sasniegt lietotājus platformā ChatGPT vērtēja augstāk par visas tehnoloģiju kopas pārvaldību.
Ideālais scenārijs šķiet vienkāršs: lietotājs kaut ko lūdz, rīks tiek izpildīts, dati atgriežas, un, kad vajadzīga izvēle, parādās logrīks.
Praksē grūtības radīja informācijas nodošana starp posmiem. Logrīks nav tikai noformējums. Kad tas parādās ekrānā, mainās modeļa redzētais un tā turpmākā rīcība. Uztveriet logrīka darbības kā nosauktus notikumus, nevis brīvas formas tērzēšanu.
Projektā izmantojām vienkāršu tehnoloģiju kopu: FastMCP, Pydantic, React un TypeScript. To integrēšana problēmas neradīja. Galvenais uzdevums bija panākt, lai modelis, rīki un lietotāja saskarne vienādi saprastu nākamo soli.
Skaidri definējiet katru informācijas nodošanas brīdi
Pārtraucām uztvert rīku rezultātus kā neapstrādātus aizmugursistēmas datus. Katrs rezultāts kļuva par skaidru informācijas nodošanas posmu.
Kvalitatīvs rīka rezultāts:
sniedz logrīkam atveidei vajadzīgo informāciju;
sniedz ChatGPT strukturētus faktus, uz kuriem balstīt atbildi;
ja darbplūsmai tas vajadzīgs, norāda nākamo soli, lai modelim tas nebūtu jāmin.
Logrīka darbībām nevajadzētu nosūtīt pavedienā neskaidru brīvas formas tekstu. Tām jānorāda, ko lietotājs izdarīja un kam jānotiek tālāk.
Kad informācijas nodošana kļuva skaidra, pieauga uzticamība.
Modelis ievēro īsus un skaidrus norādījumus, ja tie iekļauti rīka izvadē un logrīka darbībās.
Tālāk redzama neliela mūsu izmantotā Pydantic struktūra. Lauks output satur strukturētos datus, kas vajadzīgi logrīkam, ja tāds tiek rādīts, kā arī faktus, kuri ChatGPT jāizmanto sesijā. Lauks agent_directions satur īsu norādi par asistenta nākamo darbību. Lauks Reason nav obligāts.
Python
Veidojiet nelielus logrīkus
Veiksmīgie logrīki ļāva pieņemt vienu lēmumu un pēc tam atdeva vadību. Īsi saraksti, apstiprinājumi vai kompakts pārskatīšanas ekrāns darbojās labāk nekā logrīka pārvēršana par nelielu lietotni. Ja vēlējāmies padarīt darbplūsmu paredzamāku, noderēja arī nedaudz logrīkā iestrādātas loģikas, piemēram, vienkārša validācija vai fiksēts nākamais solis.
Trešā persona logrīku ziņojumos
Pārtraucām rakstīt logrīka turpinājuma ziņojumus kā lietotāja tērzēšanas tekstu (“I selected…,” “I confirmed…”). Tos rakstījām kā īsus pārskatus par lietotāja darbībām (“The user selected…,” “The user confirmed…”). Šo pieeju izmēģinājām, jo ChatGPT logrīka ziņojumus pievienoja kā rīka, nevis lietotāja ziņojumus.
Tiešas darbības, kad nākamais solis ir skaidrs
Ja poga nepārprotami norādīja uz nākamo rīka izsaukumu, labāk darbojās tā tieša aktivizēšana no logrīka, nevis vēl viena tērzēšanas cikla uzspiešana. Tas attiecas tikai uz gadījumiem, kad nākamajam rīka izsaukumam nav vajadzīgi dati no ChatGPT.
Tas palīdzēja izveidot determinētas darbplūsmas un samazināja aizkavi, jo nebija vajadzīgs vēl viens tērzēšanas cikls.
Kļūdu apstrāde
Ja rīka izsaukums neizdevās, rīks atgrieza atbilstošus MCP kļūdu kodus un īsus, skaidrus ziņojumus. Tādējādi neveiksmīga izsaukuma gadījumā ChatGPT saņēma reālu informāciju, lai izskaidrotu problēmu lietotājam un/vai izvēlētos saprātīgu nākamo soli.
Rīku konteksta pārvaldība
Sesijas stāvokli glabājām savā serverī. ChatGPT kopā ar rīku izsaukumiem sūta sesijas kontekstu; FastMCP vidē katram rīkam piešķīrām parametru Context, lai apstrādātājs varētu nolasīt un atjaunināt šo stāvokli.
Stabilos identifikatorus un iepriekšējos rezultātus glabājām sesijā, nevis katrā izsaukumā lūdzām ChatGPT tos vēlreiz nodot kā rīka argumentus.
Ja izveidojās rīku izsaukumu cikli, varējām konstatēt dublētus izsaukumus un rīka rezultātā atgriezt skaidru kļūdu.
Atkļūdošanas un atbalsta vajadzībām sesiju žurnāli palika mūsu pusē.
Sākumā parādījām logrīku, pieņēmām, ka modelis “visu saprata”, un gaidījām pareizo nākamo rīka izsaukumu. Dažkārt tas notika. Taču bieži nenotika.
Bez skaidras informācijas nodošanas ChatGPT varēja sniegt kopsavilkumu, kad vēlējāmies darbību, lūgt lietotājam atkārtot izvēli vai turpināt plānošanu, kad bija jāapstājas.
Risinājums bija skaidri norādīt nākamo soli strukturētajos rezultātos un logrīku datos, nevis cerēt, ka modelis to izsecinās.
Ievērojot Apps SDK dokumentāciju, mēģinājām atjautīgi sadalīt atbildes starp rīka izvadi, slēptajiem metadatiem un tērzēšanas tekstu. Taču logrīkos nevarējām nolasīt slēptos metadatus. Tāpēc šo pieeju nevarējām izmantot.
Apps SDK dokumentācijā aprakstīti rīki, kurus var neiekļaut aģenta rīku sarakstā, lai tas tos neizvēlētos, bet joprojām izsaukt no logrīka. Kad iestatījām redzamību tikai lietotnei, šie rīki vairs nebija pieejami arī logrīkā, ne tikai aģentam. Mums neizdevās izveidot konfigurāciju, kurā aģents rīku neredzētu, bet logrīks joprojām varētu tam piekļūt.
Klusums vai vispārīgs paziņojums “izdevās”, kad nekas lietderīgs nebija noticis, bija sliktāks par nepārprotamu kļūdu. Tāpēc rīku un logrīku kļūmes uzskatījām par pilnvērtīgiem rezultātiem: ja procesu nevarēja turpināt, to skaidri pateicām un atgriezām konkrētu kļūdu, nevis atstājām lietotāju pie logrīka, kas tika atveidots, bet neļāva virzīties tālāk. Tas uzlaboja lietojamību un padarīja modeļa darbību uzticamāku.
Ja vēlaties darbplūsmu platformā ChatGPT ar mazāku pielāgotas platformas izstrādes apjomu, Apps SDK ir praktisks risinājums. Daļu kontroles iemaināt pret ātrumu un iespēju sasniegt lietotājus vidē, kurā viņi jau strādā.
Ja jums pilnībā jāpārvalda katrs darbplūsmas atzars, lietotāja saskarne un lēmumu pieņēmējs katrā posmā, jau no sākuma plānojiet savu aģentu tehnoloģiju kopu. Visticamāk, ar laiku ar izstrādi tikai platformā ChatGPT vairs nepietiks.
Varat arī izmantot Apps SDK, lai darbinātu savu MCP serveri platformā ChatGPT, pirms patstāvīgi izveidojat tērzēšanu, autentifikāciju un aģenta infrastruktūru, un pāriet uz savu tehnoloģiju kopu, kad produktam tas vajadzīgs.
Komandām līdzīgā situācijā iesakām izvēlēties vienu darbplūsmu ar skaidru rezultātu, aprakstīt informācijas nodošanu starp tērzēšanu, rīkiem un logrīkiem un pēc tam rūpīgi pārbaudīt atkārtotus mēģinājumus un kļūdas, pirms daudz laika ieguldāt uzvedņu pielāgošanā.