{"id":34429,"date":"2026-07-13T05:00:00","date_gmt":"2026-07-13T03:00:00","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=34429"},"modified":"2026-07-08T16:03:05","modified_gmt":"2026-07-08T14:03:05","slug":"jak-ai-naprawilo-organizacje-podrozy-sluzbowych","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/jak-ai-naprawilo-organizacje-podrozy-sluzbowych\/","title":{"rendered":"Jak AI naprawi\u0142o organizacj\u0119 podr\u00f3\u017cy s\u0142u\u017cbowych"},"content":{"rendered":"\n<p>Je\u015bli nale\u017cysz do grona os\u00f3b, kt\u00f3re cz\u0119sto je\u017cd\u017c\u0105 w podr\u00f3\u017ce s\u0142u\u017cbowe, to wiesz, z jakimi wyzwaniami si\u0119 to wi\u0105\u017ce. Rezerwacja lot\u00f3w, hoteli, transportu, a tak\u017ce zarz\u0105dzanie wydatkami i dokumentacj\u0105 mog\u0105 by\u0107 czasoch\u0142onne i stresuj\u0105ce. Zazwyczaj ka\u017cd\u0105 z tych rzeczy trzeba robi\u0107 w osobnym firmowym systemie, co nierzadko ko\u0144czy si\u0119 frustracj\u0105 i wys\u0142aniem gniewnego maila do dzia\u0142u HR.<\/p>\n\n\n\n<p>Jest to o tyle zastanawiaj\u0105ce, \u017ce przecie\u017c odpowiedzi na wi\u0119kszo\u015b\u0107 tych problem\u00f3w s\u0105 dost\u0119pne i mo\u017cna by je zintegrowa\u0107 w jednym miejscu. \u201eCzy mog\u0119 lecie\u0107 business class do Berlina?\u201d, \u201eJaki jest limit na hotel w Londynie?\u201d, \u201eJakie dokumenty musz\u0119 z\u0142o\u017cy\u0107 po powrocie?\u201d \u2013 to pytania do polityki firmy, nie do cz\u0142owieka. Postanowi\u0142em przyjrze\u0107 si\u0119 temu problemowi z perspektywy AI i zobaczy\u0107, jak mo\u017cna go rozwi\u0105za\u0107. Przy okazji uda\u0142o mi si\u0119 upiec dwie pieczenie na jednym ogniu \u2013 wzi\u0105\u0107 udzia\u0142 w programie Sii AI Grants (wi\u0119cej o tym p\u00f3\u017aniej) i przetestowa\u0107 framework do tworzenia system\u00f3w wieloagentowych od Google.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Pomys\u0142: AI u\u017cyte do integracji system\u00f3w podr\u00f3\u017cy s\u0142u\u017cbowych<\/strong><\/h2>\n\n\n\n<p>W gruncie rzeczy obs\u0142ug\u0119 podr\u00f3\u017cy s\u0142u\u017cbowych mo\u017cna podzieli\u0107 na 3 g\u0142\u00f3wne obszary:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Rezerwacja i organizacja podr\u00f3\u017cy:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Szukam najlepszego po\u0142\u0105czenia do Los Angeles, najlepiej bezpo\u015bredniego, ale nie wiem, czy nasza firma ma jakie\u015b preferencje co do linii lotniczych.<\/li>\n\n\n\n<li>Chc\u0119 zarezerwowa\u0107 mo\u017cliwie najlepszy hotel w centrum, ale nie wiem, jaki jest limit na nocleg.<\/li>\n\n\n\n<li>Musz\u0119 zorganizowa\u0107 skomplikowany, wielopo\u0142\u0105czeniowy lot, a na miejscu wynajem 2 samochod\u00f3w s\u0142u\u017cbowych i transport dla ca\u0142ej delegacji.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Zarz\u0105dzanie dokumentacj\u0105<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Chc\u0119 dowiedzie\u0107 si\u0119, jakie dokumenty musz\u0119 z\u0142o\u017cy\u0107 po powrocie z podr\u00f3\u017cy s\u0142u\u017cbowej.<\/li>\n\n\n\n<li>Szukam informacji, czy mog\u0119 przed\u0142u\u017cy\u0107 m\u00f3j pobyt o kilka dni, \u017ceby zwiedzi\u0107 miasto, ale nie wiem, czy musz\u0119 z\u0142o\u017cy\u0107 jakie\u015b dodatkowe dokumenty.<\/li>\n\n\n\n<li>Nie wiem, kogo z HR zapyta\u0107 o problem, kt\u00f3ry mnie trapi.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Zarz\u0105dzanie wydatkami:<\/strong>\n<ul class=\"wp-block-list\">\n<li>Chc\u0119 rozliczy\u0107 koszty podr\u00f3\u017cy.<\/li>\n\n\n\n<li>Jako pracownik dzia\u0142u HR chc\u0119 mie\u0107 \u0142atwy dost\u0119p do informacji o wydatkach pracownik\u00f3w, aby m\u00f3c lepiej zarz\u0105dza\u0107 bud\u017cetem.<\/li>\n\n\n\n<li>Jako szef dzia\u0142u finans\u00f3w chc\u0119 przygotowa\u0107 raport dotycz\u0105cy wydatk\u00f3w na podr\u00f3\u017ce s\u0142u\u017cbowe w ostatnim kwartale.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>Zauwa\u017cmy, \u017ce te obszary s\u0105 ze sob\u0105 powi\u0105zane i cz\u0119sto wymagaj\u0105 wsp\u00f3\u0142pracy r\u00f3\u017cnych system\u00f3w oraz dzia\u0142\u00f3w w firmie. Jest to wi\u0119c wymarzone pole do zastosowania AI, kt\u00f3ra mo\u017ce zintegrowa\u0107 je w jednym miejscu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>U\u0142atwiaj, nie utrudniaj<\/strong><\/h2>\n\n\n\n<p>Aby unikn\u0105\u0107 tworzenia dodatkowego systemu, kt\u00f3ry b\u0119dzie tylko kolejn\u0105 aplikacj\u0105 dla pracownik\u00f3w, postanowi\u0142em podej\u015b\u0107 do problemu z perspektywy u\u017cytkownika. Skoro mamy ju\u017c w firmie system ticketowy (Atlassian Jira), to mo\u017ce wykorzystajmy go jako g\u0142\u00f3wny interfejs do obs\u0142ugi podr\u00f3\u017cy s\u0142u\u017cbowych? Pracownicy s\u0105 ju\u017c przyzwyczajeni do korzystania z tego systemu, wi\u0119c nie musimy ich uczy\u0107 nowej aplikacji. Zamiast tego mo\u017cemy stworzy\u0107 agenta AI, kt\u00f3ry b\u0119dzie dzia\u0142a\u0142 jako \u201easystent podr\u00f3\u017cy s\u0142u\u017cbowych\u201d i b\u0119dzie si\u0119 integrowa\u0142 z Jir\u0105, aby umo\u017cliwi\u0107 pracownikom \u0142atwe zarz\u0105dzanie podr\u00f3\u017cami s\u0142u\u017cbowymi.<\/p>\n\n\n\n<p>Tak wi\u0119c powsta\u0142a GAIA (skr\u00f3t od <strong>G<\/strong>oogle, <strong>AI<\/strong>, <strong>A<\/strong>tlassian) \u2013 po\u0142\u0105czenie Jiry i AI, kt\u00f3re umo\u017cliwia pracownikom zarz\u0105dzanie podr\u00f3\u017cami s\u0142u\u017cbowymi w jednym miejscu. Jest ona pomoc\u0105 dla wszystkich pracownik\u00f3w:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>tych, kt\u00f3rzy wybieraj\u0105 si\u0119 w podr\u00f3\u017c,<\/li>\n\n\n\n<li>tych, kt\u00f3rzy j\u0105 rozliczaj\u0105,<\/li>\n\n\n\n<li>dla dzia\u0142u HR, kt\u00f3ry mo\u017ce \u0142atwo monitorowa\u0107 i zarz\u0105dza\u0107 wszystkimi podr\u00f3\u017cami s\u0142u\u017cbowymi w firmie.<\/li>\n<\/ul>\n\n\n\n<p>Dzi\u0119ki takiemu rozwi\u0105zaniu pracownik nie musi poznawa\u0107 nowego narz\u0119dzia, a jego interakcja z systemem nie r\u00f3\u017cni si\u0119 niczym od tego, do czego jest przyzwyczajony \u2013 zmienia si\u0119 tylko backend: zamiast cz\u0142owieka po drugiej stronie skrzynki mailowej odpowiada AI. Umo\u017cliwia to tak\u017ce rozwi\u0105zanie problem\u00f3w, kt\u00f3re dotychczas zajmowa\u0142y godziny lub dni, w ci\u0105gu kilku minut.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/sii.pl\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/image1-1.png&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-large&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-34430&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1379,&quot;targetHeight&quot;:771,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Powi\\u0119ksz obrazek: Przyk\\u0142adowa interakcja z GAIA w Jira Service Management &quot;,&quot;alt&quot;:&quot;Przyk\\u0142adowa interakcja z GAIA w Jira Service Management &quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"573\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image1-1-1024x573.png\" alt=\"Przyk\u0142adowa interakcja z GAIA w Jira Service Management \" class=\"wp-image-34430\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image1-1-1024x573.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image1-1-300x168.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image1-1-768x429.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image1-1-555x312.png 555w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image1-1.png 1379w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Powi\u0119ksz obrazek: Przyk\u0142adowa interakcja z GAIA w Jira Service Management \"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Ryc. 1 Przyk\u0142adowa interakcja z GAIA w Jira Service Management<\/figcaption><\/figure>\n\n\n\n<p>Pracownik zadaje pytanie o ubezpieczenie podr\u00f3\u017cne, a system automatycznie odpowiada w komentarzu, cytuj\u0105c konkretne dokumenty polityki firmowej.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Sii AI Grants<\/strong><\/h2>\n\n\n\n<p>Projekt GAIA powsta\u0142 w ramach programu Sii AI Grants, kt\u00f3ry ma na celu wspieranie innowacyjnych projekt\u00f3w wykorzystuj\u0105cych sztuczn\u0105 inteligencj\u0119 \u2013 projekt\u00f3w, na kt\u00f3re nie ma czasu w ramach codziennych obowi\u0105zk\u00f3w, ale kt\u00f3re mog\u0105 przynie\u015b\u0107 realn\u0105 warto\u015b\u0107 dla firmy.<\/p>\n\n\n\n<p>Przeznaczony jest do testowania nowych technologii, eksperymentowania z r\u00f3\u017cnymi pomys\u0142ami i tworzenia prototyp\u00f3w.<\/p>\n\n\n\n<p>W ramach tego programu pracownik otrzymuje 10-dniowy urlop od pracy dla klienta (pe\u0142nop\u0142atny, oczywi\u015bcie), kt\u00f3ry mo\u017ce wykorzysta\u0107 na realizacj\u0119 swojego projektu. To \u015bwietna okazja, aby spr\u00f3bowa\u0107 czego\u015b nowego, rozwin\u0105\u0107 swoje umiej\u0119tno\u015bci i przyczyni\u0107 si\u0119 do rozwoju firmy. GAIA jest w\u0142a\u015bnie jednym z takich projekt\u00f3w \u2013 powsta\u0142a dzi\u0119ki temu, \u017ce mia\u0142em mo\u017cliwo\u015b\u0107 po\u015bwi\u0119ci\u0107 czas na eksperymentowanie i testowanie r\u00f3\u017cnych pomys\u0142\u00f3w.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Architektura<\/strong><\/h2>\n\n\n\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/sii.pl\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/image2-1.png&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-large&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-34432&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1208,&quot;targetHeight&quot;:421,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Powi\\u0119ksz obrazek: Architektura GAIA&quot;,&quot;alt&quot;:&quot;Architektura GAIA&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"357\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image2-1-1024x357.png\" alt=\"Architektura GAIA\" class=\"wp-image-34432\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image2-1-1024x357.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image2-1-300x105.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image2-1-768x268.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image2-1.png 1208w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Powi\u0119ksz obrazek: Architektura GAIA\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Ryc. 2 Architektura GAIA<\/figcaption><\/figure>\n\n\n\n<p>Pracownik komunikuje si\u0119 z systemem przez Jira Service Management. Ticket trafia przez REST API do Orchestratora, kt\u00f3ry deleguje zadania do wyspecjalizowanych agent\u00f3w (Policy, Booking, Reporting), z kt\u00f3rych ka\u017cdy \u0142\u0105czy si\u0119 z odpowiednim systemem zewn\u0119trznym (Vertex AI RAG, Amadeus.com, BigQuery). W razie potrzeby Orchestrator eskaluje spraw\u0119 do cz\u0142owieka.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Orchestrator<\/strong><\/h2>\n\n\n\n<p>GAIA korzysta z Jiry jako g\u0142\u00f3wnego i jedynego interfejsu mi\u0119dzy ni\u0105 a u\u017cytkownikiem. Pracownik tworzy ticket w Jirze (z dowolnym zapytaniem w j\u0119zyku naturalnym), kt\u00f3ry nast\u0119pnie jest wysy\u0142any przez REST API do GAII.<\/p>\n\n\n\n<p>GAIA to system wieloagentowy. Na jego czele stoi Orchestrator \u2013 g\u0142\u00f3wny agent, kt\u00f3ry zarz\u0105dza ca\u0142ym procesem obs\u0142ugi zapytania. Orchestrator analizuje zapytanie i decyduje, kt\u00f3re subagenty s\u0105 potrzebne do jego obs\u0142ugi. Jako jedyny rozmawia bezpo\u015brednio z u\u017cytkownikiem (poprzez komentarze w tickecie w Jirze). Ma dost\u0119p do wszystkich informacji o tickecie (jego tre\u015bci, autorze, historii komentarzy itp.) i na tej podstawie podejmuje decyzje dotycz\u0105ce dalszych krok\u00f3w. Pomagaj\u0105 mu wyspecjalizowani agenci, z kt\u00f3rych ka\u017cdy odpowiada za inne zadanie. Mog\u0105 komunikowa\u0107 si\u0119 ze sob\u0105 bezpo\u015brednio.<\/p>\n\n\n\n<p>Orchestrator dba tak\u017ce o prawid\u0142owy przebieg komunikacji z u\u017cytkownikiem. Dzi\u0119ki wbudowanym mechanizmom rozumienia intencji jest w stanie wykry\u0107, czy u\u017cytkownik jest zadowolony z odpowiedzi, czy te\u017c potrzebuje dodatkowych informacji lub wyja\u015bnie\u0144. Ponadto, wyposa\u017cony jest w szereg tzw. guardrails, kt\u00f3re pomagaj\u0105 mu unika\u0107 b\u0142\u0119d\u00f3w i nieporozumie\u0144. Na przyk\u0142ad, je\u015bli u\u017cytkownik zadaje pytanie, na kt\u00f3re Orchestrator nie zna odpowiedzi, zamiast udziela\u0107 b\u0142\u0119dnej informacji, mo\u017ce poprosi\u0107 o dodatkowe informacje lub przekierowa\u0107 rozmow\u0119 do cz\u0142owieka.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Policy Agent \u2013 ekspert od polityki firmy<\/strong><\/h2>\n\n\n\n<p>Policy Agent odpowiada na pytania o zasady, limity i procedury. Sk\u0105d bierze wiedz\u0119? Z korpusu dokument\u00f3w z politykami firmowymi, udost\u0119pnionych mu przez dzia\u0142 HR. Ten korpus jest po\u0142\u0105czony z RAG-iem w Vertex AI.<\/p>\n\n\n\n<p>Dzi\u0119ki takiemu rozwi\u0105zaniu agent ma dost\u0119p do aktualnych i oficjalnych informacji, kt\u00f3re s\u0105 zawsze zgodne z polityk\u0105 firmy. Aktualizacja informacji jest prosta \u2013 dzi\u0119ki odpowiedniej konfiguracji wystarczy doda\u0107 nowy dokument do bazy danych (w tym przypadku baza danych to okre\u015blenie na wyrost: HR dodaje dokumenty do folderu na Google Drive \u2013 trudno o prostsze rozwi\u0105zanie), a agent automatycznie je zaindeksuje i b\u0119dzie m\u00f3g\u0142 z nich korzysta\u0107.<\/p>\n\n\n\n<p>Po znalezieniu odpowiedzi na pytanie agent przekazuje Orchestratorowi zgromadzon\u0105 wiedz\u0119, podaj\u0105c odpowiednie cytowania. Oczywi\u015bcie, je\u015bli Policy Agent nie jest w stanie znale\u017a\u0107 odpowiedzi na pytanie, mo\u017ce poprosi\u0107 o dodatkowe informacje lub wprost przyzna\u0107 si\u0119 do niewiedzy, zamiast udziela\u0107 b\u0142\u0119dnych informacji.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Reporting Agent \u2013 analityk danych<\/strong><\/h2>\n\n\n\n<p>Odpowiada na pytania o dane historyczne i bie\u017c\u0105ce: ile wydali\u015bmy na hotele w ostatnim kwartale, kt\u00f3re departamenty przekroczy\u0142y bud\u017cet, kto jest aktualnie na delegacji za granic\u0105.<\/p>\n\n\n\n<p>Agent ten jest po\u0142\u0105czony z baz\u0105 danych w BigQuery, w kt\u00f3rej przechowywane s\u0105 wszystkie dane dotycz\u0105ce podr\u00f3\u017cy s\u0142u\u017cbowych (rezerwacje, wydatki, dokumenty itp.). Przy pracy nad tym agentem przy\u015bwieca\u0142a mi jedna my\u015bl: chc\u0119, \u017ceby by\u0142 w stanie samodzielnie eksplorowa\u0107 baz\u0119 danych i korygowa\u0107 swoje dzia\u0142ania. Nie chcia\u0142em dostarcza\u0107 mu gotowych zapyta\u0144 SQL, kt\u00f3re musia\u0142by wykonywa\u0107, poniewa\u017c takie podej\u015bcie w oczywisty spos\u00f3b ogranicza\u0142oby jego mo\u017cliwo\u015bci.<\/p>\n\n\n\n<p>Ponadto przyj\u0105\u0142em za\u0142o\u017cenie, \u017ce taka baza danych mo\u017ce (i b\u0119dzie!) zawiera\u0107 b\u0142\u0119dy, nie\u015bcis\u0142o\u015bci i luki (np. wydatki na posi\u0142ki oznaczone jako \u201eJedzenie\u201d, \u201edieta\u201d lub \u201ekolacja\u201d). Co wi\u0119cej, wspomniana \u201ebaza danych\u201d w wi\u0119kszo\u015bci przypadk\u00f3w b\u0119dzie raczej zbiorem arkuszy kalkulacyjnych, kt\u00f3re kto\u015b r\u0119cznie aktualizuje, ni\u017c dobrze zorganizowan\u0105 baz\u0105 danych.<\/p>\n\n\n\n<p>St\u0105d te\u017c decyzja o podzieleniu Reporting Agenta na 3 pod-agent\u00f3w, kt\u00f3rzy b\u0119d\u0105 pracowa\u0107 iteracyjnie, w p\u0119tli refleksji:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>QueryPlanner<\/strong> \u2013 analizuje zapytanie u\u017cytkownika i planuje podej\u015bcie w j\u0119zyku naturalnym \u2013 mo\u017ce na przyk\u0142ad zdecydowa\u0107, \u017ce nale\u017cy sprawdzi\u0107 schemat tabel w bazie danych przed wykonaniem w\u0142a\u015bciwego zapytania.<\/li>\n\n\n\n<li><strong>QueryExecutor<\/strong> \u2013 t\u0142umaczy plan na SQL i wykonuje go w BigQuery. Co wa\u017cne \u2013 ma dost\u0119p tylko i wy\u0142\u0105cznie read-only.<\/li>\n\n\n\n<li><strong>FeedbackAgent<\/strong> \u2013 agent odpowiedzialny za kontrol\u0119 jako\u015bci i poprawno\u015bci odpowiedzi. Ocenia, czy odpowied\u017a jest wystarczaj\u0105ca, czy te\u017c wymaga dalszej eksploracji bazy danych. Je\u015bli uzna, \u017ce odpowied\u017a jest niewystarczaj\u0105ca, mo\u017ce poprosi\u0107 QueryPlanner o ponowne przeanalizowanie zapytania i zaplanowanie innego podej\u015bcia.<\/li>\n<\/ul>\n\n\n\n<p>Ograniczy\u0142em d\u0142ugo\u015b\u0107 tej p\u0119tli do maksymalnie 3 iteracji, aby unikn\u0105\u0107 sytuacji, w kt\u00f3rej agent b\u0119dzie si\u0119 zap\u0119tla\u0142 bez ko\u0144ca. W praktyce jednak wi\u0119kszo\u015b\u0107 zapyta\u0144 jest rozwi\u0105zywana ju\u017c w pierwszej lub drugiej iteracji.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/sii.pl\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/image3-1.png&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-full&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-34434&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:861,&quot;targetHeight&quot;:511,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Powi\\u0119ksz obrazek: P\\u0119tla refleksji w Reporting Agent&quot;,&quot;alt&quot;:&quot;P\\u0119tla refleksji w Reporting Agent&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full wp-lightbox-container\"><img decoding=\"async\" width=\"861\" height=\"511\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image3-1.png\" alt=\"P\u0119tla refleksji w Reporting Agent\" class=\"wp-image-34434\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image3-1.png 861w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image3-1-300x178.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image3-1-768x456.png 768w\" sizes=\"(max-width: 861px) 100vw, 861px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Powi\u0119ksz obrazek: P\u0119tla refleksji w Reporting Agent\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on-async--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Ryc. 3 P\u0119tla refleksji w Reporting Agent<\/figcaption><\/figure>\n\n\n\n<p>Pytanie u\u017cytkownika trafia do QueryPlannera, kt\u00f3ry planuje podej\u015bcie; QueryExecutor t\u0142umaczy plan na SQL i wykonuje go w BigQuery; FeedbackAgent ocenia jako\u015b\u0107 odpowiedzi i decyduje, czy zwr\u00f3ci\u0107 j\u0105 u\u017cytkownikowi, czy wr\u00f3ci\u0107 do plannera po lepsze podej\u015bcie.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Booking Agent \u2013 asystent rezerwacji<\/strong><\/h2>\n\n\n\n<p>Booking Agent pomaga u\u017cytkownikowi w organizacji podr\u00f3\u017cy s\u0142u\u017cbowej, prowadz\u0105c go przez wieloetapow\u0105 rozmow\u0119, zbieraj\u0105c potrzebne informacje: kto jedzie, dok\u0105d, kiedy, na jak d\u0142ugo. Po zebraniu wszystkich informacji wyszukuje dost\u0119pne opcje i przedstawia je u\u017cytkownikowi, pomagaj\u0105c mu dokona\u0107 wyboru.<\/p>\n\n\n\n<p>Dzi\u0119ki po\u0142\u0105czeniu agenta z API Amadeus.com agent jest w stanie sprawdza\u0107 rzeczywiste dane dotycz\u0105ce dost\u0119pno\u015bci hoteli i lot\u00f3w, co pozwala mu przedstawi\u0107 u\u017cytkownikowi aktualne i precyzyjne informacje. Oczywi\u015bcie, ostateczna decyzja o rezerwacji nale\u017cy do u\u017cytkownika, a agent s\u0142u\u017cy jedynie jako pomoc w procesie podejmowania decyzji. <\/p>\n\n\n\n<p>W przypadku tego agenta programowo wymusi\u0142em na nim interakcj\u0119 z Policy Agentem \u2013 za ka\u017cdym razem, przed rozpocz\u0119ciem procesu rezerwacji, Booking Agent musi skonsultowa\u0107 si\u0119 z Policy Agentem, aby upewni\u0107 si\u0119, \u017ce proponowane opcje s\u0105 zgodne z polityk\u0105 firmy (np. czy dany hotel mie\u015bci si\u0119 w limicie cenowym, czy dany lot jest akceptowalny itp.). Dzi\u0119ki temu mamy pewno\u015b\u0107, \u017ce u\u017cytkownik zawsze otrzyma propozycje zgodne z polityk\u0105 firmy, a jednocze\u015bnie nie musimy martwi\u0107 si\u0119, \u017ce agent b\u0119dzie proponowa\u0142 opcje niedozwolone.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Google Agent Development Kit<\/strong><\/h2>\n\n\n\n<p>Do stworzenia GAIA wykorzysta\u0142em Google Agent Development Kit (ADK) \u2013 framework do tworzenia system\u00f3w wieloagentowych. Dostarcza narz\u0119dzia i biblioteki, kt\u00f3re u\u0142atwiaj\u0105 tworzenie, trenowanie i wdra\u017canie agent\u00f3w AI, a tak\u017ce zarz\u0105dzanie ich komunikacj\u0105 i wsp\u00f3\u0142prac\u0105.<\/p>\n\n\n\n<p>Co wi\u0119cej, dzi\u0119ki temu, \u017ce jest to produkt Google, ma on natywn\u0105 integracj\u0119 z innymi us\u0142ugami Google, takimi jak Vertex AI, BigQuery czy Google Drive, co znacznie u\u0142atwi\u0142o mi implementacj\u0119 poszczeg\u00f3lnych agent\u00f3w oraz ich integracj\u0119 z r\u00f3\u017cnymi \u017ar\u00f3d\u0142ami danych. Dodatkowo, ADK teoretycznie umo\u017cliwia bardzo \u0142atwe wdra\u017canie i skalowanie systemu poprzez automatyczny deployment w Vertex AI.<\/p>\n\n\n\n<p>Du\u017c\u0105 zalet\u0105 ADK jest tak\u017ce jego elastyczno\u015b\u0107 i modularno\u015b\u0107 \u2013 pozwala on na tworzenie agent\u00f3w o r\u00f3\u017cnym stopniu skomplikowania, od prostych bot\u00f3w do bardziej zaawansowanych system\u00f3w wieloagentowych, takich jak GAIA. Dzi\u0119ki temu, \u017ce ADK jest frameworkiem, a nie gotowym produktem, mia\u0142em pe\u0142n\u0105 kontrol\u0119 nad architektur\u0105 i funkcjonalno\u015bci\u0105 mojego systemu, co pozwoli\u0142o mi dostosowa\u0107 go do specyficznych potrzeb i wymaga\u0144 mojego projektu.<\/p>\n\n\n\n<p>Dost\u0119pno\u015b\u0107 narz\u0119dzi i gotowych rozwi\u0105za\u0144 by\u0142a g\u0142\u00f3wnym powodem, dzi\u0119ki kt\u00f3remu uda\u0142o mi si\u0119 stworzy\u0107 GAI\u0118 od pocz\u0105tku do ko\u0144ca w ci\u0105gu zaledwie 10 dni \u2013 wliczaj\u0105c w to wszechstronne testy oraz po\u0142\u0105czenie z Jir\u0105.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Ale czy to dzia\u0142a?<\/strong><\/h2>\n\n\n\n<p>Zwyk\u0142o si\u0119 m\u00f3wi\u0107, \u017ce systemy AI to tzw. black boxy \u2013 nie wiemy, jak dok\u0142adnie dzia\u0142aj\u0105, a ich dzia\u0142anie jest cz\u0119sto nieprzewidywalne. O ile pojedynczy LLM to black box, o tyle system wieloagentowy, taki jak GAIA, jest zestawem black box\u00f3w, po\u0142\u0105czonych nieprzezroczystymi po\u0142\u0105czeniami, zapakowanym w jeszcze jeden black box.<\/p>\n\n\n\n<p>Jak wi\u0119c mo\u017cemy by\u0107 pewni, \u017ce taki system dzia\u0142a poprawnie i spe\u0142nia swoje zadanie? Odpowied\u017a jest prosta: testuj\u0105c go w praktyce. W przypadku system\u00f3w AI stosuje si\u0119 (opr\u00f3cz standardowych test\u00f3w jednostkowych i integracyjnych) testy funkcjonalne (tzw. content tests), kt\u00f3re polegaj\u0105 na symulowaniu rzeczywistych scenariuszy i sprawdzaniu, czy system reaguje na nie w spos\u00f3b zgodny z oczekiwaniami. Podej\u015bcie to cz\u0119sto opiera si\u0119 na hybrydowym zastosowaniu deterministycznych test\u00f3w oraz podej\u015bciu opartym na paradygmacie LLM as a judge.<\/p>\n\n\n\n<p>W przypadku obu rodzaj\u00f3w test\u00f3w najpierw nale\u017cy przygotowa\u0107 zestaw scenariuszy testowych, kt\u00f3re b\u0119d\u0105 reprezentatywne dla rzeczywistych sytuacji, z kt\u00f3rymi system b\u0119dzie musia\u0142 sobie radzi\u0107. Nast\u0119pnie trzeba sprawdzi\u0107, czy system zachowuje si\u0119 zgodnie z oczekiwaniami w tych scenariuszach.<\/p>\n\n\n\n<p>W przypadku test\u00f3w deterministycznych oczekiwania s\u0105 jasno okre\u015blone, a system powinien zawsze reagowa\u0107 w ten sam spos\u00f3b. Przyk\u0142adem takich test\u00f3w jest sprawdzanie, czy Policy Agent cytuje odpowiednie paragrafy z dokument\u00f3w firmy. Za ka\u017cdym razem zbi\u00f3r tych cytowa\u0144 powinien by\u0107 podobny \u2013 st\u0105d determinizm test\u00f3w.<\/p>\n\n\n\n<p>W przypadku podej\u015bcia LLM as a judge sprawdza si\u0119 (wykorzystuj\u0105c do tego celu inny, niezale\u017cny model LLM), czy odpowied\u017a systemu jest wystarczaj\u0105co podobna do oczekiwanej, bior\u0105c pod uwag\u0119, \u017ce mo\u017ce ona by\u0107 sformu\u0142owana na wiele r\u00f3\u017cnych sposob\u00f3w.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Testy<\/strong><\/h3>\n\n\n\n<p>W ramach pracy nad GAIA przygotowa\u0142em zestaw ponad 250 content test\u00f3w, sprawdzaj\u0105cych dzia\u0142anie poszczeg\u00f3lnych agent\u00f3w w r\u00f3\u017cnych scenariuszach. Dodatkowo przygotowa\u0142em 16 test\u00f3w zawieraj\u0105cych scenariusze z wieloma naprzemiennymi interakcjami mi\u0119dzy u\u017cytkownikiem a systemem, kt\u00f3re pozwoli\u0142y mi sprawdzi\u0107, jak GAIA radzi sobie z bardziej skomplikowanymi sytuacjami wymagaj\u0105cymi wsp\u00f3\u0142pracy r\u00f3\u017cnych agent\u00f3w i iteracyjnej komunikacji z u\u017cytkownikiem.<\/p>\n\n\n\n<p>W przypadku tych bardziej z\u0142o\u017conych scenariuszy LLM as a judge sprawdza\u0142 nie tylko zgodno\u015b\u0107 z za\u0142o\u017con\u0105 odpowiedzi\u0105, ale r\u00f3wnie\u017c zgodno\u015b\u0107 z oczekiwanym przebiegiem rozmowy \u2013 trudno bowiem przewidzie\u0107, jak dok\u0142adnie system zareaguje na ka\u017cde pytanie u\u017cytkownika, ale mo\u017cna okre\u015bli\u0107, jakie powinny by\u0107 og\u00f3lne ramy tej rozmowy (np. czy system powinien poprosi\u0107 o dodatkowe informacje, czy powinien skonsultowa\u0107 si\u0119 z innym agentem itp.). Dzi\u0119ki temu, \u017ce testy by\u0142y oparte na rzeczywistych scenariuszach, mog\u0142em mie\u0107 pewno\u015b\u0107, \u017ce GAIA b\u0119dzie w stanie poradzi\u0107 sobie z prawdziwymi sytuacjami, z kt\u00f3rymi b\u0119dzie musia\u0142a si\u0119 zmierzy\u0107 w codziennej pracy.<\/p>\n\n\n\n<p>Warto doda\u0107, \u017ce content testy nie s\u0142u\u017c\u0105 do jednokrotnego testowania systemu \u2013 przeciwnie, podobnie jak unit testy, uruchamiam je po wprowadzeniu ka\u017cdej wi\u0119kszej zmiany w systemie, aby upewni\u0107 si\u0119, \u017ce nadal dzia\u0142a on poprawnie.<\/p>\n\n\n\n<p>Nale\u017cy jednak zastrzec, \u017ce z powodu losowo\u015bci w dzia\u0142aniu wielkich modeli j\u0119zykowych nie ustali\u0142em progu zaliczenia test\u00f3w na 100% \u2013 dopuszczam, \u017ce w niekt\u00f3rych testach system mo\u017ce nie przej\u015b\u0107, mimo \u017ce dzia\u0142a poprawnie. Dlatego te\u017c ustali\u0142em pr\u00f3g zaliczenia na 90% \u2013 je\u015bli system przejdzie 90% test\u00f3w, uznaj\u0119, \u017ce dzia\u0142a poprawnie (10% niedzia\u0142aj\u0105cych test\u00f3w powinno by\u0107 losowe \u2013 w przypadku, gdy system nie mo\u017ce przej\u015b\u0107 tego samego testu wielokrotnie, nale\u017cy przyjrze\u0107 si\u0119 temu testowi i sprawdzi\u0107, co jest jego przyczyn\u0105).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Wyniki test\u00f3w<\/strong><\/h3>\n\n\n\n<p>Poni\u017cej \u015brednie metryki z przeprowadzonych test\u00f3w:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>96% zapyta\u0144 obs\u0142u\u017conych przez system bez interwencji cz\u0142owieka,<\/li>\n\n\n\n<li>zaledwie 3% przypadk\u00f3w eskalowanych do cz\u0142owieka,<\/li>\n\n\n\n<li>maksymalny czas odpowiedzi: 5 minut.<\/li>\n<\/ul>\n\n\n\n<p>Warto wyja\u015bni\u0107, co kryje si\u0119 za tymi 3% eskalacji.<\/p>\n\n\n\n<p>Gdy GAIA nie jest w stanie obs\u0142u\u017cy\u0107 zapytania samodzielnie \u2013 bo problem jest zbyt z\u0142o\u017cony, dotyczy obszaru poza jej kompetencjami albo wymaga ludzkiego os\u0105du \u2013 system w spos\u00f3b kontrolowany przekazuje rozmow\u0119 dalej. U\u017cytkownik dostaje informacj\u0119, \u017ce jego spraw\u0105 zajmie si\u0119 cz\u0142owiek, a ticket w Jirze zostaje przypisany do odpowiedniej osoby z zespo\u0142u obs\u0142ugi podr\u00f3\u017cy. Nie ma tu cichego \u201eporzucenia\u201d zapytania \u2013 przekazanie go cz\u0142owiekowi jest \u015bwiadomym, jawnym krokiem systemu.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Multi-agent vs single-agent<\/strong><\/h2>\n\n\n\n<p>Dlaczego zdecydowa\u0142em si\u0119 rozdzieli\u0107 funkcjonalno\u015b\u0107 mi\u0119dzy kilka agent\u00f3w zamiast stworzy\u0107 jednego, kt\u00f3ry b\u0119dzie robi\u0142 wszystko? Odpowied\u017a jest prosta: <strong>modularno\u015b\u0107, specjalizacja i \u0142atwo\u015b\u0107 testowania.<\/strong><\/p>\n\n\n\n<p>Ka\u017cdy agent w GAIA ma jasno okre\u015blon\u0105 rol\u0119 i specjalizacj\u0119, co pozwala mu skupi\u0107 si\u0119 na konkretnych zadaniach i wykonywa\u0107 je lepiej. Dzi\u0119ki temu, \u017ce ka\u017cdy agent jest odpowiedzialny za inny obszar, mog\u0142em zoptymalizowa\u0107 ich dzia\u0142anie i dostosowa\u0107 je do specyficznych potrzeb ka\u017cdego z tych obszar\u00f3w.<\/p>\n\n\n\n<p>Ponadto rozdzielenie funkcjonalno\u015bci na kilka agent\u00f3w u\u0142atwia zarz\u0105dzanie i rozw\u00f3j systemu \u2013 je\u015bli chc\u0119 doda\u0107 now\u0105 funkcjonalno\u015b\u0107 lub poprawi\u0107 istniej\u0105c\u0105, mog\u0119 to zrobi\u0107 w jednym agencie, nie wp\u0142ywaj\u0105c na dzia\u0142anie pozosta\u0142ych. Dodatkowo rozdzielenie funkcjonalno\u015bci na kilka agent\u00f3w bardzo u\u0142atwia testowanie \u2013 mog\u0119 testowa\u0107 ka\u017cdego agenta osobno, a tak\u017ce testowa\u0107 ich wsp\u00f3\u0142prac\u0119 w r\u00f3\u017cnych scenariuszach. <\/p>\n\n\n\n<p>Ostatnim, ale nie mniej wa\u017cnym, powodem jest optymalizacja koszt\u00f3w \u2013 ka\u017cdy agent mo\u017ce by\u0107 innym modelem. Dzi\u0119ki temu mog\u0119 u\u017cy\u0107 pot\u0119\u017cnego modelu do zada\u0144 researchowych (np. Reporting Agent), a prostszego, ta\u0144szego modelu do zada\u0144, kt\u00f3re tego nie wymagaj\u0105 (np. Orchestrator).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Czego si\u0119 nauczy\u0142em<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Wiele LLM-\u00f3w to wiele \u017ar\u00f3de\u0142 niespodzianek<\/strong><\/h3>\n\n\n\n<p>W systemach wieloagentowych ka\u017cdy agent ma w\u0142asny kontekst i w\u0142asne za\u0142o\u017cenia. Informacja nie przep\u0142ywa automatycznie w g\u00f3r\u0119 hierarchii. Podczas developmentu stosowa\u0142em podej\u015bcie \u201emock first\u201d: zaczynamy od zamockowanych odpowiedzi wszystkich narz\u0119dzi, potem stopniowo zast\u0119pujemy je prawdziwymi implementacjami. Jest to podej\u015bcie, kt\u00f3re pozwala testowa\u0107 logik\u0119 agent\u00f3w, zanim pod\u0142\u0105czy si\u0119 zewn\u0119trzne API.<\/p>\n\n\n\n<p>Problem pojawi\u0142 si\u0119, gdy kt\u00f3ry\u015b tool by\u0142 jeszcze zamockowany, a ja o tym zapomnia\u0142em. Agent u\u017cywaj\u0105cy tego narz\u0119dzia wiedzia\u0142, \u017ce dostaje odpowied\u017a z mocka \u2013 ale nie przekaza\u0142 tej informacji Orchestratorowi. U\u017cytkownik dostawa\u0142 odpowied\u017a wygl\u0105daj\u0105c\u0105 na prawdziw\u0105, kt\u00f3ra de facto pochodzi\u0142a z mockowanych danych. W systemie wieloagentowym subtelny b\u0142\u0105d w jednym miejscu mo\u017ce da\u0107 z pozoru prawid\u0142owy wynik na wyj\u015bciu.<\/p>\n\n\n\n<p>Wniosek praktyczny: <strong>testy automatyczne s\u0105 krytyczne<\/strong> \u2013 nie tylko testy poszczeg\u00f3lnych agent\u00f3w, ale tak\u017ce testy weryfikuj\u0105ce ca\u0142y pipeline end-to-end. R\u0119czne sprawdzanie nie wystarczy, gdy b\u0142\u0105d jest semantyczny, a nie sk\u0142adniowy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>ADK w fazie eksperymentalnej<\/strong><\/h3>\n\n\n\n<p><strong>Wa\u017cne: projekt GAIA powsta\u0142 na prze\u0142omie sierpnia i wrze\u015bnia 2025<\/strong><\/p>\n\n\n\n<p>W momencie budowania projektu ADK by\u0142 m\u0142odym, aktywnie rozwijanym frameworkiem. Dokumentacja bywa\u0142a niekompletna lub opisywa\u0142a API, kt\u00f3re ju\u017c dzia\u0142a\u0142o inaczej. Kilka razy sporo czasu zaj\u0119\u0142o debugowanie czego\u015b, co okaza\u0142o si\u0119 b\u0142\u0119dem w dokumentacji, nie w kodzie. Auto-deploy na Vertex AI nie dzia\u0142a\u0142 stabilnie i trudno by\u0142o to zdebugowa\u0107 \u2013 ostatecznie zdecydowa\u0142em si\u0119 na w\u0142asne REST API na VM w GCP, co da\u0142o mi pe\u0142n\u0105 kontrol\u0119 nad zarz\u0105dzaniem i debugowaniem. <\/p>\n\n\n\n<p>Warto by\u0107 tego \u015bwiadomym, planuj\u0105c podobny projekt: przy wczesnych wersjach framework\u00f3w trzeba zarezerwowa\u0107 czas na tak\u0105 walk\u0119.<\/p>\n\n\n<div class=\"nsw-o-blogersii-banner\">\n            <picture>\n            <source srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/04\/Banner-AI-Offer-Sample-Desktop.jpg\" media=\"(min-width: 992px)\" >\n            <source srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/04\/Banner-AI-Offer-Sample-MOB.jpg\" media=\"(min-width: 300px)\" >            <img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/04\/Banner-AI-Offer-Sample-Desktop.jpg\" alt=\"\"  class=\"\"  >\n        <\/picture>\n        <div class=\"cnt\">\n                    <div class=\"nsw-m-title-block -h3 -invert  -has-title-margin-bottom-0 -has-title-font-weight-bold\">\n                                <h2 class=\"nsw-m-title-block__title\">Artificial Intelligence<\/h2>\n                <\/div>\n                            <p class=\"has-nsw-p-4-font-size has-invert-color\">\n                Dostarczamy rozwi\u0105zania AI dopasowane do Twojego biznesu, kt\u00f3re zwi\u0119kszaj\u0105 efektywno\u015b\u0107 i podnosz\u0105 produktywno\u015b\u0107 Twojego zespo\u0142u.\n            <\/p>\n                            <a  href=\"https:\/\/sii.pl\/oferta\/artificial-intelligence\/\" class=\"nsw-a-button -ghost -banner-button\"   >\n        <span>Oferta AI<\/span>\n    <\/a>\n            <\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Podsumowanie<\/strong><\/h2>\n\n\n\n<p>Projekt GAIA pokaza\u0142, \u017ce AI mo\u017ce by\u0107 skutecznym narz\u0119dziem w rozwi\u0105zywaniu realnych problem\u00f3w biznesowych, takich jak organizacja podr\u00f3\u017cy s\u0142u\u017cbowych.<\/p>\n\n\n\n<p>Dzi\u0119ki zastosowaniu systemu wieloagentowego, uda\u0142o mi si\u0119 stworzy\u0107 rozwi\u0105zanie, kt\u00f3re integruje r\u00f3\u017cne systemy i \u017ar\u00f3d\u0142a danych w jednym miejscu, umo\u017cliwiaj\u0105c pracownikom \u0142atwe zarz\u0105dzanie swoimi podr\u00f3\u017cami. Projekt ten by\u0142 tak\u017ce \u015bwietn\u0105 okazj\u0105 do eksperymentowania z nowymi technologiami i rozwijania swoich umiej\u0119tno\u015bci w dziedzinie AI.<\/p>\n\n\n\n<p>Nie mo\u017cna tutaj nie podkre\u015bli\u0107 roli ADK \u2013 dzi\u0119ki temu frameworkowi uda\u0142o mi si\u0119 stworzy\u0107 GAIA w ci\u0105gu zaledwie 10 dni.<\/p>\n\n\n\n<p><br><\/p>\n\n\n\n<p><br><\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;34429&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;1&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;2&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;5\\\/5&quot;,&quot;size&quot;:&quot;30&quot;,&quot;title&quot;:&quot;Jak AI naprawi\u0142o organizacj\u0119 podr\u00f3\u017cy s\u0142u\u017cbowych&quot;,&quot;width&quot;:&quot;159&quot;,&quot;_legend&quot;:&quot;{score}\\\/5&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 159px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 24px;\">\n            5\/5    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Je\u015bli nale\u017cysz do grona os\u00f3b, kt\u00f3re cz\u0119sto je\u017cd\u017c\u0105 w podr\u00f3\u017ce s\u0142u\u017cbowe, to wiesz, z jakimi wyzwaniami si\u0119 to wi\u0105\u017ce. Rezerwacja &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/jak-ai-naprawilo-organizacje-podrozy-sluzbowych\/\">Continued<\/a><\/p>\n","protected":false},"author":805,"featured_media":34436,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1314],"tags":[5440,2863,682,1032],"class_list":["post-34429","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-twardo","tag-coreai","tag-llm","tag-artificial-intelligence","tag-case-study"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/AI_1.jpg","category_names":["Development na twardo"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/34429"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/805"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=34429"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/34429\/revisions"}],"predecessor-version":[{"id":34444,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/34429\/revisions\/34444"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/34436"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=34429"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=34429"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=34429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}