OpenClaw 更新分析 — 2026-03-24

概览

过去 24 小时(2026-03-23T05:04Z ~ 2026-03-24T05:04Z)共有 11 个 commits 合并入主分支,涉及 4 个主要方向:MS Teams 扩展大幅升级Cron/Heartbeat 行为修复UI 细节打磨Doctor 命令稳定性改进。整体活跃度高,社区贡献者质量较好。

类型数量
feat2
fix7
style/refactor1
test1

重要变更(逐条分析)

🚀 [feat] MS Teams 扩展 — 全面升级 AI Agent UX (`cd90130`)

模块: extensions/msteams

作者: Sid Uppal (@SidU)

PR: #51808

最大的一笔变更。将 Teams 扩展从 @microsoft/agents-hosting 迁移到官方 Teams SDK(@microsoft/teams.apps + @microsoft/teams.api),并实现了微软 AI UX 最佳实践:

影响: 对使用 Teams 渠道的用户影响极大,体验接近一线商业 AI 助手。

🚀 [feat] MS Teams — 消息编辑/删除支持 (`6e97001`)

模块: extensions/msteams

作者: sudie-codes

PR: #49925

为 Teams 扩展增加 edit/delete 动作处理器,支持 in-thread 编辑/删除,补全了 channel runtime 的 editMessageMSTeams/deleteMessageMSTeams 接口。

影响: Teams 用户现在可以正常使用消息编辑删除功能,与其他渠道齐平。

🔧 [fix] Cron Heartbeat 提示抑制 (`ea62655` + `9d21be4`)

模块: agents/cron

作者: Protocol-zero-0(贡献),steipete(合并)

PR: #53152

核心问题: cron 触发的嵌入式运行会继承 default-agent 的 heartbeat 提示,导致非 cron 会话目标去读取 HEARTBEAT.md,污染计划任务轮次。

修复: cron 触发的嵌入式运行不再注入 heartbeat 提示。Memory 触发和无触发器运行仍然保留 heartbeat 提示注入。

影响: 直接影响我们当前的使用方式! 我们的 cron 任务(如本报告的 cron)不再会意外收到 HEARTBEAT.md 提示,行为更纯净可预期。这是一个重要的正确性修复。

🧪 [test] Heartbeat 提示触发覆盖 (`9f86314`)

模块: tests/agents

作者: Protocol-zero-0

补充测试,文档化 default-agent heartbeat 提示对 memory 触发和无触发器运行仍然适用,而 cron 被排除在外的行为规范。测试由 Cursor 辅助编写。

🎨 [style/fix] Agent 文件预览 & 使用量弹窗优化 (`da5b7ff`)

模块: ui/agent-context

作者: Val Alexander (@BunsDev)

PR: #53382

UI 细节打磨:

影响: UI 更易用,文件路径可直接点击导航。

🔧 [fix] Model Provider 解析 — 从 Catalog 而非缓存 Session (`be20eeb`)

模块: ui/app-render, slash-command-executor

作者: HCL

核心 Bug: 切换模型时,UI 使用 session 的旧 modelProvider 来拼接模型 ID,比如用了 zai/deepseek-chat 而正确应该是 deepseek/deepseek-chat,导致「model not allowed」错误。

修复: resolveModelOverrideValue()resolveDefaultModelValue()/model slash command 的 3 处调用点均改为通过 model catalog 查找正确 provider,旧 session provider 作为兜底。

影响: 多 provider 环境(混用 deepseek/zai/openai 等)下切换模型不再报错。Co-authored by Claude Opus 4.6 🤖

🔧 [fix] Config Clobber 取证 (`5ab3782`)

模块: core/config

作者: steipete

添加了 config 被覆盖时的 forensic 日志,便于诊断配置文件神秘被重写的问题。背景应该是 PR #53382 发现的配置覆盖竞态条件。

影响: 诊断能力提升,对日常使用无感知影响。

🔧 [fix] Doctor 命令三连修 (`67c7f98` + `d8aada9` + `3359dcf`)

模块: cli/doctor

作者: giulio-leone

三个 doctor 命令相关修复(Copilot 协助):

1. 跳过更新期间的服务配置修复openclaw update 时不应该触发 service config 修复,避免干扰更新流程

2. 保留 no-restart 标志:doctor fix 时不应重置 no-restart 选项

3. 非交互模式下 --fix 正常工作openclaw doctor --fix --non-interactive 现在能自动接受推荐修复(entrypoint drift 等),不再卡住等待用户输入

影响: 服务器/CI 环境下自动更新更可靠,不会因 doctor 流程卡住。

架构观察

1. Teams 扩展成熟化:两个 Teams 相关的大 PR 表明微软 Teams 是 OpenClaw 的重点商业拓展方向,正在向 enterprise-grade AI agent UX 对齐。

2. Cron/Heartbeat 机制细化:heartbeat 提示注入逻辑被精细化管理,区分了 cron/memory/triggerless 三种场景。这是 cron 机制逐渐成熟的信号——之前的 "一刀切" 注入策略被替换为更精准的上下文感知注入。

3. 社区贡献活跃:本期 11 个 commits 来自 5+ 个不同贡献者(SidU, Protocol-zero-0, BunsDev, HCL, giulio-leone),steipete 主导 code review。说明项目进入良性社区协作阶段。

4. AI 辅助开发普及:多个 commit 标注 Co-authored-by: Claude Opus 4.6Made-with: Cursor,OpenClaw 自己在吃自己的狗粮。

对我们的影响

变更影响级别行动建议
Cron heartbeat 提示抑制⭐⭐⭐ 高无需任何修改,行为自动改善。我们的 cron 任务现在不再会意外接收到 HEARTBEAT.md 内容
Model provider 解析修复⭐⭐ 中如果你在用多个 provider(deepseek + 其他),升级后切换模型不再报错
Doctor 非交互修复⭐⭐ 中如果有自动化更新脚本用到 `openclaw doctor --fix`,升级后会更可靠
UI 改进⭐ 低纯 UI 优化,无需关注
Teams 扩展升级⭐ 低我们未使用 Teams,暂不影响

建议: 尽快运行 openclaw update 获取 cron heartbeat 修复。

原始 Commits

SHA时间作者描述
[cd90130](https://github.com/openclaw/openclaw/commit/cd90130877f1817e2e76459370ff643861b098c9)2026-03-24T05:03ZSidUmsteams: implement Teams AI agent UX best practices (#51808)
[ea62655](https://github.com/openclaw/openclaw/commit/ea62655e193d18b19c524f1c26a7391aecf2e6ce)2026-03-24T04:53Zsteipetefix: land cron heartbeat prompt suppression (#53152)
[9f86314](https://github.com/openclaw/openclaw/commit/9f863140d567a2340488e77f10821f768080e582)2026-03-23T21:06ZProtocol-zero-0test(agents): cover additional heartbeat prompt triggers
[9d21be4](https://github.com/openclaw/openclaw/commit/9d21be419336c1d679ab33d95027d36b6206ff66)2026-03-23T20:40ZProtocol-zero-0fix(agents): suppress heartbeat prompt for cron-triggered embedded runs
[da5b7ff](https://github.com/openclaw/openclaw/commit/da5b7ff0afaf47d23a7ac76f86761e60f1a2f645)2026-03-24T04:55ZBunsDevstyle(ui): polish agent file preview and usage popovers (#53382)
[be20eeb](https://github.com/openclaw/openclaw/commit/be20eebc21692ac9e1113a0104af8e2ad70cbeae)2026-03-23T23:05Zhclsysfix(ui): resolve model provider from catalog instead of stale session default
[5ab3782](https://github.com/openclaw/openclaw/commit/5ab378221582a793428efd39ed37a33b32227dd5)2026-03-24T04:49Zsteipetefix: add config clobber forensics
[67c7f98](https://github.com/openclaw/openclaw/commit/67c7f98c328bbf5d8cf58e6ab523e9ad7061b059)2026-03-24T03:54Zgiulio-leonefix(doctor): skip service config repairs during updates
[d8aada9](https://github.com/openclaw/openclaw/commit/d8aada9d4516dc865e2e6a5bec6a2010552882b6)2026-03-23T22:45Zgiulio-leonePreserve no-restart during update doctor fixes
[3359dcf](https://github.com/openclaw/openclaw/commit/3359dcfdcf174a67551e248ea3805e9f3087f2fa)2026-03-23T22:15Zgiulio-leonefix(doctor): honor --fix in non-interactive mode
[6e97001](https://github.com/openclaw/openclaw/commit/6e970010f77ba6bb7175bfc6c939db5abb8eaeb1)2026-03-24T04:42Zsudie-codesmsteams: add message edit and delete support (#49925)