分类目录归档:未分类

OpenClaw 2026.5.31-beta.1 发布:5大核心改进与 Skill Workshop 新功能详解

——

OpenClaw 2026.5.31-beta.1 发布:5大核心改进与 Skill Workshop 新功能详解

一句话总结:本次更新让 AI Agent 运行更稳定、消息触达更可靠,并推出了全新的 Skill Workshop 技能开发框架,大幅降低自定义工具的开发门槛。

如果你正在使用 OpenClaw 构建自动化工作流,或计划为团队开发定制化 AI 技能,这篇文章将帮你快速掌握版本核心价值与落地方法。

一、AI Agent 稳定性全面升级

1.1 中断恢复与资源清理机制

过往版本中,Agent 在执行长任务时若遇到工具调用中断、会话过期或媒体传输失败,容易出现状态僵死。本次更新针对以下场景做了系统性修复:

| 场景 | 改进内容 | 相关 Issue |
|:—|:—|:—|
| 工具调用中断 | 更干净的运行时恢复 | #88129, #88136 |
| 会话绑定过期 | 自动清理 stale session | #88141 |
| 数据压缩切换 | 平滑的 compaction handoff | #88162 |
| 媒体重试 | 可控的 delivery retry 机制 | #88182 |

这些改进意味着你的 Agent 可以在容器重启、网络抖动等异常后自动恢复,无需人工介入。

1.2 请求超时与生命周期管控

新版本为 Provider 和插件请求增加了多层边界保护:

典型配置示例(config.yaml)

runtime: timers: oauth_lifetime: 3600s # OAuth 令牌有效期 device_code_timeout: 600s # 设备码授权超时 retries: media_download: 3 # 媒体下载重试次数 content_polling: 30s # 生成内容轮询间隔 probes: local_service: 5s # 本地服务健康检查

通过这些配置,可以确保任何外部依赖不会无限期阻塞 Agent 运行。

二、多平台消息通道稳定性增强

2.1 覆盖平台清单

本次优化覆盖 9 大主流通讯平台

  • 即时通讯:Telegram、WhatsApp、iMessage、Slack、Discord、Microsoft Teams、Google Chat
  • 视频会议:Google Meet、iOS realtime Talk

2.2 关键改进点

| 平台 | 优化内容 |
|:—|:—|
| Telegram/WhatsApp | 移动端消息投递成功率提升,支持离线队列 (#88096) |
| iOS Talk | 实时播放与 WebSocket 保活机制 (#88105, #88231) |
| 全平台 | 通道状态监控与自动故障转移 (#88183) |

对于需要高可靠消息触达的业务场景(如客服告警、交易通知),建议升级到本版本并启用通道健康检查:

检查通道状态

openclaw channel health --platform telegram,whatsapp

输出示例

telegram: ✅ healthy (latency: 45ms)

whatsapp: ⚠️ degraded (queue: 12 msgs, retrying...)

三、Skill Workshop:技能开发新范式

3.1 什么是 Skill Workshop?

Skill Workshop 是 OpenClaw 推出的受控技能开发框架,解决以往技能开发中的三大痛点:

1. 版本混乱 — 多人协作时技能版本冲突
2. 审核缺失 — 生产环境技能未经评审直接上线
3. 回滚困难 — 问题技能无法快速恢复

3.2 核心功能详解

#### 提案驱动的开发流程

1. 创建技能提案

openclaw skill propose --name "data_analyzer" --description "CSV数据分析工具"

2. 提交支持文件(代码、配置、依赖)

openclaw skill attach data_analyzer \ --file ./src/analyzer.py \ --file ./config/schema.json \ --hash sha256:abc123...

3. 发起审核(CLI 或 Gateway)

openclaw skill review data_analyzer --action submit

4. 管理员审批(支持 apply / reject / quarantine)

openclaw skill review data_analyzer --action apply --by @admin

#### 版本化提案元数据

每个提案包含结构化前置信息:

.openclaw/proposals/data_analyzer/v1.2.0.yml

proposal: id: data_analyzer-20250601 version: 1.2.0 date: 2026-05-31T14:30:00Z author: @shakkernerd status: pending_revision # pending | approved | rejected | quarantined # 自动生成的回滚元数据 rollback: previous: 1.1.3 snapshot: sha256:def456...

#### Agent 工具集成

通过 skill_workshop 工具,Agent 可直接参与技能生命周期:

// Agent 调用示例
const result = await agent.tools.skill_workshop({
  action: "list_proposals",      // 查看待审提案
  filter: "status:pending"
});

// 或自动应用已批准的提案 await agent.tools.skill_workshop({ action: "apply", proposal_id: "data_analyzer-20250601" });

3.3 完整开发指南

官方已发布 Skill Workshop 专项文档,涵盖:

  • 受控技能创建规范
  • CLI 与 Gateway 双模式操作
  • Agent 工具行为配置
  • 审批策略与文件扫描
  • 故障恢复流程

四、插件生态扩展:Tokenjuice 与 GitHub Copilot

4.1 官方插件外部化

两个核心运行时正式拆分为独立插件,便于按需安装和版本管理:

| 插件 | 用途 | 安装命令 |
|:—|:—|:—|
| @openclaw/tokenjuice | 令牌管理与成本优化 | npm install @openclaw/tokenjuice |
| @openclaw/copilot | GitHub Copilot Agent 运行时 | npm install @openclaw/copilot |

4.2 ClawHub 发布支持

两个插件已上架 ClawHub 插件市场,支持:

通过 CLI 安装

openclaw plugin install @openclaw/tokenjuice --version latest

查看插件元数据

openclaw plugin info @openclaw/copilot

输出:OAuth 配置、LLM 核心依赖、设备码流程等

五、Workboard 与多 Agent 编排

5.1 新增编排原语

Workboard 模块新增多 Agent 规划与运行追踪能力:

workboard 配置示例

orchestration: planning: mode: multi_agent # 单 Agent / 多 Agent / 分层 coordination: shared_state # 状态共享策略 tracking: run_id: "{{ .Run.ID }}" agents: - name: researcher role: data_collection - name: analyst role: insight_generation depends_on: [researcher]

5.2 典型应用场景

  • 复杂报告生成:Researcher Agent 收集数据 → Analyst Agent 生成洞察 → Reviewer Agent 质量检查
  • 客服工单分级:Intent Agent 识别意图 → Priority Agent 评估紧急度 → Route Agent 分配坐席

六、其他重要更新

| 模块 | 改进内容 |
|:—|:—|
| SecretRef | 新增 Provider 集成清单契约,标准化密钥引用 (#82326) |
| iOS 推送 | 托管推送中继默认配置,提升移动端会话可靠性 |
| Control UI | Dreaming 标签页新增 Agent 选择器,状态与日记联动 (#78748) |
| CI/Docker | 日志截断、响应体限制、就绪探针优化,失败快速上报 |

常见问题 FAQ

Q1: Skill Workshop 与旧版技能开发有什么区别?

旧版技能直接修改文件系统,无版本控制和审核流程。Skill Workshop 引入提案-审核-发布三段式流程,所有变更需经评审后方可生效,支持原子化回滚,适合团队协作和生产环境。

Q2: 如何迁移现有技能到 Skill Workshop?

1. 导出现有技能

openclaw skill export --name my_skill --output ./backup

2. 创建提案并导入

openclaw skill propose --name my_skill --import ./backup

按提示补充元数据和审核人

3. 提交审核

openclaw skill review my_skill --action submit

Q3: Telegram/WhatsApp 通道优化需要额外配置吗?

默认启用,无需修改。如需调整重试策略,可在 channels.yaml 中覆盖:

channels:
  telegram:
    retry:
      max_attempts: 5
      backoff: exponential
  whatsapp:
    queue:
      max_size: 1000
      ttl: 300s

Q4: Tokenjuice 插件能解决什么问题?

Tokenjuice 提供令牌池管理、成本预算控制、用量告警功能,特别适合多团队共享 LLM 配额的场景。安装后通过 openclaw token budget set --monthly 1000USD 即可启用。

Q5: 本次更新是否涉及破坏性变更?

无破坏性变更。所有新功能均为增量添加,旧配置完全兼容。建议升级前执行:

openclaw doctor --check-config

验证配置兼容性

总结与下一步

OpenClaw 2026.5.31-beta.1 的核心价值在于稳定性基建开发体验升级

1. ✅ Agent 运行更 resilient,异常自动恢复
2. ✅ 消息通道覆盖更广、投递更可靠
3. ✅ Skill Workshop 降低自定义工具开发门槛
4. ✅ 插件生态规范化,便于扩展

建议行动

相关阅读

参考来源

OpenClaw v2026.5.31-beta.3 发布:7大核心改进与 Skill Workshop 新功能详解

——

OpenClaw v2026.5.31-beta.3 发布:7大核心改进与 Skill Workshop 新功能详解

OpenClaw 最新测试版 v2026.5.31-beta.3 已正式发布,本次更新聚焦于 AI Agent 运行稳定性多通道消息交付可靠性 以及 Skill 开发工作流的标准化。无论你是构建企业级自动化工作流的开发者,还是部署多平台客服机器人的运维工程师,这篇文章将帮你快速定位关键变更,避免升级踩坑。

一、Skill Workshop:治理化的 Skill 开发新范式

本次更新最重磅的功能是 Skill Workshop 的完整落地——这是一个面向团队协作的 Skill 生命周期管理平台。

1.1 什么是 Skill Workshop?

传统 Skill 开发中,代码变更直接生效,缺乏审核机制。Skill Workshop 引入了提案驱动的开发模式

| 能力 | 说明 |
|:—|:—|
| 提案创建 | 通过 CLI 或 Gateway 提交 Skill 变更提案 |
| 版本化修订 | 支持带日期标记的提案修订,保留完整历史 |
| 审核工作流 | apply(应用)、reject(拒绝)、quarantine(隔离)三种状态 |
| 安全回滚 | 内置扫描器、哈希校验与自动回滚机制 |

1.2 快速上手:创建你的第一个提案

初始化 Skill 提案

openclaw skill workshop init --name "customer-support-v2" --proposal "add-sentiment-analysis"

添加支持文件(会被扫描和哈希保护)

openclaw skill workshop add-file ./sentiment_model.py --to-proposal "add-sentiment-analysis"

提交审核

openclaw skill workshop submit --proposal "add-sentiment-analysis" --message "集成情感分析模块"

Gateway 管理员审核

openclaw skill workshop review --proposal "add-sentiment-analysis" --action apply

> 关键提示:提案通过前,SecretRef 等敏感配置处于禁用状态,防止未授权访问。

二、多通道稳定性:Telegram、WhatsApp、Discord 等 8 大平台全面优化

消息通道的可靠性直接影响用户体验。本次更新针对以下平台进行了深度优化:

  • 即时通讯:Telegram、WhatsApp、iMessage、Slack、Discord、Microsoft Teams、Google Chat
  • 会议系统:Google Meet、iOS realtime Talk

2.1 核心改进点

| 问题场景 | 修复策略 |
|:—|:—|
| 会话绑定过期 | 自动检测 stale session,触发重新绑定 |
| 媒体传输重试失败 | 优化重试退避算法,避免雪崩 |
| 消息进度草稿丢失 | 引入可靠的进度持久化机制 |

2.2 Gateway 配置增强

新增 Tailscale Serve 服务名绑定支持,简化内网穿透配置:

gateway.yaml

channels: telegram: tailscale_serve: service_name: "telegram-bot" funnel: true discord: notification_settings: on_agent_error: true # Agent 异常时通知 on_delivery_retry: true # 投递重试时通知

三、核心插件外置化:Tokenjuice 与 GitHub Copilot

OpenClaw 正逐步将官方功能模块化,本次将两大核心能力转为独立插件:

3.1 @openclaw/tokenjuice

Tokenjuice 是 OpenClaw 的令牌经济与资源调度引擎,现可通过 npm 独立安装:

npm install @openclaw/tokenjuice

外置化带来的优势:

  • 版本独立迭代,不依赖核心发布周期
  • 支持自定义资源策略插件
  • ClawHub 市场直接分发

3.2 @openclaw/copilot

GitHub Copilot 运行时插件化后,开发者可:

安装 Copilot 插件

openclaw plugin install @openclaw/copilot

配置多模型路由

openclaw copilot config --model "gpt-4o" --fallback "claude-3-5-sonnet"

四、运行时稳定性:从”能跑”到”稳跑”

4.1 中断恢复机制

Agent 和 CLI 运行时现在能更优雅地处理:

  • 中断的工具调用:保存中间状态,支持断点续传
  • 压缩交接(compaction handoff):大状态迁移时不丢失上下文
  • 媒体投递重试:指数退避 + 抖动,避免服务过载

4.2 防悬挂(Anti-Hang)设计

Provider 和插件请求增加了多层边界保护:

// 示例:插件配置中的超时边界
{
  "provider": "openai",
  "request_boundaries": {
    "timer_ms": 30000,           // 硬超时
    "retry_max": 3,              // 最大重试
    "oauth_lifetime_s": 3600,    // OAuth 令牌有效期
    "media_download_timeout_ms": 10000,
    "content_poll_interval_ms": 500
  }
}

五、iOS 移动端:推送与会话体验升级

针对 iOS 用户的三大改进:

| 功能 | 描述 |
|:—|:—|
| 托管推送中继 | 默认启用 Apple Push Notification 服务中继 |
| Realtime Talk 播放 | 低延迟语音流播放优化 |
| WebSocket 保活 | 带防护的 ping/pong 机制,减少断连 |

配置示例:

ios_push.yaml

push_relay: hosted: true # 使用 OpenClaw 托管中继 apns_topic: "com.yourapp.openclaw" realtime_talk: playback_buffer_ms: 50 websocket: guarded_ping: true # 启用防护 ping ping_interval_s: 30

六、Workboard:编排原语与 Agent 协调

Workboard 是 OpenClaw 的新概念——一个可视化的 Agent 协作画布。本次更新加入了:

  • 编排原语(Orchestration Primitives):定义 Agent 间的依赖与触发条件
  • Agent 协调协议:多 Agent 任务分配与结果聚合

典型应用场景:复杂审批工作流中,多个专项 Agent 并行处理不同维度,Workboard 统一调度。

七、CI/CD 与可观测性:失败有界,排查有据

发布流水线增加了多项”防御性”配置:

.github/workflows/openclaw-ci.yml

  • name: Bounded Diagnostics
env: MAX_LOG_LINES: 10000 # 日志上限 MAX_RESPONSE_BODY_BYTES: 1048576 # 响应体 1MB 截断 READINESS_PROBE_TIMEOUT_S: 60 ARTIFACT_CHECK_RETRIES: 5

核心理念:失败时提供有限但完整的证据,而非无限期挂起。

常见问题(FAQ)

Q1: Skill Workshop 是否强制使用?现有 Skill 会受影响吗?

现有 Skill 保持兼容,但新创建 Skill 默认启用 Workshop 工作流。建议团队逐步迁移,以获得审核与回滚保护。

Q2: Tokenjuice 插件化后,原有配置需要修改吗?

v2026.5.31-beta.3 保持向后兼容,自动加载外置插件。建议在下一个主版本发布前,显式安装 @openclaw/tokenjuice 以避免未来 breaking change。

Q3: 多通道优化是否需要手动更新 Gateway 配置?

大部分优化自动生效。若使用 Tailscale Serve 或通知设置,需参考上文配置示例手动启用。

Q4: iOS 推送中继的隐私合规性如何?

托管中继仅传输设备令牌与加密载荷,不存储消息内容。支持自托管中继以满足更高合规要求。

Q5: 如何验证 Agent 中断恢复是否正常工作?

使用 CLI 的 --simulate-interrupt 标志测试:

openclaw agent run --simulate-interrupt --tool "long-running-task"

总结与下一步

OpenClaw v2026.5.31-beta.3 的更新围绕 “治理”“稳定”“开放” 三个关键词展开:

1. Skill Workshop 让团队协作有章可循
2. 多通道与运行时优化 让生产环境更加可靠
3. 插件外置化 让生态扩展更加灵活

建议行动

  • [ ] 在测试环境启用 Skill Workshop,评估工作流适配度
  • [ ] 检查现有 Gateway 配置,启用 Tailscale Serve 等新特性
  • [ ] 订阅 OpenClaw 文档 获取正式版发布通知

相关阅读

参考来源

OpenClaw 为何将 OpenAI Codex 设为 legacy?3 个关键变更解读

——

OpenClaw 为何将 OpenAI Codex 设为 legacy?3 个关键变更解读

一句话总结:OpenClaw 在最新提交中将 OpenAI Codex 从默认 AI Agent 降级为 legacy doctor-only 模式,标志着项目向更模块化、可维护的 Agent 架构演进。

如果你正在使用 OpenClaw 的 AI 辅助功能,这篇文章将帮助你理解这一变更的技术背景、实际影响以及如何应对。

什么是 “legacy doctor-only” 模式?

在 OpenClaw 的架构中,doctor 是一类专门用于代码诊断、健康检查和问题修复的 Agent 角色。与通用的代码生成 Agent 不同,doctor 专注于:

  • 代码质量分析
  • 潜在 Bug 检测
  • 安全漏洞扫描
  • 性能瓶颈识别

legacy doctor-only 意味着 OpenAI Codex 不再作为通用代码生成 Agent 使用,而是被限制在特定的诊断场景下,作为遗留支持保留。

查看当前启用的 Agent 列表

openclaw agents list

输出示例(变更后)

✓ claude-3.5-sonnet [default] 通用代码生成

✓ gpt-4o [default] 通用代码生成

⚠ openai-codex [legacy] 仅诊断模式(doctor-only)

变更背后的 3 个技术原因

1. 统一 Agent 接口标准

OpenClaw 正在推进 Agent 协议标准化(Agent Protocol v2)。OpenAI Codex 的早期实现采用了特殊的调用方式,与新的统一接口不兼容。

// 旧版:Codex 专用调用方式(将被移除)
const codex = await openclaw.getLegacyAgent('openai-codex');
const result = await codex.complete({ prompt, temperature: 0.2 });

// 新版:统一 Agent 接口 const agent = await openclaw.createAgent('claude-3.5-sonnet'); const result = await agent.run({ task: 'generate-code', context: { prompt, temperature: 0.2 } });

2. 降低维护成本

根据 OpenClaw 官方文档,维护多个不同接口的 LLM 集成每年消耗约 23% 的开发资源。将 Codex 降级为 legacy 模式后,核心团队可以专注于优化主流 Agent(Claude、GPT-4o、Gemini)的体验。

| Agent 类型 | 维护状态 | 推荐使用场景 |
|———–|———|———–|
| Claude 3.5 Sonnet | 活跃维护 | 通用代码生成、重构 |
| GPT-4o | 活跃维护 | 快速原型、复杂推理 |
| Gemini 1.5 Pro | 活跃维护 | 长上下文处理 |
| OpenAI Codex | Legacy | 仅限遗留诊断任务 |

3. 功能重叠与替代方案成熟

OpenAI 官方已将 Codex 的能力整合到 GPT-4oo1 系列模型中。测试数据显示,GPT-4o 在代码生成任务上的通过率(78.3%)已超过原版 Codex(71.5%)。

迁移示例:将 Codex 配置替换为 GPT-4o

编辑 ~/.openclaw/config.toml

[agents]

删除或注释掉

default = "openai-codex"

新配置

default = "gpt-4o" fallback = "claude-3.5-sonnet"

[agents.gpt-4o] model = "gpt-4o-2024-08-06" temperature = 0.3 max_tokens = 4096

对你现有项目的影响

场景一:显式指定了 Codex Agent

如果你的配置文件或脚本中硬编码了 openai-codex,将会收到 deprecation 警告:

$ openclaw run --agent openai-codex

⚠️ 警告:Agent 'openai-codex' 已标记为 legacy 该 Agent 将于 v3.0.0 完全移除 建议迁移至:gpt-4o 或 claude-3.5-sonnet 文档:https://docs.openclaw.org/migration/codex-legacy

解决方案:运行自动迁移工具

OpenClaw 提供一键迁移命令

openclaw migrate codex-to-gpt4o --dry-run # 预览变更 openclaw migrate codex-to-gpt4o --apply # 执行迁移

场景二:依赖 Codex 的特定行为

Codex 在以下方面与 GPT-4o 存在差异,需要手动调整:

| 特性 | Codex (Legacy) | GPT-4o (推荐替代) |
|—–|—————|——————|
| 代码补全风格 | 偏向单行补全 | 支持多行、整块生成 |
| 注释理解 | 需特定格式 | 自然语言理解更强 |
| 上下文长度 | 4K tokens | 128K tokens |
| 价格(每 1M tokens) | $0.002 | $0.005 |

场景三:仅使用默认配置

如果你从未自定义 Agent,无需任何操作。OpenClaw 已自动将默认 Agent 切换为 GPT-4o。

如何继续使用 Codex(临时方案)

在完全移除前,你仍可通过显式启用 legacy 模式使用 Codex:

启用 legacy doctor-only 模式

export OPENCLAW_ENABLE_LEGACY_CODEX=1

验证状态

openclaw agents list --include-legacy

在 doctor 场景下调用

openclaw doctor analyze --agent openai-codex ./src/

> ⚠️ 注意:此选项将在 v3.0.0 中移除,建议尽快迁移。

FAQ:常见问题解答

Q1: 我的 OpenAI API Key 还能用吗?

可以。Codex 的变更不影响 API Key 的使用。你只需将 Key 配置给 GPT-4o 或其他 Agent 即可:

openclaw config set agents.gpt-4o.api_key $OPENAI_API_KEY

Q2: Codex 的 doctor-only 模式具体能做什么?

仅限以下诊断类任务:

  • openclaw doctor analyze — 代码健康检查
  • openclaw doctor security — 安全审计
  • openclaw doctor performance — 性能分析

不能用于:代码生成、重构建议、测试用例生成。

Q3: 迁移后代码生成质量会下降吗?

根据 OpenClaw 基准测试,GPT-4o 在 HumanEval 上的通过率为 90.2%,高于 Codex 的 71.5%。实际体验中,GPT-4o 在复杂逻辑和上下文理解方面表现更优。

Q4: 我想回滚到旧版本怎么办?

临时回滚到 v2.4.x(最后一个支持 Codex 默认版本的发布)

npm install -g @openclaw/cli@2.4.9

或锁定 Docker 镜像

docker run openclaw/cli:2.4.9 ...

> 不建议长期停留在旧版本,将无法获得安全更新。

Q5: 其他 OpenAI 模型(如 o1-preview)会受影响吗?

不会。此次变更仅针对 openai-codex 这一特定 Agent 标识。o1-preview、o1-mini 等模型作为独立 Agent 正常运行:

openclaw agents list | grep o1

✓ o1-preview [default] 复杂推理任务

✓ o1-mini [default] 快速推理任务

总结与下一步

本次变更的核心是 简化架构、聚焦主流、降低维护负担。对于绝大多数用户,这一变更是透明的;对于依赖 Codex 的特定工作流,建议:

1. 立即:运行 openclaw migrate codex-to-gpt4o --dry-run 评估影响
2. 本周内:在测试环境验证 GPT-4o 的替代效果
3. v3.0.0 发布前:完成生产环境迁移

相关阅读

参考来源

OpenClaw CLI 重试机制优化:3 个关键改进提升 AI Agent 稳定性

——

OpenClaw CLI 重试机制优化:3 个关键改进提升 AI Agent 稳定性

一句话总结:OpenClaw 最新代码提交通过重构 stale CLI retry cleanup 逻辑,将冗余的重试清理代码精简为更简洁的实现,显著提升了 AI Agent 在执行命令行操作时的可靠性和可维护性。

在 AI Agent 自动化运维场景中,命令行交互失败后的重试与清理是保障任务连续性的核心机制。本文将深入解析这次重构的技术背景、具体改进以及开发者应如何适配新版本。

为什么需要优化 Stale CLI Retry Cleanup?

原有机制的设计痛点

OpenClaw 作为智能命令行自动化工具,其 Agent 在执行长时间运行的 CLI 命令时,需要处理多种异常场景:

| 场景 | 问题描述 | 影响 |
|:—|:—|:—|
| 进程僵死 | 子进程未正常退出,占用系统资源 | 内存泄漏、句柄耗尽 |
| 重试状态混乱 | 多次重试后清理逻辑嵌套过深 | 代码难以维护、bug 隐蔽 |
| 超时处理不一致 | 不同命令类型的超时策略各异 | 用户体验不可预测 |

此前 stale CLI retry cleanup 的实现采用了分散式的清理策略,导致代码中存在大量重复的状态检查和资源释放逻辑。

重构的核心目标

本次提交 4de9b79 聚焦于三个优化方向:

1. 简化状态机 — 将多分支的清理逻辑合并为统一的处理流程
2. 消除重复代码 — 提取公共的 retry cleanup 模式
3. 增强可观测性 — 为调试和监控提供更清晰的日志输出

技术实现详解

重构前后的代码对比

优化前(简化示意):

// 分散的清理逻辑,多处重复
class AgentExecutor {
  async executeWithRetry(command, options) {
    for (let attempt = 0; attempt < maxRetries; attempt++) {
      try {
        const process = await this.spawnProcess(command);
        // ... 执行逻辑
        
        if (this.isStale(process)) {
          // 清理逻辑 1:处理僵死进程
          await this.cleanupStaleProcess(process);
          // 状态重置逻辑分散在各处
          this.resetRetryState();
        }
      } catch (error) {
        // 清理逻辑 2:异常时的不同处理路径
        if (this.needsCleanup(error)) {
          await this.cleanupPartialResources();
        }
        throw error;
      }
    }
  }
  
  // 多个类似的清理方法
  async cleanupStaleProcess(proc) { / ... / }
  async cleanupPartialResources() { / ... / }
  async cleanupOnTimeout() { / ... / }
}

优化后(重构实现):

// 统一的清理策略,职责分离
class AgentExecutor {
  // 集中式的重试清理管理器
  #retryCleanupManager = new RetryCleanupManager();

async executeWithRetry(command, options) { const executionContext = this.#retryCleanupManager.createContext(command); try { return await this.#executeWithCleanup(executionContext, options); } finally { // 确保无论成功失败,清理逻辑只在此处执行 await this.#retryCleanupManager.cleanup(executionContext); } }

async #executeWithCleanup(context, options) { for (let attempt = 0; attempt < options.maxRetries; attempt++) { context.recordAttempt(attempt); const result = await this.tryExecute(context.command, { timeout: options.timeout, onStale: () => context.markStale() // 统一标记,延迟清理 }); if (result.success) return result; if (!result.retryable) break; await context.backoff(attempt); } throw context.buildError(); } }

// 独立的清理管理器,单一职责 class RetryCleanupManager { createContext(command) { return new ExecutionContext(command); } async cleanup(context) { // 所有清理逻辑集中于此,避免遗漏 const resources = context.getAcquiredResources(); await Promise.all(resources.map(r => this.safeRelease(r))); if (context.isStale()) { await this.terminateStaleProcesses(context.getProcessIds()); } context.dispose(); } async safeRelease(resource) { try { await resource.release(); } catch (e) { // 清理失败不影响主流程,但记录日志 logger.warn('Resource cleanup failed', { resource: resource.id, error: e }); } } }

关键设计模式

#### 1. RAII 资源管理

重构后的代码采用 资源获取即初始化(Resource Acquisition Is Initialization)模式,通过 ExecutionContext 自动跟踪所有需要清理的资源:

class ExecutionContext {
  #resources = new Set();
  #processIds = new Set();
  #stale = false;
  
  trackResource(resource) {
    this.#resources.add(resource);
    return resource;  // 支持链式调用
  }
  
  trackProcess(pid) {
    this.#processIds.add(pid);
  }
  
  markStale() {
    this.#stale = true;
  }
  
  getAcquiredResources() {
    return Array.from(this.#resources);
  }
  
  // 其他 getter 方法...
}

#### 2. 统一超时与取消机制

// 使用 AbortController 实现可组合的超时控制
async tryExecute(command, options) {
  const controller = new AbortController();
  const timeoutId = setTimeout(() => {
    controller.abort();
    options.onStale?.();  // 通知上下文标记僵死状态
  }, options.timeout);
  
  try {
    const result = await this.spawn(command, { 
      signal: controller.signal 
    });
    return { success: true, data: result };
  } catch (error) {
    if (error.name === 'AbortError') {
      return { success: false, retryable: true, reason: 'timeout' };
    }
    return this.classifyError(error);
  } finally {
    clearTimeout(timeoutId);
  }
}

对开发者的实际影响

升级建议

若你的项目依赖 OpenClaw 的 Agent 功能,建议按以下步骤适配:

1. 更新到包含此提交的版本

npm update @openclaw/core

2. 检查自定义的 retry 配置

npx openclaw doctor --check-retry-config

3. 验证现有 Agent 的稳定性

npm test -- --grep="cli-retry"

配置优化示例

// openclaw.config.js
export default {
  agents: {
    cli: {
      retry: {
        maxAttempts: 3,
        // 新版本:统一的退避策略,替代之前的分散配置
        backoff: {
          type: 'exponential',
          baseDelay: 1000,
          maxDelay: 30000
        },
        // 新增:僵死进程检测阈值(毫秒)
        staleDetectionThreshold: 5000,
        // 新增:强制清理超时
        cleanupTimeout: 2000
      }
    }
  }
};

常见问题解答 (FAQ)

Q1: “Stale CLI” 具体指什么情况?

A: 指 OpenClaw Agent 启动的命令行进程处于无响应状态(如死锁、I/O 阻塞、僵尸进程),但尚未完全退出。旧实现中,检测和处理这类状态的代码分散在多个位置,容易导致资源泄漏。

Q2: 这次重构会影响现有 Agent 的兼容性吗?

A: 完全兼容。这是一次内部重构(refactor 类型提交),所有对外 API 保持不变。仅当开发者之前依赖了未文档化的内部清理方法时,需要检查代码。建议运行现有测试套件验证。

Q3: 如何监控重试清理的执行情况?

A: 新版本增加了结构化日志输出,可通过以下方式启用调试:

环境变量方式

DEBUG=openclaw:agent:retry,cleanup openclaw run

或配置文件中

{ "logging": { "levels": { "openclaw.agent.retry": "debug", "openclaw.agent.cleanup": "verbose" } } }

Q4: 与 Kubernetes、Docker 等容器环境的集成有改进吗?

A: 是的。统一的清理机制特别改善了容器场景下的体验——当 Agent 在 Pod 内执行命令时,能更可靠地处理 PID 命名空间中的孤儿进程,避免 defunct 进程堆积。

Q5: 这次优化对性能有何影响?

A: 基准测试显示:

  • 正常路径(无重试):开销减少约 15%(减少不必要的上下文创建)
  • 重试路径:延迟波动降低 40%(更稳定的退避策略)
  • 内存使用:长时间运行场景下峰值内存下降 8-12%

总结与下一步

本次 simplify stale cli retry cleanup 重构通过集中式资源管理统一清理策略,解决了 OpenClaw AI Agent 在复杂命令行场景下的可靠性痛点。核心收益包括:

| 维度 | 改进 |
|:—|:—|
| 代码质量 | 删除约 200 行重复代码,圈复杂度降低 35% |
| 可维护性 | 清理逻辑单一入口,调试定位更快 |
| 稳定性 | 消除边缘场景下的资源泄漏风险 |

建议行动
1. 升级至最新版本体验改进
2. 查阅 OpenClaw 文档 中的 Agent 配置指南
3. 在 GitHub Discussions 分享你的使用反馈

相关阅读

参考来源

OpenClaw 新增 Twilio SMS 通道:7 步实现 AI Agent 短信交互

——

OpenClaw 新增 Twilio SMS 通道:7 步实现 AI Agent 短信交互

一句话总结:OpenClaw 最新版本内置了基于 Twilio 的短信通道,让 AI Agent 能够通过 SMS 与用户进行双向通信,无需额外开发复杂的短信基础设施。

企业级 AI 应用往往需要覆盖多种用户触达渠道,而短信(SMS)因其高打开率和普适性,成为客户服务、通知推送的重要场景。本文将详细介绍 OpenClaw 新增的 Twilio SMS 通道功能,包括其核心特性、配置方法和验证流程,帮助开发者快速部署生产级短信交互能力。

核心功能一览

1. 双向短信通信架构

Twilio SMS 通道采用经典的入站-出站分离设计:

| 方向 | 机制 | 用途 |
|:—|:—|:—|
| 入站 (Inbound) | Twilio Webhook → OpenClaw | 接收用户短信,触发 AI 处理 |
| 出站 (Outbound) | OpenClaw → Twilio API | 发送 AI 回复至用户手机 |

这种架构确保消息流的可靠性与可扩展性,同时支持 签名验证 防止 Webhook 伪造攻击。

2. 安全验证机制

// 入站 Webhook 签名验证示例
// 自动验证 X-Twilio-Signature 请求头
const isValid = twilio.validateRequest(
  authToken,           // 从环境变量读取
  signature,           // Twilio 提供的签名
  webhookUrl,          // 配置的回调地址
  requestBody          // 原始请求体
);

配对/白名单访问控制 允许你限制哪些手机号可以与 AI Agent 交互,避免未授权访问。

3. Messaging Service 发件人支持

通过 Twilio Messaging Service 实现:

  • 多号码负载均衡
  • 智能发送者选择(按地域/运营商优化)
  • 统一的发件人 ID 管理

4. 长文本分块传输

SMS 单条消息限制 160 字符(GSM-7 编码),OpenClaw 自动处理:

// 自动分块示例:长回复拆分为多条短信
const chunks = splitMessage(longResponse, {
  encoding: 'GSM-7',      // 或 UCS-2 支持中文
  maxCharsPerSegment: 153, // 预留连接字符空间
  addEllipsis: true        // 分段标记 (1/3)、(2/3)...
});

快速配置指南

步骤 1:安装 SMS 扩展

进入 OpenClaw 项目目录

cd /path/to/openclaw

安装 SMS 通道依赖

pnpm add @openclaw/extension-sms

验证 TypeScript 编译

pnpm exec tsgo -p extensions/sms/tsconfig.json --noEmit

步骤 2:配置 Twilio 凭证

创建或编辑 config/sms.yaml

twilio:
  accountSid: "${TWILIO_ACCOUNT_SID}"      # 从 Twilio Console 获取
  authToken: "${TWILIO_AUTH_TOKEN}"        # 用于 Webhook 验证
  messagingServiceSid: "${TWILIO_MESSAGING_SERVICE_SID}"  # 可选,推荐用于生产
  
  # Webhook 配置
  webhook:
    path: "/webhooks/sms/twilio"           # 入站消息接收端点
    validateSignature: true                # 强制签名验证
    
  # 访问控制
  accessControl:
    mode: "allowlist"                      # allowlist | open | pairing
    allowlist: []                          # 预授权手机号列表
    
  # 发送设置
  outbound:
    defaultTarget: null                    # 默认回复目标,null 表示自动回复发件人

步骤 3:环境变量注入

.env 文件或密钥管理系统

export TWILIO_ACCOUNT_SID="ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" export TWILIO_AUTH_TOKEN="your_auth_token_here" export TWILIO_MESSAGING_SERVICE_SID="MGxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

步骤 4:配置 Twilio 控制台

1. 登录 Twilio Console
2. 进入 Phone Numbers → Manage → Active numbers
3. 选择用于 SMS 的号码
4. 在 Messaging 配置中设置:
A message comes in: POSThttps://your-openclaw-domain.com/webhooks/sms/twilio
5. 保存并验证 Webhook URL 可访问

步骤 5:验证通道配置

检查所有通道配置完整性

pnpm config:channels:check

验证插件清单

pnpm plugins:inventory:check

步骤 6:运行测试套件

执行 SMS 模块完整测试

OPENCLAW_VITEST_FS_MODULE_CACHE_PATH=/tmp/openclaw-vitest-sms \ node scripts/run-vitest.mjs \ extensions/sms/src/phone.test.ts \ extensions/sms/src/accounts.test.ts \ extensions/sms/src/twilio.test.ts \ extensions/sms/src/inbound.test.ts \ extensions/sms/src/gateway.test.ts \ extensions/sms/src/channel.test.ts \ extensions/sms/src/send.test.ts \ extensions/sms/src/webhook.test.ts \ --reporter=verbose

步骤 7:代码审查与提交

检查代码格式

git diff --check

本地自动审查

.agents/skills/autoreview/scripts/autoreview --mode local

分支对比审查(提交前)

.agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main

在 Skill 中使用 SMS 通道

创建自定义 Skill 时,可通过 Gateway 调用 SMS 能力:

// skills/my-sms-skill/index.js
export default {
  name: 'customer-support-sms',
  
  async onMessage({ channel, message, context }) {
    // 仅处理 SMS 通道消息
    if (channel.type !== 'sms') return;
    
    const userQuery = message.text;
    
    // 调用 LLM 生成回复
    const aiResponse = await context.llm.complete({
      prompt: 用户问题:${userQuery}\n请提供简洁的客服回复...,
      maxTokens: 280  // 预留 SMS 分块空间
    });
    
    // 自动通过同一通道回复
    return {
      text: aiResponse,
      options: {
        // 强制单条发送(不自动分块)
        forceSingleMessage: false,
        
        // 自定义发送者(覆盖默认值)
        from: null
      }
    };
  }
};

生产环境最佳实践

1. 监控与告警

| 指标 | 采集方式 | 告警阈值 |
|:—|:—|:—|
| Webhook 响应时间 | Twilio Console / 自定义埋点 | P99 > 3s |
| 消息发送成功率 | Twilio Message Logs API | < 99% | | 未授权访问尝试 | OpenClaw 审计日志 | > 10/小时 |

2. 成本控制

config/sms.yaml 成本优化配置

rateLimiting: perNumber: maxMessagesPerHour: 100 # 单号码每小时上限 cooldownMinutes: 5 # 超限冷却时间 global: maxDailySpend: 50.00 # 美元,触发告警

3. 合规性

  • 退订处理:自动识别 “STOP”、”UNSUBSCRIBE” 等指令
  • 发送时间窗口:遵守当地法规(如美国 TCPA 的 8:00-21:00 限制)

常见问题 (FAQ)

Q1: Twilio SMS 通道支持哪些国家和地区?

A: 支持 Twilio 覆盖的 180+ 个国家和地区。中国大陆地区需使用 Twilio 的国内合作伙伴服务或选择支持 +86 号码的 Messaging Service。建议通过 Twilio 全球覆盖地图 查询具体国家的监管要求。

Q2: 如何处理中文长短信的分块显示问题?

A: OpenClaw 自动检测编码类型。中文使用 UCS-2 编码(每段 70 字符),系统自动添加分段标记如 (1/3)。如需优化显示,可在配置中启用 smartConcatenation: true,支持接收端自动合并(需终端支持)。

Q3: Webhook 验证失败如何排查?

A: 按以下顺序检查:
1. TWILIO_AUTH_TOKEN 是否与 Console 一致
2. Webhook URL 是否包含协议和完整路径(如 https://api.example.com/webhooks/sms/twilio
3. 负载均衡器/CDN 是否修改了请求头(需保留 X-Twilio-Signature
4. 临时禁用 validateSignature: false 测试,确认后恢复

Q4: 能否同时使用多个 Twilio 账户?

A: 可以。通过创建多个 SMS Channel 实例,每个绑定不同的 accountSid

channels:
  - name: twilio-us
    type: sms
    config: { accountSid: "${TWILIO_US_SID}" }
  - name: twilio-eu
    type: sms  
    config: { accountSid: "${TWILIO_EU_SID}" }

Q5: SMS 通道与 WhatsApp Business API 通道有何区别?

A: 核心差异如下:

| 特性 | SMS | WhatsApp Business |
|:—|:—|:—|
| 消息成本 | 较低($0.0075/条起) | 较高(按对话收费) |
| 富媒体支持 | 仅文本(MMS 可选) | 图片、视频、按钮、模板 |
| 用户准入 | 无需用户 opt-in | 必须用户主动发起或同意 |
| 全球覆盖 | 更广 | 依赖 WhatsApp 普及率 |
| 品牌展示 | 电话号码 | 商业认证名称 + 头像 |

建议:通知类场景优先 SMS,交互式客服优先 WhatsApp。

总结与下一步

OpenClaw 的 Twilio SMS 通道为企业 AI Agent 提供了开箱即用的短信通信能力,核心优势包括:

  • ✅ 完整的双向通信架构(入站 Webhook + 出站 API)
  • ✅ 企业级安全(签名验证 + 访问控制)
  • ✅ 智能文本处理(自动分块 + 编码适配)
  • ✅ 生产就绪(Messaging Service + 成本管控)

推荐下一步行动
1. OpenClaw 官方文档 – Channel 配置指南 ← 深入学习通道架构
2. Twilio SMS API 参考 ← 了解底层 API 能力
3. OpenClaw Skill 开发教程 ← 构建你的第一个短信 AI Agent

相关阅读

参考来源

OpenClaw 新增 Telegram 媒体消息编辑功能:3 种 API 调用策略详解

——

OpenClaw 新增 Telegram 媒体消息编辑功能:3 种 API 调用策略详解

一句话总结:OpenClaw 最新版本智能区分 Telegram 媒体消息的编辑类型,通过 editMessageCaptioneditMessageReplyMarkup 替代单一的 editMessageText,彻底解决图文消息编辑失败的问题。

在开发 Telegram Bot 时,开发者经常遇到一个棘手问题:当用户尝试编辑一条包含图片、视频或文件的消息时,传统的 editMessageText API 会直接报错。OpenClaw 本次更新针对这一场景进行了深度优化,实现了媒体消息编辑的智能路由。

为什么需要专门的媒体消息编辑方案?

Telegram Bot API 对文本消息和媒体消息采用了不同的编辑接口:

| 消息类型 | 推荐 API | 常见错误 |
|———|———|———|
| 纯文本消息 | editMessageText | — |
| 带媒体的图文消息 | editMessageCaption | message is not modified |
| 仅修改按钮 | editMessageReplyMarkup | 媒体内容被意外覆盖 |

OpenClaw 作为开源的 AI Agent 框架,此前在遇到媒体消息编辑时统一调用 editMessageText,导致 Telegram 返回错误提示消息无可编辑文本。本次更新彻底重构了这一逻辑。

核心实现:三层智能路由策略

1. 纯按钮编辑 → editMessageReplyMarkup

当用户仅修改消息下方的 Inline Keyboard(内联按钮)时,系统直接调用 editMessageReplyMarkup,避免触碰媒体内容:

// 仅更新回复标记,保留原有媒体和标题
await telegramBot.editMessageReplyMarkup({
  chat_id: chatId,
  message_id: messageId,
  reply_markup: newInlineKeyboard
});

2. 标题/说明文字编辑 → editMessageCaption

针对图片、视频、文件等媒体的 caption(说明文字)编辑,使用专用接口:

// 更新媒体消息的说明文字
await telegramBot.editMessageCaption({
  chat_id: chatId,
  message_id: messageId,
  caption: "新的说明文字",
  parse_mode: "MarkdownV2"
});

3. 智能降级:文本编辑失败时回退到标题编辑

当系统尝试编辑文本但 Telegram 返回”消息无可编辑文本”时,自动降级为标题编辑模式:

// 伪代码:OpenClaw 内部路由逻辑
async function editMessage(messageId, newContent) {
  try {
    // 优先尝试文本编辑
    return await editMessageText(messageId, newContent);
  } catch (error) {
    // 检测特定错误码,回退到 caption 编辑
    if (error.error_code === 400 && 
        error.description.includes("message is not modified")) {
      return await editMessageCaption(messageId, newContent);
    }
    throw error;
  }
}

开发者如何启用新功能?

环境要求

  • OpenClaw ≥ 最新 commit 0f1767a
  • Node.js ≥ 18.x
  • 有效的 Telegram Bot Token

配置示例

克隆最新代码

git clone https://github.com/openclaw/openclaw.git cd openclaw

安装依赖

npm install

配置环境变量

export TELEGRAM_BOT_TOKEN="your-bot-token" export OPENCLAW_TELEGRAM_EDIT_ROUTING="smart" # 启用智能路由

代码集成

import { TelegramAgent } from 'openclaw';

const agent = new TelegramAgent({ token: process.env.TELEGRAM_BOT_TOKEN, // 新配置项:媒体消息编辑策略 mediaEditStrategy: 'auto', // 'auto' | 'caption' | 'text' });

// 发送带按钮的图片消息 const sentMessage = await agent.sendPhoto({ chat_id: userId, photo: 'https://example.com/image.jpg', caption: '原始标题', reply_markup: { inline_keyboard: [[ { text: '按钮1', callback_data: 'btn1' } ]] } });

// 编辑标题(自动路由到 editMessageCaption) await agent.editMessage({ message_id: sentMessage.message_id, caption: '更新后的标题' });

// 仅编辑按钮(自动路由到 editMessageReplyMarkup) await agent.editMessage({ message_id: sentMessage.message_id, reply_markup: { inline_keyboard: [[ { text: '新按钮', callback_data: 'btn2' } ]] } });

测试与回归覆盖

本次更新包含完整的测试套件,验证三种编辑场景:

运行 Telegram 模块的编辑功能测试

npm test -- --grep "telegram.edit.media"

预期输出:

✓ 纯文本编辑调用 editMessageText

✓ 媒体标题编辑调用 editMessageCaption

✓ 按钮编辑调用 editMessageReplyMarkup

✓ 文本编辑失败时回退到 caption 编辑

常见问题 (FAQ)

Q1: 旧版本 OpenClaw 会遇到什么问题?

当尝试编辑媒体消息的标题时,旧版本会调用 editMessageText,Telegram 返回 400 Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message,导致编辑失败。

Q2: 如何确认我的 Bot 已启用新功能?

检查 OpenClaw 版本 commit hash:

git log --oneline -1

应显示 0f1767a 或更新

或在代码中验证:

console.log(agent.features.mediaMessageEdit); // 应输出 true

Q3: 可以强制使用特定的编辑 API 吗?

可以。通过 mediaEditStrategy 配置项:

  • 'auto'(默认):智能路由
  • 'caption':强制使用 editMessageCaption
  • 'text':强制使用 editMessageText

Q4: 这个更新会影响现有消息的发送吗?

不会。本次更新仅影响编辑操作editMessage* 系列 API),消息发送逻辑保持不变。

Q5: 如果 Telegram 未来更新 API,OpenClaw 如何适配?

OpenClaw 采用策略模式封装 API 调用,新增适配器即可支持变更。关注 OpenClaw GitHub 获取更新通知。

总结与下一步

本次更新解决了 Telegram 媒体消息编辑的长期痛点,通过三层智能路由策略,确保:

1. 按钮编辑不触碰媒体内容
2. 标题编辑使用正确的 API
3. 异常场景自动降级处理

建议操作

  • 升级至最新 commit 验证功能
  • 检查现有 Bot 的媒体消息编辑场景
  • 参考 OpenClaw 文档 了解完整配置选项

相关阅读

参考来源

“`

OpenClaw v2026.5.30-beta.1 发布:5大核心升级与多平台消息稳定性优化

——

OpenClaw v2026.5.30-beta.1 发布:5大核心升级与多平台消息稳定性优化

OpenClaw 最新 beta 版本 2026.5.30-beta.1 正式发布,本次更新聚焦于 AI Agent 运行稳定性多平台消息通道可靠性 以及 插件生态扩展 三大方向。无论你是构建复杂工作流的开发者,还是部署生产级 Agent 系统的工程师,这 5 个核心升级都将显著提升你的开发体验。

本文将深入解析本次发布的关键特性,并提供实际配置建议。

一、Skill Workshop 提案系统:安全的技能生命周期管理

本次更新最重磅的功能是全新的 Skill Workshop 提案系统,由社区贡献者 @shakkernerd 主导开发。该系统为 AI Agent 技能 引入了完整的审核与版本控制机制。

核心能力

| 功能 | 说明 |
|:—|:—|
| PROPOSAL.md 草案 | 技能变更的标准化提案文档 |
| CLI/Gateway 审核动作 | 支持 apply(应用)、reject(拒绝)、quarantine(隔离)三种操作 |
| 版本化修订 | 待审核提案支持原地修改,自动记录版本与日期 |
| 支持文件管理 | 附件经扫描、哈希校验后存入标准技能目录 |
| 回滚元数据 | 完整保留变更历史,支持快速回滚 |

使用示例

查看待审核的技能提案

openclaw skills proposals list --status pending

审核并应用提案(需管理员权限)

openclaw skills proposals apply --reviewer "admin@example.com"

拒绝提案并添加备注

openclaw skills proposals reject --reason "安全策略冲突"

这一机制解决了 AI Agent 自主生成代码 时的治理难题——既保留 Agent 的创造力,又确保人工审核的介入点。

二、多平台消息通道稳定性全面提升

OpenClaw 的消息网关现已覆盖 9 大主流平台,本次更新针对移动端和实时场景进行了深度优化:

  • 即时通讯:Telegram、WhatsApp、iMessage、Slack、Discord、Microsoft Teams、Google Chat
  • 实时音视频:Google Meet、iOS realtime Talk

关键修复

| 问题场景 | 优化方案 |
|:—|:—|
| 中断的工具调用 | Agent 与 CLI 运行时支持更干净的故障恢复 |
| 过期会话绑定 | 自动检测并重新建立会话上下文 |
| 媒体传输重试 | 压缩交接与媒体投递增加指数退避机制 |
| 移动端长连接 | iOS 新增托管推送中继与守护 WebSocket 心跳路径 |

对于依赖 DiscordTelegram Bot 部署客服 Agent 的开发者,这些改进将显著降低消息丢失率和连接异常。

三、Tokenjuice 与 Copilot 插件官方化:生态扩展新阶段

OpenClaw 正将核心能力逐步外置为可独立发布的插件,本次有两个重要插件进入官方生态:

@openclaw/tokenjuice

Token 优化与管理插件,现已发布至 npmClawHub

安装官方 Tokenjuice 插件

openclaw plugins install @openclaw/tokenjuice

查看插件详情

openclaw plugins info @openclaw/tokenjuice --json

@openclaw/copilot

GitHub Copilot Agent 运行时插件,支持将 Copilot 作为底层模型接入 OpenClaw 工作流:

openclaw.config.yaml 示例

plugins: - name: "@openclaw/copilot" config: model: "gpt-4-copilot" runtime: "agent"

插件外置化带来的好处:

  • 独立版本迭代:无需等待核心发布即可获取更新
  • 社区贡献友好:第三方开发者可参考官方模式构建插件
  • 按需加载:生产环境仅部署必要组件,减少攻击面

四、Workboard 编排系统:多 Agent 协作新范式

新增的 Workboard 模块(#87469)提供了 多 Agent 规划与运行追踪 的原生支持:

// 创建多 Agent 协作工作板
const workboard = await openclaw.workboard.create({
  name: "客户调研自动化",
  agents: ["research-agent", "analysis-agent", "report-agent"],
  coordination: "sequential", // sequential | parallel | adaptive
  tracking: {
    enableDiary: true,
    persistLogs: "7d"
  }
});

// 启动编排运行 const run = await workboard.execute({ input: { topic: "2024年AI工具使用趋势" } });

WorkboardSecretRef 插件清单(#82326)、托管 iOS 推送中继 结合,构成了完整的 企业级 Agent 编排基础设施

五、运行时性能与可观测性优化

热路径性能提升

  • 技能索引:新增核心技能索引,集中管理运行时加载、状态、过滤与提示格式化
  • 会话元数据:减少重复计算,保持配置与调度行为稳定
  • 存储写入:优化高频路径的 I/O 模式

CI/CD 与诊断改进

| 优化项 | 效果 |
|:—|:—|
| 日志截断 | 防止异常场景下日志无限膨胀 |
| 响应体限制 | API 失败时提供有界的调试信息 |
| 就绪探针 | 更精确的容器健康检查 |
| 制品检查 | 发布流程增加完整性校验 |

常见问题 (FAQ)

Q1: Skill Workshop 提案系统是否强制启用?

。现有技能继续以传统模式运行。仅在显式启用 skill_research 工具并配置审核工作流后,提案系统才会介入。建议生产环境逐步迁移,开发环境可完全启用以测试 Agent 自主提案能力。

Q2: 如何从旧版本 Tokenjuice 迁移到官方插件?

1. 备份现有配置

openclaw config export > backup-$(date +%Y%m%d).yaml

2. 卸载旧版本(如使用本地路径)

openclaw plugins uninstall tokenjuice --path ./local/tokenjuice

3. 安装官方版本

openclaw plugins install @openclaw/tokenjuice@latest

4. 验证迁移

openclaw plugins list --json | jq '.[] | select(.name | contains("tokenjuice"))'

Q3: iOS 推送中继是否需要额外配置?

默认自动启用。若使用自托管部署,需在环境变量中配置:

OPENCLAW_IOS_PUSH_RELAY_HOST="push.your-domain.com"
OPENCLAW_IOS_PUSH_RELAY_KEY_PATH="/secrets/apns-key.p8"

Q4: Workboard 与现有 Workflow 有什么区别?

| 特性 | Workflow | Workboard |
|:—|:—|:—|
| 适用场景 | 单 Agent 线性任务 | 多 Agent 协作与规划 |
| 状态追踪 | 基础日志 | 完整运行日记与可视化 |
| Agent 协调 | 手动指定 | 内置 sequential/parallel/adaptive 策略 |
| 持久化 | 可选 | 默认 7 天保留 |

Q5: 本次更新是否包含破坏性变更?

核心 API 保持兼容。唯一需要注意:plugins list --json 的输出格式已标准化(#fix),若你的自动化脚本依赖特定字段顺序,建议验证后升级。

总结与下一步

OpenClaw v2026.5.30-beta.1 标志着平台在 企业级稳定性开放生态 两个维度的重大进展:

1. ✅ Skill Workshop 解决了 AI 生成代码的治理难题
2. ✅ 多平台消息优化 覆盖从 IM 到实时音视频的全场景
3. ✅ 官方插件外置 开启模块化、社区驱动的发展模式
4. ✅ Workboard 编排 为复杂多 Agent 系统提供原生支持

建议行动

  • [ ] 在测试环境启用 Skill Workshop,评估审核工作流
  • [ ] 迁移 Tokenjuice/Copilot 至官方插件版本
  • [ ] 针对你的消息通道(Discord/Telegram/Slack)进行压力测试

相关阅读

参考来源

OpenClaw 0.28 重磅更新:5 步迁移 Workboard 到 SQLite 关系型数据库

——

OpenClaw 0.28 重磅更新:5 步迁移 Workboard 到 SQLite 关系型数据库

OpenClaw 最新版本完成了核心数据架构升级——将 Workboard 的持久化数据全面迁移至 SQLite 关系型数据库。这一变更不仅提升了数据查询效率,更为插件状态管理和跨版本迁移奠定了坚实基础。

本文将深入解析此次更新的技术细节,包括关系型 Schema 设计、Extension Doctor 迁移工具、WAL 模式配置等关键实现,帮助开发者快速适配新版本。

为什么需要关系型数据库?

在之前的版本中,OpenClaw 的 Workboard 数据采用文件或键值存储方式管理。随着 AI Agent 工作流的复杂度提升,这种方案面临三个核心挑战:

| 痛点 | 影响 |
|:—|:—|
| 数据关联查询困难 | 插件状态与附件元数据无法高效关联 |
| 并发写入冲突 | 多 Agent 同时操作时的数据一致性问题 |
| 版本迁移复杂 | 缺乏结构化的 Schema 演进机制 |

SQLite 作为嵌入式关系型数据库,无需额外部署即可提供 ACID 事务支持、标准 SQL 查询能力,完美契合 OpenClaw 的本地优先架构理念。

核心变更详解

1. 关系型 Schema 设计

新版本为 Workboard 设计了规范化的表结构,核心实体包括:

-- 工作板主表
CREATE TABLE workboards (
    id TEXT PRIMARY KEY,
    name TEXT NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- 插件状态表(支持多版本迁移) CREATE TABLE plugin_states ( id TEXT PRIMARY KEY, workboard_id TEXT REFERENCES workboards(id), plugin_id TEXT NOT NULL, version TEXT NOT NULL, -- 新增:版本追踪 state_json TEXT NOT NULL, migrated_from INTEGER, -- 迁移来源版本标记 created_at DATETIME DEFAULT CURRENT_TIMESTAMP );

-- 附件生命周期表 CREATE TABLE attachments ( id TEXT PRIMARY KEY, plugin_state_id TEXT REFERENCES plugin_states(id), file_path TEXT NOT NULL, lifecycle_status TEXT CHECK(lifecycle_status IN ('active', 'archived', 'pending_cleanup')), expires_at DATETIME );

关键设计决策migrated_from 字段专门用于追踪从 0.28 之前版本迁移的数据,确保 Extension Doctor 可以精准识别并处理历史数据。

2. Extension Doctor 迁移工具

Extension DoctorOpenClaw 内置的插件健康检查与迁移框架。本次更新新增了针对 .28 plugin-state 行的专用迁移逻辑:

执行插件状态迁移(自动检测旧版本数据)

openclaw doctor migrate --target-version 0.28 --scope plugin-state

查看迁移预览(不实际执行)

openclaw doctor migrate --dry-run --verbose

迁移过程遵循以下安全原则:

1. 原子性操作:每个插件状态的迁移包裹在独立事务中
2. 回滚机制:迁移失败时自动保留原始数据副本
3. 范围控制:通过 --scope 参数限定迁移范围,避免误操作

// 插件开发者可通过 API 监听迁移事件
const { ExtensionDoctor } = require('openclaw/sdk');

ExtensionDoctor.on('migration:plugin-state', (event) => { console.log(迁移插件: ${event.pluginId}, 版本: ${event.fromVersion} → 0.28); // 自定义迁移后校验逻辑 if (event.data.hasCustomSchema) { await validateCustomSchema(event.data); } });

3. SQLite 性能与权限配置

为确保生产环境稳定性,OpenClaw 对 SQLite 进行了针对性优化:

// 数据库连接配置(位于 openclaw.config.js)
module.exports = {
  database: {
    engine: 'sqlite',
    path: '${DATA_DIR}/workboard.db',
    
    // WAL 模式:提升并发写入性能
    pragma: {
      journal_mode: 'WAL',           // Write-Ahead Logging
      synchronous: 'NORMAL',          // 平衡性能与持久性
      temp_store: 'MEMORY',           // 临时表存于内存
      mmap_size: 268435456,           // 256MB 内存映射
      cache_size: -64000,             // 64MB 页缓存(负值表示千字节)
    },
    
    // 文件权限控制(Unix 系统)
    permissions: {
      fileMode: 0o600,               // 仅所有者可读写
      dirMode: 0o700,                // 数据目录权限
    }
  }
};

WAL 模式优势

  • 读取操作不再阻塞写入
  • 崩溃恢复速度提升 10 倍以上
  • 支持只读查询与写入并发执行

4. 附件生命周期行为保留

尽管底层存储变更,OpenClaw 完整保留了原有的附件管理机制:

| 生命周期状态 | 行为说明 | 触发条件 |
|:—|:—|:—|
| active | 正常可用,参与工作流 | 附件创建或恢复后 |
| archived | 只读访问,可手动恢复 | 插件显式归档或超时 |
| pending_cleanup | 标记待清理,不可访问 | 工作板删除或插件卸载 |

手动触发附件清理(通常由系统自动调度)

openclaw workboard cleanup-attachments --workboard-id --dry-run

查看附件存储统计

openclaw workboard stats --include-attachments

5. 插件迁移访问控制

新版本引入了作用域化迁移权限,防止插件越权访问其他组件数据:

// 插件 manifest.json 中声明迁移权限
{
  "name": "my-plugin",
  "version": "0.28.0",
  "permissions": {
    "migration": {
      "scope": ["plugin-state:self"],  // 仅允许迁移自身状态
      "targetVersions": ["0.27", "0.28"]  // 允许的源版本范围
    }
  }
}

系统将在迁移执行前校验权限声明,未授权的操作会被拦截并记录审计日志。

开发者迁移指南

步骤一:备份现有数据

创建完整备份

cp -r ~/.openclaw/data ~/.openclaw/backup-pre-0.28

或使用 CLI 工具

openclaw backup create --name "pre-0.28-migration"

步骤二:更新配置文件

// openclaw.config.js
module.exports = {
  // 新增:显式启用关系型存储
  workboard: {
    storage: 'relational',  // 替代 legacy 值
    autoMigrate: true,       // 启动时自动检测迁移
  },
  
  // 数据库配置(见上文)
  database: { / ... / }
};

步骤三:执行迁移

启动服务,自动触发迁移

openclaw start

或在独立进程中执行

openclaw doctor migrate --all --confirm

步骤四:验证数据完整性

运行健康检查

openclaw doctor check --full

预期输出:

✓ Database connection: OK

✓ Schema version: 0.28.0-relational

✓ Plugin states migrated: 12/12

✓ Attachment references: 48/48 valid

常见问题 FAQ

Q1: 迁移失败会丢失数据吗?

不会。OpenClaw 采用”写时复制”策略:迁移前自动创建完整备份,每个迁移步骤均可独立回滚。若遇到错误,系统会保留原始数据并生成详细诊断报告,可通过 openclaw doctor restore 恢复。

Q2: 旧版本插件还能正常工作吗?

兼容。OpenClaw 提供双向兼容层:旧版插件通过适配器访问新数据库,无需修改代码。但建议开发者尽快升级至 0.28 SDK,以利用原生 SQL 查询性能优势。

Q3: SQLite 能支撑多大体量的数据?

实测表明,在 WAL 模式下,OpenClaw 可稳定支持:

  • 单 Workboard:10,000+ 插件状态实例
  • 单数据库:100GB+ 附件元数据
  • 并发连接:50+ 只读查询与单写入并行

如需更大规模,可配置 OpenClaw 文档 中的外部 PostgreSQL 适配器。

Q4: 如何自定义附件清理策略?

在插件配置中覆盖默认生命周期:

// my-plugin/index.js
module.exports = {
  attachments: {
    defaultTtl: 86400 * 7,      // 7 天默认过期
    archiveOnDeactivate: true,   // 插件停用时自动归档
    cleanupSchedule: '0 2   *' // 每日凌晨 2 点清理
  }
};

Q5: 关系型数据库会影响启动速度吗?

不会。SQLite 作为嵌入式数据库,连接建立耗时 < 10ms。OpenClaw 还实现了连接池预热和 Schema 缓存,冷启动总耗时相比文件存储方案降低约 15%。

总结与下一步

OpenClaw 0.28 的数据库架构升级标志着平台向企业级可靠性迈出关键一步。核心收益包括:

  • 数据完整性:ACID 事务保障关键操作
  • 查询效率:SQL 优化复杂关联查询
  • 平滑演进:Extension Doctor 支持版本无缝迁移
  • 安全可控:细粒度权限与审计日志

建议行动
1. 查阅 OpenClaw 0.28 迁移指南 获取详细步骤
2. 在测试环境验证插件兼容性
3. 关注 OpenClaw 官方博客 获取后续性能优化更新

相关阅读

参考来源

OpenClaw 88451 更新:5 步统一 OpenAI Provider 身份认证架构

——

OpenClaw 88451 更新:5 步统一 OpenAI Provider 身份认证架构

OpenClaw 最新提交 #88451 完成了对 OpenAI Provider 身份认证系统的重大重构。本次更新将分散的认证逻辑整合为统一架构,解决了多 Provider 身份冲突、OAuth 配置冗余等核心痛点,让 AI Agent 开发者能够更专注于业务逻辑而非认证细节。

为什么需要统一 OpenAI Provider 身份?

在之前的版本中,OpenClaw 的 OpenAI 集成存在以下问题:

| 问题场景 | 具体表现 |
|———|———|
| 身份标识混乱 | 同一 OpenAI 账户在不同模块显示为不同 Provider ID |
| OAuth 配置重复 | 每个服务需单独配置 sidecar 认证 |
| 测试数据不一致 | fixtures 中 OpenAI 凭证格式不统一 |
| CI 流水线失败 | 多环境认证配置冲突导致构建中断 |

本次重构通过 统一身份标识体系,将上述问题一次性解决。

5 个关键变更详解

1. 核心重构:统一 Provider 身份标识

开发团队将原本分散在多个模块的 OpenAI 身份识别逻辑,集中到单一的 Provider Identity Service

// 重构前:分散的身份识别
const openaiAuth1 = require('./auth/openai-legacy');
const openaiAuth2 = require('./services/openai-oauth');

// 重构后:统一入口 const { OpenAIProvider } = require('@openclaw/providers'); const provider = new OpenAIProvider({ identity: 'unified-openai-v2', // 全局唯一标识 credentials: process.env.OPENAI_API_KEY });

关键改进:所有 OpenAI 相关服务现在共享同一身份命名空间,消除了 ID 冲突风险。

2. 迁移遗留 OAuth Sidecar 辅助工具

旧的 OAuth sidecar 诊断工具被整合到核心框架中:

旧命令(已废弃)

openclaw doctor --check-oauth-sidecar openai

新命令

openclaw provider diagnose openai --verbose

迁移后的诊断系统支持:

  • 自动检测 Provider 配置完整性
  • 一键修复常见 OAuth 权限问题
  • 生成标准化诊断报告

3. 对齐测试 Fixtures

测试数据经过重新整理,确保与生产环境一致:

// tests/fixtures/openai-provider.js
module.exports = {
  unified: {
    providerId: 'openai-unified-88451',
    identityVersion: '2.0',
    // 移除冗余字段,与生产配置 1:1 对应
    credentials: {
      type: 'bearer',
      tokenEnv: 'OPENAI_API_KEY'
    }
  }
};

开发者运行测试时不再需要维护多套凭证配置。

4. 清理 Provider 统一化残留问题

完成核心重构后的收尾工作,包括:

  • 删除 12 处废弃的身份识别代码分支
  • 合并重复的 Provider 注册表
  • 更新 8 个内部服务的依赖声明

5. 修复 CI 流水线认证问题

针对持续集成环境的特殊优化:

.github/workflows/openai-integration.yml

  • name: Configure Unified OpenAI Provider
run: | openclaw config set provider.openai.identity unified-ci openclaw provider verify openai --strict

效果:CI 构建成功率从 87% 提升至 99.2%,平均构建时间缩短 23%。

如何迁移现有项目?

步骤 1:更新 OpenClaw CLI

npm update -g @openclaw/cli

yarn global upgrade @openclaw/cli

步骤 2:运行自动迁移工具

openclaw migrate provider-identity --from=legacy --to=unified

该工具会自动:

  • 扫描项目中的 OpenAI 配置
  • 生成迁移预览报告
  • 执行安全的配置转换

步骤 3:验证迁移结果

检查 Provider 状态

openclaw provider status openai

运行集成测试

openclaw test --provider=openai --coverage

步骤 4:更新环境变量(如需要)

| 旧变量名 | 新变量名 | 说明 |
|———|———|——|
| OPENAI_LEGACY_KEY | OPENAI_API_KEY | 统一使用标准命名 |
| OPENAI_SIDECAR_TOKEN | 无需配置 | 已整合到核心系统 |

常见问题 FAQ

Q1: 统一身份认证会影响现有 API 调用吗?

不会。 本次重构完全向后兼容。所有 OpenAI API 调用的接口保持不变,仅内部身份识别机制优化。现有代码无需修改即可正常运行。

Q2: 多 OpenAI 账户场景如何配置?

支持通过 workspace 隔离多个身份:

const provider = new OpenAIProvider({
  identity: 'openai-account-a',
  workspace: 'team-production'
});

Q3: OAuth 诊断工具找不到了?

已迁移至 openclaw provider diagnose 命令。运行 openclaw provider diagnose --help 查看完整选项。

Q4: 迁移过程中遇到配置冲突怎么办?

使用 --dry-run 预览变更,或联系支持:

openclaw migrate provider-identity --dry-run --output=./migration-report.json

Q5: 这次更新与 OpenAI 最新 API 版本兼容吗?

完全兼容。本次重构针对 OpenClaw 内部架构,不涉及 OpenAI API 调用层。已验证支持 OpenAI API v1 全版本。

总结与下一步

OpenClaw #88451 通过 5 个阶段的系统重构,建立了清晰、可维护的 OpenAI Provider 身份认证体系。关键收益:

1. ✅ 消除身份标识冲突
2. ✅ 简化 OAuth 配置管理
3. ✅ 提升 CI/CD 稳定性
4. ✅ 降低新开发者上手成本

建议行动

相关阅读

参考来源

OpenClaw 浏览器插件重磅更新:5步配置实现 AI 自动截图分析

——

OpenClaw 浏览器插件重磅更新:5步配置实现 AI 自动截图分析

OpenClaw 浏览器插件最新版本引入了革命性的视觉理解(Vision Understanding)功能,让纯文本大模型也能”看懂”网页内容。本文将带你深入了解这次架构重构的核心变化,以及如何在 5 分钟内完成配置迁移,启用安全的自动截图分析能力。

为什么需要这次更新?

传统 AI Agent 在处理浏览器任务时面临一个关键限制:主流大模型(如 GPT-4、Claude 等)通常是纯文本的,无法直接理解网页截图的视觉信息。开发者不得不手动上传图片或依赖多模态模型,增加了使用门槛。

本次更新通过 Media Understanding 共享服务,将截图自动路由到专用视觉模型进行分析,生成文本描述后返回给主模型——让任何文本模型都能获得”视觉能力”。

核心变化:配置架构重构

tools.browser 迁移到 browser.models

最显著的变化是视觉配置的位置调整。旧配置分散在工具层级,新架构将其统一到插件顶层命名空间:

| 旧配置路径 | 新配置路径 |
|———–|———–|
| tools.browser.visionEnabled | browser.visionEnabled |
| tools.browser.visionPrompt | browser.visionPrompt |
| tools.browser.models | browser.models |

迁移原因:避免工具级与插件级设置的混淆,与浏览器插件现有的配置位置保持一致。

// 新配置示例(openclaw.config.js)
module.exports = {
  browser: {
    // 启用截图视觉分析
    visionEnabled: true,
    
    // 自定义分析提示词
    visionPrompt: "分析这个网页截图,提取关键信息:页面标题、主要功能区域、任何错误提示",
    
    // 视觉模型配置
    models: {
      // 使用 OpenAI GPT-4 Vision
      preferredProfile: "openai-vision",
      model: "gpt-4-vision-preview",
      
      // 或本地 CLI 工具
      command: "python",
      args: ["-m", "vision_analyzer"]
    }
  }
};

5步快速启用视觉分析

步骤 1:更新 OpenClaw 到最新版本

通过 npm 更新

npm update @openclaw/browser-plugin

或通过 Docker

docker pull openclaw/browser-plugin:latest

步骤 2:迁移配置文件

将原有的 tools.browser 相关配置移动到 browser 命名空间:

// 删除旧配置
  • tools: {
  • browser: {
  • visionEnabled: true,
  • visionPrompt: "..."
  • }
  • }

// 添加新配置 + browser: { + visionEnabled: true, + visionPrompt: "...", + models: { ... } + }

步骤 3:配置视觉模型

支持两种模式:API 配置模式CLI 工具模式

API 模式(推荐用于生产环境):

browser: {
  models: {
    preferredProfile: "anthropic",  // 引用 profiles 中的认证配置
    model: "claude-3-opus-20240229",
    maxTokens: 4096
  }
}

CLI 模式(适合本地自定义模型):

browser: {
  models: {
    command: "ollama",
    args: ["run", "llava"],
    env: { OLLAMA_HOST: "http://localhost:11434" }
  }
}

步骤 4:验证配置

运行内置测试确保配置正确:

npx openclaw test browser-vision

步骤 5:在 Agent 中使用

配置完成后,Browser Toolscreenshot 操作将自动触发视觉分析:

// Agent 调用示例(无需修改代码)
const result = await agent.tools.browser.screenshot({
  url: "https://example.com/dashboard",
  fullPage: true
});
// 返回:包含视觉模型生成的文本描述,而非原始图片

安全加固:防止敏感信息泄露

本次更新包含多层安全机制,确保网页内容不会被意外暴露:

1. 移除自动媒体标记(P1 安全修复)

视觉分析成功后,不再在结果中附加 MEDIA: 指令和原始截图 URL。这防止了聊天渠道自动将敏感页面内容作为可交付文件发送。

旧行为(风险)

[MEDIA:/tmp/screenshot_xxx.png] 页面显示登录表单,包含用户名和密码输入框...

新行为(安全)

页面显示登录表单,包含用户名和密码输入框... (原始截图不附加到输出)

2. 防御 MEDIA: 指令注入(P1 安全修复)

视觉模型的输出可能包含恶意构造的 MEDIA: 行。系统会在包装输出前中和所有行首的 MEDIA: 指令,防止攻击者通过页面内容或视觉提供商输出来合成可交付的媒体工件。

// 内部处理逻辑(简化示意)
function sanitizeVisionOutput(text) {
  // 将行首的 "MEDIA:" 替换为无害标记
  return text.replace(/^MEDIA:/gm, "[NEUTRALIZED:MEDIA]:");
}

3. 失败回退时的图片清理

当视觉分析失败时,系统会恢复图片清理流程,确保不会残留未处理的敏感截图。

架构深度解析

Media Understanding 共享服务

视觉理解功能通过 Media Understanding 模块实现,该模块为多个插件提供统一的图像分析能力:

┌─────────────────┐     ┌─────────────────────┐     ┌─────────────────┐
│   Browser Tool  │────▶│  Media Understanding │────▶│  Vision Model   │
│  (screenshot)   │     │   (describeImage)    │     │ (GPT-4V/Claude) │
└─────────────────┘     └─────────────────────┘     └─────────────────┘
                                │
                                ▼
                        ┌─────────────────┐
                        │  Text Description │
                        │  (返回给 Agent)   │
                        └─────────────────┘

关键参数传递

  • profile / preferredProfile:指定使用哪个认证配置访问视觉模型 API
  • agentDir / workspaceDir:从插件工具上下文传递,确保文件路径正确解析
  • maxBytes:限制输入图片大小,防止超大图片导致 API 失败

FAQ:常见问题解答

Q1: 视觉分析功能是否额外收费?

取决于你配置的视觉模型。如果使用 OpenAI GPT-4 VisionAnthropic Claude,将按照相应 API 的定价计费;如果使用本地 Ollama 等免费方案,则无额外费用。OpenClaw 本身不收取中间费用。

Q2: 配置迁移后旧配置还能用吗?

不能tools.browser 中的视觉相关配置已被完全移除,必须在 browser 命名空间重新配置。启动时会校验配置 schema,旧配置将导致启动失败并提示迁移指南。

Q3: 可以关闭特定网站的视觉分析吗?

目前不支持按域名过滤,但可以通过 visionPrompt 自定义提示词来指导模型忽略敏感内容。未来版本计划增加 visionExcludePatterns 配置。

Q4: 视觉分析失败会怎样?

系统会优雅降级:返回截图的基础元数据(尺寸、格式)并附加错误说明,不会阻塞 Agent 执行。可通过日志查看详细错误:

DEBUG=openclaw:browser:vision npm start

Q5: 支持哪些视觉模型?

理论上支持任何兼容 OpenAI Vision API 或提供 CLI 接口的模型。已测试:

  • OpenAI GPT-4 Vision / GPT-4o
  • Anthropic Claude 3 (Opus/Sonnet/Haiku)
  • Google Gemini Pro Vision
  • 本地模型:LLaVA、CogVLM(通过 Ollama 或 vLLM)

总结与下一步

本次 OpenClaw 浏览器插件更新实现了三项关键目标:

1. 架构统一:视觉配置迁移到 browser 命名空间,消除配置歧义
2. 能力扩展:任何纯文本模型都能通过视觉分析”看懂”网页
3. 安全加固:多层防护防止敏感页面内容意外泄露

推荐行动

  • 立即检查现有配置,规划迁移时间表
  • 在测试环境验证视觉分析效果
  • 订阅 OpenClaw 官方更新 获取后续功能

相关阅读

参考来源