HomenShum/AgentRedteam

GitHub: HomenShum/AgentRedteam

一个采用分阶段挑战模式的 AI Agent 红队评估工具构建教学项目,帮助开发者学习如何搭建多层级评判的自动化安全评估流水线。

Stars: 0 | Forks: 0

# 构建你自己的 Agent 红队评估器 一个 CodeCrafters 风格、公开安全的挑战轨道,旨在从零开始构建一个 AI agent 红队评估工具。 你将构建一个小型评估器,能够对风险进行建模、应用攻击、运行受测 agent、评判响应、生成发现结果,并将模棱两可的案例升级为人工审查。 ``` Risk + Attack + Prompt | v Attack Transform | v Agent Under Test | v Judge | v Finding + Eval Report ``` 本仓库已进行脱敏处理,以便公开分享。它不包含私密的招聘人员信息、日历链接、简历、邮件正文、API 密钥或私密面试材料。 ## 挑战 分阶段构建你自己的 AI agent 红队测试工具: | 阶段 | 你将构建的内容 | 为什么重要 | |---|---|---| | 1 | `Risk`, `Attack`, `TestCase`, `Finding` | 将杂乱的安全隐患转化为类型化的评估对象 | | 2 | 攻击转换 | 将攻击技术与被测试的风险区分开来 | | 3 | 红队运行器 | 创建执行生命周期 | | 4 | 确定性评判器 | 处理廉价、稳定的检查,例如泄漏和违规操作 | | 5 | 人工评估队列 | 捕获需要人类审查的案例 | | 6 | LLM-as-judge 适配器 | 处理 regex 过于脆弱的语义判断 | | 7 | SDK 适配器 | 展示 OpenAI、Claude 和 pi-ai 风格的路由如何融入其中 | | 8 | 报告与修复循环 | 产出有证据支持且团队能够采取行动的输出 | ## 快速开始 ``` git clone https://github.com/HomenShum/AgentRedteam cd AgentRedteam python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -e .[dev] python -m pytest -q python -m redteam_eval_lab.cli --judge deterministic python -m redteam_eval_lab.cli --judge manual ``` 测试应该会通过。CLI 会故意报告失败,因为该玩具 agent 存在漏洞。 可选的真实 LLM 评判器: ``` pip install -e .[openai] $env:OPENAI_API_KEY="..." python -m redteam_eval_lab.cli --judge openai python -m redteam_eval_lab.cli --judge openai-chat python -m redteam_eval_lab.cli --judge openai-agents pip install -e .[anthropic] $env:ANTHROPIC_API_KEY="..." python -m redteam_eval_lab.cli --judge anthropic ``` ## 从这里开始 如果你想体验 CodeCrafters 风格的路径,请按顺序阅读各个阶段: 1. [阶段 1 - 定义评估 schema](stage_descriptions/01-define-eval-schema.md) 2. [阶段 2 - 添加攻击转换](stage_descriptions/02-add-attack-transforms.md) 3. [阶段 3 - 构建运行器](stage_descriptions/03-build-runner.md) 4. [阶段 4 - 添加确定性评判器](stage_descriptions/04-add-deterministic-judges.md) 5. [阶段 5 - 添加人工评估](stage_descriptions/05-add-manual-eval.md) 6. [阶段 6 - 添加 LLM-as-judge](stage_descriptions/06-add-llm-judge.md) 7. [阶段 7 - 添加 SDK 适配器](stage_descriptions/07-add-sdk-adapters.md) 8. [阶段 8 - 发布报告和修复](stage_descriptions/08-ship-reports.md) 使用入门套件: - [Python 入门代码](challenge/starter/python/redteam_lab.py) - [入门测试](challenge/starter/python/tests/) - [完整的解决方案](challenge/solutions/python/redteam_lab.py) - [完整的代码示例](docs/COMPLETED_CODE_EXAMPLES.md) - [评分器](challenge/grader.py) - [参考实现](src/redteam_eval_lab/) 运行分阶段评分器: ``` python challenge/grader.py --stage 01 --impl starter python challenge/grader.py --stage 08 --impl solution ``` ## 参考实现 可运行的实现位于 [src/redteam_eval_lab](src/redteam_eval_lab) 中。 重要文件: - [schemas.py](src/redteam_eval_lab/schemas.py) - risk、attack、testcase、finding、report - [attacks.py](src/redteam_eval_lab/attacks.py) - prompt injection、base64、JSON injection、hidden markdown - [agents.py](src/redteam_eval_lab/agents.py) - 故意设置漏洞的玩具 agent - [judges.py](src/redteam_eval_lab/judges.py) - 确定性、人工、OpenAI、Anthropic 评判器 - [llm_clients.py](src/redteam_eval_lab/llm_clients.py) - 真实的 OpenAI、Anthropic 和 OpenAI Agents JSON 客户端 - [runner.py](src/redteam_eval_lab/runner.py) - 编排循环 - [suites.py](src/redteam_eval_lab/suites.py) - 示例 risk/attack 测试用例 `AgentUnderTest` 是一个 protocol/interface,因此它的 `respond()` 方法只是一个 契约。具体的实现包括 `ToyAgent` 和 `EchoAgent`;真实的应用将提供围绕 SDK、本地服务或已部署 agent 的适配器。 ## 评判器设计 生产系统很少只使用一个评判器: ``` Deterministic checks -> schema validation -> LLM judge -> second judge for disputed cases -> manual review -> remediation tracking ``` | 评判器 | 用途 | 优点 | 缺点 | |---|---|---|---| | 确定性 | 术语、schema、tool-call 权限 | 快速且稳定 | 容易遗漏细节 | | LLM 评判器 | Hallucination、grounding、政策遵从性 | 能处理语义 | 花费金钱且可能发生漂移 | | 人工评估 | 模棱两可或高风险的发现结果 | 最佳的校准来源 | 速度慢 | | 混合 | 真实的生产循环 | 均衡 | 增加系统复杂性 | ## SDK 适配器示例 本仓库包含以下内容的可选模式: - OpenAI Agents SDK / OpenAI API - Claude Agent SDK / Anthropic API - pi-ai 风格的模型路由 - 人工评估队列 默认的测试套件不需要 API 密钥。 参见: - [评判器设计](docs/JUDGE_DESIGN.md) - [SDK 适配器](docs/SDK_ADAPTERS.md) - [人工评估工作流](docs/MANUAL_EVAL_WORKFLOW.md) - [面试准备笔记](docs/INTERVIEW_PREP.md) ## 面试金句 ## 公共安全边界 本仓库旨在教授评估架构,而不会发布私密上下文。请将真实的简历、电子邮件、面试提示、会议链接和私有 API 密钥排除在仓库之外。
标签:AI安全, Chat Copilot, DLL 劫持, Petitpotam, Python, 大语言模型, 安全规则引擎, 无后门, 红队评估, 逆向工具