
एजेंटिक LLMs में अप्रत्यक्ष प्रॉम्प्ट-इंजेक्शन एक्सपोज़र सिग्नल का पता लगाने के लिए अनुसंधान पाइपलाइन, जो हिडन-स्टेट प्रोबिंग के माध्यम से काम करती है, जिसमें ट्रेस संग्रह, लेबलिंग, फीचराइज़ेशन और प्रोब प्रशिक्षण शामिल है।
यह हमारे पेपर के लिए कोड रिपॉजिटरी है: Your Agentic LLMs Secretly Encode Latent Signals of Indirect Prompt-Injection Exposure.
ArXiv संस्करण और पेपर लिंक: https://arxiv.org/abs/2608.02657
यह रिपॉजिटरी अव्यक्त IPI-एक्सपोज़र सिग्नल के लिए प्रोबिंग पाइपलाइन लागू करती है: AgentDojo ट्रेस संग्रह, IPI जोखिम लेबलिंग, हिडन-स्टेट फीचराइज़ेशन, और IPI-एक्सपोज़र प्रोब प्रशिक्षण/मूल्यांकन।
@misc{dong2026agenticllmssecretlyencode,
title={Your Agentic LLMs Secretly Encode Latent Signals of Indirect Prompt-Injection Exposure},
author={Jianshuo Dong and Yiming Liu and Maosen Zhang and Nan Deng and Xu Peng and Xiaoping Zhang and Tianwei Zhang and Jie Zhang and Han Qiu},
year={2026},
eprint={2608.02657},
archivePrefix={arXiv},
primaryClass={cs.CR},
url={https://arxiv.org/abs/2608.02657},
}
पहले CPU-अनुकूल जाँचों के साथ शुरुआत करें:
git clone https://github.com/jianshuod/IPI-exposure-signal.git
cd IPI-exposure-signal
# Install uv if needed.
curl -LsSf https://astral.sh/uv/install.sh | sh
# This repository targets Python 3.12.
uv python install 3.12
uv sync --extra dev
uv run pytest
टेस्ट सूट को GPU संसाधनों के बिना चलाने के लिए डिज़ाइन किया गया है। यह कोर मैसेज सीरियलाइज़ेशन, AgentDojo लॉन्ग-हॉरिज़न अटैक रजिस्ट्रेशन, लेबलिंग लॉजिक, प्रोब डेटासेट निर्माण, प्रशिक्षण मेट्रिक्स, टोकन अकाउंटिंग, और vLLM पैच पैकेजिंग की जाँच करता है।
संग्रह के लिए, कलेक्टर को किसी OpenAI-संगत मॉडल सर्वर पर इंगित करें:
export IPI_AWARE_UPSTREAM_BASE_URL=http://127.0.0.1:8000/v1
export IPI_AWARE_UPSTREAM_API_KEY=EMPTY
हिडन-स्टेट निष्कर्षण और प्रोब प्रशिक्षण के लिए, मॉडल डिपेंडेंसी और आपके CUDA वातावरण से मेल खाने वाला PyTorch बिल्ड स्थापित करें:
uv sync --extra dev --extra models
मुख्य वर्कफ़्लो ipi-signal-probe के माध्यम से उपलब्ध है:
उदाहरण:
uv run ipi-signal-probe collect \
--suite workspace \
--attack direct \
--injected \
--max-cases 4 \
--results-dir results/probe_traces/v2
uv run ipi-signal-probe label \
--root results/probe_traces/v2/<run-name> \
--labeling-protocol risk_faced
uv run ipi-signal-probe featurize \
--root results/probe_traces/v2/<run-name> \
--model Qwen/Qwen3-8B \
--backend transformers_hook \
--model-family qwen3 \
--selected-position -1
uv run ipi-signal-probe partition \
--root results/probe_traces/v2/<run-name> \
--dataset broad
# Training consumes a JSON config. The Qwen example below generates the
# train/eval configs used for its full run.
समर्थित लेबलिंग प्रोटोकॉल risk_faced, risk_visible, और
risk_actual हैं।
examples/qwen3_5_0_8b/ डायरेक्टरी में Qwen/Qwen3.5-0.8B के लिए एक रन करने योग्य छोटे-मॉडल
पुनरुत्पादन और ओपन-सोर्स उपयोगिता परीक्षण शामिल है।
आठ एक-GPU vLLM सर्वर शुरू करें:
examples/qwen3_5_0_8b/serve_qwen3_5_0_8b_8x.sh start
स्मोक टेस्ट चलाएँ:
QWEN3_5_0_8B_MODE=smoke \
examples/qwen3_5_0_8b/run_probe_pipeline.sh start
पूर्ण उदाहरण चलाएँ:
QWEN3_5_0_8B_MODE=full \
examples/qwen3_5_0_8b/run_probe_pipeline.sh start
पूर्ण उदाहरण 8 स्वतंत्र TP=1 vLLM सर्वर, 8 कलेक्टर प्रोसेस,
256 वर्कर प्रति प्रोसेस/सर्वर, 8 फीचराइज़ेशन शार्ड, और एक-GPU प्रोब
प्रशिक्षण शार्ड का उपयोग करता है। सभी पर्यावरण चर, रिज़्यूम मोड, कैश सेटिंग्स,
और स्टेटस/स्टॉप कमांड के लिए examples/qwen3_5_0_8b/README.md देखें।
डिफ़ॉल्ट फीचराइज़ेशन बैकएंड transformers_hook है। डायरेक्ट vLLM
हिडन-स्टेट कैप्चर बैकएंड के लिए चेक किए गए vLLM 0.19.0 ओवरले की आवश्यकता होती है:
uv sync --frozen --extra dev --extra vllm
uv run python scripts/apply_vllm_ipi_aware_patch.py --check
उपयोग करने से पहले docs/vllm_patches_v0.19.0.md का पालन करें:
uv run ipi-signal-probe featurize \
--root results/probe_traces/v2/<run-name> \
--model Qwen/Qwen3-8B \
--backend vllm_direct \
--model-family qwen3 \
--selected-position -1
यह रिपॉजिटरी vendor/agentdojo के अंतर्गत एक पैच किया गया AgentDojo चेकआउट वेंडर करती है।
अपस्ट्रीम AgentDojo पेपर के लिए आवश्यक लॉन्ग-हॉरिज़न अटैक को मूल रूप से उजागर नहीं करता है,
इसलिए संग्रह कमांड इस स्रोत चेकआउट से चलाए जाने चाहिए, या
vendor/agentdojo/src को PYTHONPATH पर किसी भी स्थापित अपस्ट्रीम AgentDojo से
पहले रखते हुए।
IPI-exposure-signal/
├── ipi_aware/
│ ├── data_collection/ # AgentDojo traces and decision points
│ ├── message_content.py # Chat-message normalization used by collection/features
│ └── probes/ # labels, features, partitions, training, eval
├── examples/
│ └── qwen3_5_0_8b/ # 8-GPU Qwen/Qwen3.5-0.8B reproduction scripts
├── patches/ # vLLM 0.19.0 hidden-state capture overlay
├── vendor/agentdojo/ # patched AgentDojo source for long-horizon attacks
├── docs/ # vLLM patch notes
├── scripts/ # utility scripts
└── tests/ # CPU-friendly regression tests
यह प्रोजेक्ट Apache-2.0 के अंतर्गत लाइसेंस प्राप्त है। LICENSE देखें।
| कमांड | उद्देश्य |
|---|
collect | AgentDojo कार्य चलाएँ और ट्रेस तथा निर्णय बिंदु सहेजें |
label | एकत्रित निर्णय बिंदुओं को IPI जोखिम लेबल असाइन करें |
featurize | प्रोब उदाहरणों के लिए मॉडल हिडन-स्टेट निकालें |
partition | प्रशिक्षण/सत्यापन/मूल्यांकन विभाजन बनाएँ |
train | हिडन-स्टेट फीचर्स पर हल्के प्रोब प्रशिक्षित करें |
eval | कॉन्फ़िगर किए गए विभाजनों पर प्रशिक्षित प्रोब का मूल्यांकन करें |
eval-groups | लेबलिंग प्रोटोकॉल और होल्ड-आउट सेटिंग्स के लिए समूहीकृत मूल्यांकन चलाएँ |
| चर | उद्देश्य |
|---|
IPI_AWARE_UPSTREAM_BASE_URL | संग्रह द्वारा उपयोग किया जाने वाला OpenAI-संगत मॉडल एंडपॉइंट |
IPI_AWARE_UPSTREAM_API_KEY | अपस्ट्रीम एंडपॉइंट के लिए API कुंजी, या स्थानीय vLLM के लिए EMPTY |
PYTHONPATH | इस चेकआउट के बाहर पैच किए गए AgentDojo स्रोत का उपयोग करते समय vendor/agentdojo/src को पहले रखें |
QWEN3_5_0_8B_MODEL | उदाहरण स्क्रिप्ट्स में डिफ़ॉल्ट Qwen/Qwen3.5-0.8B चेकपॉइंट पथ को ओवरराइड करता है |
QWEN3_5_0_8B_CACHE_DIR | मॉडल और स्थानीय कैश को डेटा फाइलसिस्टम पर पुनर्निर्देशित करता है |
QWEN3_5_0_8B_FEAT_BACKEND | vLLM ओवरले लागू करने के बाद vllm_direct पर सेट करें |