Promptfoo - 面向 LLM 提示词、智能体技能与安全红队的测试评测套件

厂商: promptfoo

Promptfoo 是业界领先的 LLM 提示词工程与智能体安全评测 CLI 套件,支持跨模型对比、语义断言、自动化红队越狱测试(Red Teaming)与 CI/CD 质量流水线集成。

访问仓库

官网预览
Promptfoo - 面向 LLM 提示词、智能体技能与安全红队的测试评测套件

技术规格与项目参数

GitHub 仓库promptfoo/promptfoo
Star 关注度★ 24.6k
Fork 衍生数2.2k forks
主要开发语言TypeScript
开源协议MIT
所属技术领域TOOLING
cici-cdcicdevaluationevaluation-frameworkllmllm-evalllm-evaluationllm-evaluation-frameworkllmopspentestingprompt-engineeringprompt-testingpromptsragred-teamingtestingvulnerability-scanners
4.9综合评分
功能
5.0
文档
4.9
活跃度
5.0
易用
4.9

快速启动与部署指引

$ bash npm install -g promptfoo # 或者使用 Homebrew brew install promptfoo

评测正文

Promptfoo(promptfoo/promptfoo)是由 Ian Webster 发起的开源提示词工程评测与大模型应用安全测试套件。在将大语言模型与智能体投入生产环境时,工程师面临的最大挑战是缺乏类似传统软件工程的单元测试与回归测试体系:微调一次 Prompt、更换底层模型版本或调整温度参数,都可能引发严重的性能倒退或安全漏洞。Promptfoo 确立了现代 LLMOps 中“提示词测试驱动开发(Prompt TDD)”的标准范式。

在技术架构与功能体系层面,Promptfoo 采用声明式的配置驱动设计(YAML/JSON),允许开发者轻松定义“提示词矩阵 × 模型提供商 × 测试用例”的多维笛卡尔积测试。其内置了数十种高阶断言(Assertions),涵盖基于正则表达式、精确匹配、结构化 JSON Schema 校验、Python/JavaScript 自定义钩子,以及利用大模型作为裁判(LLM-as-a-Judge)的高阶语义相似度与事实一致性断言。

在智能体安全与红队测试(Red Teaming)方面,Promptfoo 内置了强大的自动化漏洞扫描引擎,能够对智能体系统自动注入数百种对抗性攻击提示(Adversarial Prompts),包括越狱(Jailbreaks)、Prompt 注入、PII 隐私泄露、有害内容诱导与偏见检测,并在本地生成极具辨识度的矩阵对比报告,成为防范智能体上线后被恶意操纵的核心安全屏障。

项目来源

Promptfoo 的诞生源于大模型开发从‘凭感觉试凑’走向‘严谨工程化’的转折点。在早期开发中,工程师往往在 Web 界面中随手调试几个 Prompt,只要在一两个测试用例上效果不错便直接发布上线。然而,大模型的概率性本质决定了微小的 Prompt 调整可能在未测试的边界场景中导致严重的幻觉或功能崩溃。缺乏自动化测试套件使得团队对每一次 Prompt 迭代都提心吊胆。

Ian Webster 将现代软件工程中成熟的单元测试框架(如 Jest、Pytest)的设计理念移植到了大模型领域。Promptfoo 强调‘确定性断言’与‘确定性输入’的结合,通过本地执行、零数据泄露风险的轻量级 CLI,让每一次 Prompt 变更都能在数秒内获得客观的通过率与成本对比数据,彻底解决了大模型应用的回归测试难题。

在评测方法论上,Promptfoo 倡导‘分层断言策略’:先用零算力成本的字符串与正则表达式断言过滤掉 80% 的低级错误,再用结构化 Schema 验证工具调用参数,最后仅在核心语义维度调用 LLM-as-a-Judge 进行高阶打分。这种设计极大降低了大规模评测的 API 费用与耗时。

应用场景

在企业提示词优化与模型选型场景中,同时对比 Claude 3.7 Sonnet、GPT-4o 与 DeepSeek-R1 在 50 个复杂业务 Prompt 上的输出质量、响应延迟与 Token 成本,以数据驱动选型决策。

在智能体与大模型应用发布流水线中,将 Promptfoo 作为 GitHub Actions 的 CI 检查门禁。如果某次 Pull Request 导致既有测试用例的断言通过率低于 95%,则自动阻止合并代码。

在安全合规与对抗性攻防测试中,一键运行 promptfoo redteam,自动模拟黑客向 Agent 注入包含间接 Prompt 注入、越狱逃逸与数据窃取的恶意指令,全面评估智能体的防御边界。

在企业级检索增强生成(RAG)系统中,结合断言库中的 contains-jsonlevenshteinllm-rubric,自动化评估检索文档的相关性与模型回答的事实忠实度。

快速上手

通过 npx 直接免安装运行,或全局安装 Promptfoo CLI:

bash
npm install -g promptfoo
# 或者使用 Homebrew
brew install promptfoo

在项目目录中快速初始化测试配置文件 promptfooconfig.yaml

bash
promptfoo init

以下是一个典型的 Promptfoo 配置文件示例,展示了提示词定义、多模型对比与断言规则:

yaml
prompts:
  - '你是资深工程师。请用一句话解释 {{topic}} 的核心价值。'
  - '你是技术讲师。请用极简大白话向新手介绍 {{topic}}。'

providers:
  - openai:gpt-4o-mini
  - anthropic:claude-3-5-haiku-20241022

tests:
  - vars:
      topic: Docker 容器技术
    assert:
      - type: contains
        value: 隔离
      - type: llm-rubric
        value: 解释必须清晰准确且字数少于 50 字

  - vars:
      topic: 向量数据库
    assert:
      - type: similar
        value: 用于高效存储与检索高维向量嵌入的专用数据库
        threshold: 0.75

在终端中执行测试并在本地浏览器中查看可视化结果:

bash
promptfoo eval
promptfoo view

实用性评估

在生产实用性与数据隐私方面,Promptfoo 坚持 100% 本地运行架构。所有的测试输入、Prompt 模板与生成的对比报告完全保存在开发者本地机器或私有 CI 服务器中,不会上传到任何第三方遥测平台,完全符合企业严格的数据隐私与合规标准。

在性能与扩展性层面,Promptfoo 支持高并发异步并发请求(可通过 --concurrency 参数调整),能够在数分钟内完成数千次 Prompt 评测。其丰富的插件生态支持自定义 Python/JavaScript 脚本作为 Provider 或 Assertion 处理器,极具工程灵活性。

在成本透明度方面,每次运行评估后,Promptfoo 会在终端详细打印出每个模型调用的精确 Token 消耗与预估美元成本,帮助团队精准控制评测预算。

实际应用案例

Promptfoo 在 GitHub 已突破 24,000 Star,成为全球最受推崇的 LLM 测试与红队工具之一,被 AWS、Shopify、Discord、Databricks 等头部科技公司广泛部署在内部工程流水线中。

在一家知名在线教育公司的实际应用中,工程师使用 Promptfoo 对 200 个学科辅导 Prompt 进行自动化回归测试,在版本升级过程中提前拦截了 14 处潜在的幻觉错误与越狱漏洞,保障了线上教学质量。

随着 2026 年企业对 AI 安全与合规审计(AI Red Teaming)要求的强制化,Promptfoo 凭借其开源免费、开箱即用的红队扫描能力,已成为企业 LLMOps 安全治理的标准军刀。

核心技术优势

  • 声明式 Prompt 测试驱动开发,支持多提示词与多模型提供商的笛卡尔积矩阵评测
  • 内置丰富的语义断言库(包含 JSON 校验、相似度比对与 LLM-as-a-Judge 裁判机制)
  • 自动化红队安全扫描(Red Teaming),全面检测越狱、Prompt 注入与隐私泄露
  • 轻量级 CLI 工具,可无缝嵌入 GitHub Actions 等 CI/CD 自动化持续集成流水线

考量与局限

  • 生产环境落地需合理规划 GPU 显存与计算并发资源。

常见问题与技术问答 (FAQ)

Promptfoo - 面向 LLM 提示词、智能体技能与安全红队的测试评测套件 是什么?主要解决什么问题?

Promptfoo - 面向 LLM 提示词、智能体技能与安全红队的测试评测套件 是基于 TypeScript 开发的知名开源 AI 项目(采用 MIT 开源协议)。Promptfoo 是业界领先的 LLM 提示词工程与智能体安全评测 CLI 套件,支持跨模型对比、语义断言、自动化红队越狱测试(Red Teaming)与 CI/CD 质量流水线集成。。Promptfoo 的诞生源于大模型开发从‘凭感觉试凑’走向‘严谨工程化’的转折点。在早期开发中,工程师往往在 Web 界面中随手调试几个 Prompt,只要在一两个测试用例上效果不错便直接发布上线。然而,大模型的概率性本质决定了微小的 Prompt 调整可能在未测试的边界场景中导致严重的幻觉或功能崩溃。缺乏自动化测试套件使得团队对每一次 Prompt 迭代都提心吊胆。 Ian Webster 将现代软件工程中成熟的单元测试框架(如 Jest、Pytest)的设计理念移植到了大模型领域。Promptfoo 强调‘确定性断言’与‘确定性输入’的结合,通过本地执行、零数据泄露风险的轻量级 CLI,让每一次 Prompt 变更都能在数秒内获得客观的通过率与成本对比数据,彻底解决了大模型应用的回归测试难题。 在评测方法论上,Promptfoo 倡导‘分层断言策略’:先用零算力成本的字符串与正则表达式断言过滤掉 80% 的低级错误,再用结构化 Schema 验证工具调用参数,最后仅在核心语义维度调用 LLM-as-a-Judge 进行高阶打分。这种设计极大降低了大规模评测的 API 费用与耗时。

如何快速安装与本地部署 Promptfoo - 面向 LLM 提示词、智能体技能与安全红队的测试评测套件?

通过 npx 直接免安装运行,或全局安装 Promptfoo CLI:

bash
npm install -g promptfoo
# 或者使用 Homebrew
brew install promptfoo

在项目目录中快速初始化测试配置文件 promptfooconfig.yaml

bash
promptfoo init

以下是一个典型的 Promptfoo 配置文件示例,展示了提示词定义、多模型对比与断言规则:

yaml
prompts:
  - '你是资深工程师。请用一句话解释 {{topic}} 的核心价值。'
  - '你是技术讲师。请用极简大白话向新手介绍 {{topic}}。'

providers:
  - openai:gpt-4o-mini
  - anthropic:claude-3-5-haiku-20241022

tests:
  - vars:
      topic: Docker 容器技术
    assert:
      - type: contains
        value: 隔离
      - type: llm-rubric
        value: 解释必须清晰准确且字数少于 50 字

  - vars:
      topic: 向量数据库
    assert:
      - type: similar
        value: 用于高效存储与检索高维向量嵌入的专用数据库
        threshold: 0.75

在终端中执行测试并在本地浏览器中查看可视化结果:

bash
promptfoo eval
promptfoo view

Promptfoo - 面向 LLM 提示词、智能体技能与安全红队的测试评测套件 的核心优势与适用场景有哪些?

Promptfoo - 面向 LLM 提示词、智能体技能与安全红队的测试评测套件 适合用于 Prompt 优化与多模型效果比对、智能体上线前自动化安全红队测试、CI/CD 持续集成回归测试门禁、企业 RAG 召回与回答质量量化评估。其综合评分为 4.9/5 分,具备开箱即用、社区活跃、架构设计轻量等优势,能够无缝集成到现有的 AI 工作流中。

使用 Promptfoo - 面向 LLM 提示词、智能体技能与安全红队的测试评测套件 时有哪些技术考量与局限性?

在生产实用性与数据隐私方面,Promptfoo 坚持 100% 本地运行架构。所有的测试输入、Prompt 模板与生成的对比报告完全保存在开发者本地机器或私有 CI 服务器中,不会上传到任何第三方遥测平台,完全符合企业严格的数据隐私与合规标准。 在性能与扩展性层面,Promptfoo 支持高并发异步并发请求(可通过 --concurrency 参数调整),能够在数分钟内完成数千次 Prompt 评测。其丰富的插件生态支持自定义 Python/JavaScript 脚本作为 Provider 或 Assertion 处理器,极具工程灵活性。 在成本透明度方面,每次运行评估后,Promptfoo 会在终端详细打印出每个模型调用的精确 Token 消耗与预估美元成本,帮助团队精准控制评测预算。