Promptfoo - LLM 应用评测与红队渗透测试工具
promptfoo/promptfoo
为 AI 应用提供自动化提示词测试、模型对比和安全漏洞扫描的开源工具,支持 GPT/Claude/Gemini 等主流模型,已被 OpenAI 和 Anthropic 采用
成熟度:维护极其活跃,最近提交0天前,open issues 649个显示用户活跃,已发布 0.123.0 版本
项目体检
部署 · 基于 Node.js 的 CLI 工具,可通过 npm/brew/pip 全局安装后直接使用,Docker 镜像基于 Node 24 Alpine 构建支持容器化部署,无需额外服务配置
成本 · 需要目标 LLM 提供商的 API Key(如 OPENAI_API_KEY),支持本地模型(Ollama)实现完全离线评测,Python 3 作为可选依赖支持自定义脚本
技术 · TypeScript 主体,Node.js 24+ 运行时,前端使用 Vite 构建,支持 Python 集成用于自定义评估逻辑
许可 · MIT 协议,可自由商用、修改和分发,无使用限制
活跃 · 极高活跃度:0.123.0 版本发布于 2 天前,332 位贡献者持续参与,最近提交发生在今天,已获 25K+ stars
解决什么
LLM 应用开发中存在三大痛点:提示词效果难以量化、模型选型缺乏客观对比、AI 安全漏洞难以发现。Promptfoo 通过自动化评测框架解决这些问题,让开发者用声明式配置替代手工试错,用数据驱动决策替代主观判断。它既能对比不同模型在相同任务上的表现差异,也能通过红队测试发现提示词注入、有害内容生成等安全风险,帮助团队在 CI/CD 流程中建立 AI 应用的质量门禁。
为何火
该项目已被 OpenAI 收购但保持开源,这一背书证明其在行业内的认可度。25K+ stars 反映出开发者对系统化 LLM 测试工具的强烈需求。其核心优势在于"100% 本地运行"的隐私保护设计——所有评测数据不离开本地环境,这对处理敏感业务场景的企业至关重要。支持 OpenAI、Anthropic、Azure、Bedrock、Ollama 等十几种主流模型提供商,配合简洁的 CLI 和可视化界面,降低了 LLM 应用测试的技术门槛。
核心功能
自动化评测体系:通过 YAML 配置定义测试用例,支持自定义评分标准(如准确性、相关性、毒性检测),可批量运行数百个测试场景并生成对比矩阵。
红队安全扫描:内置提示词注入、越狱攻击、PII 泄露等 20+ 种安全测试模板,自动生成漏洞报告和修复建议,帮助团队在上线前发现潜在风险。
多模型横向对比:同一组测试用例可同时运行在 GPT-4、Claude、Gemini 等不同模型上,直观展示成本、速度、质量的权衡关系。
CI/CD 集成:提供 GitHub Actions、GitLab CI 等集成方案,支持 PR 自动扫描 LLM 相关代码变更的安全合规性。
实时协作:Web 界面支持团队共享评测结果,配合热重载功能加速迭代周期。
安装
全局安装(推荐):
npm install -g promptfoo
# 或使用 Homebrew
brew install promptfoo
# 或使用 pip
pip install promptfoo
无安装运行:
npx promptfoo@latest init --example getting-started
初始化示例项目后,设置 API Key 并运行首次评测:
export OPENAI_API_KEY=sk-xxx
cd getting-started
promptfoo eval
promptfoo view # 启动 Web 界面查看结果
Docker 部署可通过官方镜像运行,适合容器化环境。
适合谁
AI 产品团队:需要对比不同模型效果、优化提示词性能的场景,特别是服务百万级用户的生产环境(README 提到已支撑 10M+ 用户应用)。
安全工程师:需要对 LLM 应用进行渗透测试、发现提示词注入等漏洞的红队人员。
DevOps 团队:希望在 CI/CD 流程中集成 AI 应用质量检查的工程师。
中文用户注意:虽然工具本身无需梯子,但多数 LLM API(OpenAI/Anthropic)需要网络代理;建议配合 Ollama 等本地模型实现完全离线评测,或使用国内可访问的模型 API(如通义千问、文心一言等,需查阅文档确认支持情况)。
社区评价
暂无足量社区公开讨论,以下为基于项目本身的中立评估:从技术指标看,该项目展现出极高的工程成熟度——332 位贡献者、每日更新频率、MIT 宽松协议,以及被 OpenAI 收购后仍保持开源的承诺,这些都是长期可维护性的积极信号。649 个 open issues 可能反映两面性:既说明用户基数大、反馈活跃,也可能暗示功能复杂度带来的维护压力。项目明确标注"已被 OpenAI 和 Anthropic 使用",这种行业头部公司的实际采用比单纯的 star 数更有说服力。
选型对比
vs 商业 LLM 评测平台(如 Humanloop、LangSmith):Promptfoo 的优势在于完全免费、数据本地化、无供应商锁定,适合对数据隐私敏感或预算有限的团队;劣势是缺少商业平台的托管服务、协作功能较弱、需要自行维护基础设施。
vs LangChain 内置评测:Promptfoo 是独立工具,不绑定特定框架,可评测任何 LLM 应用(包括非 LangChain 项目);LangChain 的评测模块更适合其生态内用户,但灵活性较差。
vs 自研测试脚本:Promptfoo 提供开箱即用的红队测试模板、可视化界面和 CI/CD 集成,大幅降低从零搭建评测体系的时间成本;但对于极度定制化的场景,自研脚本可能更灵活。
已知坑
Node.js 版本要求严格:需要 22.22.0 以上版本,推荐 Node 24 LTS,旧版本可能遇到兼容性问题。
API Key 管理:多模型对比时需配置多个提供商的 Key,环境变量管理较繁琐,建议使用 .env 文件统一管理。
国内网络限制:OpenAI/Anthropic 等主流模型 API 需要代理访问,纯内网环境建议优先使用 Ollama 等本地模型,但需注意本地模型的评测结果可能与云端模型存在差异。
学习曲线:虽然提供示例项目,但深度使用(如自定义评分函数、复杂 YAML 配置)需要阅读详细文档,初学者可能需要一定时间熟悉。
红队测试的误报:自动化安全扫描可能产生误报,需要人工复核结果,不能完全替代专业安全审计。
安装方式:npm