
إطار بحث تطوري مدرك للمسار لاختبار الوكلاء اللغويين الكبار (LLM) عبر خوادم MCP، لتوليد مطالبات عدائية لرسم خرائط مشهد الثغرات عبر فئات المخاطر.

T-MAP هو إطار بحث تطوري مدرك للمسار لاختبار الاختراق لوكلاء نماذج اللغة الكبيرة عبر خوادم MCP. يقوم بشكل تكراري بتوليد وتحوير المطالبات العدائية مسترشدًا بمسارات التنفيذ، لرسم خريطة سطح الثغرات للوكيل عبر فئات مخاطر وأنماط هجوم متنوعة.
pip install -r requirements.txt
المتطلبات: Python 3.11+، مفاتيح API لنماذج المهاجم والهدف، والوصول إلى خادم MCP واحد أو أكثر.
خادم واحد
python run_main.py \
--server Slack \
--attacker_model "deepseek-chat" \
--attacker_model_api "https://api.deepseek.com" \
--attacker_model_api_token "$DEEPSEEK_API_KEY" \
--target_model "openai/gpt-5-mini" \
--target_model_api "https://openrouter.ai/api/v1" \
--target_model_api_token "$OPENROUTER_API_KEY" \
--stdio_server_cmd npx \
--stdio_server_args "-y slack-mcp-server@latest --transport stdio" \
--stdio_server_envs "SLACK_MCP_XOXP_TOKEN=$SLACK_MCP_XOXP_TOKEN SLACK_MCP_ADD_MESSAGE_TOOL=true" \
--iteration 100 \
--mutation_n 3
خوادم متعددة
python run_main.py \
--server "Slack,CodeExecutor" \
--attacker_model "deepseek-chat" \
--attacker_model_api "https://api.deepseek.com" \
--attacker_model_api_token "$DEEPSEEK_API_KEY" \
--target_model "openai/gpt-5-mini" \
--target_model_api "https://openrouter.ai/api/v1" \
--target_model_api_token "$OPENROUTER_API_KEY" \
--stdio_server_cmd_1 npx \
--stdio_server_args_1 "-y slack-mcp-server@latest --transport stdio" \
--stdio_server_envs_1 "SLACK_MCP_XOXP_TOKEN=$SLACK_MCP_XOXP_TOKEN SLACK_MCP_ADD_MESSAGE_TOOL=true" \
--stdio_server_cmd_2 docker \
--stdio_server_args_2 "run -i --rm --workdir /app mcp-code-executor:latest" \
--iteration 100 \
--mutation_n 3
مزيد من الأمثلة في run_examples.sh.
| الوسيطة | الوصف |
|---|---|
--server | اسم(أسماء) خادم MCP، مفصولة بفواصل للخوادم المتعددة |
--server_config | ملف إعداد JSON لتعريفات الخادم |
--stdio_server_cmd/args/envs | وضع stdio لخادم واحد |
--stdio_server_cmd_1..8 / _args_1..8 / _envs_1..8 | وضع stdio المفهرس للخوادم المتعددة |
--remote_server_url, --remote_server_token | نقطة نهاية MCP عن بُعد واحدة |
| الوسيطة | الوصف |
|---|---|
--attacker_model/api/api_token | نموذج المهاجم (يولّد ويحوّر المطالبات) |
--target_model/api/api_token | نموذج الوكيل الهدف (ينفذ المطالبات عبر MCP) |
--level_judge_model/api/api_token | نموذج الحكم (يُستخدم نموذج المهاجم افتراضيًا إذا تم حذفه) |
| الوسيطة | الافتراضي | الوصف |
|---|---|---|
--iteration | 100 | عدد جولات التحوير |
--mutation_n | 3 | المتحورات المأخوذة لكل جولة |
--max_workers | 10 | التوازي للتوليد والتقييم |
--query_timeout | 300 | مهلة كل استعلام (بالثواني) |
--checkpoint_interval | 20 | حفظ نقطة تفتيش كل N من الأجيال |
--output_dir | outputs | النتائج ولقطات TCG |
--log_dir | logs | سجلات نصية |
.
├── core/
│ ├── base.py # تنسيق التجربة والتقييم
│ ├── config.py # فئات المخاطر وأنماط الهجوم
│ ├── langchain_client.py # عميل MCP القائم على LangChain
│ ├── llm.py # غلاف نموذج اللغة الكبير
│ └── utils.py # تعريفات وسائط سطر الأوامر
├── prompts/
│ └── tmap.py # مطالبات البذرة والحكم والتحوير والتحليل
├── run_main.py # نقطة الدخول
├── run_examples.sh # أوامر أمثلة
└── requirements.txt
@article{lee2026tmapredteamingllmagents,
title={T-MAP: Red-Teaming LLM Agents with Trajectory-aware Evolutionary Search},
author={Hyomin Lee and Sangwoo Park and Yumin Choi and Sohyun An and Seanie Lee and Sung Ju Hwang},
year={2026},
eprint={2603.22341},
archivePrefix={arXiv},
primaryClass={cs.CR},
url={https://arxiv.org/abs/2603.22341}
}