面向 LLM 应用的本地化评估与红队测试工具,通过声明式 YAML 配置实现 prompt、模型、Agent 及 RAG 管道的系统化评测与安全漏洞扫描。
promptfoo 是一个基于 TypeScript 构建的 LLM 评估与安全测试平台,采用声明式 YAML 配置(promptfooconfig.yaml)驱动,所有评估在本地执行,确保数据隐私。核心能力涵盖三大维度:评估(Evals)、安全(Red Teaming)和工程化集成。
在评估方面,promptfoo 支持通过变量插值和断言机制对 prompt 变体进行系统化评测,可同一测试集上横向对比 60+ LLM 提供商(OpenAI、Anthropic、Google、AWS Bedrock、Azure、Ollama、Hugging Face 等)的输出质量。针对 RAG 管道提供事实性、上下文相关性、忠实度等专项指标评测,同时支持多轮 Agent 的任务完成度与工具调用轨迹验证。
在安全方面,promptfoo 内置红队测试引擎,可自动生成对抗性输入,检测提示注入、越狱、有害内容生成、PII 泄露、权限提升等漏洞,对齐 OWASP LLM Top 10 等安全标准,并通过独立的 code-scan-action GitHub Action 实现 PR 级别的代码安全扫描。
在工程化方面,promptfoo 提供完整的 CI/CD 集成能力,支持 GitHub Action 自动化评估门禁;通过 JavaScript、Python、Ruby、Shell 或 HTTP API 接入自定义模型;集成 MCP 协议实现高级 agent 能力;提供 Dockerfile 和 Helm Chart 支持容器化部署;通过 Web UI(promptfoo view)可视化对比评估结果。项目采用 pnpm monorepo 结构,使用 Vitest 测试、Drizzle ORM 持久化、Biome 代码质量管控。2026 年 3 月 9 日宣布被 OpenAI 收购,承诺继续开源维护。
安装方式:
npm install -g promptfoo
brew install promptfoo
pip install promptfoo
免安装使用:npx promptfoo@latest <command>
快速上手:
promptfoo init --example getting-started
export OPENAI_API_KEY=sk-abc123
cd getting-started
promptfoo eval
promptfoo view
核心 CLI 命令:
promptfoo init— 交互式创建配置promptfoo eval— 运行评估promptfoo eval setup— Web UI 配置向导promptfoo view— 打开 Web 查看器promptfoo redteam— 运行红队测试
配置示例(promptfooconfig.yaml):
prompts:
- 'Convert the following English text to {{language}}: {{input}}'
providers:
- openai:chat:gpt-5.4
- anthropic:messages:claude-opus-4-6
tests:
- vars:
language: French
input: Hello world
assert:
- type: contains
value: 'Bonjour le monde'
待确认信息: 收购交割是否完成、Python 包功能是否与 npm 版本完全一致、Promptfoo Cloud 商业版详情与定价、RAG 评估指标具体计算方式、红队对抗策略细节、完整断言类型清单。