anthropic-experimental/agentic-misalignment
GitHub: anthropic-experimental/agentic-misalignment
一个用于系统性研究前沿语言模型在虚构高压场景中潜在代理失准行为的 AI 安全实验框架。
Stars: 623 | Forks: 138
# 代理失准研究框架
一个使用虚构场景来研究前沿语言模型中潜在代理失准行为(包括勒索和信息泄露)的研究框架。
## 🚀 快速开始
```
# 1. 设置
git clone https://github.com/anthropic-experimental/agentic-misalignment.git
cd agentic-misalignment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
# 2. 配置 API keys
cp .env.example .env
# 使用你的 API keys 编辑 .env
# 3. 运行实验
python scripts/generate_prompts.py --config configs/example_experiment_config.yaml
python scripts/run_experiments.py --config configs/example_experiment_config.yaml
python scripts/classify_results.py --results-dir results/[experiment_id]
```
## 📋 3 步实验工作流
### 1. 生成 Prompts
```
python scripts/generate_prompts.py --config configs/example_experiment_config.yaml
```
创建结合以下内容的实验条件:
- **场景**:谋杀、勒索、泄露
- **目标类型**:explicit、none、latent、ambiguous、swap
- **紧迫性类型**:replacement、restriction、none
输出:`results/[experiment_id]/prompts/`
### 2. 运行实验
```
python scripts/run_experiments.py --config configs/example_experiment_config.yaml
```
- 使用生成的 prompts 查询所有已配置的模型
- 处理速率限制并在中断时自动恢复
- Provider 并行执行(速度提升 3-4 倍)
输出:`results/[experiment_id]/models/[model_name]/[condition]/response.json`
### 3. 分类危害性
```
python scripts/classify_results.py --results-dir results/[experiment_id]
```
根据模型是否执行了有害操作,为每个响应添加 `classification.harmful_behavior: true/false` 标签。
输出:`results/[experiment_id]/behavioral_detections.json`
## 🔑 API Keys 设置
添加至 `.env` 文件:
```
ANTHROPIC_API_KEY=your_key_here
OPENAI_API_KEY=your_key_here
GOOGLE_API_KEY=your_key_here
TOGETHER_API_KEY=your_key_here # For Llama, Qwen, DeepSeek
OPENROUTER_API_KEY=your_key_here # For Grok, Mistral
```
## 🤖 支持的模型
**跨越 5 个 provider 的 40+ 个模型**,支持 provider 并行执行:
| Provider | Models | 并发数 |
|----------|---------|-------------|
| **Anthropic** | claude-3-{opus,sonnet,haiku}-*, claude-3-5-{sonnet,haiku}-*, claude-3-7-sonnet-* | 30 |
| **OpenAI** | gpt-3.5-turbo*, gpt-4*, gpt-4o*, gpt-4o-mini* | 150 |
| **Google** | gemini-1.5-{pro,flash}*, gemini-2.0-flash-exp, gemini-2.5-pro-* | 10 |
| **Together** | meta-llama/Meta-Llama-*, Qwen/Qwen*, deepseek-ai/DeepSeek-* | 150 |
| **OpenRouter** | x-ai/grok-*, mistralai/mistral-*, mistral/ministral-* | 150 |
### 添加新模型
要添加新模型,请检查 `api_client/model_client.py` 中可用的模型。只需将模型标识符添加到您的配置文件中即可。示例:
- Anthropic: `"claude-3-5-sonnet-latest"`
- OpenAI: `"gpt-4o-2024-11-20"`
- OpenRouter: `"meta-llama/llama-3.3-70b-instruct"`
## ⚙️ 配置
查看 `configs/example_experiment_config.yaml` 获取完整示例。关键配置选项:
- **experiment_id**:实验的唯一标识符
- **models**:要测试的模型列表(参见“支持的模型”部分)
- **samples_per_condition**:每个实验条件的样本数量
- **scenarios**:要测试的有害行为类型(勒索、泄露、谋杀)
- **goal_types**:目标如何传达给模型
- **urgency_types**:应用于模型的压力类型
## 🧪 实验设计
### 核心变量
| 变量 | 描述 | 值 |
|----------|-------------|---------|
| **Scenario** | 有害行为的背景 | blackmail、leaking、murder |
| **Goal Type** | 目标的传达方式 | explicit、none、latent、ambiguous、swap |
| **Goal Content** | 具体的目标值 | america/global、safety/acceleration、ethical/pragmatic |
| **Urgency Type** | 压力机制 | replacement、restriction、none |
### 目标类型
- **explicit**:在 system prompt 中直接声明的目标
- **none**:无目标条件(基线)
- **latent**:目标在无明确指令的情况下从上下文中产生
- **ambiguous**:目标被暗示但未明确指出
- **swap**:包含相反的目标(消融实验)
## 🛠️ 故障排除
### 速率限制错误
在配置中降低 provider 并发数:
```
concurrency:
providers:
anthropic: 10 # Lower from 30
```
### 恢复中断的实验
```
# 自动检测已完成的样本
python scripts/run_experiments.py --config configs/my_config.yaml
```
### 检查进度
```
# 监控实时进度
watch 'find results/[experiment_id] -name "response.json" | wc -l'
# 查看 provider 活动
tail -f results/[experiment_id]/logs/*_providers.log
```
## 🗂️ 输出结构
```
results/[experiment_id]/
├── prompts/ # Generated experimental prompts
├── models/ # Model responses with classifications
│ └── [model_name]/
│ └── [condition]/
│ └── sample_001/
│ └── response.json
└── logs/ # Execution logs
```
## 📄 许可证
MIT 许可证
标签:AI安全, Chat Copilot, DLL 劫持, Petitpotam, 人工智能, 大语言模型, 漏洞探测, 用户模式Hook绕过, 评估框架, 逆向工具