关于 five46
five46 是供开发者使用的本地 AI Agent,可通过自然语言检查浏览器流程或 API,并给出通过或失败的结果。成功运行会生成独立的 Playwright 或 `node:test` 测试,也支持 CI、GitHub Action 和 MCP。
主要功能
- 01用自然语言检查浏览器流程和 API
- 02提供结果报告与失败原因假设
- 03生成独立的 Playwright 或 `node:test` 测试
- 04API 检查默认只读
- 05支持 CI 和 GitHub Action
- 06支持断言验证与重复运行
适用场景
- 01编写测试前检查功能
- 02在 PR 预览环境验证验收标准
- 03将成功检查转为回归测试
MCP 相关
它提供 MCP 服务,让 IDE 助手通过 MCP 工具运行 five46 检查。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y five46FIVE46_LLM_PROVIDERLLM provider to use: openai, anthropic, gemini, groq, or bedrockFIVE46_LLM_API_KEY密钥Your own API key for the chosen provider (for bedrock, your AWS region instead)FIVE46_MCP_ALLOW_WRITESSet to 1 to unlock POST/PUT/PATCH for the five46_api tool (read-only by default)FIVE46_MCP_ALLOW_DELETESSet to 1 to unlock DELETE (five46_api) and destructive-looking browser clicks (five46_test)FIVE46_MCP_CONCURRENCYMax concurrent scenarios for story mode (default: 2 for five46_test, 3 for five46_api; hard-capped at 5)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
2收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 要测试的实时 http(s) 或 file:// URL |
| goal | string | 否 | Agent 应完成的任务——`goal`/`story` 中必须且只能提供一个。目标含糊会导致 BYOK 费用实际产生,却无法进行聚焦的运行。 |
| story | string | 否 | 原始的、可能包含多个场景的用户故事/验收标准文本;将其拆分为独立目标,并以有界并发运行(参见 `concurrency` 上下文,该值通过服务器上的 FIVE46_MCP_CONCURRENCY 设置,绝不是单次调用参数)。与 `goal` 互斥——必须且只能提供一个。 |
| headed | boolean | 否 | 观察它操作真实的可见浏览器,而不是无头浏览器(默认 false) |
| maxSteps | integer | 否 | 步骤预算(默认 15,无论传入什么值,硬性上限均为 50) |
| storageStatePath | string | 否 | 相对于已配置项目根目录的路径,指向之前由 `five46 login` 捕获的会话文件——启动时浏览器已完成身份验证 |
详细介绍
five46
用通俗的英语描述预期效果。AI Agent 会使用你自己的 LLM 密钥,在真实应用或 API 上检查效果,并为你生成真正的 Playwright 测试。

你刚完成一项开发,想在编写测试前确认它是否真的可用。给 five46 一个目标,例如 “登录并确认仪表盘已加载” 或 “通过 POST 创建用户,然后通过 GET 确认用户存在”。大模型(OpenAI、Anthropic、Gemini、Groq 或 AWS Bedrock,使用你的密钥)会逐步操作你的真实应用或 API。它会如实告诉你目标是否达成;如果没有,还会给出根因假设。成功运行后,会保存为独立的 Playwright(或 node:test)规格文件,这样今天的检查就会成为明天的回归测试,而且运行该测试不需要 five46 或大模型。
快速开始
npm install -g five46
npx playwright install chromium # one-time browser download
five46 config # pick a provider and paste a key (Gemini's is free)
five46 doctor # confirms the key works
five46 test http://localhost:3000 --goal "log in as [email protected] and confirm the dashboard says Welcome back"
你会得到通过或失败的结果(以及对应的退出代码)、包含屏幕截图的报告;如果失败,还会提供根因假设;此外还会得到一个 five46-agent-*.spec.ts 文件,可将其提交并通过 npx playwright test 运行。要测试 API?使用 five46 api <base-url> --goal "..."。除非传入 --allow-writes,否则只读。
**状态:**目前仍处于早期阶段,正在积极开发中。已在数十个真实网站和 API 上完成端到端验证。
检查每个拉取请求
five46 GitHub Action 会读取拉取请求描述中的 Acceptance criteria 部分,并针对 PR 的预览部署检查每一项。它会持续更新一条 PR 评论,其中包含每项标准的判定结果、每项失败的原因,以及为每项通过的标准生成的、可直接提交的规格文件。
on: deployment_status # Vercel, Netlify and other preview deploys
jobs:
five46:
if: github.event.deployment_status.state == 'success'
runs-on: ubuntu-latest
permissions: { contents: read, pull-requests: write }
steps:
- uses: sekharsdet/five46-action@v1
with:
url: ${{ github.event.deployment_status.target_url }}
api-key: ${{ secrets.FIVE46_API_KEY }}
对比
| five46 | Playwright Test Agents | playwright codegen | 云端 AI 测试平台 | |
|---|---|---|---|---|
| 你提供 | 用通俗英语描述的目标或验收标准 | 种子测试和请求,在 AI 编码工具中提供 | 你自己的点击操作 | 在其应用中编写的测试描述 |
| 运行位置 | CLI、CI、GitHub Action 或 MCP 工具 | 在 AI 编码工具中,例如 VS Code | 本地,随你的点击操作运行 | 其云端 |
| 是否旨在判定应用通过或失败 | 是,并提供根因假设 | 重点不在于此:它会生成和修复测试 | 否 | 是 |
| API 测试 | 支持(输出 node:test) | 侧重浏览器 | 否 | 因平台而异 |
| 是否能验证断言可以捕获故障 | 是(--verify 变异检查) | 没有内置检查 | 否 | 因平台而异 |
| 大模型和费用 | 使用你的密钥,支持 5 家服务商 | 使用你的编码 Agent 的模型 | 无 | 订阅其服务 |
| 应用数据会发送到 | 仅发送给你的 LLM 服务商 | 你的编码 Agent 所用的服务商 | 不会发送到任何地方 | 其平台 |
| 输出 | 普通 Playwright 或 node:test 文件 | 普通 Playwright 文件 | 普通 Playwright 文件 | 通常使用其自己的运行器 |
你已经在 AI 编码工具中工作,并在其中扩充 Playwright 测试套件? Playwright 自带的 Agent 非常适合这种情况,尤其是用于保持现有测试通过的修复器。five46 则用于给出判定:这项功能现在是否正常运行?无论是在 CI 还是 PR 上,无论是浏览器流程还是 API,都可以使用你已经付费的大模型。更多详情请参阅 Why five46。
亮点
- 默认安全。 API 运行只读,除非你解锁写入;除非获得许可,否则会拦截看起来具有破坏性的点击(“删除账户”)。
- 登录凭据绝不会传给大模型。 大模型看到的是占位符,真实值会在本地填入。登录一次,即可重复使用会话。
- 输入验收标准,输出判定结果。
--story会将用户故事或工单拆分为独立场景,并报告每项标准的通过或失败情况。 - 可信的规范。
--verify-clean-session会在全新会话中重新运行规范;--verify会修改规范中的断言,并要求这些断言失败。 - 兼容任何当前可用的密钥。 如果你的服务提供商停用了某个模型,five46 会找到一个你的密钥可用的当前模型。你也可以通过
FIVE46_LLM_MODEL固定模型。 - 适配你的工具。 支持适用于 CI 的退出代码、供仪表板使用的
--reportJSON、运行不稳定检测(--repeat)、视频录制,以及面向 IDE 助手的 MCP 服务。
文档
- 配置:服务提供商、获取密钥、
five46 doctor、选择模型 - CLI 参考:所有命令和标志、登录会话、API 测试、故事模式、验证、报告
- MCP 服务:在 IDE 内嵌的 AI 助手中使用 five46
- 安全模型:哪些内容会离开你的设备、five46 会防护什么,以及哪些事项由你决定
- 为何选择 five46:设计选择、完整功能列表、对比
- 更新日志
已知限制
- 无法遍历封闭式 shadow DOM。
mode: "closed"shadow 根中的元素不会显示在 Agent 的页面快照中(封闭式 shadow 根通常无法被外部工具访问,并非只有 five46 无法访问)。绝大多数现实中的 Web 组件使用开放式 shadow 根,均可正常使用;<iframe>和<frame>内容也同样适用。 - 浏览器模式仅支持 Chromium,暂不支持 Firefox 或 WebKit。
- 运行本身并非确定性的。 针对同一页面执行相同目标,下次可能会采取不同路径。生成的规范是固定且可重复的产物。
参与贡献
欢迎提交问题和拉取请求。请参阅 CONTRIBUTING.md。
git clone https://github.com/sekharsdet/five46.git
cd five46
npm install
npm run build
node dist/cli.js test <url> --goal "..."
npm test
如果 five46 对你有帮助,请在 GitHub 点个 ⭐,帮助其他人发现它。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。