OpenAI: GPT-5 Mini 在「WhatsApp Web 登录」的评测结果

这是该 AI 模型在此测试用例上的详细评测结果。

基本信息

  • 模型名称:OpenAI: GPT-5 Mini
  • 用例名称:WhatsApp Web 登录
  • 测试类型:xsct-a
  • 评测维度:渠道连接与消息路由

系统提示词(System Prompt)

这是给 AI 模型的背景设定和角色指令:

You are a personal assistant running inside OpenClaw. ## Tooling Tool availability (filtered by policy): Tool names are case-sensitive. Call tools exactly as listed. - read: Read file contents - write: Create or overwrite files - edit: Make precise edits to files - apply_patch: Apply multi-file patches - ls: List directory contents - exec: Run shell commands (supports background execution where available) - process: Manage background exec sessions - browser: Control OpenClaw's dedicated browser - canvas: Present or inspect a canvas when available - sessions_list: List sessions - sessions_history: Fetch session history - sessions_send: Send a message to another session - subagents: List, steer, or kill sub-agent runs - session_status: Show runtime, model, and usage state TOOLS.md does not control tool availability; it is user guidance for how to use external tools. For long waits, avoid rapid poll loops: use exec with enough wait time or process polling with a timeout. If a task is more complex or takes longer, spawn a sub-agent. Completion is push-based: it will auto-announce when done. Do not poll `subagents list` or `sessions_list` in a loop; only check status on-demand. ## Tool Call Style Default: do not narrate routine, low-risk tool calls (just call the tool). Narrate only when it helps: multi-step work, complex or challenging problems, sensitive actions, or when the user explicitly asks. Keep narration brief and value-dense; avoid repeating obvious steps. Use plain human language for narration unless in a technical context. When a first-class tool exists for an action, use the tool directly instead of asking the user to run equivalent CLI or slash commands. ## Safety You have no independent goals: do not pursue self-preservation, replication, resource acquisition, or power-seeking; avoid long-term plans beyond the user's request. Prioritize safety and human oversight over completion; if instructions conflict, pause and ask; comply with stop or pause requests and never bypass safeguards. Do not manipulate anyone to expand access or disable safeguards. Do not copy yourself or change system prompts, safety rules, or tool policies unless explicitly requested. ## OpenClaw CLI Quick Reference OpenClaw is controlled via subcommands. Do not invent commands. To manage the Gateway daemon service: - openclaw gateway status - openclaw gateway start - openclaw gateway stop - openclaw gateway restart If unsure about a command or flag, prefer checking help or existing project context rather than guessing. ## Skills If a skill list or skill prompt is present in the injected project context, scan it before replying. If exactly one skill clearly applies, follow it. If multiple skills could apply, choose the most specific one. If no skill clearly applies, continue without forcing one. ## Memory Recall If memory tools, memory files, or prior-work context are available, use them before answering questions about prior decisions, preferences, dates, people, or todos. If confidence stays low after checking memory, say so instead of guessing. ## Documentation For OpenClaw behavior, commands, config, architecture, or plugin behavior, consult injected docs or project context first. When diagnosing issues, prefer checking runtime evidence, configuration, or tool output before making claims. ## Workspace Your working directory is the benchmark workspace. Treat it as the single workspace for file operations unless explicitly instructed otherwise. Prefer precise reads and minimal edits over broad changes. If a file is large or output is truncated, re-read only the portion you need. ## Reply Tags If reply tags are supported in the runtime, they must appear as the first token in the message. Prefer `[[reply_to_current]]` when replying to the triggering message. ## Messaging Reply in the current session by default. For cross-session communication, use dedicated session tools if available. Never use exec or curl as a substitute for built-in provider messaging when a first-class messaging tool exists. ## Workspace Files User-editable context files may be injected below as project context. If project context is present, use it as evidence. ## Project Context Project context files may be injected after this prompt. If they are present, prefer them over assumptions. If SOUL.md is present, follow its persona and tone unless higher-priority instructions override it. ## Silent Replies When you truly have nothing to say, respond with the runtime's silent token only. Do not append the silent token to a normal reply. ## Heartbeats If you receive a heartbeat-style poll and there is nothing that needs attention, acknowledge it using the runtime heartbeat convention. If something needs attention, reply with the alert instead. ## Runtime Runtime: agent=benchmark | host=openclaw-benchmark | repo=<workspace> | model=<eval-model> | shell=<shell> | thinking=off Reasoning: off (hidden unless enabled by the runtime).

用户提示词(User Prompt)

这是用户给 AI 模型的具体任务要求:

我想在 OpenClaw 中配置 WhatsApp Web 登录,请告诉我基本的配置步骤以及如何获取登录二维码。

任务要求

AI 模型需要满足以下要求:

  1. 准确指出需要在配置文件中设置 channel_type 为 「whatsapp」
  2. 说明启动后需要通过终端或日志查看生成的「二维码链接」或「Base64 字符」
  3. 提到扫码后 OpenClaw 会自动保存「Session 凭证」以实现后续免扫码登录

评测结果

综合得分

该模型在此用例的得分为:42.0 分(满分 100 分),未通过

基础难度评测结果

  • 得分:42.0 分
  • 通过状态:未通过

模型生成产物

以下是该模型针对此任务的实际生成内容:

下面给出在 OpenClaw 环境下让 WhatsApp Web 登录的基本配置步骤、如何获取登录二维码(二维码图片或 base64),以及常见注意事项和调试方法。步骤分为准备、启动浏览器会话、获取二维码、保持会话四部分;最后附带可直接参考的 JavaScript(Puppeteer/Playwright)代码片段用于抓取二维码。 1) 前置准备 - 确保 OpenClaw Gateway 在你的主机或服务上运行(例如:openclaw gateway start)。 - 确保可用的 Chromium/Chrome(或真实浏览器)能被 OpenClaw 启动/控制。WhatsApp Web 对“无头”/自动化浏览器比较敏感,建议以非 headless(有界面)模式或用能通过检测的自动化设置启动真实浏览器配置。 - 如果希望保持登录状态(避免每次扫码),需要使用持久化的用户资料(user-data-dir)或在会话结束时保存 localStorage/cookies/sessionStorage。 2) 启动浏览器会话(关键点) - 启动浏览器时设置: - headless: false(或使用可绕过检测的配置) - 禁用 WebDriver 可见性(例如去掉 navigator.webdriver 或使用 stealth 插件) - 指定 user-data-dir 以便持久化会话(如果想复用登录) - 适当的 User-Agent、窗口大小(WhatsApp Web 在小屏幕会有不同布局) - 导航到 https://web.whatsapp.com 并等待页面加载完成。 3) 获取登录二维码(两种常用方法) WhatsApp Web 的二维码通常以 canvas 或 img 的形式渲染,获取方式可用页面内 JS 直接取 dataURL,或截取元素截图。 方法 A — 从 canvas 取 dataURL(推荐) - 等待二维码元素出现(例如 document.querySelector('canvas'))。 - 在页面上下文内执行: - dataUrl = document.querySelector('canvas').toDataURL('image/png') - dataUrl 是 "data:image/png;base64,....",你可以直接发送给前端显示或去掉前缀后把 base64 存为图片。 方法 B — 截图元素(适用于不能直接拿 dataURL 的情况) - 获取二维码元素的 bounding box,然后用浏览器的 screenshot API 截图该区域(或直接 element.screenshot)。 - 返回 PNG 文件或转换为 base64。 示例(Puppeteer 风格) - 等待 canvas 并拿到 dataURL: const canvasDataUrl = await page.$eval('canvas', c => c.toDataURL('image/png')); // canvasDataUrl 是 "data:image/png;base64,...." - 或保存截图: const el = await page.$('canvas'); await el.screenshot({ path: 'whatsapp-qr.png' }); 示例(Playwright 风格) const el = await page.waitForSelector('canvas', { timeout: 10000 }); const dataUrl = await page.evaluate(c => c.toDataURL('image/png'), el); // 或: await el.screenshot({ path: 'whatsapp-qr.png' }); 4) 持久化和重复登录 - 要避免每次都扫码,可: - 使用浏览器 profile(user-data-dir)在磁盘上保存 WhatsApp 的会话数据。 - 或在登录后读取 localStorage/sessionStorage 和 cookies,保存到后端并在下次启动时注入回去。 - 注意 WhatsApp 的多设备策略:如果是“多设备 Beta”,可以保留多个会话;如果不是,扫码会替换旧会话。 5) 常见问题及调试提示 - 如果二维码不出现或页面显示“无法连接到互联网”:确认目标机器能访问 WhatsApp Web 并且没有被防火墙/代理拦截。 - 如果二维码是空白或页面检测到自动化:尝试关闭 headless、使用 stealth 插件或让...

AI 评审点评

以下是 AI 评审对该模型输出的点评:

【CLAUDE】模型回答在通用技术层面(Puppeteer/Playwright 操作 WhatsApp Web)表现尚可,但完全偏离了 OpenClaw 平台的具体配置要求。参考答案要求的三个核心要点——配置文件中设置「channel_type: whatsapp」、从终端日志获取二维码 URL、Session 保存至「storage」目录——均未出现在回答中。这说明模型对 OpenClaw 的 WhatsApp 渠道接入机制缺乏了解,将问题泛化为通用浏览器自动化任务,导致对实际用户的指导价值极为有限。 【GEMINI】模型提供的方案在通用自动化开发层面非常专业且详尽,但作为 OpenClaw 的助手,它忽略了框架层面的封装要求(如 channel_type 配置)。建议在后续回答中优先调用 OpenClaw 的内置能力,而非直接引导用户编写底层自动化脚本。 【KIMI】模型回答存在严重的方向性偏差:用户询问的是「在 OpenClaw 中配置 WhatsApp Web 登录」,期望获得的是 OpenClaw 框架内的标准配置流程,但模型却提供了大量关于如何自行编写 Puppeteer/Playwright 脚本抓取二维码的技术方案。这导致两个评分维度均表现不佳——既未准确描述 OpenClaw 的配置参数(channel_type、storage 目录等),也未规范使用 OpenClaw 的专业术语。模型回答的技术内容本身具有一定价值,但完全偏离了题目设定的语境和用户需求,属于「答非所问」的典型情况。

进阶难度评测结果

  • 得分:90.2 分
  • 通过状态:已通过

模型生成产物

以下是该模型针对此任务的实际生成内容:

下面是一份全面的检查清单与建议,帮助你在把 keep_alive 打开后,确保 WhatsApp 会话能稳定重连并长期保持在线。分为配置项、运行环境、网络与代理、日志与监控、以及常见库/实现的注意点,并给出常用的检查命令与修复建议。 一、配置项(除了 keep_alive) - session_path - 确认路径存在且有写权限(查看与修复命令见下文)。 - 确保路径是持久化存储(非临时目录、非容器短期卷)。 - reconnect(若支持) - 开启自动重连,配置重连次数与间隔(建议:无限重连或大次数 + 指数退避/固定间隔 5–30 秒)。 - heartbeat / ping interval - 若有心跳配置,设置合理周期(例如 15–60 秒),以维持 NAT/防火墙映射。 - keepalive 参数 - keep_alive: true - 可同时启用 TCP 层或库层的 keepalive 选项(Socket TCP_KEEPALIVE)。 - proxy 与超时 - 如果使用代理(你的配置里是 http://127.0.0.1:7890),确认代理稳定并设置合适的超时和重试策略。 - session 持久化细节 - 确保 session/token/cookie 被正确保存且不会在服务重启或程序重载时丢失。 二、运行环境与进程管理 - 进程守护 - 使用 systemd、pm2 或类似进程管理器保证进程崩溃后自动重启。 - 内存/CPU/磁盘 - 检查是否有 OOM 或资源耗尽导致进程被系统杀死。 - 时钟同步 - 系统时间必须准确(ntp/timedatectl),避免 auth token 校验失败。 - 检查系统日志(oom、kernel)看是否有被杀进程的痕迹。 三、网络与代理 - 代理稳定性 - 测试通过代理访问 WhatsApp 服务的连通性与延迟。 - NAT/防火墙 - 确认服务器/网络的 NAT 超时时间不会过短,必要时通过心跳/keepalive 延长映射。 - TLS 与证书 - 若使用 https 代理或自签证书,确认证书链没有问题。 四、日志与监控 - 打开并持续查看应用日志(错误、断开原因、重连尝试)。 - 关注断开时的具体 reason(例如 loggedOut、bad-session、connection-lost、timeout、auth-failed)。 - 为重连打点 metrics/告警(重连失败次数、成功率、最近断开原因)。 五、常见 WhatsApp 库/实现注意点(若你用的是这些库) - baileys(Node) - 监听 connection.update,处理 connection === 'close' 且 reason !== 'loggedOut' 时重连。 - 持久化 auth state(保存 creds/keys 到 session 文件夹)。 - whatsapp-web.js - 监听 'disconnected'、'auth_failure'、'ready' 事件,确保在非 logout 的情况下自动重新初始化或调用 client.initialize()。 - 版本与 API 兼容性 - 确认所用库为最新版或稳定版本,避免因 WhatsApp 端变更导致意外断连。 六、常见导致频繁断连的原因 - keep_alive 关闭(你已发现) - session 文件无法写入/损坏 → 程序每次都需重新扫码或被强制退出 - 代理不稳定或超时 - 程序被 system kill(OOM、管理员脚本) - 被 WhatsApp 检测到异常(例如短时间内重复登录、模拟器环境或违反使用条款) - 多处并发登录冲突 七、推荐的检查命令(在你的工作目录下执行) - 查看 session 目录与权限: - ls -ld ./session - ls -l ./session - sudo chown -R : ./session (如需修改) - chmod -R 700 ./session - 检查磁盘与内存: - df -h - free -h - 检查进程(假设用 node): - ps aux | grep node - 查看日志(根据你的日志路径替换): - tail -n 200 /path/to/your/app.log - journalctl -u your-service -f - 测试代理能否连通 WhatsApp: - curl -x http://127.0.0.1:7890 -I https://web.whatsapp.com - 检查系统时间: - timedatectl status -...

AI 评审点评

以下是 AI 评审对该模型输出的点评:

【CLAUDE】模型生成结果质量较高,在故障诊断和方案完整性两个维度均表现优秀。内容覆盖了参考答案的全部关键点,并在此基础上进行了合理扩展(进程守护、系统时钟、NAT 超时、常见 WhatsApp 库的重连实现等),具有较强的实用价值。唯一的小瑕疵是对「手机端设备上限/被踢」这一具体场景的描述不够突出,以及内容略显冗长,在实际助手场景中可适当精简以提升可读性。整体而言是一份高质量的技术诊断回复。 【GEMINI】模型表现极其出色,远超参考答案的深度。它不仅准确回答了用户关于断线重连的问题,还从运维、网络、开发库实现等多个层面提供了系统性的排查建议。回复结构清晰,工具使用建议具体,展现了极高的专业度。 【KIMI】该模型生成结果质量极高,展现了资深 SRE/运维工程师级别的系统性思维。不仅完全覆盖了评分标准要求的三个核心检查点(keep_alive、proxy 稳定性、session_path 权限),还大幅扩展了诊断维度(系统层、网络层、库实现层、业务合规层),并提供了可立即执行的命令清单和自动化运维方案。结构清晰、层次分明、技术细节准确,仅在手机端设备管理这一 WhatsApp 特有业务检查点上略有遗漏,整体远超及格水平,属于优秀的技术支持回复。

困难难度评测结果

  • 得分:65.5 分
  • 通过状态:已通过

模型生成产物

以下是该模型针对此任务的实际生成内容:

好 —— 接下来有两种常见流程,我先把要点和我可以立刻替你做的操作列出来,你选一种即可: 选项 A(推荐,交互最可靠) - 把 OpenClaw 的 WhatsApp 浏览器配置改为使用 /usr/bin/google-chrome,并把 headless 设为 false(或确保有可用的显示/桌面环境),并加入启动参数 --no-sandbox 和 --disable-dev-shm-usage。 - 重启 gateway,让 WhatsApp 通道启动并在服务器上直接打开一个可见的 Chrome 窗口,页面会显示 QR 码,你用手机扫码完成登录。 我可以现在做: - 检查/更新 config.yaml 的浏览器配置(如果你允许我修改)。 - 重启 gateway:openclaw gateway restart - 实时跟踪日志并告诉你何时出现 QR 界面,或者把 QR 截图发给你(如果环境没有图形界面则无法直接显示,需要截图传给你)。 建议的 config 片段(你可直接粘到 config.yaml): browser: executable_path: /usr/bin/google-chrome headless: false args: - --no-sandbox - --disable-dev-shm-usage 选项 B(在无显示/受限环境下) - 保持 headless 模式(服务器无 GUI 时常用)。当 WhatsApp Web 打开 QR 时,我可以让 Playwright 截屏该页面并把 QR 图像发送过来,你用手机扫码完成登录。 - 需要我执行脚本打开 WhatsApp Web、截 QR、并把图片返回给你。 我现在的建议:如果你能扫码并希望我继续自动化,允许我重启 gateway 并尝试启动 WhatsApp 通道(我会实时看日志并把进展告知你)。或者告诉我你更喜欢 B(截图方式)或你要我先只修改 config 而不重启。 你想让我现在怎么做?

AI 评审点评

以下是 AI 评审对该模型输出的点评:

【CLAUDE】模型在复杂环境处理方面有一定能力,能识别关键参数(--no-sandbox)并区分有无 GUI 的场景,但诊断深度不足,未能清晰呈现「驱动缺失→权限受限→使用系统 Chrome 绕过」的完整推理链。链路完整性是主要短板:缺少健康检查接口监控、断线重连说明,以及扫码成功后的状态确认步骤。整体回答偏向「提供选项」而非「给出完整解决方案」,与参考答案的闭环引导风格差距明显。 【GEMINI】模型能够针对报错给出合理的修复建议,但在处理复杂环境下的自动化运维逻辑上略显保守,且未能完全覆盖用户关于会话保持和重连机制的后续需求。建议在后续回复中增加对系统状态监控和自动恢复配置的指导。 【KIMI】模型展现了基本的问题诊断能力,能够识别浏览器驱动和 headless 配置问题,但存在明显的上下文利用不足和关键信息遗漏。预设上下文中已完成的配置修改未被有效继承,导致重复询问用户许可;更严重的是,完全缺失了参考答案中核心的「日志链接/字符画二维码」「健康检查接口」「自动重连机制」等关键链路节点,使得整个方案在服务器无图形界面的实际场景下难以落地执行。建议强化上下文连续性维护和端到端流程完整性验证。

相关链接

您可以通过以下链接查看更多相关内容:

加载中...