← Blog

Kako smo izradili ranwhat: od problema do proizvoda koji radi

Zašto smo napravili alat za sigurnost AI agenata, koje smo odluke donijeli, gdje smo pogriješili i što iz toga vrijedi za svaki web projekt.

Cenner ·

Uz klijentske projekte, Cenner tim gradi i vlastite proizvode. Jedan od njih je ranwhat, besplatan alat otvorenog koda koji provjerava što su AI agenti za kodiranje (Claude Code, Codex, Cursor i drugi) ostavili na tvom računalu. Ovdje pišemo kako je nastao, što nas je namučilo i što iz toga vrijedi za svakoga tko naručuje ili gradi web proizvod. Namjerno ne ulazimo u tehničke detalje: priča je zanimljivija od recepta.

Zašto smo ga uopće napravili

I sami svaki dan radimo s AI agentima. Primijetili smo nešto što gotovo nitko ne gleda: agent sve što radi sprema u običnu tekstualnu datoteku na disku. Ako je neka naredba ispisala lozinku ili ključ za pristup, taj je podatak sada zapisan u povijesti razgovora. Alati koji traže tajne u kodu to ne vide, jer tajna nije u kodu nego u zapisu razgovora.

Pitanje "što je moj agent zapravo radio i što je usput pročitao?" nije imalo dobar odgovor. Zato smo ga napravili sami.

Odluke koje su oblikovale proizvod

  • Sve se događa na tvom računalu. Alat nema račun, ne šalje podatke i ne treba internet. Za alat koji dira osjetljive podatke to nije marketing, nego uvjet da mu itko vjeruje.
  • Besplatno mora ostati besplatno. Plaćeni dio rastemo samo funkcijama koje bez poslužitelja ne mogu postojati. Ništa što se računa lokalno ne zaključavamo iza pretplate, jer bi to prije ili kasnije slomilo povjerenje korisnika.
  • Prvo mjerenje, onda tvrdnje. Napravili smo vlastiti test s unaprijed postavljenim tajnama i mamcima te objavljujemo samo ono što bilo tko može ponoviti. U proizvodu koji govori o sigurnosti, preuveličana tvrdnja je najgora moguća pogreška.
  • Ne kopiramo konkurenciju. Kad se pojavio sličan alat, odlučili smo ugraditi vlastite verzije zamisli koje vrijede, ali nikad tuđi kod, tekst ni pravila. Ideje su slobodne, tuđi rad nije.

Terminal: ranwhat bench javlja da je pronašao svih 12 podmetnutih tajni i nije dirao nijedan mamac

Isječak izlaza naredbe ranwhat bench, na izmišljenim podacima. Potpuni izlaz uključuje i popis stvari koje alat ne hvata.

Što je bilo teško

Svaki alat piše svoj format. Što više agenata podržavaš, to više različitih zapisa moraš razumjeti, a oni se s novim verzijama mijenjaju. Naučili smo sve svesti na jedan zajednički oblik čim podaci uđu u alat, tako da novi agent znači jedan novi čitač, a ne promjene posvuda.

Kod koji čita tuđi tekst mora biti otporan na zloban tekst. Pokazalo se da se jedan naoko bezazlen izraz za prepoznavanje na neobičnom ulazu uspori do te mjere da se alat praktički zaledi. Našla ga je provjera koda, ne naši testovi. Od tada svaki dio koji čita nepouzdan tekst ima testove s namjerno pakosnim ulazima.

"Radi kod mene" nije dovoljno. Dio testova pretpostavljao je Mac, pa su na Linuxu i Windowsu pali. Naučili smo da se prenosivost ne dodaje na kraju, nego se provjerava od prvog dana, na svim sustavima koje obećavaš.

Lažni alarmi su jednako loši kao propušteni. Alat koji viče na svaku sitnicu korisnik ugasi. Dugo smo ugađali granicu između "upozori" i "šuti", i svaku promjenu mjerili na istom testu.

Web stranica je dio proizvoda

Stranica nije samo ulaz, nego dio onoga što isporučujemo: vodiči odgovaraju na pitanja koja ljudi doista postavljaju, a svaka stranica ima i verziju koju strojevi lako čitaju. Realno, rezultati dolaze sporo. Prvih nekoliko tjedana pretraživač je stranicu pokazivao tek nekoliko stotina puta, uz samo nekoliko klikova. Za novu domenu bez poveznica to je normalno, i dobar podsjetnik klijentima: SEO nije prekidač, nego rad koji se zbraja tjednima.

Ni objava na Hacker Newsu nije prošla iz prve. Nove račune zajednica filtrira i cijeni sudjelovanje više od reklame. Prošli smo kroz to i naučili da proizvod ne postoji dok ga netko ne pronađe, a to treba graditi odvojeno od koda.

Što iz ovoga vrijedi za tvoj projekt

  1. Odluči što nikad nećeš naplaćivati prije nego što prvi put naplatiš nešto.
  2. Mjeri prije nego što tvrdiš. Brojke bez načina da ih netko ponovi ne vrijede.
  3. Nepouzdan ulaz tretiraj kao neprijatelja. Obrasci, uploadi i uvezeni podaci jednako vrijede kao i alati.
  4. Provjera koda od druge osobe (ili drugog alata) hvata ono što autor ne vidi.
  5. Planiraj vidljivost kao dio projekta, ne kao nešto što dolazi nakon objave.

Ako razmišljaš o web stranici ili aplikaciji i želiš s timom koji ovako razmišlja, pogledaj izradu web stranica ili usluge Cenner tima. Alat možeš isprobati besplatno na ranwhat.com.