
AgentWatcher एलएलएम एजेंटों में अप्रत्यक्ष प्रॉम्प्ट इंजेक्शन के विरुद्ध एक डिटेक्शन-आधारित सुरक्षा है। यह पहले अविश्वसनीय संदर्भ पर कॉज़ल कॉन्टेक्स्ट एट्रिब्यूशन चलाता है ताकि सबसे प्रभावशाली संदर्भों का पता लगाया जा सके, फिर एक मॉनिटर LLM लागू करता है जो उन संदर्भों को स्पष्ट, अनुकूलन योग्य नियमों के अंतर्गत वर्गीकृत करता है। पूरी तरह से ब्लैक-बॉक्स डिटेक्टरों की तुलना में, यह पाइपलाइन व्याख्या करने में आसान है: एट्रिब्यूशन दिखाता है कि कहाँ मॉडल ने ध्यान केंद्रित किया, और मॉनिटर LLM का निर्णय नियम-आधारित तर्क पर आधारित है। मॉनिटर LLM के आउटपुट का एक उदाहरण नीचे दिखाया गया है:
यह नियम-आधारित डिटेक्शन उपयोगिता और मजबूती के बीच बेहतर संतुलन प्राप्त करने के लिए मॉनिटर LLM की तर्क क्षमता का लाभ उठा सकता है। AgentWatcher AgentDyn जैसे LLM एजेंट बेंचमार्क पर अत्याधुनिक प्रदर्शन प्राप्त करता है:
यह रिपॉजिटरी पेपर के मुख्य प्रयोगों को दोहराने के लिए है।
pip install -r requirements.txt
huggingface-cli login # यदि गेटेड मॉडल के लिए आवश्यक हो
प्रशिक्षित मॉनिटर एक LoRA एडेप्टर (PEFT) है। डिफ़ॉल्ट रूप से, main.py स्वचालित रूप से SecureLLMSys पर हब चेकपॉइंट SecureLLMSys/AgentWatcher-Qwen3-4B-Instruct-2507 लोड करता है (--monitor_llm से ओवरराइड करें)।
सभी लॉन्चर scripts/ के अंतर्गत हैं। वे मानते हैं कि आप AgentWatcher रिपॉजिटरी रूट से चलाते हैं (या पहले वहाँ cd करें)। कृपया पहले export OPENAI_API_KEY=<YOUR_KEY> के साथ OpenAI कुंजी सेट करें। चलाने से पहले अपने स्वीप से मेल खाने के लिए Python लॉन्चर (all_datasets, all_defenses, gpus, name, मॉडल, आदि) को संपादित करें।
main.py)बैच जॉब (स्थानीय GPU या Slurm):
python scripts/run_long_context.py
यह vLLM (--use_vllm) के साथ main.py चलाता है और logs/main_logs/<name>/... के अंतर्गत लॉग लिखता है। स्थानीय GPU न होने पर यह scripts/main.sh के माध्यम से Slurm सबमिट करता है।
लॉन्चर के बिना एक बार चलाना:
python main.py \
--dataset lcc_long \
--attack combined \
--defense agentwatcher \
--backend_llm Qwen/Qwen3-4B-Instruct-2507 \
--monitor_llm SecureLLMSys/AgentWatcher-Qwen3-4B-Instruct-2507 \
--use_vllm \
--name my_run
main.py पर वैकल्पिक एट्रिब्यूशन ओवरराइड: --w_s, --w_l, --w_r, --K, --attribution_model।
AgentDojo/AgentDyn चलाने के लिए, कृपया पहले PIArena (https://github.com/sleeepeer/PIArena) का अनुसरण करते हुए वातावरण सेट करें:
cd agents/agentdojo && pip install -e . && cd ../..
फिर चलाएँ:
python scripts/run_agentdojo.py
यह main_agentdojo.py को कॉल करता है और logs/agentdojo_logs/... के अंतर्गत लॉग लिखता है। स्थानीय GPU न होने पर यह Slurm के लिए scripts/main_agentdojo.sh का उपयोग करता है। एकल मैन्युअल रन के लिए आप रिपॉजिटरी रूट से python main_agentdojo.py --model ... --defense agentwatcher --monitor_llm ... कॉल कर सकते हैं; यदि आपका रैपर उन्हें अपेक्षा करता है तो PIARENA_DEFENSE / PIARENA_MONITOR_LLM सेट करें। डिफेंस agentwatcher PIMonitorLLMDefenseAdapter का उपयोग करता है।
./scripts/run_agentdyn.sh
वैकल्पिक: gpt-4o को बैकबोन LLM के रूप में agentwatcher चलाने के लिए ./scripts/run_agentdyn.sh --model gpt-4o-2024-08-06। स्क्रिप्ट agentdojo कोंडा env को सक्रिय करती है, और agents/agentdyn/src से चलती है। रन को बाधित होने से बचाने के लिए हम tmux उपयोग करने की सलाह देते हैं।
python scripts/run_injecagent.py
यह main_injecagent.py लॉन्च करता है और logs/main_logs/... के अंतर्गत लॉग करता है। Slurm एंट्रीपॉइंट: scripts/main_injecagent.sh।
लॉन्चर के बिना सीधा आह्वान:
python main_injecagent.py \
--model meta-llama/Llama-3.1-8B-Instruct \
--defense agentwatcher \
--monitor_llm SecureLLMSys/AgentWatcher-Qwen3-4B-Instruct-2507 \
--name my_injecagent_run
यदि आप इस कोड का उपयोग करते हैं, तो कृपया AgentWatcher पेपर को उद्धृत करें (जब उपलब्ध हो)।