OpenAI: gpt-oss-120b 在「WhatsApp Web 登录」的评测结果
这是该 AI 模型在此测试用例上的详细评测结果。
基本信息
- 模型名称:OpenAI: gpt-oss-120b
- 用例名称: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 模型需要满足以下要求:
- 准确指出需要在配置文件中设置 channel_type 为 「whatsapp」
- 说明启动后需要通过终端或日志查看生成的「二维码链接」或「Base64 字符」
- 提到扫码后 OpenClaw 会自动保存「Session 凭证」以实现后续免扫码登录
评测结果
综合得分
该模型在此用例的得分为:45.0 分(满分 100 分),未通过
基础难度评测结果
- 得分:45.0 分
- 通过状态:未通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
下面给出在 **OpenClaw** 中配置 **WhatsApp Web** 登录的完整流程,涵盖插件安装、基本配置以及获取登录二维码的两种常见方式(CLI + HTTP API)。 --- ## 1️⃣ 安装 WhatsApp 插件 OpenClaw 采用插件化架构,WhatsApp Web 登录功能是通过 `openclaw‑whatsapp` 插件实现的。 ```bash # ① 通过 OpenClaw 官方插件仓库安装 openclaw plugin install whatsapp # ② (可选)确认插件已加入配置 openclaw plugin list | grep whatsapp ``` > **提示**:如果你使用的是自定义插件仓库,先把插件源码放到 `~/.openclaw/plugins/` 目录下,然后执行 `openclaw plugin reload`。 --- ## 2️⃣ 创建并编辑插件配置文件 插件的运行参数全部写在 YAML 配置文件里,默认位置为: ``` ~/.openclaw/plugins/whatsapp/config.yaml ``` 如果文件不存在,请手动创建: ```yaml # ~/.openclaw/plugins/whatsapp/config.yaml whatsapp: # 保存会话(包括已登录的 token)的位置 session_store: "~/.openclaw/whatsapp/session.json" # 需要的浏览器引擎(OpenClaw 内置 Chromium) browser: headless: true # 生产环境建议开启无头模式 executable_path: "" # 若系统已经装有 Chrome,可留空使用内置 # 其他可选项 # - qr_refresh_interval: 二维码刷新间隔(秒),默认 30 # - max_retry: 登录失败最大重试次数,默认 5 ``` > **安全建议**:`session_store` 文件请放在仅当前用户可读的目录(`chmod 600`),避免泄露登录凭证。 --- ## 3️⃣ 启动 OpenClaw Gateway(后台服务) WhatsApp 插件依赖 OpenClaw 的 **Gateway** Daemon 来管理浏览器实例与会话。 ```bash # 检查当前状态 openclaw gateway status # 若未运行,启动它 openclaw gateway start ``` > **注意**:Gateway 必须保持运行状态,插件才能通过内部 RPC 调用浏览器获取二维码。 --- ## 4️⃣ 生成登录二维码 ### 方式 A:直接使用 CLI OpenClaw 为每个插件提供统一的 `login` 子命令。执行以下命令即可在终端打印 QR‑code(使用 `qrencode` 渲染)或保存为图片: ```bash # 生成二维码并在终端显示(需要 qrencode) openclaw whatsapp login --output terminal # 保存为 PNG(默认保存在当前目录) openclaw whatsapp login --output file --file whatsapp_qr.png ``` 运行后,终端会出现类似下面的 ASCII‑QR,或在当前目录生成 `whatsapp_qr.png`。用手机打开 **WhatsApp → 设置 → 已链接的设备 → 扫描二维码** 即可完成登录。 ### 方式 B:通过 HTTP API(适合前端或自定义 UI) 如果你希望在自己的网页或后台系统中展示二维码,只需调用插件暴露的 `/whatsapp/qrcode` 接口: ```bash # 通过 curl(假设 Gateway 监听在 127.0.0.1:8080) curl -X GET http://127.0.0.1:8080/api/whatsapp/qrcode -o whatsapp_qr.png ``` 返回的文件即为最新的二维码图片。**注意**:二维码默认每 30 秒刷新一次(可在 `config.yaml` 中 `qr_refresh_interval` 调整),因此前端最好每分钟重新请求一次,以防用户扫描时已失效。 > **API 细节** > - **路径**:`/api/whatsapp/qrcode` > - **方法**:`GET` > - **返回**:`image/png`(二维码图片)或 `application/json`(包含 `data_url` 的 Base64 字符串) >...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【KIMI】候选输出是一份看似详尽专业的技术文档,但经与 EVAL_BLOB 事实来源比对,发现其核心内容存在严重的事实性错误。该输出完全虚构了 OpenClaw 的 WhatsApp 集成机制,包括不存在的插件安装命令、错误的配置参数体系、虚构的 API 端点等,与参考答案中明确的「channel_type」配置方式、「二维码 URL」获取方式、「storage」目录保存 Session 等关键事实完全不符。这种「幻觉式」生成在形式上具备高度迷惑性,但实质上未能满足用户对准确信息的需求。在评测任务中,准确性优先于形式专业性,因此该候选输出在核心评分维度上表现不佳。
进阶难度评测结果
- 得分:93.7 分
- 通过状态:已通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
下面列出几项在 **WhatsApp**(或其他基于 `openclaw` 的多渠道)中实现「断线自动重连」时需要检查和确认的关键配置与运行状态,供你逐项核对。 --- ## 1️⃣ 必要的配置项(`config.yaml`) | 配置项 | 说明 | 推荐值 | |--------|------|--------| | `keep_alive` | 是否在空闲时主动发送心跳保持会话。**必须**开启才能让后端检测到「掉线」并触发重连。 | `true` | | `reconnect_attempts` | 连接丢失后尝试重连的次数(`0` 表示无限次)。 | `5`(或 `0`) | | `reconnect_interval` | 两次重连尝试之间的等待时间(秒)。 | `5` | | `reconnect_backoff` | 是否使用指数退避(`true`)——在多次失败后逐渐延长间隔,防止短时间内大量请求被封。 | `true` | | `session_path` | 用于保存登录凭证的目录。必须是 **可写**、**持久** 的路径。 | `./session`(确保目录存在且权限 755) | | `proxy`(可选) | 如需走代理,请确认代理地址可达且不受速率限制。 | `http://127.0.0.1:7890`(如不需要可删除) | | `log_level` | 便于排查问题时打开更详细日志。 | `debug`(平时可设 `info`) | **示例(完整)**: ```yaml channels: - type: whatsapp session_path: ./session keep_alive: true # ✅ 必须开启 reconnect_attempts: 0 # 0 = 永久重试 reconnect_interval: 5 # 5 秒一次 reconnect_backoff: true # 使用指数退避 proxy: http://127.0.0.1:7890 # 如不使用可删除 log_level: info # 运行时改为 debug 可帮助排查 ``` > **提示**:如果你在同一台机器上运行多个渠道,最好把每个渠道的 `session_path` 分离(如 `./session/whatsapp`),避免凭证相互覆盖。 --- ## 2️⃣ 检查运行时状态 ### 2.1 Gateway 服务是否在运行 ```bash openclaw gateway status ``` - **Running**:说明守护进程正常。 - **Stopped**:请执行 `openclaw gateway start`,或检查系统日志(`journalctl -u openclaw-gateway`)了解为何启动失败。 ### 2.2 查看 Channel(WhatsApp)日志 ```bash openclaw logs --channel whatsapp --tail 200 ``` - 关注 `connection lost`, `reconnect`,以及 **错误码**(如 `401`, `403`, `429`) - 若只看到 `connection closed` 而没有 `reconnect`,说明 `keep_alive` 为 `false` 或 `reconnect_*` 未配置。 ### 2.3 检查 Session 目录权限 ```bash ls -ld ./session ``` - 结果应类似 `drwxr-xr-x 2 ... session` - 若权限不足(如 `drwx------`),使用 `chmod 755 ./session` 进行修正。 ### 2.4 网络/代理连通性 ```bash curl -I https://web.whatsapp.com --proxy http://127.0.0.1:7890 ``` - 返回 `200 OK` 表示代理通畅。 - 若出现 `Failed to connect`、`403` 等,需要检查代理服务器或本地防火墙。 --- ## 3️⃣ 常见导致「断线后不自动重连」的原因 | 症状 | 可能原因 | 解决办法 | |------|----------|----------| | **掉线后不再尝试** | `keep_alive: false` 或 `reconnect_attempts: 0`(且 `keep_alive` 为 false) | 开启 `keep_alive`,并设置 `reconnect_attempts`(>0) | | **频繁重连后仍失败** |...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】模型生成结果质量极高,在参考答案基础上大幅扩展了诊断维度和修复方案,结构清晰(配置项表格、运行时检查、常见原因对照表、快速排障步骤),每个关键点均配有可执行命令,实用性强。四个核心功能要求点(keep_alive、proxy、session_path 权限、日志错误码)均得到充分覆盖,方案形成完整闭环。唯一轻微不足是未提及手机端设备上限被踢下线的场景,但整体表现远超及格线,属于优秀级别的回答。 【GEMINI】该回复表现极其出色,不仅准确回答了用户关于断线重连的问题,还展现了极高的专业度。模型主动扩展了排查范围(如系统资源、日志分析、多实例配置),并以清晰的表格和代码块形式呈现,极大地降低了用户的操作门槛。回复逻辑严密,完全符合 OpenClaw 的技术语境。 【KIMI】该生成结果质量极高,远超参考答案的简洁回答。模型不仅完整覆盖了所有评分要点,还展现了深度的领域知识:提供了结构化的配置表格、可复制的 YAML 示例、分层级的检查命令、症状对照表、以及系统级的优化建议(ulimit、端口冲突、容器持久化等)。回答风格专业且实用,「下一步建议」部分直接给出了可立即执行的三步操作,真正实现了「闭环」。虽然篇幅较长,但信息密度高,对实际排障具有显著指导价值。
困难难度评测结果
- 得分:44.0 分
- 通过状态:未通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
✅ 已完成以下两件事,使 WhatsApp Web 能够使用系统已安装的 Chrome 浏览器运行: 1. **`config.yaml`** – 为 OpenClaw 的 WhatsApp 通道配置了浏览器路径和启动参数,指向 `/usr/bin/google‑chrome`,并关闭了 headless 模式(方便你看到二维码)。 2. **`whatsapp_login.py`** – 一个可直接运行的 Playwright 示例脚本,它会: - 使用系统 Chrome 启动 Chromium 引擎 - 打开 `https://web.whatsapp.com` - 等待你扫描二维码并完成登录 - 登录成功后保持浏览器打开(Ctrl + C 可退出) ### 如何使用 ```bash # 1️⃣ 如有需要,先确保 Playwright 已安装(只需一次) pip install playwright python -m playwright install # 2️⃣ 运行登录脚本 python whatsapp_login.py ``` 脚本会弹出 Chrome 窗口,显示 WhatsApp Web 的二维码。用手机的 WhatsApp 扫码后,页面会切换到聊天列表,终端会输出 `Login successful! WhatsApp Web is ready.`。 ### 与 OpenClaw 的集成 如果你已经在 OpenClaw 中启用了 WhatsApp 通道,只需 **重启** 该服务,让它读取新的 `config.yaml`: ```bash openclaw gateway restart # 或者针对具体的 WhatsApp 插件执行相应的重启命令 ``` 重启后,通道会使用系统 Chrome 而不再尝试下载 Chromium,错误 `[ERROR] Failed to launch browser: Chromium revision is not downloaded.` 将消失,WhatsApp Web 登录即可正常进行。 如还有其他需求(比如自动保存会话、设置代理等),随时告诉我!祝使用顺利 🚀
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】模型的回答结构清晰、格式规范,显示出一定的工程意识,能够识别核心问题并给出 Chrome 替代方案。但针对本题的关键难点——服务器 headless 环境下的二维码获取——给出了错误导向(建议关闭 headless 模式),这在无 GUI 的服务器场景下是无效甚至有害的建议。同时,对权限问题、健康监控接口、断线重连机制、--no-sandbox 配置等重要功能点均未覆盖,导致答案虽然流畅但不够贴合实际服务器部署场景,整体实用性偏低。 【GEMINI】模型在处理该任务时表现出明显的「脱离上下文」倾向。在明确已知是 OpenClaw 平台且处于服务器环境的前提下,模型建议用户运行 GUI 脚本并手动安装依赖,这不仅增加了用户的操作负担,还忽略了 OpenClaw 自身的网关管理机制。模型未能针对服务器环境提供有效的二维码获取方案(如日志输出或字符画),且对后续的会话保持和健康监控缺乏指导,整体完成度较低。 【KIMI】模型生成结果偏离了任务核心需求。用户明确处于服务器环境(无图形界面),但模型却建议关闭 headless 模式并弹出浏览器窗口,这在服务器上无法执行。此外,模型自行创建了一个独立的登录脚本 whatsapp_login.py,而非指导用户通过 OpenClaw 的原生机制完成登录和会话管理,导致与 OpenClaw 的集成方式模糊。关键功能如健康检查接口监控、自动重连机制、Docker 的 --no-sandbox 参数均未提及,链路完整性不足。
相关链接
您可以通过以下链接查看更多相关内容: