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绕过, 评估框架, 逆向工具