如果你在做 AI 应用、RAG 或 Agent,除了关注效果,安全也得提前补上。Promptfoo 这类工具的价值,不只是比较模型输出,更重要的是能把提示词评测和 AI 红队测试放进同一套流程里,适合拿来做上线前检查和持续评估。

Promptfoo 的模型评测界面,适合做不同模型、不同提示词的横向比较
01. 这工具有什么用
最近看 AI 安全工具时,Promptfoo 这个项目出现的频率挺高。
它不是传统那种 Web 漏洞扫描器。
更准确地说,它是一套围绕大模型应用做评测、对比和红队测试的开源工具。
你可以把它理解成两部分能力合在一起:
一部分是评测,拿来比较不同模型、不同提示词、不同 RAG 方案的输出效果。
一部分是红队测试,拿来扫提示注入、越狱、数据泄露、RAG 污染这类 AI 风险。
它最实用的地方,是把这些动作做成了 CLI 和配置文件流程。
也就是说,你不只是临时测一次,而是可以把测试过程沉淀下来,后面反复跑、批量跑,甚至接到 CI/CD 里跑。
一句话理解:Promptfoo 不是只帮你“看模型答得好不好”,还帮你“看模型会不会出事”。
02. 适合什么人
我觉得下面几类人会比较适合上手:
在做 AI 应用开发,希望上线前先做一轮质量和安全检查的人。
在做 LLM 安全评估、提示注入测试、越狱测试的人。
在做 RAG、Agent 或工作流编排,想持续观察效果和风险的人。
想把 AI 测试流程接进工程体系,而不是手工零散验证的人。
如果你的主要目标还是传统 Web 漏洞扫描,那这工具不是那个方向。
但如果你关注的是提示词、模型输出、RAG 可靠性和 AI 安全边界,它确实比较对路。
03. 项目入口
项目地址:https://github.com/promptfoo/promptfoo
官方文档:https://www.promptfoo.dev/docs/intro/
04. 安装教程
Promptfoo 官方主推的是 Node.js 路线。
如果你想少踩坑,直接按官方推荐方式来就行。
先准备 Node.js,版本要求是:
^20.20.0或
>=22.22.0
如果你只是想临时试一下,最省事的方式是直接用 npx。
npx promptfoo@latest如果你准备长期使用,也可以全局安装:
npm install -g promptfoo装完以后,可以先确认一下版本:
promptfoo --version我个人会更建议第一次先用 npx。
这样不用太早折腾全局环境,试完也干净。
05. 基础上手教程
第一次上手,最稳的方式不是自己从零写配置。
最好的办法,是直接跑官方示例。
第一步,生成官方示例:
npx promptfoo@latest init --example getting-started这条命令会生成一个 getting-started 目录,里面会带上现成的 promptfooconfig.yaml 和示例说明。
第二步,配置模型密钥:
大多数模型提供商都需要 API Key。
如果你先拿 OpenAI 做测试,PowerShell 可以这样设置:
$env:OPENAI_API_KEY="sk-你的key"第三步,运行评测:
cd getting-startednpx promptfoo@latest eval
这一轮跑完之后,它会根据配置里的 prompts、providers 和 tests 去执行评测。
简单理解,就是把同一批输入分别交给不同模型或者不同提示词方案,再把结果统一拉回来比对。
第四步,查看结果:
npx promptfoo@latest view它会打开一个可视化页面,你能比较直观地看见不同输出之间的差异。
如果你不想直接用示例,也可以跑交互式初始化:
npx promptfoo@latest init或者直接走 Web UI:
npx promptfoo@latest eval setup这一套对第一次接触的人会友好很多。
06. 它在 AI 安全测试里怎么用
Promptfoo 真正让我觉得有意思的地方,不只是评测。
它还有一整套红队测试能力。
官方文档里提到,它可以自动扫描 50 多类漏洞和风险点,里面包括:
jailbreakprompt injectionRAG poisoning数据隐私和安全问题
合规和内容策略相关风险
而且它不是只丢一批固定测试字符串给你。
它会结合你的应用目标去生成更贴近场景的攻击输入,这一点就比手工试探更像实战测试。

红队报告视图会把漏洞类别、风险等级和修复建议集中展示
07. 红队测试教程
第一步,初始化红队项目:
npx promptfoo@latest redteam setup这条命令会打开 Web UI,让你一步步填写目标应用信息。
这里有个细节很重要:Purpose 这个字段不要随便写。
你描述得越具体,Promptfoo 生成出来的攻击样本就越贴近你的业务场景。
第二步,配置目标、插件和策略。
在初始化流程里,你会依次配置:
目标应用或目标模型
攻击插件
攻击策略
如果你只是第一次试水,先用默认组合就够了。
最后把生成的配置保存成 promptfooconfig.yaml。
第三步,运行红队扫描:
npx promptfoo@latest redteam run官方说明里提到,这一步会生成数百条对抗输入,并把结果保存到 redteam.yaml,然后再把这些测试用例跑到你的目标上。
第四步,查看红队报告:
npx promptfoo@latest redteam report报告里你通常能看到几类最有价值的信息:
漏洞类别
风险等级
触发问题的具体输入输出
对应的缓解建议
这就很适合拿来做安全复盘,也适合给开发或产品团队看。
08. 没有真实接口能不能用
可以。
如果你现在还没有正式的线上接口,也可以直接测试特定 prompts 和模型。
官方支持两类很常见的方式:
直接测某个模型
通过 HTTP API 去测你的应用接口
例如,官方文档里给过一个 HTTP 目标示例:
targets:- id: httpslabel: 'travel-agent'config:url: 'https://example.com/generate'method: 'POST'headers:'Content-Type': 'application/json'body:myPrompt: '{{prompt}}'purpose: 'The user is a budget traveler looking for the best deals.'
这意味着你既可以把它当成模型评测工具,也可以把它当成 AI 应用红队工具。
这一点我觉得很实用。
09. 写在最后
如果只看能不能跑起来,Promptfoo 的门槛不算特别高。
它比较友好的点,是官方示例和命令都很完整。
你只要愿意按文档走,第一次通常就能把流程打通。
真正有价值的是,它把“效果评测”和“安全测试”放在了一起。
很多团队平时只看效果,不看风险;或者只想着做安全,但没有稳定的评测基线。
Promptfoo 正好把这两件事接上了。
如果你的团队已经开始把 AI 能力接进业务流程,那像 Promptfoo 这样同时覆盖评测与红队测试的工具,值得尽早纳入日常测试链路。越早把效果验证和安全验证放在一起,后面的返工成本通常就越低。
夜雨聆风