返回博客
技能详解2026-04-01· 8 分钟阅读

/exp:上线前,让 AI 像真实用户一样用你的产品

代码测试通过,不等于用户体验正确。/exp 让 AI Agent 模拟真实用户操作产品,在上线前发现那些「技术上没错但用户会遇到问题」的 Bug。

软件上线前通常有这样一个流程:单元测试通过 → 集成测试通过 → QA 手工测试 → 上线。但有一类问题在这个流程里总是漏掉:技术上正确,但用户使用时会遇到问题。

比如:表单提交成功,但成功提示出现在用户看不到的滚动位置;API 返回了正确数据,但前端渲染时在移动端截断了;功能本身没问题,但操作路径需要 7 步,用户在第 4 步就放弃了。

这类问题不会让测试失败,但会让用户流失。

/exp 的定位是:在代码测试之外,增加一层体验验证——用 AI Agent 模拟真实用户的操作,在上线前发现用户会遇到的问题。

Agent 怎么「使用」你的产品

/exp 基于 Playwright,让 AI Agent 以自动化浏览器的方式操作你的产品界面。但它不是简单的录制-回放脚本,它是:

  • 目标导向:给 Agent 一个用户目标(「完成一次购买」),而不是操作步骤列表。Agent 自己规划路径,就像真实用户会做的那样。
  • 观察异常:Agent 会注意那些「不符合期望但不报错」的情况——按钮变灰、页面卡住、跳转到意外页面、内容截断。
  • 记录行为轨迹:每一步操作都有截图、DOM 状态快照、网络请求记录。问题复现有完整证据。

四类产品的验证场景

Web 应用

验证核心用户旅程(用户注册 → 完成第一个核心任务 → 退出)是否流畅。重点关注:

  • 表单交互(提交、验证、错误提示的时机和位置)
  • 状态反馈(加载状态、成功/失败提示的可见性)
  • 响应式布局(移动端和桌面端的关键操作路径)
  • 导航流(前进、后退、刷新后的状态保持)

API 服务

对于 API,/exp 模拟的是「API 消费者」的行为:

  • 按文档示例调用,验证返回值格式和内容
  • 边界输入(空值、超长字符串、并发请求)
  • 错误响应的格式是否符合 API 规范
  • Rate limiting 的行为(到达限制后的提示是否清晰)

AI Agent 产品

AI Agent 产品的体验验证最复杂,因为输出是非确定性的:

  • 对常见意图的处理是否符合预期(不需要完全准确,但方向要对)
  • 对边界输入(歧义指令、超长输入、语言混用)的处理是否优雅
  • 错误状态下的用户提示是否有用(不能只说「发生了错误」)
  • 多轮对话中的上下文保持是否正确

命令行工具

CLI 工具的体验验证关注:

  • 帮助文本是否准确(--help 描述和实际行为一致)
  • 错误信息是否可操作(告诉用户怎么修,而不只是报错码)
  • 标准输出/错误输出的分离是否正确

三轮自动修复循环

当 Agent 发现问题时,/exp 不只是报告,它尝试修复:

  1. 第一轮:定位问题代码(查图谱找到相关组件/函数),生成修复,重跑验证
  2. 第二轮:如果修复后问题仍然存在,分析是否是更深层的原因(数据问题、状态管理问题),调整修复策略
  3. 第三轮:第二轮修复后再次验证,如果还有问题,生成详细的问题报告,标记为「需要人工处理」

三轮循环的设计逻辑:多数表面问题一轮就能修完;需要两轮的是有复杂度的问题;三轮后还存在的,通常需要更大的架构决策,超出了自动修复的边界。

真实 Bug 样本

在 WorkClaw 的一次上线前验证中(/exp 运行了 12 个场景),发现了以下问题:

问题描述类型自动修复?
会话列表在 Safari 下滚动时闪烁CSS 渲染是(第一轮)
文件上传 > 5MB 时进度条不更新状态反馈是(第二轮)
快速切换会话时旧会话内容残留状态管理否(人工处理)
移动端键盘弹出时输入框被遮挡布局适配是(第一轮)
网络断开后重连提示在中文环境下显示英文国际化是(第一轮)

这 5 个问题,在正常的单元测试和 API 测试中不会出现。它们只有在「模拟真实用户使用」时才会浮出水面。

什么时候跑 /exp

  • 每个版本发布前:作为发布检查清单的最后一关
  • 核心功能改动后:任何影响用户主流程的改动,都应该触发完整体验验证
  • 引入新依赖后:第三方库升级有时会在 UI 层引入静默的兼容性问题

代码测试验证「代码是否按预期运行」,体验验证确认「用户是否能按预期使用」。两者缺一,都不算真正的上线前验收。

想了解我们如何做软件开发?

我们把这套方法论用在每一个客户项目上。欢迎聊聊你的具体需求。

联系我们