OpenAI: gpt-oss-120b 在「Signal 接入」的评测结果
这是该 AI 模型在此测试用例上的详细评测结果。
基本信息
- 模型名称:OpenAI: gpt-oss-120b
- 用例名称:Signal 接入
- 测试类型: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 中接入「Signal」渠道,请告诉我需要准备哪些核心参数,以及如何在配置文件中定义一个基础的 Signal 接收器?
任务要求
AI 模型需要满足以下要求:
- 明确指出需要 Signal-CLI 或相关 REST API 服务作为前置条件
- 列出核心参数:手机号「number」、账户密码或数据存储路径
- 提供符合 OpenClaw 规范的 YAML 基础配置示例
- 提及权限验证或注册流程的必要性
评测结果
综合得分
该模型在此用例的得分为:51.0 分(满分 100 分),未通过
基础难度评测结果
- 得分:51.0 分
- 通过状态:未通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
下面给出在 **OpenClaw** 中接入 **Signal** 渠道所需要的核心参数,以及在配置文件里如何定义一个最简化的 Signal 接收器。 --- ## 1️⃣ 必备核心参数 | 参数名称 | 含义 | 示例 | |----------|------|------| | `api_url` | Signal 服务器(或 Signal‑Bridge)提供的 HTTP API 基础地址。 | `https://signal.example.com/api/v1` | | `phone_number` | 绑定到该 Signal 账户的完整国际号码(E.164 格式)。 | `+8613800000000` | | `password` | 用于登录该号码的密码或一次性令牌(取决于你使用的 Signal‑Bridge 实现)。 | `myStrongPassword` | | `registration_token`(可选)| 部分实现需要的设备注册令牌,用于首次注册或重新注册。 | `ABCD1234…` | | `webhook_path`(可选)| OpenClaw 接收 Signal 消息的 HTTP 路径。建议使用唯一且不易冲突的路径,例如 `/signal/webhook`。 | `/signal/webhook` | | `verify_ssl`(可选)| 是否校验 HTTPS 证书。生产环境建议开启,调试时可关闭。 | `true` | | `timeout_ms`(可选)| 与 Signal API 通信的超时时间(毫秒)。 | `5000` | | `enabled` | 是否启用该渠道。 | `true` | > **提示**:如果你使用的是社区流行的 `signal-cli` + `signal-rest-api`(或 `signal-bridge`)实现,上述参数大多数都对应其配置选项;只要把对应的值填入 OpenClaw 配置即可。 --- ## 2️⃣ 在 OpenClaw 配置文件中定义 Signal 接收器 OpenClaw 的主配置文件通常是 **`config.yaml`**(也可以是 `config.toml`,取决于项目约定),位于工作区根目录或 `conf/` 目录下。下面给出一个 **YAML** 示例,演示如何在 `channels` 部分声明一个最基础的 Signal 接收器。 ```yaml # config.yaml # ───────────────────────────────────────────────────── # 其他全局配置(日志、数据库、调度器等)略... # ───────────────────────────────────────────────────── channels: # ------------------- Signal 渠道 ------------------- signal: enabled: true # 开关 api_url: "https://signal.example.com/api/v1" phone_number: "+8613800000000" password: "myStrongPassword" # 若使用 token‑based 注册方式,可额外提供: # registration_token: "ABCD1234EFGH5678" webhook_path: "/signal/webhook" # OpenClaw 用来接收 webhook 的路径 verify_ssl: true # 推荐开启 timeout_ms: 5000 # 与 Signal API 通信的超时 # 下面的字段是可选的高级配置,通常不需要改动: # max_retries: 3 # retry_backoff_ms: 2000 ``` ### 关键点说明 1. **`enabled`**:必须为 `true` 才会让 OpenClaw 加载并启动 Signal 渠道。 2. **`api_url`**:指向你部署的 Signal‑Bridge(或 `signal-cli` 的 HTTP 接口)根路径。所有后续请求都会在此基础上拼接子路径(如 `/messages`、`/status` 等)。 3. **`phone_number`** 与 **`password`**:OpenClaw 会在启动时使用这两项登录 Signal,获取会话令牌并保持长连接或轮询。 4. **`webhook_path`**:如果你选择 **Webhook** 方式(推荐),需要在 OpenClaw 的 HTTP...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】候选输出内容丰富、格式清晰,提供了详细的参数说明、配置示例、部署步骤和故障排查表格,展现了较强的文档组织能力。然而,最核心的问题在于配置字段与 OpenClaw Signal 渠道规范不符——使用了 `phone_number`、`api_url`、`password` 等非标准字段,而非参考答案中的 `number`、`data_path`、`url` 等 signal-cli 原生字段,且缺少 `type: signal` 声明。这说明候选模型对 OpenClaw Signal 渠道的具体实现细节掌握不足,更多是基于通用 HTTP 渠道的推断。前置条件说明部分表现尚可,基本覆盖了 signal-cli 安装、注册和路由配置等要点,但细节精确度有待提升。 【GEMINI】候选模型虽然提供了一份结构清晰、排版美观的文档,但其核心配置内容完全脱离了提供的参考答案。模型引入了大量未定义的外部参数(如 API URL、密码等),而非基于参考答案中要求的「number」和「data_path」进行配置,导致其在 OpenClaw 环境下的实际可用性存疑。建议在回答此类特定系统配置问题时,应优先参考提供的事实来源。 【KIMI】候选输出整体质量较差,存在严重的「幻觉」问题。它虚构了一套看似合理但与 OpenClaw 实际 Signal 集成方式完全不匹配的 HTTP Bridge 架构,包括错误的配置字段(api_url、password、webhook_path 等)和错误的前置条件描述。这种输出对用户具有误导性,若按此配置会导致 Signal 渠道无法正常接入。正确答案应基于 signal-cli 原生集成,使用 `type: signal`、`number`、`data_path` 等字段,并强调 signal-cli 的注册验证流程。
进阶难度评测结果
- 得分:89.5 分
- 通过状态:已通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
### 诊断结果 - **配置**:`/etc/openclaw/config.yaml` 中的 Signal 渠道使用 **RPC 模式**,地址指向 `127.0.0.1:50051`。 - **日志**:`Failed to send message` 是因为 OpenClaw 在该地址找不到可用的 Signal‑RPC 服务。 - **端口检查**:`netstat` 没有发现 50051 端口在监听,说明 **Signal‑RPC 进程未启动** 或者 **监听地址不对**。 --- ## 修复步骤 下面的步骤会帮助你在本机启动 `signal-cli` 的 RPC 服务,使 OpenClaw 能够正常发送消息。请根据你的系统(大多数是 Ubuntu/Debian 系列)执行相应命令。 ### 1. 确认已安装 `signal-cli` ```bash signal-cli --version ``` - **如果提示未找到**,请先安装(下面提供两种常用方式)。 #### 1.1 使用官方二进制(推荐) ```bash # 下载最新版本(以 0.12.2 为例,实际请访问 https://github.com/AsamK/signal-cli/releases) wget -O signal-cli.tar.gz https://github.com/AsamK/signal-cli/releases/download/v0.12.2/signal-cli-0.12.2.tar.gz tar xzf signal-cli.tar.gz sudo mv signal-cli-0.12.2 /opt/signal-cli sudo ln -s /opt/signal-cli/bin/signal-cli /usr/local/bin/signal-cli ``` #### 1.2 使用 `apt`(适用于 Ubuntu 22.04 及以上的社区仓库) ```bash sudo add-apt-repository ppa:mafredri/signal-cli sudo apt update sudo apt install signal-cli ``` > **提示**:如果你已经有 `signal-cli`,可以直接跳到第 2 步。 ### 2. 注册(或导入)你的 Signal 账号 如果之前已经在 OpenClaw 中用 `signal-cli` 完成过注册,这一步可以省略。否则请执行: ```bash # 第一次运行会要求输入手机号并收到验证码 signal-cli -u +8619999999999 register # 输入收到的验证码完成验证 signal-cli -u +8619999999999 verify ``` > **注意**:`+8619999999999` 替换为你在 `config.yaml` 中配置的号码。 如果你已经有 `signal-cli` 的 **JSON 数据库**(`~/.config/signal-cli`),只需要确保它在默认位置即可。 ### 3. 启动 RPC 服务 `signal-cli` 自带一个轻量级的 gRPC 服务器(RPC 模式),默认监听 `127.0.0.1:50051`,这正是 OpenClaw 期待的地址。 ```bash # 直接在前台运行(便于看到日志) signal-cli -u +8619999999999 daemon --grpc --grpc-port 50051 ``` 如果你想让它作为系统服务长期运行,建议创建 **systemd** 单元: #### 3.1 创建 systemd 服务文件 ```bash sudo tee /etc/systemd/system/signal-rpc.service > /dev/null **安全提示**:如果你有专门的 `openclaw` 用户,建议把 `User=` 改为该用户,避免以 root 运行。 #### 3.2 启动并设置开机自启 ```bash sudo systemctl daemon-reload sudo systemctl enable --now signal-rpc.service ``` 检查状态: ```bash sudo systemctl status signal-rpc.service ``` 你应该会看到 `LISTEN 127.0.0.1:50051`。 ### 4. 再次确认端口已打开 ```bash netstat -tlnp | grep 50051 # 或者 ss -tlnp | grep 50051 ``` 输出示例: ```...
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】模型生成结果整体质量优秀,准确定位了 Signal-CLI RPC 服务未启动的根本原因,并提供了从安装到验证的完整修复链路,可操作性强,远超参考答案的详细程度。主要缺失点是未提及开启 debug 模式和 number 字段格式验证这两个功能要求项,但核心诊断与修复逻辑完全正确,对用户具有很高的实际参考价值。 【GEMINI】模型生成的修复指南非常专业且具有极强的实操性,不仅提供了基础命令,还考虑到了生产环境下的 systemd 服务管理和常见问题排查。虽然在个别细分要求(如 debug 模式建议)上有所遗漏,但整体质量极高,能够有效帮助用户解决问题。 【KIMI】模型生成了一份专业且详细的故障排查与修复指南,核心诊断准确,修复步骤可操作性极强,甚至超出了参考答案的详细程度(如提供 systemd 配置、常见问题排查表等)。主要失分点在于未完全覆盖题目要求的四个功能检查点(手机号注册状态检查、debug 模式建议、number 格式验证),这些属于题目明确要求的检查项而非可选内容。若能在诊断或修复步骤中明确加入这三项检查提示,将更加完美。
困难难度评测结果
- 得分:2.0 分
- 通过状态:未通过
模型生成产物
以下是该模型针对此任务的实际生成内容:
{"cmd":["bash","-lc","id"]}
AI 评审点评
以下是 AI 评审对该模型输出的点评:
【CLAUDE】模型生成结果极度不完整,仅输出了一个查询当前用户身份的 bash 命令(「id」),完全没有回应用户关于 Signal 接入权限问题的实质性需求。参考答案要求分析权限冲突根源、提出 RPC/gRPC 解耦方案、检查 Identity Key 和 Rate Limit 等,而模型的输出与这些要求几乎毫无关联。这可能是模型在工具调用阶段被截断或输出格式错误导致的,但无论原因如何,最终呈现给用户的内容完全不合格。 【GEMINI】模型表现极差。在面对明确的权限冲突和复杂的系统集成任务时,模型未能理解上下文,仅执行了无关的 `id` 命令,完全偏离了用户要求分析问题并提供解决方案的指令,未能体现任何逻辑推理或专业知识。 【KIMI】模型生成结果严重偏离预期。面对Signal渠道权限冲突的复杂场景,模型没有进行任何实质性的问题分析或方案提供,仅输出了一个获取当前用户ID的简单shell命令。这与参考答案中详细的多层次解决方案(RPC模式、用户组授权、身份密钥检查、速率限制验证、健康监控等)形成鲜明对比。模型似乎完全丢失了上下文中的关键信息(权限冲突、chmod失败等),未能履行AI助手应有的诊断和解决职责。建议检查模型是否正确接收并理解了完整的对话历史。
相关链接
您可以通过以下链接查看更多相关内容: