数据截至 (上游 commit d9f7b80be1ee)
DeepTeam 是什么 · 全景与阅读地图
30 秒导读: DeepTeam 是一个开源、本地运行的 LLM 红队(渗透测试)框架。你只给它两样东西——"想测哪些漏洞"和"用哪些攻击手法"——它就自动合成对抗性输入去打你的模型,再用另一个 LLM 当裁判逐条打分,最后汇总成一份风险报告。整个流程不需要你事先准备数据集。
本章只做两件事:讲清大盘(它是什么、大概怎么转),和当好导航(哪一章讲什么、该跳哪去)。所有机制细节都下放到 01–05 章。
1. 这是什么(零基础也能懂)
一句话定义: DeepTeam 是"给 LLM 用的渗透测试工具"——像安全团队红队攻击一个网站那样,自动化地攻击你的 LLM 应用,找出它会不会泄露隐私、被越狱、被注入指令。
解决什么问题 / 给谁用: 假设你上线了一个客服 chatbot、一个 RAG 问答、或一个能调工具的 agent。你担心:有人诱导它说出系统提示词?有人用花招让它教人做违法的事?有人往检索内容里藏指令劫持它?手动想这些攻击又累又不全。DeepTeam 把"想攻击、造攻击、打模型、判成败"这套流程自动化了。据 README.md:42-46,它本地跑在你机器上,构建在评测框架 DeepEval 之上。
关键设计:它不需要知道你的系统是什么。 据 README.md:198,你唯一要提供的是一个 model_callback——一个"喂进字符串、吐出字符串"的函数,把你的 LLM 应用包起来。攻击者不会知道你的内部实现,DeepTeam 也刻意不要求你交代。
靠 ANY LLM 驱动。 漏洞探针的合成、攻击的增强、以及最后的裁判,全都由 LLM 完成——你可以用 OpenAI,也可以用 DeepEval 支持的任意自定义模型(README.md:61、README.md:224)。项目当前版本 deepteam 1.0.9(pyproject.toml:2-3,name = "deepteam" / version = "1.0.9")。
用起来什么样: 最小可跑的一段(取自 README.md:208-222):
from deepteam import red_team
from deepteam.vulnerabilities import Bias
from deepteam.attacks.single_turn import PromptInjection
async def model_callback(input: str) -> str:
# 把这里换成你真实的 LLM 应用
return f"I'm sorry but I can't answer this: {input}"
risk_assessment = red_team(
model_callback=model_callback,
vulnerabilities=[Bias(types=["race"])], # 想测哪些漏洞
attacks=[PromptInjection()], # 用哪些攻击手法
)
red_team(...) 就是整个库的唯一主入口(deepteam/red_team.py:13,函数 red_team),它在 deepteam/__init__.py:14-18 被导出(__all__ = ["red_team", "Guardrails", "__version__"])。
一句话直觉: 把它想成一台"自动化的钓鱼演习机":你告诉它"我怕员工被哪几类钓鱼骗到"(= 漏洞),它就自动写出各种钓鱼邮件(= 攻击)发给你的模型,再逐封判断"上钩没有",最后给你一张演习成绩单。