{"id":34532,"date":"2026-08-05T05:00:00","date_gmt":"2026-08-05T03:00:00","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=34532"},"modified":"2026-07-27T14:50:12","modified_gmt":"2026-07-27T12:50:12","slug":"pamiec-projektowa-agentow-context-as-a-code-na-przykladzie-srodowiska-google-antigravity-2-0","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/pamiec-projektowa-agentow-context-as-a-code-na-przykladzie-srodowiska-google-antigravity-2-0\/","title":{"rendered":"Pami\u0119\u0107 projektowa agent\u00f3w: Context as a Code na przyk\u0142adzie \u015brodowiska Google Antigravity 2.0"},"content":{"rendered":"\n<p>Siedzisz kolejn\u0105 godzin\u0119 nad krytyczn\u0105 implementacj\u0105 ze swoim agentem AI. Z ka\u017cdym kolejnym promptem masz poczucie, \u017ce oddalasz si\u0119 od celu, patrz\u0105c na wyniki, kt\u00f3re otrzymujesz. Chwil\u0119 p\u00f3\u017aniej model ponownie przeprasza, po czym zn\u00f3w generuje kod \u0142ami\u0105cy wszystkie wytyczne, kt\u00f3re skrupulatnie mu przekazywa\u0142e\u015b. Zamiast skupi\u0107 si\u0119 na architekturze, stajesz si\u0119 mikromened\u017cerem asystenta cierpi\u0105cego na amnezj\u0119 kontekstow\u0105.<\/p>\n\n\n\n<p>Wpychanie setek linii prompt\u00f3w systemowych i dziesi\u0105tek plik\u00f3w nag\u0142\u00f3wkowych do okna czatu przy ka\u017cdej nowej sesji to \u015blepy zau\u0142ek. Prowadzi to do zjawiska okre\u015blanego w dokumentacji Google Antigravity jako context rot (gnicie kontekstu). Model gubi w\u0105tek w nat\u0142oku szumu informacyjnego lub sprzecznych ze sob\u0105 informacji, op\u00f3\u017anienia zwykle rosn\u0105 wraz z rozmiarem kontekstu, a halucynacje i b\u0142\u0119dne za\u0142o\u017cenia zaczynaj\u0105 blokowa\u0107 post\u0119p prac.<\/p>\n\n\n\n<p>To nie b\u0119dzie kolejny, generyczny tutorial z in\u017cynierii prompt\u00f3w ani zbi\u00f3r magicznych komend dla pocz\u0105tkuj\u0105cych. <strong>Artyku\u0142 kieruj\u0119 do in\u017cynier\u00f3w, kt\u00f3rzy maj\u0105 do\u015b\u0107 bycia mikromened\u017cerami dla swoich agent\u00f3w AI i chc\u0105 spr\u00f3bowa\u0107 wdro\u017cy\u0107 systemowe ramy wsp\u00f3\u0142pracy z nimi. <\/strong>Zostawmy wi\u0119c frustracj\u0119 za sob\u0105 i przejd\u017amy do konkret\u00f3w. Rozwi\u0105zanie? Prostsze ni\u017c my\u015blisz. Context as a Code (CaaC).<\/p>\n\n\n\n<p>Przenosimy kompletn\u0105 konfiguracj\u0119 zachowa\u0144, standard\u00f3w architektonicznych i rygor\u00f3w bezpiecze\u0144stwa bezpo\u015brednio do repozytorium w formie plik\u00f3w tekstowych (najlepiej w formacie Markdown, kt\u00f3ry modele lubi\u0105 i potrafi\u0105 odczyta\u0107). Korzystaj\u0105c z platformy Google Antigravity (jako \u015brodowiska referencyjnego), mo\u017cemy wdro\u017cy\u0107 zautomatyzowane ramy operacyjne dla projekt\u00f3w w wysokopoziomowym C++ (i nie tylko).<\/p>\n\n\n\n<p>Zobaczmy, jak ustrukturyzowane pliki Markdown pozwalaj\u0105 agentom na dynamiczn\u0105 aktualizacj\u0119 instrukcji operacyjnych i utrwalanie wiedzy projektowej w repozytorium.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Filozofia CaaC: Architektura pami\u0119ci agent\u00f3w<\/strong><\/h2>\n\n\n\n<p>W paradygmacie CaaC wiedza o architekturze oprogramowania i standardach kodowania nie znajduje si\u0119 w plikach PDF na dyskach sieciowych ani w rzadko aktualizowanych dokumentach Wiki. Jest wersjonowanym kodem, kt\u00f3ry ka\u017cdy in\u017cynier pobiera ze swojego ulubionego systemu kontroli wersji.<\/p>\n\n\n\n<p>Aby podej\u015bcie Context as a Code dzia\u0142a\u0142o bez zarzutu, musimy precyzyjnie oddzieli\u0107 to, co czytaj\u0105 ludzie, od tego, co konfiguruje agent\u00f3w. Na potrzeby tego artyku\u0142u b\u0119dziemy pos\u0142ugiwa\u0107 si\u0119 uproszczonym modelem podzia\u0142u pami\u0119ci na pami\u0119\u0107 kontekstu (In-Context Memory) i pami\u0119\u0107 zarz\u0105dzan\u0105 (Managed Memory).<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a72aea6bad98&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a72aea6bad98\" class=\"wp-block-image size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"559\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image1-3.png\" alt=\"Struktura plik\u00f3w w CaaC w Google Antigravity (opracowanie w\u0142asne)\" class=\"wp-image-34533\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image1-3.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image1-3-300x164.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image1-3-768x419.png 768w\" 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\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.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 Struktura plik\u00f3w w CaaC w Google Antigravity (opracowanie w\u0142asne)<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Pami\u0119\u0107 zarz\u0105dzana (Managed Memory)<\/strong><\/h2>\n\n\n\n<p>Aby unikn\u0105\u0107 wspomnianego wcze\u015bniej gnicia kontekstu, nie mo\u017cemy \u0142adowa\u0107 ca\u0142ej dokumentacji projektowej do promptu startowego agenta w ka\u017cdej sesji.<\/p>\n\n\n\n<p>Tradycyjny README.md s\u0142u\u017cy wy\u0142\u0105cznie ludziom \u2013 zawiera kr\u00f3tki opis biznesowy projektu oraz kroki wdro\u017ceniowe dla deweloper\u00f3w.<\/p>\n\n\n\n<p>Z kolei ARCHITECTURE.md staje si\u0119 techniczn\u0105 map\u0105 drogow\u0105 projektu, opisuj\u0105c\u0105 podzia\u0142 na modu\u0142y, przep\u0142ywy danych oraz historyczne decyzje techniczne. Agent nie analizuje ich stale \u2013 w razie potrzeby mo\u017cna jawnie doda\u0107 je do kontekstu (np. poprzez @ARCHITECTURE.md).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Pami\u0119\u0107 kontekstu (In-Context Memory)<\/strong><\/h2>\n\n\n\n<p>To jest w\u0142a\u015bciwe centrum sterowania Twoich agent\u00f3w. Pliki w katalogu .agents\/ bezpo\u015brednio wp\u0142ywaj\u0105 na zachowanie agent\u00f3w, ich role oraz umiej\u0119tno\u015bci. Mo\u017cemy podzieli\u0107 ten obszar na kilka warstw, gdzie ka\u017cda z nich odpowiada za zupe\u0142nie inne rzeczy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Warstwa I: AGENTS.md (To\u017csamo\u015b\u0107 i ramy wykonawcze)<\/strong><\/h3>\n\n\n\n<p>Jest to otwarty standard rozwijany przez Agentic AI Foundation pod egid\u0105 Linux Foundation. Definiuje:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>role w zespole (personas),<\/li>\n\n\n\n<li>konfiguracj\u0119 \u015brodowiska deweloperskiego,<\/li>\n\n\n\n<li>twarde polecenia weryfikuj\u0105ce.<\/li>\n<\/ul>\n\n\n\n<p>Antigravity potrafi korzysta\u0107 zar\u00f3wno z AGENTS.md, jak i z w\u0142asnych mechanizm\u00f3w pami\u0119ci kontekstowej wykorzystywanych w ekosystemie Gemini (np. GEMINI.md dla globalnych ustawie\u0144).<\/p>\n\n\n\n<p>Przyk\u0142adowa zawarto\u015b\u0107 pliku AGENTS.md:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n# AGENTS.md\n\n# The Autonomous Development Team\n\n## The Product Manager (@pm)\n\nYou are a visionary Product Manager and Lead Architect with 15+ years of experience.\n\n- **Goal**: Translate vague user ideas into comprehensive, robust, and technology-agnostic Technical Specifications.\n- **Traits**: Highly analytical, user-centric, and structured. You never write code; you only design systems.\n- **Constraint**: You MUST always pause for explicit user approval before considering your job done. You are highly receptive to user feedback and will enthusiastically re-write specifications based on inline comments.\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\"><strong>Warstwa II: .agents\/rules\/ (Lokalne regu\u0142y projektu)<\/strong><\/h3>\n\n\n\n<p>Folder .agents\/rules\/ przechowuje regu\u0142y specyficzne dla danego projektu (Workspace Rules). S\u0105 to pliki Markdown (w obecnej wersji ograniczone do 12 000 znak\u00f3w), w kt\u00f3rych programujesz twarde ograniczenia kodu lub zachowania (np. nakaz stosowania inteligentnych wska\u017anik\u00f3w czy wy\u0142\u0105czenie starych rzutowa\u0144 w stylu C).<\/p>\n\n\n\n<p>Ograniczenie pomaga utrzyma\u0107 kluczowe instrukcje poza g\u0142\u00f3wnym promptem i zmniejsza ryzyko ich pomini\u0119cia przez model. Regu\u0142y te mog\u0105 by\u0107 zawsze aktywne (Always On) lub wywo\u0142ywane w locie na podstawie dopasowania plik\u00f3w (np. dla rozszerze\u0144 .cpp).<\/p>\n\n\n\n<p>Przyk\u0142ad regu\u0142y .agents\/rules\/container_rules.md:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n# C++ Container Rules\n\n- Never use raw C-style arrays (e.g., `int arr&#x5B;]`). Always use `std::array` or `std::vector`.\n- Prefer `std::string_view` for read-only function parameters to prevent unnecessary memory allocations.\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\"><strong>Warstwa III: .agents\/skills\/ (Modu\u0142owe pakiety kompetencyjne)<\/strong><\/h3>\n\n\n\n<p>Umiej\u0119tno\u015bci to wydzielone foldery (nazwane konkretn\u0105 umiej\u0119tno\u015bci\u0105) zawieraj\u0105ce plik instrukcji SKILL.md oraz alternatywnie powi\u0105zane z nim skrypty pomocnicze lub przyk\u0142ady.<\/p>\n\n\n\n<p>Pakiety te dzia\u0142aj\u0105 w oparciu o regu\u0142\u0119 progresywnego ujawniania kontekstu. Agent na starcie widzi jedynie list\u0119 dost\u0119pnych umiej\u0119tno\u015bci wraz z ich opisem. Dopiero gdy dana umiej\u0119tno\u015b\u0107 jest potrzebna do realizacji zadania, wczytywana jest pe\u0142na zawarto\u015b\u0107 pliku SKILL.md wraz z powi\u0105zanymi zasobami pomocniczymi. Dzi\u0119ki temu rzadko u\u017cywane instrukcje nie obci\u0105\u017caj\u0105 aktywnego kontekstu modelu.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a72aea6bbd6a&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a72aea6bbd6a\" class=\"wp-block-image size-full wp-lightbox-container\"><img decoding=\"async\" width=\"653\" height=\"222\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image2-3.png\" alt=\"Struktura plik\u00f3w dla umiej\u0119tno\u015bci (skills)\" class=\"wp-image-34535\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image2-3.png 653w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/image2-3-300x102.png 300w\" sizes=\"(max-width: 653px) 100vw, 653px\" \/><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\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.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 Struktura plik\u00f3w dla umiej\u0119tno\u015bci (skills) (<a href=\"https:\/\/antigravity.google\/docs\/skills\" target=\"_blank\" rel=\"noopener\" title=\"\" rel=\"nofollow\" >\u017ar\u00f3d\u0142o<\/a>)<\/figcaption><\/figure>\n\n\n\n<p>Przyk\u0142ad zawarto\u015bci takiego pliku:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n# Skill: Deploy to Cloud Run\n\n## Objective\nYour goal as DevOps is to package the application into a container and deploy it to Google Cloud Run.\n\n## Instructions\n1. **Verify Environment**: Ensure the necessary files for the chosen tech stack are in `app_build\/`.\n2. **Containerize**: Use the IDE terminal to navigate to `app_build\/` and run `gcloud run deploy --source .`. \n3. **Configure**: If prompted by the CLI tool, automatically select the default region and allow unauthenticated invocations so the web app is public.\n4. **Report**: Output the live production Google Cloud Run URL to the user!\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\"><strong>Warstwa IV: .agents\/workflows\/ (Choreografia zada\u0144)<\/strong><\/h3>\n\n\n\n<p>Zwie\u0144czeniem ca\u0142ego systemu s\u0105 przep\u0142ywy pracy (Workflows), kt\u00f3re definiuj\u0105 kolejno\u015b\u0107 wykonywania zada\u0144 przez agenta. Podczas gdy regu\u0142y (Rules) dostarczaj\u0105 ogranicze\u0144, a umiej\u0119tno\u015bci (Skills) dostarczaj\u0105 kompetencji, workflow okre\u015bla, kiedy i w jakiej kolejno\u015bci maj\u0105 zosta\u0107 u\u017cyte.<\/p>\n\n\n\n<p>Zapisuj\u0105c plik Markdown w tym folderze, tworzysz now\u0105 niestandardow\u0105 komend\u0119 typu slash command (np. \/auto-verify). Po jej wywo\u0142aniu agent automatycznie przejdzie przez zdefiniowany przez Ciebie proces. Agent asynchronicznie realizuje proces, ca\u0142kowicie eliminuj\u0105c potrzeb\u0119 Twojego mikrozarz\u0105dzania mi\u0119dzy etapami.<\/p>\n\n\n\n<p>Przyk\u0142adowa zawarto\u015bci pliku:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n---\ndescription: Start the Autonomous AI Developer Pipeline sequence with a new idea\n---\n\nWhen the user types `\/startcycle &lt;idea&gt;`, orchestrate the development process strictly using `.agents\/AGENTS.md` and `.agents\/skills\/`.\n\n## Execution Sequence\n1. Act as the **Product Manager** and execute the `write_specs.md` skill using the `&lt;idea&gt;`.\n   - Wait for the user to explicitly approve the spec.\n   - If the user provides feedback or adds comments directly to the Markdown file, act as the PM again to re-read and revise the document.\n   - Loop this step until they type `Approved`.\n2. Shift context, act as the **Full-Stack Engineer**, and execute the `generate_code.md` skill.\n3. Shift context, act as the **QA Engineer**, and execute the `audit_code.md` skill.\n4. Shift context, act as the **DevOps Master**, and execute the `deploy_app.md` skill.\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>Self-Modification: Jak repozytorium utrwala wiedz\u0119 projektow\u0105<\/strong><\/h2>\n\n\n\n<p>Istotnym elementem architektury CaaC jest mo\u017cliwo\u015b\u0107 nie tylko odczytu plik\u00f3w konfiguracyjnych przez agent\u00f3w, ale r\u00f3wnie\u017c proponowania ich aktualizacji. Klasyczny asystent AI uczy si\u0119 wy\u0142\u0105cznie w granicach aktywnej sesji czatu. Po jej zamkni\u0119ciu wypracowana wiedza o unikalnych cechach Twojej aplikacji oraz specyfice projektu zostaje bezpowrotnie utracona. W paradygmacie CaaC wiedza ta zostaje utrwalona bezpo\u015brednio w kodzie.<\/p>\n\n\n\n<p>Ca\u0142y proces opiera si\u0119 na \u015bcis\u0142ej wsp\u00f3\u0142pracy cz\u0142owieka z maszyn\u0105. Po pomy\u015blnym rozwi\u0105zaniu problemu deweloper mo\u017ce uruchomi\u0107 faz\u0119 retrospekcji za pomoc\u0105 prostego polecenia: np. \u201eZaktualizuj nasz\u0105 umiej\u0119tno\u015b\u0107 stl-safety o wnioski z tej sesji\u201d.<\/p>\n\n\n\n<p>Agent mo\u017ce zaproponowa\u0107 aktualizacj\u0119 pliku SKILL.md oraz przedstawi\u0107 zmian\u0119 w formie diffu do akceptacji przez u\u017cytkownika. To bardzo wa\u017cny etap okre\u015blany jako <strong>human-in-the-loop<\/strong>. Cz\u0142owiek jest stawiany tutaj w roli nadzorcy i to on finalnie decyduje, czy zaproponowana zmiana zostanie zaakceptowana, czy nie.<\/p>\n\n\n\n<p>W ten spos\u00f3b wiedza projektowa trafia do wersjonowanego repozytorium i staje si\u0119 dost\u0119pna dla kolejnych sesji oraz cz\u0142onk\u00f3w zespo\u0142u. Ka\u017cda kolejna sesja robocza \u2013 bez wzgl\u0119du na to, czy jest uruchomiona przez tego samego dewelopera, czy przez nowego in\u017cyniera w zespole \u2013 rozpoczyna si\u0119 na wy\u017cszym poziomie dojrza\u0142o\u015bci technologicznej.<\/p>\n\n\n\n<p><strong>Dla ciekawskich:<\/strong> Aby bezpiecznie ewaluowa\u0107 i testowa\u0107 du\u017ce zmiany wprowadzane w repozytorium przez agenta, warto wyrobi\u0107 sobie nawyk uruchamiania go w wyizolowanym \u015brodowisku (np. wykorzystuj\u0105c mechanizm Git Worktree dost\u0119pny z poziomu konsoli Antigravity). Pozwala to asystentowi kompilowa\u0107 i testowa\u0107 kod na osobnej ga\u0142\u0119zi bez ryzyka uszkodzenia Twoich aktualnych, niezapisanych plik\u00f3w.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Zalety i wady podej\u015bcia CaaC<\/strong><\/h2>\n\n\n\n<p>Wdro\u017cenie paradygmatu Context as a Code w wymagaj\u0105cych projektach drastycznie zmienia dynamik\u0119 pracy. Podej\u015bcie to wymaga jednak ch\u0142odnego i obiektywnego os\u0105du in\u017cynieryjnego, opartego na analizie zysk\u00f3w i koszt\u00f3w operacyjnych.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Zalety<\/strong><\/h3>\n\n\n\n<p>Do g\u0142\u00f3wnych zalet nale\u017c\u0105:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Redukcja Time-To-Market i narzutu poznawczego:<\/strong> CaaC eliminuje potrzeb\u0119 ci\u0105g\u0142ego, manualnego wprowadzania agenta w szczeg\u00f3\u0142y techniczne i architektoniczne przy ka\u017cdej nowej sesji (w tym przy zmianie modelu j\u0119zykowego na inny w obr\u0119bie tej samej sesji). Zamiast marnowa\u0107 czas na \u201eszkolenie\u201d asystenta od zera lub r\u0119czne korygowanie jego b\u0142\u0119d\u00f3w, in\u017cynier przechodzi od razu do realizacji zada\u0144, co drastycznie skraca czas dostarczania funkcjonalno\u015bci.<\/li>\n\n\n\n<li><strong>Ograniczanie liczby b\u0142\u0119dnych decyzji modelu: <\/strong>Narzucenie twardych ram w postaci plik\u00f3w regu\u0142 i komend walidacji w repozytorium ogranicza liczb\u0119 niepo\u017c\u0105danych decyzji modelu. Pozwala to r\u00f3wnie\u017c utrzymywa\u0107 wersjonowan\u0105 baz\u0119 wiedzy projektowej dost\u0119pn\u0105 bezpo\u015brednio z repozytorium. Agent dzia\u0142a w ramach dodatkowych ogranicze\u0144 i wskaz\u00f3wek projektowych, co minimalizuje ryzyko wymy\u015blania nieistniej\u0105cych interfejs\u00f3w lub niesp\u00f3jnych wzorc\u00f3w.<\/li>\n\n\n\n<li><strong>Mierzalne oszcz\u0119dno\u015bci finansowe:<\/strong> B\u0142\u0119dy architektoniczne, kt\u00f3re tradycyjnie ujawniaj\u0105 si\u0119 dopiero na etapie integracji lub test\u00f3w dynamicznych, s\u0105 tutaj neutralizowane znacznie wcze\u015bniej dzi\u0119ki zautomatyzowanym p\u0119tlom w CaaC. Natychmiastowa walidacja i mo\u017cliwo\u015b\u0107 szybkiego wycofania zmian drastycznie ograniczaj\u0105 liczb\u0119 rewizji kodu na p\u00f3\u017aniejszych etapach projektu.<\/li>\n\n\n\n<li><strong>Wsp\u00f3lny, zsynchronizowany kontekst dla ca\u0142ego zespo\u0142u:<\/strong> Poniewa\u017c baza wiedzy i wytyczne s\u0105 wersjonowanym kodem w repozytorium Git, staj\u0105 si\u0119 one jedynym \u017ar\u00f3d\u0142em prawdy (Single Source of Truth). Wszyscy cz\u0142onkowie zespo\u0142u deweloperskiego pracuj\u0105 w oparciu o identyczny, sp\u00f3jny i automatycznie synchronizowany zestaw regu\u0142 oraz standard\u00f3w przy ka\u017cdym pobraniu kodu.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Wady<\/strong><\/h3>\n\n\n\n<p>Nie nale\u017cy r\u00f3wnie\u017c zapomina\u0107 o pewnych wadach i zagro\u017ceniach:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Wysokie koszty operacyjne (pob\u00f3r token\u00f3w): <\/strong>Nale\u017cy bezwzgl\u0119dnie pami\u0119ta\u0107, \u017ce to podej\u015bcie mo\u017ce wi\u0105za\u0107 si\u0119 z du\u017cym kosztem finansowym w warstwie zu\u017cycia API. Orkiestracja agent\u00f3w w ramach wieloetapowych przep\u0142yw\u00f3w pracy (workflows) wymaga ci\u0105g\u0142ego przesy\u0142ania log\u00f3w, wynik\u00f3w po\u015brednich lub plik\u00f3w konfiguracyjnych, kt\u00f3rych tre\u015b\u0107 z czasem ro\u015bnie, a to przek\u0142ada si\u0119 bezpo\u015brednio na liczb\u0119 konsumowanych token\u00f3w. Element ten musi zosta\u0107 uwzgl\u0119dniony w bud\u017cecie infrastruktury AI zespo\u0142u.<\/li>\n\n\n\n<li><strong>Zanieczyszczenia kontekstu: <\/strong>Je\u015bli w pliku `SKILL.md` agent zapisze b\u0142\u0119dn\u0105 regu\u0142\u0119 optymalizacji lub niepoprawne za\u0142o\u017cenie dotycz\u0105ce modelu pami\u0119ci albo wsp\u00f3\u0142bie\u017cno\u015bci, przy nast\u0119pnym uruchomieniu odczyta ten b\u0142\u0105d jako niepodwa\u017caln\u0105 prawd\u0119 projektow\u0105. Mo\u017ce to doprowadzi\u0107 do wygenerowania b\u0142\u0119d\u00f3w w dzia\u0142aniu aplikacji (np. race condition), kt\u00f3re s\u0105 niezwykle trudne do wy\u0142apania podczas standardowych test\u00f3w jednostkowych (ka\u017cdy, kto tego szuka\u0142, doskonale wie, \u017ce ostatni\u0105 rzecz\u0105, kt\u00f3rej potrzebujemy, jest AI dodaj\u0105ca nam kolejne b\u0142\u0119dy).<\/li>\n\n\n\n<li><strong>Zagro\u017cenie bezpiecze\u0144stwa i podatno\u015b\u0107 na ataki:<\/strong> Pliki .agents\/ mog\u0105 zawiera\u0107 instrukcje prowadz\u0105ce do wykonywania komend pow\u0142oki w lokalnym \u015brodowisku agenta. Je\u015bli z\u0142o\u015bliwy Pull Request zmodyfikuje plik `AGENTS.md`, wprowadzaj\u0105c niebezpieczn\u0105 komend\u0119 systemow\u0105, uruchomienie sesji agenta mo\u017ce doprowadzi\u0107 do wykonania przez niego nieautoryzowanych polece\u0144 w \u015brodowisku roboczym projektu.<\/li>\n\n\n\n<li><strong>Potencjalne konflikty mi\u0119dzy Skills, Rules, AGENTS: <\/strong>W du\u017cych repozytoriach problemem mog\u0105 sta\u0107 si\u0119 r\u00f3wnie\u017c konflikty mi\u0119dzy regu\u0142ami (Rules), umiej\u0119tno\u015bciami (Skills) i instrukcjami zawartymi w AGENTS.md poprzez wykluczaj\u0105ce si\u0119 wzajemnie instrukcje. St\u0105d istotnym elementem jest nadz\u00f3r i weryfikacja zawarto\u015bci tych plik\u00f3w. Warto tak\u017ce okre\u015bli\u0107 hierarchi\u0119 \u017ar\u00f3de\u0142 prawdy (np. AGENTS.md > Rules.md > Skills.md), aby ograniczy\u0107 niejednoznaczno\u015bci.<\/li>\n<\/ol>\n\n\n<div class=\"nsw-o-blogersii-banner\">\n            <picture>\n            <source srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/04\/Blog-Embedded-Lab-Desktop_.jpg\" media=\"(min-width: 992px)\" >\n            <source srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/04\/Blog-Embedded-Lab-Mob_.jpg\" media=\"(min-width: 300px)\" >            <img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/04\/Blog-Embedded-Lab-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\">Embedded Systems<\/h2>\n                <\/div>\n                            <p class=\"has-nsw-p-4-font-size has-invert-color\">\n                Oferujemy us\u0142ugi R&amp;D, projektowania, tworzenia i testowania system\u00f3w wbudowanych, zapewniaj\u0105c bezpiecze\u0144stwo i niezawodno\u015b\u0107 Twoich technologii.\n            <\/p>\n                            <a  href=\"https:\/\/sii.pl\/oferta\/embedded-systems\/\" class=\"nsw-a-button -ghost -banner-button\"   >\n        <span>Oferta Embedded systems<\/span>\n    <\/a>\n            <\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Podsumowanie i kierunek rozwoju<\/strong><\/h2>\n\n\n\n<p>Podej\u015bcie Context as a Code redefiniuje poj\u0119cie nowoczesnej in\u017cynierii oprogramowania. Przenosi cz\u0119\u015b\u0107 uwagi programisty z implementacji pojedynczych fragment\u00f3w kodu na definiowanie proces\u00f3w, regu\u0142 i architektury systemu. Traktowanie wytycznych dla agent\u00f3w na r\u00f3wni z kodem produkcyjnym i trzymanie ich w wersjonowanym repozytorium rozwi\u0105zuje odwieczny problem utraty kontekstu deweloperskiego.<\/p>\n\n\n\n<p>Aby jednak ten system dzia\u0142a\u0142 sprawnie, zespo\u0142y deweloperskie musz\u0105 po\u017cegna\u0107 si\u0119 z chaosem dokumentacyjnym i k\u0142a\u015b\u0107 wi\u0119kszy nacisk na spisanie regu\u0142 i zasad. Agent bardzo szybko ujawni brakuj\u0105ce regu\u0142y projektowe, niejednoznaczne wymagania oraz niesp\u00f3jno\u015bci w konfiguracji projektu. <\/p>\n\n\n\n<p>Zacznij od prostego AGENTS.md i kilku regu\u0142 projektowych opieraj\u0105c si\u0119 o przygotowane przyk\u0142ady na <a href=\"https:\/\/github.com\/google-gemini\/gemini-cli\/tree\/main\/.gemini\/skills\" target=\"_blank\" rel=\"noopener\" title=\"\" rel=\"nofollow\" >GitHub<\/a>. Nawet niewielka ilo\u015b\u0107 dobrze utrwalonego kontekstu potrafi znacz\u0105co poprawi\u0107 przewidywalno\u015b\u0107 pracy agent\u00f3w.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u0179r\u00f3d\u0142a<\/strong><\/h2>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><a href=\"https:\/\/antigravity.google\/docs\/home\" target=\"_blank\" rel=\"noopener\" title=\"\" rel=\"nofollow\" >Google Antigravity Documentation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/agents.md\/\" target=\"_blank\" rel=\"noopener\" title=\"\" rel=\"nofollow\" >Agents.md<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/google-gemini\/gemini-cli\" target=\"_blank\" rel=\"noopener\" title=\"\" rel=\"nofollow\" >Google Gemini GitHub<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Google_Antigravity\" target=\"_blank\" rel=\"noopener\" title=\"\" rel=\"nofollow\" >Google Antigravity \u2013 Wikipedia<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/codelabs.developers.google.com\/autonomous-ai-developer-pipelines-antigravity?hl=pl#2\" target=\"_blank\" rel=\"noopener\" title=\"\" rel=\"nofollow\" >Build Autonomous Developer Pipelines with Google Antigravity<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/codelabs.developers.google.com\/getting-started-with-antigravity-skills\" target=\"_blank\" rel=\"noopener\" title=\"\" rel=\"nofollow\" >Authoring Google Antigravity Skills<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/antigravity.google\/docs\/cli-best-practices\" target=\"_blank\" rel=\"noopener\" title=\"\" rel=\"nofollow\" >Best practices for Antigravity CLI<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/codelabs.developers.google.com\/getting-started-google-antigravity\" target=\"_blank\" rel=\"noopener\" title=\"\" rel=\"nofollow\" >Getting Started with Google Antigravity<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=-0Irz8G0PEE\" target=\"_blank\" rel=\"noopener\" title=\"\" rel=\"nofollow\" >Google Antigravity Tutorial for Beginners: Build Your First App (Step-by-Step) &#8211; YouTube<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.reddit.com\/r\/google_antigravity\/comments\/1tbvmnb\/how_i_gave_google_antigravity_a_real_longterm\/\" target=\"_blank\" rel=\"noopener\" title=\"\" rel=\"nofollow\" >How I gave Google Antigravity a real long-term memory : r\/google_antigravity &#8211; Reddit<\/a><\/li>\n<\/ol>\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;34532&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;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&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;0\\\/5&quot;,&quot;size&quot;:&quot;30&quot;,&quot;title&quot;:&quot;Pami\u0119\u0107 projektowa agent\u00f3w: Context as a Code na przyk\u0142adzie \u015brodowiska Google Antigravity 2.0&quot;,&quot;width&quot;:&quot;0&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: 0px;\">\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            <span class=\"kksr-muted\"><\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Siedzisz kolejn\u0105 godzin\u0119 nad krytyczn\u0105 implementacj\u0105 ze swoim agentem AI. Z ka\u017cdym kolejnym promptem masz poczucie, \u017ce oddalasz si\u0119 od &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/pamiec-projektowa-agentow-context-as-a-code-na-przykladzie-srodowiska-google-antigravity-2-0\/\">Continued<\/a><\/p>\n","protected":false},"author":811,"featured_media":34537,"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":[15041,1554,563,560,682],"class_list":["post-34532","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-twardo","tag-agentic-ai","tag-zalety-i-wady","tag-embedded","tag-architektura-it","tag-artificial-intelligence"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/07\/AI_update.jpg","category_names":["Development na twardo"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/34532","targetHints":{"allow":["GET"]}}],"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\/811"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=34532"}],"version-history":[{"count":1,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/34532\/revisions"}],"predecessor-version":[{"id":34539,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/34532\/revisions\/34539"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/34537"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=34532"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=34532"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=34532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}