
T-MAP 是一个轨迹感知的进化搜索框架,用于对 MCP 服务器上的 LLM 智能体进行红队测试。它通过执行轨迹迭代生成和变异对抗性提示,在多种风险类别和攻击风格中绘制智能体的漏洞全景图。
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。
| 参数 | 描述 |
|---|---|
--attacker_model/api/api_token | 攻击者 LLM(生成和变异提示) |
--target_model/api/api_token | 目标 LLM 智能体(通过 MCP 执行提示) |
--level_judge_model/api/api_token | 评判 LLM(省略时默认为攻击者) |
.
├── core/
│ ├── base.py # 实验编排与评估
│ ├── config.py # 风险类别和攻击风格
│ ├── langchain_client.py # 基于 LangChain 的 MCP 客户端
│ ├── llm.py # LLM 封装
│ └── utils.py # CLI 参数定义
├── 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}
}
| 参数 | 描述 |
|---|
--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 端点 |
| 参数 | 默认值 | 描述 |
|---|
--iteration | 100 | 变异轮数 |
--mutation_n | 3 | 每轮采样的变异体数量 |
--max_workers | 10 | 生成和评估的并行度 |
--query_timeout | 300 | 每次查询的超时时间(秒) |
--checkpoint_interval | 20 | 每 N 代保存一次检查点 |
--output_dir | outputs | 结果和 TCG 快照 |
--log_dir | logs | 文本日志 |