SVET NE STOJI U MESTU.RSS
BIG CHANGE.

Markdown izdanje

AI-translated from English; not yet reviewed by a fluent editor.

# Kako OpenRouter Armor proverava pozive alatima i kada klijent mora da ih zaustavi

> OpenRouter Armor klasifikuje predložene pozive alatima prema pravilima programera. Responses i Chat Completions mogu zadržati označene pozive; kompatibilnost sa Messages odgovornost ostavlja klijentu.

By BIG CHANGE Editorial

Published: 2026-10-17T01:51:13.522Z
Updated: 2026-10-17T01:51:13.522Z
Canonical: https://bigchange.ai/blog/openrouter-armor-tool-call-screening-client-enforcement

![Conceptual charcoal illustration of a desktop monitor and idle keyboard; abstract code strokes and one orange pending-call shape appear on the unbranded screen.](https://bigchange.ai/api/media/file/openrouter-armor-call-screening-concept-v1.png)
AI-generated conceptual illustration by BIG CHANGE; no actual OpenRouter interface or tested security result is depicted.

OpenRouterova [beta verzija Armora](https://openrouter.ai/docs/guides/features/plugins/armor) postavlja klasifikator pravila između poziva alatu koji model predlaže i aplikacije koja bi ga mogla izvršiti. Za programera agenata ključno je gde odluka zaista zaustavlja izvršavanje. U Chat Completions i Responses, Armor može zadržati označen poziv. U režimu kompatibilnosti sa Claude Code u Messages API-ju, označeni `tool_use` ostaje u odgovoru i klijent mora odbiti da ga izvrši.

Aktuelna dokumentacija opisuje beta verziju dostupnu od oktobra 2026. BIG CHANGE je 17. oktobra pregledao dokumentovane ugovore o zahtevima i odgovorima. Nismo slali API zahtev, pokretali agenta niti merili bezbednosne performanse.

## Velika promena

- **Šta se promenilo:** Agent koji koristi OpenRouter može slati predložene pozive alatima klasifikatoru koji primenjuje pravila programera pre nego što pozivi stignu do aplikacije. U podrazumevanom putu sprovođenja pravila označen poziv se preskače, a razlog se vraća modelu kako bi nastavio rad.
- **Zašto je važno:** Programeri mogu opisati ograničenja pojedinačnih radnji običnim tekstom, uključujući izuzetke za usko dozvoljene poslove. Ugovor o kompatibilnosti za Messages ipak prepušta klijentu odlučujući korak izvršavanja: klijent koji zanemari odluku o označenom pozivu može ga svejedno izvršiti.
- **Šta pratiti:** Timovi moraju uskladiti klijent sa izabranim izlaznim režimom API-ja, testirati pravila na sopstvenom saobraćaju i odrediti postupanje pri greškama klasifikatora. Formati beta verzije mogu se menjati, a OpenRouter navodi da klasifikator može i blokirati prihvatljive pozive i propustiti neprihvatljive.

## Pratite poziv od predloga do odluke

OpenRouter navodi da svaki predloženi poziv alatu zadržava pre prosleđivanja aplikaciji. Model za odlučivanje dobija poziv, pravila i dotadašnji razgovor, procenjuje da li je svako pravilo ispunjeno i objedinjuje rezultate u `flagged` ili `not_flagged`. Neoznačen poziv prosleđuje se neizmenjen. U režimu sprovođenja pravila označen poziv dobija oznaku da se njegovo izvršavanje preskoči; model dobija razlog i može pokušati poziv užeg obima ili objasniti zabranu. To je procena klasifikatora o predloženoj radnji, a ne dokaz da su kasniji alat ili ceo agent bezbedni.

Nivoi pravila odgovaraju na različita pitanja. Poklapanje sa `hard_deny` blokira bez obzira na pravilo dozvole ili zahtev korisnika. Poklapanje sa `soft_deny` može se poništiti poklapanjem sa `allow` ili kada korisnik u razgovoru zatraži baš tu operaciju nad baš tim ciljem. Pravilo `allow` nikada samo po sebi ne blokira poziv. OpenRouter dokumentuje i ugrađenu meku zabranu za granicu koju je korisnik postavio, a nije ukinuo. Programeri navode činjenice, poput pouzdanog repozitorijuma ili cilja za postavljanje, u `environment`; zastarele činjenice mogu umanjiti preciznost pravila. Imenovani objekti pravila prikazuju ID i naziv u odlukama. Opcioni pragovi podrazumevano iznose 0.6 za pravila zabrane i 0.7 za pravila dozvole.

Dokumentovani [primer za Responses](https://openrouter.ai/docs/guides/features/plugins/armor#example) dodeljuje alatu `bash` pravilo tvrde zabrane za `git push`. Uz `output_mode: "custom_item"`, označeno slanje zamenjuje se stavkom `openrouter:armor_blocked` koja sadrži poziv i razlog, a zatim sledi odgovor modela. Primer pokazuje šta dokumentacija navodi kao odgovor servisa; nije test koji je sproveo BIG CHANGE.

## Izaberite izlazni ugovor pre izvršavanja alata

Za Chat Completions i Responses, podrazumevani režim `text` uklanja blokirani poziv i dodaje oznaku `<openrouter_armor_blocked>` u tekst asistenta. Responses API podržava i `custom_item`, koji vraća tipiziranu blokiranu stavku tamo gde bi se pojavio `function_call`. Dokumentacija kaže da tu stavku treba neizmenjenu vratiti u sledećem Responses ulazu, bez pravljenja zasebnog `function_call_output` za nju. `safeguard_results` beleži odluke prema ID-ju poziva.

Messages API ima bitno drugačije podrazumevano ponašanje kada zahtev sadrži `safeguards`: `claude_code_compatibility` ostavlja označeni `tool_use` u `content[]` i dodaje njegov rezultat `flagged` u `safeguard_results`. **Aplikacija mora pročitati taj rezultat i odbiti izvršavanje poziva.** OpenRouter izričito upozorava da će Messages klijent koji zanemari odluku izvršiti označenu upotrebu alata. Programer koji ne može da kontroliše klijent može u Messages zatražiti `output_mode: "text"` kako bi OpenRouter zadržao poziv. Traženje izlaznog režima koji API ne može da predstavi vraća odgovor 400.

Automatski režim Claude Code kroz OpenRouterov Ori metaharness koristi Messages ugovor bez dodatne stavke za Armor dodatak. Dokumentacija navodi da Claude Code odbija označene pozive, upisuje rezultat greške u transkript i dopušta modelu da nastavi. Takođe navodi da Anthropic endpoint koji podržava sopstveni klasifikator može dostaviti odluku koja se samo prosleđuje; na drugim endpointima procenjuje Armor. To je dokumentovano ponašanje integracije, a ne tvrdnja da ga svaki klijent treće strane ispravno primenjuje.

## Podesite i proverite uzak skup pravila

Za prilagođenog agenta, [vodič za Armor](https://openrouter.ai/docs/guides/features/plugins/armor#example) postavlja stavku `armor` u `plugins`, sa verzionisanim `classifier_context` (`v: 1`), pravilima `auto_mode` i opcionim činjenicama o okruženju. Počnite od radnje i zaštićenog resursa koje pravilo treba da prepozna, pa izaberite tvrdu zabranu za zabranu koja treba da važi i uz pristanak korisnika, ili meku zabranu kada tačan pristanak ili imenovana dozvola mogu opravdano da je ukinu. Dokumentacija savetuje opisivanje radnje, umesto samo jednog načina pisanja komande, i održavanje činjenica o okruženju ažurnim.

Podrazumevani režim `enforce` postupa prema odlukama. `audit` prijavljuje iste odluke, ali propušta sve pozive, uključujući označene. Služi za pregled stvarnog saobraćaja i podešavanje pravila pre sprovođenja, a nije zaštitni režim. Režim revizije ne može se kombinovati sa `claude_code_compatibility`. U oba režima čitajte `safeguard_results`: `not_flagged` znači da je dozvoljeno, `flagged` označava pravilo koje se poklopilo, `unavailable` znači da procena nije uspela, a `skipped` označava neprocenjen izvorni alat pružaoca usluge. Pri strimovanju objekat odluke stiže na kraju odgovora, pa klijent koji koristi Messages mora da ga sačeka pre nego što postupi po upotrebi alata.

OpenRouter navodi `on_error: "block"` kao podrazumevanu postavku kada klasifikator prekorači vreme, prijavi grešku ili ne može obraditi prevelik zahtev; `on_error: "log"` propušta poziv. U režimu kompatibilnosti sa Claude Code, poziv sa statusom `unavailable` propušta se uz vidljivu odluku. Izvorni serverski alati pružaoca usluge podrazumevano se preskaču, osim ako ih `evaluate_native_tools` ne izmesti iz izvornog puta radi procene. Ove postavke i stvarni put alata treba uključiti u proveru integracije tima; sama stavka za Armor ne pokazuje da je svaki alat procenjen.

## Troškovi, brzina i ograničenja obuhvata beta verzije

OpenRouter navodi da je procena dodala **279 milisekundi na medijani i 334 milisekunde na 90. percentilu** uz učitan skup pravila kompatibilan sa Claude Code. To su merenja koja prijavljuje dobavljač pod navedenim uslovom, a ne uporedni test određenog agenta ili svakog skupa pravila. Svaki poziv procenjuje se jednom pre propuštanja ili blokiranja. Procena se ne naplaćuje tokom beta faze; OpenRouter kaže da će objaviti cene pre opšte dostupnosti. Dokumentacija ne utvrđuje buduću cenu.

Model za odlučivanje može dati lažno pozitivne rezultate i propustiti problematične pozive jer upoređuje pravila u prozi sa argumentima u prozi. Dokumentacija preporučuje korišćenje revizionih odluka na stvarnom saobraćaju i podešavanje pragova pojedinačnih pravila. Armor procena još ne podržava zahteve u kontekstu HIPAA, Zero Data Retention ili ograničenja regiona podataka. Zahtev sa uključenim dodatkom u jednom od tih konteksta dobija 403; Claude Code zahtev, nasuprot tome, propušta poziv kao `unavailable`, a Claude Code prelazi na lokalnu procenu automatskog režima. Upozorenje za beta verziju obuhvata i promene konfiguracionih polja, `safeguard_results` i tipa stavke `openrouter:armor_blocked`.

Armor proverava predložene pozive pri predaji od modela aplikaciji. Po tome se razlikuje od mehanizama kao što su [Microsoftovo MXC ograničavanje komandi](https://bigchange.ai/blog/mxc-agent-command-containment-guide) i [NVIDIA OpenShell i Sentry kontrole tokom izvršavanja](https://bigchange.ai/blog/nvidia-open-agent-safety-platform-agent-controls), koji sprovode ograničenja oko radnog opterećenja ili njegovog pristupa. Za Armor, neposredna odluka pri implementaciji jeste da li izabrani format odgovora zadržava označen poziv ili zahteva da ga klijent zaustavi.

## Izvori i dodatno čitanje

- [Dokumentacija za OpenRouter Armor](https://openrouter.ai/docs/guides/features/plugins/armor), pristupljeno 17. oktobra 2026. Primarni izvor za beta status, tok klasifikatora, prioritet pravila, ugovore o API odgovorima, ponašanje pri greškama, izuzete kontekste privatnosti, prijavljeno kašnjenje i naplatu tokom beta faze. To su dokumentovane tvrdnje OpenRoutera; BIG CHANGE nije pokretao dodatak.
- [BIG CHANGE o Microsoft MXC-u](https://bigchange.ai/blog/mxc-agent-command-containment-guide) objašnjava ograničavanje komandi koje generišu agenti prema pravilima. Opisuje poseban sloj sprovođenja ograničenja, a ne raniju fazu Armora.
- [BIG CHANGE o NVIDIA OpenShellu i Sentryju](https://bigchange.ai/blog/nvidia-open-agent-safety-platform-agent-controls) opisuje softverske kontrole pristupa i opcioni projekat hardverskog nadzora. To je povezan kontekst, a ne direktan nastavak ove OpenRouter funkcije.

## Sources

- [Dokumentacija za OpenRouter Armor](https://openrouter.ai/docs/guides/features/plugins/armor) — Primarna dokumentacija proizvoda proverena 17. oktobra 2026. Utvrđuje beta status, ponašanje klasifikatora i pravila, oblike API odgovora, greške, ograničene kontekste, prijavljeno kašnjenje i naplatu u beta fazi. Tvrdnje dobavljača, ne nezavisan test.
- [BIG CHANGE: Kako podesiti MXC politiku za komande koje generišu agenti](https://bigchange.ai/blog/mxc-agent-command-containment-guide) — Raniji tekst o zasebnom mehanizmu ograničavanja komandi; koristi se samo kao kontekst odnosa među tekstovima.
- [BIG CHANGE: NVIDIA platforma za bezbednost agenata](https://bigchange.ai/blog/nvidia-open-agent-safety-platform-agent-controls) — Raniji tekst o zasebnim kontrolama pristupa tokom izvršavanja i opcionom projektu nadzora; koristi se samo kao kontekst odnosa među tekstovima.