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

# OpenRouter Armor टूल कॉल कैसे जाँचता है और उन्हें कब रोकना क्लाइंट की ज़िम्मेदारी है

> OpenRouter Armor डेवलपर के नियमों के आधार पर प्रस्तावित टूल कॉल का वर्गीकरण करता है। Responses और Chat Completions चिह्नित कॉल रोक सकते हैं; Messages संगतता मोड में ज़िम्मेदारी क्लाइंट की रहती है।

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.

OpenRouter का [Armor बीटा](https://openrouter.ai/docs/guides/features/plugins/armor) मॉडल के प्रस्तावित टूल कॉल और उसे चलाने वाले ऐप्लिकेशन के बीच नियमों का एक क्लासिफ़ायर रखता है। एजेंट डेवलपर के लिए निर्णायक बात यह है कि फ़ैसला वास्तव में किस बिंदु पर निष्पादन रोकता है। Chat Completions और Responses में Armor चिह्नित कॉल को आगे जाने से रोक सकता है। Messages API के Claude Code संगतता मोड में चिह्नित `tool_use` जवाब में बना रहता है और क्लाइंट को उसे चलाने से इनकार करना होता है।

मौजूदा दस्तावेज़ अक्टूबर 2026 से उपलब्ध बीटा का वर्णन करते हैं। BIG CHANGE ने 17 अक्टूबर को दस्तावेज़ों में दिए गए अनुरोध और जवाब के अनुबंधों की समीक्षा की। हमने API अनुरोध नहीं भेजा, एजेंट नहीं चलाया और उसकी सुरक्षा का प्रदर्शन नहीं मापा।

## बड़ा बदलाव

- **क्या बदला:** OpenRouter एजेंट अपने प्रस्तावित टूल कॉल ऐसे क्लासिफ़ायर से भेज सकता है जो कॉल के ऐप्लिकेशन तक पहुँचने से पहले डेवलपर के लिखे नियम लागू करता है। डिफ़ॉल्ट प्रवर्तन मार्ग में चिह्नित कॉल का निष्पादन छोड़ दिया जाता है और कारण लौटाया जाता है, ताकि मॉडल आगे बढ़ सके।
- **यह क्यों मायने रखता है:** डेवलपर कार्रवाइयों के स्तर पर सीमाएँ सामान्य भाषा में लिख सकते हैं, जिनमें संकीर्ण दायरे में अनुमति मिले काम के अपवाद भी शामिल हों। Messages संगतता अनुबंध फिर भी निष्पादन का निर्णायक कदम क्लाइंट पर छोड़ता है: चिह्नित फ़ैसले को अनदेखा करने वाला क्लाइंट उस कॉल को फिर भी चला सकता है।
- **किस पर नज़र रखें:** टीमों को चुने गए API आउटपुट मोड के मुताबिक क्लाइंट बनाना, अपने ट्रैफ़िक पर नियम परखना और क्लासिफ़ायर की त्रुटियों पर व्यवहार तय करना होगा। बीटा के फ़ॉर्मैट बदल सकते हैं। OpenRouter के मुताबिक क्लासिफ़ायर स्वीकार्य कॉल को रोक भी सकता है और अस्वीकार्य कॉल को चूक भी सकता है।

## प्रस्ताव से फ़ैसले तक कॉल का रास्ता समझें

OpenRouter कहता है कि हर प्रस्तावित टूल कॉल को ऐप्लिकेशन तक भेजने से पहले रोककर रखा जाता है। उसका निर्णय मॉडल कॉल, नियम और अब तक की बातचीत लेता है, हर नियम के मेल का अनुमान लगाता है और नतीजों को जोड़कर `flagged` या `not_flagged` देता है। जिस कॉल को चिह्नित नहीं किया गया हो, उसे जस का तस आगे जाने दिया जाता है। प्रवर्तन मोड में चिह्नित कॉल का निष्पादन छोड़ने का निर्देश होता है; मॉडल कारण पाता है और कम दायरे वाला कॉल आज़मा सकता है या मना करने की वजह समझा सकता है। यह प्रस्तावित कार्रवाई पर क्लासिफ़ायर का निर्णय है, बाद का टूल या पूरा एजेंट सुरक्षित होने का प्रमाण नहीं।

नियमों के स्तर अलग सवालों के जवाब देते हैं। `hard_deny` का मेल अनुमति वाले नियम या उपयोगकर्ता के अनुरोध की परवाह किए बिना रोकता है। `soft_deny` का मेल `allow` के मेल से हट सकता है, या बातचीत में उपयोगकर्ता के उसी लक्ष्य पर ठीक उसी कार्रवाई का अनुरोध करने से। `allow` नियम अकेले कभी कॉल नहीं रोकता। OpenRouter उपयोगकर्ता की तय की हुई और वापस न ली गई सीमा के लिए एक अंतर्निहित सॉफ़्ट-डिनाय भी बताता है। डेवलपर भरोसेमंद रिपॉज़िटरी या डिप्लॉय लक्ष्य जैसे तथ्य `environment` में देते हैं; पुराने तथ्य नियम की सटीकता घटा सकते हैं। नाम वाले नियम ऑब्जेक्ट फ़ैसलों में ID और नाम दिखाते हैं। वैकल्पिक थ्रेशोल्ड के डिफ़ॉल्ट मान रोकने वाले नियमों के लिए 0.6 और अनुमति वाले नियमों के लिए 0.7 हैं।

दस्तावेज़ में दिया गया [Responses का उदाहरण](https://openrouter.ai/docs/guides/features/plugins/armor#example) एक `bash` टूल को `git push` के लिए हार्ड-डिनाय नियम देता है। `output_mode: "custom_item"` के साथ चिह्नित पुश की जगह कॉल और कारण वाला `openrouter:armor_blocked` आइटम आता है, जिसके बाद मॉडल का जवाब होता है। उदाहरण दिखाता है कि दस्तावेज़ों के मुताबिक सेवा क्या लौटाती है; यह BIG CHANGE का किया हुआ परीक्षण नहीं है।

## टूल चलाने से पहले आउटपुट अनुबंध चुनें

Chat Completions और Responses में डिफ़ॉल्ट `text` मोड अवरुद्ध कॉल हटा देता है और असिस्टेंट के पाठ में `<openrouter_armor_blocked>` चिह्न रखता है। Responses API `custom_item` भी सपोर्ट करता है, जो वहाँ टाइप वाला अवरुद्ध आइटम लौटाता है जहाँ `function_call` आया होता। दस्तावेज़ कहते हैं कि अगले Responses इनपुट में उस आइटम को बिना बदलाव वापस भेजें और उसके लिए अलग `function_call_output` न बनाएँ। `safeguard_results` कॉल ID के आधार पर फ़ैसले दर्ज करता है।

अनुरोध में `safeguards` होने पर Messages API का डिफ़ॉल्ट व्यवहार काफ़ी अलग होता है: `claude_code_compatibility` चिह्नित `tool_use` को `content[]` में रहने देता है और उसका `flagged` नतीजा `safeguard_results` में जोड़ता है। **ऐप्लिकेशन को वह नतीजा पढ़कर कॉल चलाने से मना करना होता है।** OpenRouter साफ़ चेतावनी देता है कि फ़ैसले की अनदेखी करने वाला Messages क्लाइंट टूल के चिह्नित इस्तेमाल को अंजाम देगा। जिस डेवलपर का क्लाइंट पर नियंत्रण नहीं है, वह Messages में `output_mode: "text"` माँग सकता है, ताकि OpenRouter कॉल रोक ले। API जिस आउटपुट मोड को व्यक्त नहीं कर सकता, उसे माँगने पर 400 मिलता है।

OpenRouter के Ori मेटाहार्नेस के ज़रिये Claude Code ऑटो मोड अतिरिक्त Armor प्लगइन एंट्री के बिना Messages अनुबंध का इस्तेमाल करता है। दस्तावेज़ बताते हैं कि Claude Code चिह्नित कॉल ठुकराता है, बातचीत के रिकॉर्ड में त्रुटि वाला नतीजा लिखता है और मॉडल को आगे बढ़ने देता है। वे यह भी कहते हैं कि अपने क्लासिफ़ायर को सपोर्ट करने वाला Anthropic एंडपॉइंट सीधे आगे भेजा जाने वाला फ़ैसला दे सकता है; दूसरे एंडपॉइंट पर Armor जाँच करता है। यह दस्तावेज़ों में बताया गया एकीकरण व्यवहार है, यह दावा नहीं कि हर तीसरे पक्ष का क्लाइंट इसे ठीक लागू करता है।

## सीमित नियमसमूह तैयार करें और जाँचें

कस्टम एजेंट के लिए [Armor गाइड](https://openrouter.ai/docs/guides/features/plugins/armor#example) में `armor` एंट्री को `plugins` में रखने को कहा गया है, जिसमें संस्करण वाला `classifier_context` (`v: 1`), `auto_mode` नियम और वैकल्पिक परिवेश संबंधी तथ्य होते हैं। पहले वह कार्रवाई और सुरक्षित संसाधन तय करें जिसे नियम को पहचानना चाहिए। फिर ऐसे निषेध के लिए हार्ड डिनाय चुनें जो उपयोगकर्ता की सहमति के बाद भी कायम रहना चाहिए; जहाँ सटीक सहमति या नामित अनुमति उसे उचित रूप से हटा सकती हो, वहाँ सॉफ़्ट डिनाय चुनें। दस्तावेज़ एक ही कमांड की लिखावट के बजाय कार्रवाई बताने और परिवेश के तथ्यों को ताज़ा रखने की सलाह देते हैं।

डिफ़ॉल्ट `enforce` मोड फ़ैसलों पर अमल करता है। `audit` वही फ़ैसले बताता है, लेकिन चिह्नित कॉल सहित हर कॉल आगे जाने देता है। यह प्रवर्तन से पहले असली ट्रैफ़िक देखने और नियम सुधारने का तरीका है, सुरक्षा देने वाला मोड नहीं। ऑडिट को `claude_code_compatibility` के साथ नहीं जोड़ सकते। दोनों मोड में `safeguard_results` पढ़ें: `not_flagged` का अर्थ अनुमति है, `flagged` मेल खाने वाला नियम बताता है, `unavailable` का अर्थ मूल्यांकन विफल होना है, और `skipped` प्रदाता का ऐसा नेटिव टूल बताता है जिसका मूल्यांकन नहीं हुआ। स्ट्रीमिंग में फ़ैसले का ऑब्जेक्ट जवाब के अंत में आता है, इसलिए Messages इस्तेमाल करने वाले क्लाइंट को टूल इस्तेमाल पर कार्रवाई करने से पहले उसका इंतज़ार करना चाहिए।

क्लासिफ़ायर का समय समाप्त होने, त्रुटि आने या बहुत बड़ा अनुरोध न सँभाल पाने पर OpenRouter `on_error: "block"` को डिफ़ॉल्ट बताता है; `on_error: "log"` कॉल आगे जाने देता है। Claude Code संगतता मोड में `unavailable` कॉल फ़ैसला दिखाई देते हुए आगे जाने दिया जाता है। प्रदाता के नेटिव सर्वर टूल डिफ़ॉल्ट रूप से छोड़ दिए जाते हैं, जब तक `evaluate_native_tools` उन्हें मूल्यांकन के लिए नेटिव मार्ग से बाहर न निकाले। ये सेटिंग और टूल का असल रास्ता टीम की एकीकरण जाँच में होने चाहिए; केवल Armor एंट्री होने से यह साबित नहीं होता कि हर टूल का मूल्यांकन हुआ।

## बीटा की लागत, गति और दायरे की सीमाएँ

OpenRouter के अनुसार Claude Code के साथ संगत उसका नियमसमूह लोड होने पर मूल्यांकन ने **मीडियन पर 279 मिलीसेकंड और 90वें पर्सेंटाइल पर 334 मिलीसेकंड** जोड़े। ये बताई गई परिस्थिति में विक्रेता की रिपोर्ट की हुई मापें हैं, किसी खास एजेंट या हर नियमसमूह का बेंचमार्क नहीं। हर कॉल आगे भेजे जाने या रोके जाने से पहले एक बार परखा जाता है। बीटा में मूल्यांकन का शुल्क नहीं है; OpenRouter कहता है कि आम उपलब्धता से पहले कीमत घोषित करेगा। दस्तावेज़ भविष्य की दर तय नहीं करते।

निर्णय मॉडल सामान्य भाषा के नियमों को सामान्य भाषा के आर्ग्युमेंट के आधार पर परखता है, इसलिए गलत सकारात्मक नतीजे दे सकता है और कुछ उल्लंघन चूक सकता है। दस्तावेज़ असली ट्रैफ़िक पर ऑडिट फ़ैसले इस्तेमाल करने और हर नियम का थ्रेशोल्ड सुधारने की सलाह देते हैं। HIPAA, Zero Data Retention या डेटा क्षेत्र की पाबंदी वाले अनुरोधों के लिए Armor मूल्यांकन अभी समर्थित नहीं है। इन संदर्भों में प्लगइन चालू होने वाले अनुरोध को 403 मिलता है; Claude Code अनुरोध इसके बजाय कॉल को `unavailable` के रूप में आगे जाने देता है और Claude Code स्थानीय ऑटो-मोड मूल्यांकन पर लौटता है। बीटा की चेतावनी में कॉन्फ़िगरेशन फ़ील्ड, `safeguard_results` और `openrouter:armor_blocked` आइटम के प्रकार में बदलाव भी शामिल हैं।

Armor मॉडल से ऐप्लिकेशन को सौंपने के चरण में प्रस्तावित कॉल जाँचता है। इसलिए यह [Microsoft के MXC कमांड नियंत्रण](https://bigchange.ai/blog/mxc-agent-command-containment-guide) और [NVIDIA के OpenShell तथा Sentry रनटाइम नियंत्रणों](https://bigchange.ai/blog/nvidia-open-agent-safety-platform-agent-controls) से अलग तंत्र है, जो वर्कलोड या उसकी पहुँच के आसपास पाबंदियाँ लागू करते हैं। Armor में तत्काल लागू करने का निर्णय यह है कि चुना गया जवाब फ़ॉर्मैट चिह्नित कॉल खुद रोकता है या क्लाइंट को उसे रोकना पड़ता है।

## स्रोत और आगे पढ़ें

- [OpenRouter Armor दस्तावेज़](https://openrouter.ai/docs/guides/features/plugins/armor), 17 अक्टूबर 2026 को देखे गए। बीटा की स्थिति, क्लासिफ़ायर का क्रम, नियमों की प्राथमिकता, API जवाब अनुबंध, त्रुटियों का व्यवहार, निजता संदर्भों के अपवाद, बताई गई लेटेंसी और बीटा बिलिंग का प्राथमिक स्रोत। ये OpenRouter के दस्तावेज़ी दावे हैं; BIG CHANGE ने प्लगइन नहीं चलाया।
- [Microsoft MXC पर BIG CHANGE](https://bigchange.ai/blog/mxc-agent-command-containment-guide) एजेंट के बनाए कमांड के लिए नीति-आधारित नियंत्रण समझाता है। यह अलग प्रवर्तन परत बताता है, Armor का पहले का चरण नहीं।
- [NVIDIA OpenShell और Sentry पर BIG CHANGE](https://bigchange.ai/blog/nvidia-open-agent-safety-platform-agent-controls) सॉफ़्टवेयर पहुँच नियंत्रण और वैकल्पिक हार्डवेयर निगरानी डिज़ाइन बताता है। यह संबंधित संदर्भ है, OpenRouter की इस सुविधा का सीधा अगला हिस्सा नहीं।

## Sources

- [OpenRouter Armor दस्तावेज़](https://openrouter.ai/docs/guides/features/plugins/armor) — 17 अक्टूबर 2026 को जाँचे गए उत्पाद के प्राथमिक दस्तावेज़। बीटा की स्थिति, क्लासिफ़ायर और नियमों का व्यवहार, API जवाब का स्वरूप, त्रुटियाँ, प्रतिबंधित संदर्भ, बताई गई लेटेंसी और बीटा बिलिंग बताते हैं। विक्रेता के दावे, स्वतंत्र परीक्षण नहीं।
- [BIG CHANGE: एजेंट के बनाए कमांड के लिए MXC नीति कैसे तय करें](https://bigchange.ai/blog/mxc-agent-command-containment-guide) — अलग कमांड नियंत्रण तंत्र पर पिछली रिपोर्ट; केवल लेखों के संबंध के संदर्भ के तौर पर इस्तेमाल की गई।
- [BIG CHANGE: NVIDIA का एजेंट सुरक्षा प्लेटफ़ॉर्म](https://bigchange.ai/blog/nvidia-open-agent-safety-platform-agent-controls) — अलग रनटाइम पहुँच नियंत्रण और वैकल्पिक निगरानी डिज़ाइन पर पिछली रिपोर्ट; केवल लेखों के संबंध के संदर्भ के तौर पर इस्तेमाल की गई।
