Google: Gemma 4 26B A4B 在「Signal 接入」的评测结果

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

基本信息

  • 模型名称:Google: Gemma 4 26B A4B
  • 用例名称: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 模型需要满足以下要求:

  1. 明确指出需要 Signal-CLI 或相关 REST API 服务作为前置条件
  2. 列出核心参数:手机号「number」、账户密码或数据存储路径
  3. 提供符合 OpenClaw 规范的 YAML 基础配置示例
  4. 提及权限验证或注册流程的必要性

评测结果

综合得分

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

基础难度评测结果

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

模型生成产物

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

要在 OpenClaw 中接入 Signal 渠道,通常需要通过 Signal 的 Webhook 机制或其提供的 API 接口进行集成。由于 Signal 本身是一个端到端加密的协议,直接通过标准 HTTP Webhook 接收消息通常需要一个**中间代理层**(例如使用 `signal-cli` 或 `signal-messenger-rest-api` 运行的服务)。 以下是接入 Signal 渠道的核心参数准备及配置文件定义指南。 ### 1. 核心参数准备 在开始配置之前,你需要准备以下四个核心维度的参数: #### A. 身份与认证参数 (Identity & Auth) * **`signal_identifier`**: 你的 Signal 账号(通常是手机号码,需带上国家代码,如 `+86138...`)。 * **`api_endpoint`**: 如果你使用了中间代理(如 `signal-rest-api`),需要提供该服务的访问地址(例如 `http://localhost:8080`)。 * **`api_key`**: 如果代理层设置了鉴权,需要提供 API Key。 #### B. 路由与监听参数 (Routing & Listening) * **`webhook_url`**: OpenClaw 暴露给 Signal 代理的接收地址,用于接收推送的消息。 * **`allowed_senders`**: 白名单列表,指定哪些 Signal 用户可以向 OpenClaw 发送指令,防止恶意指令注入。 #### C. 消息转换参数 (Mapping) * **`message_format`**: 定义消息格式(如 `text` 或 `json`)。 * **`command_prefix`**: 指令前缀(可选),例如是否需要输入 `/` 或 `!` 来触发 OpenClaw 的功能。 --- ### 2. 配置文件定义示例 假设 OpenClaw 的插件或渠道配置采用 YAML 格式(这是此类系统最常见的配置方式),你可以按照以下结构定义一个基础的 Signal 接收器。 我们将此配置定义在 `channels/signal_receiver.yaml` 中(路径仅为示例): ```yaml # OpenClaw Signal Channel Configuration channel: name: "signal_messenger" type: "messaging_receiver" provider: "signal_rest_api" # 指向你的中间代理类型 # 1. 连接代理服务的配置 connection: endpoint: "http://your-signal-proxy-ip:8080" auth: api_key: "your_secure_api_token_here" timeout: 30s # 2. 接收器行为定义 receiver: # 监听的 Signal 账号 identity: "+8612345678901" # 消息过滤与安全 security: # 仅允许以下号码发送指令 whitelist: - "+8613900001111" - "+8613900002222" # 如果为空,则允许所有已建立联系的联系人 blacklist: [] # 消息解析逻辑 parsing: # 是否自动剥离前缀 strip_prefix: true prefix: "/" # 支持的消息类型 supported_types: - "text" - "image" # 如果你的 OpenClaw 支持视觉能力 # 3. 交互反馈设置 feedback: # 收到消息后是否立即回复“已收到” auto_acknowledge: true # 响应消息的模板 ack_message: "收到指令,正在处理中..." # 执行失败时的错误反馈 error_message: "抱歉,处理您的 Signal 指令时出错了。" ``` ### 3. 接入流程建议 1. **部署代理层**:推荐使用 Docker 部署 `bbernhard/signal-cli-rest-api`。它是目前最成熟的将 Signal 协议转化为标准 RESTful API 的方案。 2. **注册账号**:通过代理层的 API 完成 Signal 账号的注册与绑定(Link Device)。 3. **配置 Webhook**:在 OpenClaw 的核心服务中开启监听端口,并确保代理层能够将接收到的消息 `POST` 到 OpenClaw 的 Webhook 地址。 4....

AI 评审点评

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

【CLAUDE】候选答案在前置条件说明方面表现尚可,提及了代理层部署和安全配置等要点,但在配置准确性上存在明显偏差。提供的 YAML 配置结构与 OpenClaw 的 Signal 渠道规范不符,核心字段命名和层级关系均与参考答案不一致,导致配置无法直接应用。建议严格参照 OpenClaw 官方文档中的「channels」配置格式,使用「type: signal」和标准的「number」、「data_path」等字段。 【GEMINI】生成结果非常专业且详尽。模型不仅回答了如何配置,还深入解释了 Signal 协议接入的底层逻辑(中间代理层的重要性)。虽然 YAML 格式与参考答案的简洁模板略有差异,但在参数覆盖面和前置条件说明上表现优异,提供了极具价值的集成建议。 【KIMI】整体而言,生成结果较好地覆盖了接入Signal渠道的核心参数和配置要点,提供了较为详细的配置示例和接入流程建议。但在配置准确性和前置条件说明方面还有改进空间,如补充必要的配置项、明确提及Signal-CLI或相关REST API服务作为前置条件等。

进阶难度评测结果

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

模型生成产物

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

既然 `netstat` 没有显示 `50051` 端口在监听,说明 Signal 的 RPC 服务没有启动,或者根本没有运行。 要修复这个问题,我们需要按照以下步骤进行诊断和修复: ### 1. 检查 Signal 相关服务状态 首先,我们需要确认 Signal 相关的守护进程(daemon)是否正在运行。请运行以下命令查看系统服务状态: ```bash # 检查 openclaw gateway 状态 openclaw gateway status # 检查是否有任何包含 "signal" 字样的进程在运行 ps aux | grep signal ``` ### 2. 尝试启动服务 如果服务没有运行,请尝试启动它。通常情况下,启动 Gateway 可能会拉起相关的渠道服务: ```bash openclaw gateway start ``` ### 3. 诊断服务为何未能启动 如果启动失败,或者启动后端口依然没开,我们需要查看**系统日志**或 **OpenClaw 日志**来寻找具体的报错原因(例如:配置错误、权限不足、依赖缺失等)。 请执行以下命令查看最近的错误日志: ```bash # 查看系统日志中关于 signal 的记录 journalctl -u openclaw-gateway -n 50 | grep -i signal # 或者查看 OpenClaw 的运行日志(如果路径已知) # 假设日志在 /var/log/openclaw/ 目录下 ls /var/log/openclaw/ ``` ### 4. 常见原因排查清单 在等待日志结果时,你可以先核对以下几点: * **Signal 客户端/服务端是否已安装**:`rpc_mode: true` 要求本地必须有一个正在运行的 Signal RPC 代理服务。 * **配置中的号码是否正确**:`+8619999999999` 是否是你在 Signal 服务中绑定的真实号码。 * **防火墙限制**:虽然是 `127.0.0.1`,但仍需确认是否有本地防火墙(如 `iptables` 或 `ufw`)拦截了该端口。 **请先执行第一步的命令,并将输出结果告诉我,我来帮你判断下一步该怎么做。**

AI 评审点评

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

【CLAUDE】候选输出在故障定位方面表现优秀,准确识别了端口未监听的核心问题,并提供了系统化的排查思路。但在修复方案的完整性上存在不足,特别是缺少启动 Signal-CLI RPC 服务的具体命令(这是解决问题的关键步骤),同时在手机号注册状态检查、debug 模式建议等方面也不够全面。整体而言,回答具备一定的实用性,但需要补充更具体的操作指令才能达到完全可执行的标准。 【GEMINI】模型在故障诊断方面表现优异,能迅速从工具输出中提取关键矛盾。修复方案逻辑清晰,符合 OpenClaw 的操作上下文,但在针对底层 Signal-CLI 的具体修复指令和满足评估标准中提到的特定检查项(如 debug 模式、link/register 术语)方面还有提升空间。 【KIMI】候选人在故障定位能力方面表现出色,能够准确识别问题并给出相应的诊断步骤。在修复方案完整性方面,虽然提供了一些有效的修复步骤,但仍有一些细节未能覆盖,如手机号的 'link' 或 'register' 操作以及开启 'debug' 模式的建议。整体而言,候选人的表现是合格的,但在某些方面还有提升空间。

困难难度评测结果

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

模型生成产物

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

既然无法直接修改权限,为了实现 Signal 接入,我建议采用以下两种方案之一: ### 方案 A:通过 RPC 模式接入(推荐) 如果 `signal-cli` 正在运行,我们可以通过 JSON-RPC 协议进行通信。这样 OpenClaw 不需要直接读写 `/var/lib/signal-cli` 目录,只需通过网络端口或 Unix Socket 发送指令。 * **优点**:安全、符合权限隔离原则、不需要 root 权限。 * **操作**:需要确认 `signal-cli` 是否已开启 RPC 服务,并配置 OpenClaw 的插件连接该端口。 ### 方案 B:用户权限调整(需要管理员介入) 如果必须通过文件系统操作,请联系管理员执行以下操作: 1. **将 `openclaw-user` 加入 `signal-user` 组**: ```bash sudo usermod -aG signal-user openclaw-user ``` 2. **调整目录组权限**: ```bash sudo chmod -R 750 /var/lib/signal-cli ``` **请问您希望我尝试探测 `signal-cli` 的 RPC 端口,还是由您联系管理员调整权限?**

AI 评审点评

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

【CLAUDE】候选输出在权限冲突诊断和基础方案设计上表现良好,能够快速定位问题并提出可行的技术路径。但在 Signal 特有机制的验证(如身份密钥冲突、速率限制)方面存在明显缺失,且方案的生产级完整性(如监控、容器化、配置模板)不及参考答案。适合作为初步技术方案,但需补充协议层验证和运维保障措施才能达到生产环境标准。 【GEMINI】模型在处理 Linux 系统层面的权限冲突时表现出色,能够给出合理的替代路径(RPC 或用户组调整)。然而,该回复缺乏对 Signal 业务逻辑层面的深度理解,完全遗漏了任务要求的关于身份密钥更新和速率限制的提醒,导致在链路完整性验证维度得分较低。 【KIMI】整体而言,候选人的输出在复杂环境决策和方案专业度方面表现良好,提供了合理的解决方案来应对权限冲突和身份密钥问题。然而,在链路完整性验证方面,输出缺少了对Signal手机号Rate Limit状态的验证,这是需要改进的地方。

相关链接

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

加载中...