Prompti vedenje opisujejo. Programska oprema ga zagotavlja.
Zakaj smo 9.238 vrstic testerskega znanja preselili iz promptov v MCP strežnik — in kaj lansiranje periscope-mcp pove o tem, kje naj živi znanje agentov.
Vsaka seja z AI-agentom se konča enako: vse, kar je agent ugotovil, izgine skupaj s kontekstnim oknom. Privzeti odgovor panoge je, da si to zapišemo — daljši sistemski prompti, večje datoteke z navodili, še en odstavek »ne pozabi preveriti X, preden narediš Y«. Mislimo, da ta odgovor potegne mejo na napačnem mestu — in pravkar smo lansirali projekt, ki jo potegne drugače.
periscope-mcp je odprtokodni MCP strežnik, ki AI-agentom da 74 orodij Playwright za testiranje, QA in analizo spletnih aplikacij. Ta zapis ni predstavitev funkcij. Govori o eni sami ideji, na kateri stoji celoten projekt:
Prompti vedenje opisujejo. Programska oprema ga zagotavlja.
Nasvet proti zagotovilu
Prompt je nasvet. V vsaki seji stane kontekstne žetone, odvisen je od tega, da ga model vsakič zvesto izvede, in nima kam shraniti stanja med klici. Prosite agenta, naj v promptu »preveri kontrastna razmerja po WCAG«, in dobite verjetno število — vsakič izračunano nekoliko drugače, saj matematiko na pamet počne jezikovni model.
Programska oprema je zagotovilo. Periscopovo orodje check_color_contrast vrne enako razmerje vsakič, ker gre za aritmetiko v kodi in ne za občutek v kontekstu. Meritev INP prihaja iz pravega PerformanceObserver-ja, ki bere dejanske vnose Event Timing — česar modela ni mogoče priganjati z nobenim promptom, saj mora ta zmožnost živeti znotraj brskalnika, preden se naložijo strani lastne skripte.
To je ločnica: bolj ko je neka zmožnost deterministična, ohranja stanje in je pokrita z regresijskimi testi, manj sodi v prompt in bolj sodi v kodo.
Razmerje 36 : 1
Periscope to delitev naredi merljivo. Strežnik je 9.238 vrstic izvršljivega znanja — matematika WCAG, pajek, zaznavanje poteka seje, rezervni klik ob prestreženem prekrivnem sloju, motor za lažne omrežne odgovore, časovna vrsta INP po posameznih interakcijah. Nad tem stoji 254 vrstic dolg vodnik za agenta (AGENTS.md), ki ga agent prebere enkrat na sejo.
Približno 36 vrstic zagotovila na vsako vrstico nasveta. Sloj z nasveti pa vsebuje le tisto, kar resnično sodi v jezik: kdaj vsiliti klik, v kakšnem vrstnem redu pripraviti čakanje na omrežje, kaj sporočiti uporabniku, ko posodobitev zahteva ponovni zagon. Presoja ostane v promptu. Izvedba se preseli v kodo — kjer ne stane nič konteksta, vsakič teče enako in si zapomni.
Poskusite periscope izraziti kot prompt in težava je očitna: v vsako sejo bi lepili na tisoče vrstic »prosim, naredi to pravilno po opisu«, jih vsakič plačevali z žetoni in upali, da jih model izvede brez odstopanj. Ni prompta, ki bi bil dovolj dolg, da bi bil PerformanceObserver.
Znanje, ki se kopiči, namesto da izhlapi
Tole je del, ki ga nismo povsem doumeli, dokler ga nismo doživeli. Periscope smo utrdili tako, da smo vanj usmerili drugega AI-agenta in ga pustili testirati resnične produkcijske aplikacije za prijavo. Vsaka ovira, na katero je ta agent naletel, je postala prijava (issue) na GitHubu — doslej 19, vsaka zaprta s popravkom in regresijskim testom, ki jih preverja CI-nabor, ki poganja pravi brskalnik (ob pisanju 102 testa).
Primerjajte oba načina, kako se lahko ohrani lekcija:
- Kot prompt je lekcija še en odstavek, ki ga mora vsak prihodnji agent prebrati, zanj porabiti žetone in ga upajmo upoštevati. Lahko ga preleti, mu pripiše napačno težo ali pa mu naslednji odstavek nasprotuje.
- Kot koda je lekcija vsiljena. Ko je testni agent odkril, da prekrivni sloji Radix UI (portal) tiho požrejo približno 30 % klikov, je popravek postal samodejni rezervni mehanizem znotraj samega orodja za klik — plus test, ki pade, če kdaj pride do regresije. Nobenemu prihodnjemu agentu ni treba vedeti, da ta lekcija obstaja. Na napako preprosto ni več mogoče naleteti.
Prompti znanje prenašajo. Strežniki ga ohranjajo. Prvo z vsako sejo razpada; drugo se z vsakim popravkom kopiči.
Kaj to ne pomeni
To ni trditev, da vsak MCP strežnik potrebuje tisoče vrstic logike. Transportni adapterji — tanki strežniki, ki za enim protokolom poenotijo dostop do mnogih sistemov — so legitimni in koristni; skupni vmesnik je resnična vrednost, tudi kadar za njim tiči malo logike. (Pošteno je priznati: zgodnja različica tega argumenta jih je zavrnila, a tretji AI-agent, ki je pregledal naš README, nas je od tega odvrnil.)
Trditev je ožja in ostrejša: kadar mora biti zmožnost pravilna, ponovljiva ali mora ohranjati stanje, je njeno umeščanje v prompt kategorična napaka. Testiranje je popoln primer — QA-sodba, ki se od zagona do zagona spreminja, sploh ni sodba.
Zgrajeno pošteno, ker agenti ne morejo mežikati
Ena od oblikovalskih posledic resnega jemanja zagotovil: orodja nočejo lagati. Poteg in spust (drag-and-drop), ki tiho ni naredil ničesar, se vrne označen, z izpisano potjo za okrevanje. Potekla seja pove, zakaj je ni več. Samoposodobitev sporoči restart_required: true, namesto da bi se pretvarjala, da nova koda že teče. Ob koncu zagona orodje session_report vsak klic orodja — argumente, sodbe, čase, posnetke zaslona — izriše v dosje HTML+PDF, ki ga človek lahko pregleda.
Deterministična orodja, ki poročajo pošteno, spremenijo agenta iz verjetnega pripovedovalca v nekaj, čemur lahko pri QA dejansko zaupate.
Kje ga dobite
Periscope je odprtokoden pod licenco AGPL-3.0 in deluje s katerim koli MCP-odjemalcem — Claude Code, Codex, Cursor, Windsurf ali vašim lastnim agentom:
git clone https://github.com/segentic-lab/periscope-mcp && cd periscope-mcp && ./install.sh
Repozitorij vključuje sloj presoje AGENTS.md, ki ga prilepite v sistemski prompt svojega agenta, in katalog describe_tools, ki ga agent lahko sam poizveduje. Več našega odprtokodnega dela najdete na lab.segentic.dev.
Še zadnji kos porekla, ker je to teza v malem: ta projekt je soustvaril en AI-agent, drugi ga je pretresel v boju, njegov README pa je bil urejen po nasvetu tretjega. Znanje, ki so ga ustvarili, se ni končalo z njihovimi sejami. Zdaj je v kodi — zagotovljeno.