本页内容
本页内容
测试和CI
CLI 后端和 APNs 通道
Live:CLI 后端烟雾(Claude、Gemini 或其他本地 CLI)
- 测试:
src/gateway/gateway-cli-backend.live.test.ts - 目标:使用本地 CLI 后端验证 Gateway + agent 管道,而不触碰你的默认配置。
- 各后端特定的冒烟默认值位于所属插件的
cli-backend.ts定义中。 - 启用:
pnpm test:live(如果直接调用 Vitest,则使用OPENCLAW_LIVE_TEST=1)OPENCLAW_LIVE_CLI_BACKEND=1
- 默认值:
- 默认provider/model:
claude-cli/claude-sonnet-4-6 - Command/args/image 行为来自拥有的 CLI 后端插件元数据。
- 默认provider/model:
- 覆盖项(可选):
OPENCLAW_LIVE_CLI_BACKEND_MODEL="claude-cli/claude-sonnet-4-6"OPENCLAW_LIVE_CLI_BACKEND_COMMAND="/full/path/to/claude"OPENCLAW_LIVE_CLI_BACKEND_ARGS='["-p","--output-format","json"]'OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=1用于发送真实图像附件(路径会注入到提示词中)。默认在 Docker 配方中关闭。OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"用于将图像文件路径作为 CLI 参数传递,而不是注入到提示词中。OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"(或"list")用于在设置了IMAGE_ARG时控制图像参数的传递方式。OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1用于发送第二轮并验证恢复流程。OPENCLAW_LIVE_CLI_BACKEND_CACHE_PROBE=1运行新的 Claude CLI 转动、工具轴承预热恢复和无工具结算恢复,然后在以下脏工作空间恢复中要求至少 90% 的提示缓存重用。它还验证了思维层面的变化会轮换实时会话生成,并且下一个稳定的恢复会恢复至少 90% 的重用。此检查禁用图像、MCP 和模型切换检查。- 当所选模型支持切换目标时,
OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=1选择加入 Claude Sonnet -> Opus 同一会话连续性检查。默认关闭,包括在 Docker 配方中。 OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1选择进入 MCP/tool 环回检查。在 Docker 配方中默认关闭。
示例:
廉价的 Gemini MCP 配置冒烟测试:
这不会要求 Gemini 生成响应。它会写入 OpenClaw 赋予 Gemini 的相同系统设置,然后运行 gemini --debug mcp list,以证明已保存的 transport: "streamable-http" 服务已被规范化为 Gemini 的 HTTP MCP 形状,并且可以连接到本地 streamable-HTTP MCP 服务器。
Docker 配方:
单提供商 Docker 配方:
注意:
- Docker 运行器位于
scripts/test-live-cli-backend-docker.sh。 pnpm test:docker:live-cli-backend:claude:cache需要 Anthropic API-key 身份验证。它记录每个缓存检查恢复的规范化缓存使用情况,并要求结算后脏工作空间恢复和思维级别更改后的稳定恢复至少有 90% 的重用。- 它以非 root
node用户身份在存储库 Docker 映像中运行实时 CLI- 后端烟雾。 - 它从所属插件解析 CLI 冒烟元数据,然后将匹配的 Linux CLI 软件包(
@anthropic-ai/claude-code或@google/gemini-cli)安装到OPENCLAW_DOCKER_CLI_TOOLS_DIR指定的可写缓存前缀中(默认:~/.cache/openclaw/docker-cli-tools)。 codex-cli不再是捆绑的 CLI 后端;将openai/*与 Codex 应用程序服务器运行时结合使用(请参阅 Live:Codex 应用程序服务器工具 Smoke)。pnpm test:docker:live-cli-backend:claude-subscription需要通过~/.claude/.credentials.json与claudeAiOauth.subscriptionType或来自claude setup-token的CLAUDE_CODE_OAUTH_TOKEN进行便携式 Claude Code 订阅 OAuth。它首先证明 Docker 中的直接claude -p,然后运行两个网关 CLI- 后端轮次,而不保留 Anthropic API-key 环境变量。默认情况下,此订阅通道会禁用 Claude MCP/tool 和图像检查,因为它会消耗登录订阅的使用限制,并且 Anthropic 可以在不发布 OpenClaw 的情况下更改 Claude 代理 SDK /claude -p计费和速率限制行为。- Claude 和 Gemini 通过上述标志支持相同的检查集(文本翻转、图像分类、MCP
automations工具调用、模型切换连续性),但默认情况下不会运行这些检查 - 根据需要选择每个标志。
实时:APNs HTTP/2 代理可达性
- 测试:
src/infra/push-apns-http2.live.test.ts - 目标:通过本地 HTTP CONNECT 代理隧道连接到 Apple 的 sandbox APNs 端点,发送 APNs HTTP/2 验证请求,并断言 Apple 的真实
403 InvalidProviderToken响应会经由代理路径返回。 - 启用:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_APNS_REACHABILITY=1 pnpm test:live src/infra/push-apns-http2.live.test.ts
- 可选超时:
OPENCLAW_LIVE_APNS_TIMEOUT_MS=30000
本页有帮助吗?