Apps SDK je praktická voľba, ak potrebujete čoskoro nasadiť pracovný postup v ChatGPT alebo si tam chcete vyskúšať svoje nástroje pred investíciou do vlastného technologického riešenia pre agenta. Ak však potrebujete mať pod kontrolou každý krok správania agenta, zvyčajne vhodný nie je.
Apps SDK si vyberte, ak má byť ChatGPT hlavným rozhraním a chcete nástroje doplniť o menšie prvky používateľského rozhrania bez vývoja celého četovacieho produktu. Vlastné technologické riešenie pre agenta si vyberte, ak potrebujete dôsledne riadiť postup, pamäť, príkazy a zápisy.
Apps SDK je vhodný pre produkty, ktoré kombinujú čet s niekoľkými krátkymi krokmi v používateľskom rozhraní. Produkt nasadíte rýchlejšie, no vzdáte sa časti kontroly.
Nám sa osvedčili jasne definované nástroje, správanie miniaplikácií a ďalšie kroky. Postup sme určovali podľa nich, nie podľa LLM. Model bol najužitočnejší pri vysvetľovaní výsledkov, o ktorých už systém rozhodol.
Ďalej vysvetlíme, ako si vybrať a čo fungovalo či nefungovalo.
Väčšina tímov stále iba skúšobne nasadzuje AI alebo ju využíva na okrajové účely s nízkym rizikom aj prínosom. Len máloktoré nasadia produkt nevyhnutný pre fungovanie firmy, ktorý používatelia využívajú každý týždeň. ChatGPT Apps SDK je jedným zo spôsobov, ako túto medzeru preklenúť, ak chcete pôsobiť priamo v ChatGPT, a nie vyvíjať celého asistenta od základov.
Naše poznatky pochádzajú z projektu pre klienta, ktorého požiadavky smerovali k ChatGPT ako hlavnému rozhraniu a k rýchlemu riešeniu bez nutnosti financovať vývoj celého četovacieho produktu na mieru.
Apps SDK týmto požiadavkám vyhovoval, pretože klient potreboval:
Žiadny samostatný četovací produkt, ktorý by musel vyvíjať a prevádzkovať – chcel osloviť používateľov v ChatGPT, nie vytvoriť ďalšie samostatné rozhranie asistenta.
Čet doplnený o malé používateľské rozhranie zamerané na konkrétne úlohy – niekoľko účelových krokov v miniaplikácii, nie druhý plnohodnotný produkt v rámci pracovného postupu.
Funkcie backendu sprístupnené cez nástroje MCP – štandardné volanie nástrojov, nie vlastné prostredie agenta spravované od začiatku do konca.
Objavovanie priamo v ChatGPT – používatelia majú nájsť pracovný postup tam, kde už pracujú.
Tieto rozhodnutia sme počas vývoja overovali s klientom. Naďalej však platí kompromis: ak reláciu prevádzkuje ChatGPT, vonkajšie prostredie nie je pod vašou kontrolou. Môžete ho usmerňovať, nie však úplne ovládať.
Aplikácia vytvorená pomocou Apps SDK prepája tri súčasti:
prostredie agenta v ChatGPT
vaše nástroje MCP
používateľské rozhranie vašej miniaplikácie
Ako postup prebieha v praxi:
Používateľ o niečo požiada ChatGPT.
ChatGPT môže zavolať jeden z vašich nástrojov MCP.
Váš server vráti štruktúrovaný výsledok nástroja.
ChatGPT výsledok načíta a rozhodne o ďalšom kroku: zavolá ďalšie nástroje, odpovie používateľovi alebo urobí oboje. Ak ste k nástroju pripojili miniaplikáciu, môže sa v tomto kole zobraziť.
Používateľ pokračuje v čete alebo v miniaplikácii (doplní text, vyberie možnosť alebo cez miniaplikáciu spustí volanie nástroja). Tým sa aktualizuje vlákno. ChatGPT spustí ďalšie kolo a kroky 2 až 4 sa opakujú, kým sa úloha nedokončí.
Práve táto kombinácia četu, akcií backendu a krátkych krokov v používateľskom rozhraní je podstatou riešenia. Zároveň to znamená, že najcitlivejšími miestami sú prechody medzi četom, nástrojmi a používateľským rozhraním.
Nemusíte od základov vytvárať četovacie rozhranie, prepájanie nástrojov, postupy overovania totožnosti ani prostredie miniaplikácie. Mnohým produktom to výrazne skráti vývoj, takže sa môžete sústrediť na logiku danej oblasti a ochranné mechanizmy.
Vyvíjať v ChatGPT nie je to isté ako prevádzkovať vlastného agenta. Najťažšou časťou projektu neboli triky s príkazmi. Bolo potrebné definovať nástroje, miniaplikácie a ďalšie kroky natoľko jednoznačne, aby model a používateľské rozhranie zostali zosúladené.
Apps SDK dáva produktu inú podobu než bežný frontend, preto je dôležité vedieť, na aké situácie sa najlepšie hodí.
Apps SDK použite, ak chcete
Rýchlo nasadiť pracovný postup v ChatGPT.
Nechať ChatGPT prevádzkovať konverzáciu.
Skombinovať prirodzený jazyk s niekoľkými účelovými krokmi v používateľskom rozhraní.
Vyhnúť sa vývoju vlastného četovacieho rozhrania, kontajnera agenta a mechanizmu objavovania.
Posledný bod je dôležitý, ak vaši používatelia už bežne pracujú v ChatGPT.
Vlastného agenta si vytvorte, ak potrebujete
Pevný postup krok za krokom, ktorý môžete vynútiť v kóde.
Vlastné používateľské rozhranie a postup potvrdzovania, ktoré máte úplne pod kontrolou.
Vlastný model pamäte a stavu.
Správanie, ktoré musí byť pri každom spustení predvídateľné.
Záznamy priebehu, denníky a metriky agenta.
Ak sú plánovač, systémové príkazy a celý pracovný postup vaším produktom, zvyčajne je vhodnejšie vlastné technologické riešenie.
Otázka | ChatGPT Apps SDK | Vaši vlastní agenti |
|---|---|---|
Kde používateľ pracuje s riešením? | V ChatGPT | Vo vašom produkte |
Kto riadi jednotlivé kroky konverzácie? | ChatGPT usmerňovaný vašimi nástrojmi a používateľským rozhraním | Váš systém agentov |
Aký rozsah používateľského rozhrania vytvárate? | Účelové miniaplikácie v čete | Čokoľvek potrebujete |
Akú mieru kontroly máte nad príkazmi? | Nepriamu | Úplnú |
Ako ľahko sa vytvárajú pevné, opakovateľné postupy? | Vyžadujú dôkladný návrh | Ľahšie sa vynútia v kóde |
Čas do prvého nasadenia | Často kratší | Spočiatku často dlhší |
Rozsah platformy vo vašej správe | Menší | Väčší |
Priestor na neskoršiu zmenu smerovania | Menší | Väčší |
Počas nášho projektu sa opakovane vracala téma kontroly: na jednej strane rýchlosť a známe hostiteľské prostredie, na druhej len čiastočná kontrola nad prostredím. Klient tento kompromis prijal, keď dal pred úplnou kontrolou nad celým technologickým riešením prednosť osloveniu používateľov v ChatGPT.
Ideálny priebeh znie jednoducho: používateľ o niečo požiada, nástroj sa spustí, údaje sa vrátia a pri potrebe voľby sa zobrazí miniaplikácia.
V praxi nám problémy spôsobovali prechody. Miniaplikácia nie je iba dekorácia. Keď sa zobrazí, zmení to, čo model vidí a následne urobí. S akciami miniaplikácie zaobchádzajte ako s pomenovanými udalosťami, nie ako s voľným četom.
Technologické riešenie projektu bolo jednoduché: FastMCP, Pydantic, React a TypeScript. Ich integrácia bola bezproblémová. Skutočnou úlohou bolo zosúladiť model, nástroje a používateľské rozhranie v tom, čo sa má udiať ďalej.
Jednoznačne definujte každý prechod
Prestali sme výsledky nástrojov vnímať ako neupravené dátové výstupy backendu. Každá návratová hodnota sa stala prechodom.
Kvalitný výsledok nástroja:
Poskytne miniaplikácii všetko potrebné na vykreslenie.
Poskytne ChatGPT štruktúrované fakty, o ktoré môže oprieť odpoveď.
Ak si to postup vyžaduje, určí aj nasledujúci krok, aby ho model nemusel odhadovať.
Akcie miniaplikácie by nemali do vlákna posielať nejasný text. Mali by uvádzať, čo používateľ urobil a čo má nasledovať.
Po jednoznačnom definovaní prechodov sa zvýšila spoľahlivosť.
Model sa riadi krátkymi a jasnými pokynmi, ak sú uvedené vo výstupe nástroja a v akciách miniaplikácie.
Nižšie je jednoduchá štruktúra Pydantic, ktorú sme používali. Pole output obsahuje štruktúrované údaje potrebné na zobrazenie miniaplikácie a fakty, ktoré má ChatGPT v relácii použiť. Pole agent_directions obsahuje krátky pokyn, čo má asistent urobiť ďalej. Pole Reason je voliteľné.
Python
Udržujte miniaplikácie malé
Funkčné miniaplikácie zabezpečili jedno rozhodnutie a potom odovzdali riadenie späť. Krátke zoznamy, potvrdenia alebo stručná obrazovka na kontrolu fungovali lepšie než premena miniaplikácie na malú aplikáciu. Keď sme potrebovali predvídateľnejší postup, pomohla aj jednoduchá logika v miniaplikácii, napríklad základné overenie alebo pevne určený ďalší krok.
Tretia osoba v správach miniaplikácie
Následné správy miniaplikácie sme prestali písať ako četové správy používateľa („Vybral som…“, „Potvrdil som…“). Písali sme ich ako krátke hlásenia o tom, čo používateľ urobil („Používateľ vybral…“, „Používateľ potvrdil…“). Tento prístup sme vyskúšali, pretože ChatGPT pridával správy miniaplikácie ako správy nástroja, nie používateľa.
Priame akcie, keď je ďalší krok zrejmý
Ak tlačidlo jednoznačne naznačovalo ďalšie volanie nástroja, fungovalo lepšie, keď ho miniaplikácia spustila priamo, než keď sme vynútili ďalšie kolo četu. Platí to iba vtedy, ak ďalšie volanie nástroja nepotrebuje vstupné údaje od ChatGPT.
Pomohlo to vynútiť predvídateľné postupy a vynechaním ďalšieho kola četu sa zároveň skrátila odozva.
Spracovanie chýb
Keď volanie nástroja zlyhalo, nástroj vrátil správne chybové kódy MCP a krátke, zrozumiteľné správy. ChatGPT tak pri neúspešných volaniach dostal konkrétne informácie, mohol používateľovi vysvetliť problém a prípadne zvoliť rozumný ďalší krok.
Správa kontextu nástrojov
Stav relácie sme uchovávali na svojom serveri. ChatGPT posiela pri volaniach nástrojov kontext príslušnej relácie. Vo FastMCP sme každému nástroju pridali parameter Context, aby obslužný program mohol stav čítať a aktualizovať.
Stabilné identifikátory a skoršie výsledky sa uchovávali v relácii, takže ich ChatGPT nemusel pri každom volaní znova odovzdávať ako argumenty nástroja.
Keď nastali slučky volaní nástrojov, mohli sme zachytiť duplicitné volania a vo výsledku nástroja vrátiť jasnú chybu.
Denníky relácií zostávali na našej strane na ladenie a poskytovanie podpory.
Spočiatku sme zobrazili miniaplikáciu, predpokladali, že model to „pochopil“, a čakali na správne následné volanie nástroja. Niekedy sa to podarilo. Často však nie.
Bez jasného prechodu mohol ChatGPT zhrnúť situáciu namiesto vykonania požadovanej akcie, požiadať používateľa o zopakovanie voľby alebo pokračovať v plánovaní, hoci už mal prestať.
Riešením bolo výslovne uviesť ďalší krok v štruktúrovaných výstupoch a dátach miniaplikácie, nie dúfať, že ho model odvodí.
Podľa dokumentácie Apps SDK sme sa pokúsili dômyselne rozdeliť odpovede medzi výstup nástroja, skryté metaúdaje a text četu. Skryté metaúdaje sme však v miniaplikáciách nedokázali načítať. Preto sme tento postup nemohli použiť.
Dokumentácia Apps SDK opisuje nástroje, ktoré možno vynechať zo zoznamu nástrojov agenta, aby si ich nevybral, no naďalej ich volať z miniaplikácie. Keď sme viditeľnosť nastavili iba pre aplikáciu, nástroje prestali byť dostupné nielen agentovi, ale aj miniaplikácii. Nepodarilo sa nám dosiahnuť nastavenie, v ktorom by agent nástroj nevidel, ale miniaplikácia áno.
Ticho alebo všeobecné hlásenie „úspech“, keď sa nič užitočné nestalo, bolo horšie než priama chyba. Zlyhania nástrojov a miniaplikácií sme preto spracúvali ako plnohodnotné výstupy: ak krok nemohol pokračovať, zrozumiteľne sme to uviedli a vrátili konkrétnu chybu, aby používatelia nezostali hľadieť na vykreslenú miniaplikáciu, ktorá ich nikam neposunula. Zlepšilo to použiteľnosť aj spoľahlivosť správania modelu.
Ak chcete vytvoriť pracovný postup v ChatGPT s menším množstvom vlastného vývoja platformy, Apps SDK predstavuje praktické riešenie. Časti kontroly sa vzdáte výmenou za rýchlosť a možnosť osloviť používateľov tam, kde už pracujú.
Ak potrebujete mať pod kontrolou každú vetvu postupu, používateľské rozhranie aj to, kto rozhoduje o jednotlivých krokoch, od začiatku počítajte s vlastným technologickým riešením pre agenta. Samotný vývoj v ChatGPT vám pravdepodobne časom prestane stačiť.
Pomocou Apps SDK môžete svoj server MCP najprv prevádzkovať v ChatGPT, ešte než si sami vytvoríte čet, overovanie totožnosti a infraštruktúru agenta. Keď to produkt bude potrebovať, prejdete na vlastné technologické riešenie.
Ďalší krok pre tímy v rovnakej situácii: vyberte jeden pracovný postup s jasným výsledkom, spíšte prechody medzi četom, nástrojmi a miniaplikáciami a potom dôkladne otestujte opakované pokusy aj chyby, skôr než venujete veľa času ladeniu príkazov.