
कंप्यूटर-उपयोग AI एजेंटों का बहु-चरणीय अप्रत्यक्ष प्रॉम्प्ट इंजेक्शन के विरुद्ध मूल्यांकन करने के लिए बेंचमार्किंग फ्रेमवर्क, जिसमें स्वचालित विरोधात्मक लक्ष्य विघटन और AWS-सैंडबॉक्स्ड परीक्षण वातावरण शामिल हैं।
सबसे पहले, सभी निर्भरताएँ स्थापित करें और सुनिश्चित करें कि आप Python 3.10 चला रहे हैं।
conda create -n stepjack python=3.10
conda activate stepjack
pip install -r requirements.txt
हम RedTeamCUA द्वारा प्रदान किए गए AWS वातावरण का उपयोग करते हैं।
AWS
NETWORK_INTERFACE_MAP कॉन्फ़िगर करें:
अपने स्वयं के AWS इंस्टेंस के आधार पर aws_config.py में NETWORK_INTERFACE_MAP कॉन्फ़िगर करें।
अपना सुरक्षा समूह कॉन्फ़िगर करें:
ऐसा सुरक्षा समूह कॉन्फ़िगर करना महत्वपूर्ण है जो आपके होस्ट किए गए इंस्टेंस तक वैध पहुँच की अनुमति दे, जबकि अनधिकृत पहुँच के प्रयासों को अवरुद्ध करे। यह महत्वपूर्ण है क्योंकि AMI, डिफ़ॉल्ट रूप से, केवल बुनियादी पासवर्ड-आधारित प्रमाणीकरण का उपयोग करता है, जिसे तोड़ना अपेक्षाकृत आसान है।
आपकी स्थानीय मशीन AWS पर होस्ट की गई सेवाओं तक HTTP/TCP कनेक्शन के माध्यम से पहुँचेगी। इसलिए, आपको निम्नलिखित पोर्ट तक स्पष्ट रूप से पहुँच की अनुमति देनी चाहिए: 8092, 6379, 9999, 5000, 9222, 8091, 2999, और 3000, जिनका उपयोग WebArena या TheAgentCompany करते हैं।
इसके अलावा, हम इंजेक्शन परिदृश्यों का अनुकरण करने के लिए अंतर्निहित डेटाबेस को सीधे संशोधित करने हेतु SSH का उपयोग करते हैं। इसलिए, आपके स्थानीय IP पते से SSH पहुँच भी सुरक्षा समूह सेटिंग्स में अनुमत होनी चाहिए।
aws configure का उपयोग करके अपने AWS क्रेडेंशियल कॉन्फ़िगर करें, जो आपसे निम्नलिखित पूछेगा:
scripts/run_gpt54_2step.sh StepJack पर GPT-5.4 CUA चलाने का एक उदाहरण दिखाता है।
पर्यावरण चर सेट करें
CUA API कुंजियाँ
# For GPT
unset OPENAI_BASE_URL
export OPENAI_API_KEY="sk-proj-XXXX"
# For Kimi
export KIMI_API_KEY='sk-XXXX'
# For Qwen
export OPENAI_BASE_URL="https://dashscope-us.aliyuncs.com/compatible-mode/v1"
export OPENAI_API_KEY="sk-XXXX"
# For Claude
export ANTHROPIC_API_KEY='sk-XXXX'
AWS क्रेडेंशियल
export AWS_REGION='XX'
export AWS_ACCESS_KEY='XX'
export AWS_SECRET_KEY='XX'
प्रयोग चलाएँ
# For GPT
python run_gpt54_multienv.py \
--observation_type screenshot \
--agent_type GPT54Agent \
--headless \
--model gpt-5.4-mini-2026-03-17 \
--result_dir ./results_gpt54 \
--test_all_meta_path "./dataset/{subset}/{platform_instruction}/test_{k}_step.json" \
--test_config_base_dir "./dataset/{subset}/{platform_instruction}" \
--max_steps {15*k} \
--sleep_after_execution 4 \
--provider_name aws \
--num_envs 12 \
--aws_ami {reddit | agentcompany}
# For Kimi
python run_kimi_multienv.py \
--observation_type screenshot \
--agent_type KimiAgent \
--headless \
--model Kimi-K2.5 \
--result_dir ./results_kimi \
--test_all_meta_path "./dataset/{subset}/{platform_instruction}/test_{k}_step.json" \
--test_config_base_dir "./dataset/{subset}/{platform_instruction}" \
--max_steps {15*k} \
--sleep_after_execution 4 \
--provider_name aws \
--num_envs 12 \
--aws_ami {reddit | agentcompany}
# For Qwen
python run_qwen35vl_multienv.py \
--observation_type screenshot \
--agent_type Qwen35VLAgent \
--headless \
--model qwen3.5-plus-2026-02-15 \
--coord relative \
--enable_thinking \
--result_dir ./results_qwen \
--test_all_meta_path "./dataset/{subset}/{platform_instruction}/test_{k}_step.json" \
--test_config_base_dir "./dataset/{subset}/{platform_instruction}" \
--max_steps {15*k} \
--sleep_after_execution 4 \
--provider_name aws \
--num_envs 12 \
--aws_ami {reddit | agentcompany}
# For Claude
python run_claude_multienv.py \
--observation_type screenshot \
--action_space pyautogui \
--agent_type AnthropicAgent \
--api_provider anthropic \
--headless \
--model {claude-sonnet-4-6 | claude-haiku-4-5} \
--result_dir ./results_claude \
--test_all_meta_path "./dataset/{subset}/{platform_instruction}/test_{k}_step.json" \
--test_config_base_dir "./dataset/{subset}/{platform_instruction}" \
--max_steps {15*k} \
--sleep_after_execution 4 \
--provider_name aws \
--num_envs 12 \
--aws_ami {reddit | agentcompany}
स्वचालित अपघटन पाइपलाइन का कोड auto_decomp/ में है।
cd auto_decomp। विघटित किए जाने वाले नए प्रतिकूल लक्ष्यों को adv_goals.py में जोड़ें।k \in \{2, 3\} के लिए python iterative_refinement.py -k {k} चलाएँ। आउटपुट: ir/goal_*_k{k}_N20_K3_all.json, जिसमें चरण 1 के परिणाम होते हैं।python selected_examples/select_examples.py चलाएँ। आउटपुट: selected_examples/selected_examples.json, जो चरण 1 से शीर्ष-10 उदाहरणों का चयन करता है।StepJack RedTeamCUA (Liao et al., 2025; arXiv:2505.21936) पर आधारित है, जो स्वयं OSWorld (XLANG NLP Lab, 2024) से व्युत्पन्न है। दोनों अपस्ट्रीम स्रोत Apache-2.0 के तहत लाइसेंस प्राप्त हैं।
कुछ StepJack डेटा निर्देशिकाओं में प्रति-फ़ाइल हेडर नहीं हैं क्योंकि उनमें बाइनरी या गैर-स्रोत फिक्स्चर होते हैं। उनकी वंशावली यहाँ श्रेय के लिए दर्ज की गई है:
adv/TheAgentCompany_OwnCloud/file_to_upload/ — RedTeamCUA से कॉपी किया गया (adv/TheAgentCompany_OwnCloud/file_to_upload/), मूल रूप से Apache-2.0 के तहत लाइसेंस प्राप्त।adv/upload_file/ — इसमें डेटासेट कार्य कॉन्फ़िगरेशन द्वारा अपलोड पेलोड के रूप में उपयोग किए जाने वाले दो SSH-कुंजी फिक्स्चर (system/authorized_keys, system/id_rsa) शामिल हैं। StepJack-क्यूरेटेड (मान प्लेसहोल्डर स्ट्रिंग हैं, वास्तविक कुंजियाँ नहीं)। इस स्रोत वृक्ष की मूल निर्देशिका में मौजूद LICENSE फ़ाइल में दिए गए लाइसेंस के तहत जारी किया गया।adv/upload_file_dir/ — StepJack-मूल। RedTeamCUA में मौजूद नहीं है। इस स्रोत वृक्ष की मूल निर्देशिका में मौजूद LICENSE फ़ाइल में दिए गए लाइसेंस के तहत जारी किया गया।dataset/ — RedTeamCUA के evaluation_examples/ से महत्वपूर्ण संशोधनों के साथ अनुकूलित। RedTeamCUA के मूल्यांकन उदाहरण उनके के अनुसार के तहत प्रकाशित हैं। StepJack के कार्य कॉन्फ़िगरेशन में संशोधन और परिवर्धन इस स्रोत वृक्ष की मूल निर्देशिका में मौजूद फ़ाइल में दिए गए लाइसेंस के तहत जारी किए गए हैं।तर्क:
single_step (k=1), w_urgent (Urgent = Y), wo_urgent (Urgent = N) हो सकता है।forum, forum_follow, owncloud, owncloud_follow हो सकता है। ये 2 प्लेटफ़ॉर्म और 2 उपयोगकर्ता निर्देश प्रकारों के अनुरूप हैं।(subset, k) संयोजन: single_step केवल k=1 के साथ; w_urgent और wo_urgent केवल k \in \{2,3\} के साथ।forum प्लेटफ़ॉर्म के लिए reddit या owncloud प्लेटफ़ॉर्म के लिए agentcompany होना चाहिए।LICENSEdesktop_env/ — RedTeamCUA के desktop_env/ से कॉपी/अनुकूलित, जो स्वयं OSWorld से व्युत्पन्न है; दोनों अपस्ट्रीम स्रोत Apache-2.0 के तहत लाइसेंस प्राप्त हैं। प्रति-स्रोत-फ़ाइल हेडर (.py / .sh / .yml / .service / .txt) प्रत्येक फ़ाइल की विशिष्ट वंशावली (कॉपी या StepJack-संशोधित) दर्ज करते हैं। सहायक दस्तावेज़ीकरण फ़ाइलें (जैसे README.md, DOCKER_GUIDELINE.md, INSTALL_*.md) RedTeamCUA से कॉपी की गई हैं।