← 返回更新日志

OpenClaw v2026.3.24

2026-03-25 · GitHub 原文
### 重大变更 ### 功能更新 - **网关/OpenAI 兼容性**:新增 `/v1/models` 和 `/v1/embeddings` 端点,并通过 `/v1/chat/completions` 和 `/v1/responses` 转发显式模型覆盖设置,以提升更广泛客户端和 RAG 系统的兼容性。感谢 @vincentkoc。 - **代理/工具**:使 `/tools` 端点仅显示当前代理实际可用的工具,新增紧凑默认视图(可选详细模式),并在控制面板 UI 中增加实时“当前可用”板块,便于在提问前确认可用工具。 - **Microsoft Teams**:迁移至官方 Teams SDK,并引入 AI 代理最佳实践,包括流式一对一回复、带提示启动器的欢迎卡片、反馈/反思功能、信息性状态更新、输入指示器以及原生 AI 标识。 (#51808) - **Microsoft Teams**:为已发送消息添加编辑和删除支持,包括在未提供明确目标时的线程内回退处理。 (#49925) - **技能/安装元数据**:为捆绑技能(coding-agent、gh-issues、openai-whisper-api、session-logs、tmux、trello、weather)添加一键安装配方,使 CLI 和控制面板 UI 能在依赖缺失时提供安装指引。 (#53411) 感谢 @BunsDev。 - **控制面板 UI/技能**:新增带计数的状态筛选标签(全部/就绪/需配置/已禁用),用点击查看详情的对话框替换内联技能卡片,展示需求、切换开关、安装操作、API 密钥录入、源元数据和主页链接。 (#53411) 感谢 @BunsDev。 - **Slack/交互式回复**:恢复直接投递的富回复一致性,自动将尾随简单 `Options:` 行渲染为按钮/选择器,改进 Slack 交互式设置默认值,并将回复控件与插件交互处理器隔离。 (#53389) 感谢 @vincentkoc。 - **CLI/容器**:新增 `--container` 和 `OPENCLAW_CONTAINER` 参数,支持在运行中的 Docker 或 Podman OpenClaw 容器内执行 `openclaw` 命令。 (#52651) 感谢 @sallyom。 - **Discord/自动线程**:新增可选 `autoThreadName: "generated"` 命名配置,使新自动创建的线程能通过 LLM 生成的简洁标题异步重命名,同时保留默认的消息基础命名。 (#43366) 感谢 @davidguttman。 - **插件/钩子**:新增携带规范入站元数据的 `before_dispatch` 钩子,并使处理后的回复通过常规最终投递路径路由,保留 TTS 和路由投递语义。 (#50444) 感谢 @gfzhx。 - **控制面板 UI/代理**:将代理工作区文件行转换为可展开的 `<details>` 元素(支持延迟加载内联 Markdown 预览),并为标题、列表、代码块、表格、引用及 details/summary 元素添加全面的 `.sidebar-markdown` 样式。 (#53411) 感谢 @BunsDev。 - **控制面板 UI/Markdown 预览**:重新设计代理工作区文件预览对话框,采用毛玻璃背景、尺寸可控面板和样式化页头,并集成 `@create-markdown/preview` v2 系统主题以实现自适应应用明/暗设计令牌的富 Markdown 渲染(支持标题、表格、代码块、标注、引用)。 (#53411) 感谢 @BunsDev。 - **macOS 应用/配置**:将水平胶囊式子节导航替换为可折叠树形侧边栏(使用展开箭头和缩进子节行)。 (#53411) 感谢 @BunsDev。 - **CLI/技能**:将“缺失”需求标签柔化为“需配置”,并在 `openclaw skills info` 输出中展示 API 密钥设置指引(密钥获取位置、CLI 保存命令、存储路径)。 (#53411) 感谢 @BunsDev。 - **macOS 应用/技能**:在 API 密钥编辑器对话框中添加“获取密钥”主页链接和存储路径提示,并在保存确认消息中显示配置路径。 (#53411) 感谢 @BunsDev。 - **控制面板 UI/代理**:在默认代理模型选择下拉框中添加“未设置”占位符。 (#53411) 感谢 @BunsDev。 - **运行时/安装**:将支持的 Node.js 最低版本从 22 降至 `22.14+`,同时继续推荐 Node 24,避免 npm 安装和自更新将 Node 22.14 用户滞留于旧版本。 - **CLI/更新**:在 `openclaw update` 执行全局包安装前预检目标 npm 包的 `engines.node` 要求,使过时 Node 运行时以清晰升级提示失败,而非尝试不兼容的最新版本。 ### 问题修复 - **出站媒体/本地文件**:使出站媒体访问与配置的 fs 策略对齐,当 `workspaceOnly` 关闭时允许主机本地文件和入站媒体路径继续发送,同时严格工作区隔离的代理保持沙箱限制。 - **安全/沙箱媒体分发**:关闭 `mediaUrl`/`fileUrl` 别名绕过漏洞,防止出站工具和消息操作突破媒体根目录限制。 (#54034) - **网关/重启信标**:重启后通过心跳唤醒中断的代理会话(而非仅发送尽力而为的重启通知),在瞬态故障时重试一次出站投递,并在唤醒路径中保留显式线程/主题路由,确保回复落入正确的 Telegram 主题或 Slack 线程。 (#53940) 感谢 @VACInc。 - **Docker/设置**:通过 `openclaw-gateway` 路由设置时 onboard/config 写入操作,避免预启动 `openclaw-cli` 共享网络命名空间循环,使全新 Docker 安装在网关启动前不再失败。 (#53385) 感谢 @amsminn。 - **网关/频道**:保持频道启动顺序执行,同时隔离各频道启动失败,使单个频道故障不再阻塞后续频道启动。 (#54215) 感谢 @JonathanJing。 - **嵌入式运行/密钥**:通过回退到解析后的运行时快照,防止未解析的 `SecretRef` 配置导致嵌入式代理运行崩溃。修复 #45838。 - **WhatsApp/群组**:跟踪最近网关发送的消息 ID,仅抑制匹配的群组回声,保留所有者 `/status`、`/new` 和 `/activation` 命令免受关联账户 `fromMe` 流量干扰。 (#53624) 感谢 @w-sss。 - **WhatsApp/回复机器人检测**:通过解包 `botInvokeMessage` 载荷并从 `creds.json` 读取 `selfLid`,恢复隐式群组回复检测,使基于回复的提及在关联账户群聊中重新指向机器人。 - **Telegram/论坛主题**:当 Telegram 省略论坛元数据时恢复 `#General` 主题 `1` 路由,涵盖原生命令、交互式回调、入站消息上下文和回退错误回复。 (#53699) 感谢 @huntharo。 - **Discord/网关监管**:将网关错误处理集中到生命周期拥有的监管者后,确保早期、活跃和后期拆卸阶段的 Carbon 网关错误保持一致的分类,并停止表现为进程终止的拆卸崩溃。 - **Discord/超时**:当入站 Discord 工作线程在最终回复开始前超时时,发送可见超时回复(包括创建的自动线程目标和排队运行顺序)。 (#53823) 感谢 @Kimbo7870。 - **ACP/直接聊天**:当最终 TTS 未生成音频时始终投递终端 ACP 结果(即使块文本已提前流式传输),并跳过冗余空文本最终合成。 (#53692) 感谢 @w-sss。 - **Telegram/出站错误**:保留可操作的 403 成员/屏蔽/踢出详情,并将 `bot not a member` 视为永久投递失败,使 Telegram 停止重试注定失败的聊天。 (#53635) 感谢 @w-sss。 - **Telegram/照片**:预检 Telegram 照片尺寸和纵横比规则,当图像元数据无效或不可用时回退到文档发送,防止照片上传因 `PHOTO_INVALID_DIMENSIONS` 失败。 (#52545) 感谢 @hnshah。 - **Slack/运行时默认值**:精简 Slack DM 回复开销,恢复 Codex 自动传输,并收紧 Slack/网络搜索运行时默认值(涉及 DM 预览线程化、缓存范围、警告去重和显式网络搜索选择)。 (#53957) 感谢 @vincentkoc。