google-research/camel-prompt-injection
GitHub: google-research/camel-prompt-injection
Google Research的提示词注入防御研究项目,通过架构设计层面的安全机制来保护LLM代理系统免受提示词注入攻击。
Stars: 273 | Forks: 38
# `CaMeL`: [通过设计 defeating Prompt Injections](https://arxiv.org/abs/2503.18813)
Edoardo Debenedetti1,3, Ilia Shumailov2, Tianqi Fan1, Jamie Hayes2, Nicholas Carlini2, Daniel Fabian1, Christoph Kern1, Chongyang Shi2, Florian Tramèr3
1Google, 2Google DeepMind, 以及 3ETH Zurich
## 前置条件
1. 通过 [官方说明](https://docs.astral.sh/uv/getting-started/installation/) 安装 `uv`。
2. 将 `.env.example` 重命名为 `.env` 并填入你的 API keys。
3. `uv` 会在你运行 `uv run ...` 时自动安装所有依赖。
## 针对 AgentDojo 运行防御
```
uv run --env-file .env main.py MODEL_NAME [--use-original] [--ad_defense] [--reasoning-effort] [--thinking_budget_tokens] [--run-attack] [--replay-with-policies] [--eval_mode]
```
可以通过运行 `uv run main.py --help` 查看关于各种 CLI 参数的更多细节
## 常见问题解答
你可以将其添加到 [`models.py`](src/camel/models.py) 文件中的 `_supported_model_names` 变量里。键是给定提供商的模型名称(请查看提供商的 API),值是该模型在被问及“what model are you?”时的回答。请注意,OpenAI reasoning models 存储在 `_oai_thinking_models` 变量中,而不是前者。
请在此仓库中开启一个 issue。请注意,我们不打算修复 bug,因为此代码库仅作为研究工件使用。
## 运行测试和 linters
```
uv run ruff check --fix
uv run format
uv run pyright
uv run pytest
```
这不是一款 Google 官方支持的产品。本项目不符合 [Google Open Source Software Vulnerability Rewards
Program](https://bughunters.google.com/open-source-security) 的资格。
标签:AgentDojo, AI智能体, API安全, C2, CaMeL, ETH Zurich, Google DeepMind, JSON输出, LLM, Petitpotam, Prompt注入, Python, Streamlit, Unmanaged PE, 人工智能安全, 合规性, 大语言模型安全, 学术论文复现, 安全架构, 无后门, 机密管理, 访问控制, 逆向工具, 防御机制