← 返回更新日志

OpenClaw v2026.1.10

2026-01-11 · GitHub 原文
### 亮点 - 命令行界面:`clawdbot status` 现改为表格形式,并显示操作系统/更新/网关/守护进程/代理/会话信息;`status --all` 会添加一份完整的只读调试报告(表格、日志尾部、Tailscale 摘要以及通过 OSC-9 + 旋转光标显示的扫描进度)。 - 命令行后端:增加了带有断点续传支持(文本输出)和用于新运行的 JSONL 解析功能的 Codex CLI 备用方案,以及一个实时的 CLI 续传探测功能。 - 命令行界面:增加了 `clawdbot update`(相对安全的 git checkout 更新)以及 `--update` 简写形式。(#673)——感谢 @fm1randa。 - 网关:增加了兼容 OpenAI 的 `/v1/chat/completions` HTTP 端点(认证、SSE 流式传输、按代理路由)。(#680)——感谢 @steipete。 ### 变更 - 入门引导/模型:增加了对 Z.AI (GLM) 的一等认证支持(`zai-api-key`)以及 `--zai-api-key` 标志。 - 命令行界面/入门引导:在配置/引导过程中增加了 OpenRouter API 密钥认证选项。(#703)——感谢 @mteam88。 - 代理:在区块回复之间增加了模拟人工延迟的节奏(模式:关闭/自然/自定义,可按代理配置)。(#446)——感谢 @tony-freedomology。 - 代理/浏览器:增加了 `browser.target`(沙箱/主机/自定义),通过 `agents.defaults.sandbox.browser.allowHostControl` 进行沙箱主机控制门控,为自定义控制 URL/主机/端口设置了允许列表,并扩展了浏览器工具文档(远程控制、配置文件、内部机制)。 - 入门引导/模型:在入门引导和配置中增加了基于目录的默认模型选择器。(#611)——感谢 @jonasjancarik。 - 代理/OpenCode Zen:更新了备用模型和默认设置,保留了旧的别名映射。(#669)——感谢 @magimetal。 - 提供商:统一了各提供商的群组历史上下文包装器,支持按提供商/按账户覆盖 `historyLimit`(回退到 `messages.groupChat.historyLimit`)。设置为 `0` 以禁用。(#672)——感谢 @steipete。 - 网关/心跳:可选择性地传递心跳的 `Reasoning:` 输出(`agents.defaults.heartbeat.includeReasoning`)。(#690) - Docker:在 `docker-setup.sh` 中允许可选的主目录卷和额外的绑定挂载。(#679)——感谢 @gabriel-trigo。 ### 修复 - 命令行界面/状态:将表格扩展至终端全宽;澄清了提供商设置与运行时警告的区别;更详细的提供商信息;在 `status` 中显示令牌预览,同时保持 `status --all` 的编辑版本;添加了故障排除链接页脚;保持日志尾部可粘贴;在可到达时显示所使用的网关认证;展示提供商运行时错误(Signal/iMessage/Slack);强化 `tailscale status --json` 的解析;使 `status --all` 的扫描进度确定化;并将页脚替换为三行的“后续步骤”建议(分享/调试/探测)。 - 命令行界面/网关:澄清 `clawdbot gateway status` 报告的是 RPC 健康状态(连接 + RPC),并分别显示 RPC 故障和连接故障。 - 命令行界面/更新:根据标准输出是否为 TTY 来控制进度旋转光标的显示,并对齐清理检查步骤的标签。(#701)——感谢 @bjesuiter。 - Telegram:增加了 `/whoami` 和 `/id` 命令以显示发送者 ID 用于允许列表;在 `allowFrom` 提示中允许使用 `@用户名` 和带前缀的 ID(带有稳定性警告)。 - 控制界面:停止自动写入 `telegram.groups["*"]`,并在启用通配符群组前发出警告/要求确认。 - WhatsApp:仅对已处理的消息发送确认反应,并忽略旧的 `messages.ackReaction`(doctor 会将其复制到 `whatsapp.ackReaction`)。(#629)——感谢 @pasogott。 - 沙箱/技能:将技能镜像到沙箱工作区作为只读挂载,以便 `SKILL.md` 保持可访问。 - 终端/表格:支持 ANSI 安全换行,防止表格截断或颜色丢失;增加了回归测试覆盖。 - Docker:允许在构建镜像时安装可选的 apt 软件包,并记录了该构建参数。(#697)——感谢 @gabriel-trigo。 - 网关/心跳:即使主心跳回复是 `HEARTBEAT_OK`,也传递推理内容。(#694)——感谢 @antons。 - macOS:在签名重启时清除未签名的 launchd 覆盖设置,并在设置了仅附加/禁用标记时通过 doctor 发出警告。(#695)——感谢 @jeffersonwarrior。 - 代理:强制执行单写入者会话锁,并丢弃孤立的工具结果,以防止工具调用 ID 失败(适用于 MiniMax/Anthropic 兼容 API)。 - 文档:将 `clawdbot status` 作为首要诊断步骤,澄清 `status --deep` 的行为,并记录了 `/whoami` 和 `/id`。 - 文档/测试:澄清了实时工具和图像探测的方法,以及如何列出可测试的 `提供商/模型` ID。 - 测试/实时:使网关的 bash+读取探测能够适应不同提供商的格式,同时仍能验证真实的工具调用。 - WhatsApp:使用 authDir 反向映射检测群组中的 @lid 提及,并为提及门控解析自己的 JID E.164。(#692)——感谢 @peschee。 - 网关/认证:在入门引导期间默认在环回地址上使用令牌认证,增加了 doctor 令牌生成流程,并将音频转录配置收紧为仅限 Whisper。 - 提供商:跨提供商对入站消息进行去重,以避免因重新投递或重连导致重复的 LLM 运行。(#689)——感谢 @adam91holt。 - 代理:从隐藏的推理输出中剥离 `<thought>`/`<antthinking>` 标签,并在测试中覆盖标签变体。(#688)——感谢 @theglove44。 - macOS:将模型选择器的选择保存为标准化的提供商/模型 ID,并使手动输入保持一致。(#683)——感谢 @benithors。 - 代理:将“使用限制”错误识别为故障转移的速率限制。(#687)——感谢 @evalexpr。 - 命令行界面:在跳过守护进程重启时避免显示成功消息。(#685)——感谢 @carlulsoe。 - 命令:默认禁用 `/config` 和 `/debug`;通过 `commands.config`/`commands.debug` 进行门控,并从原生注册/帮助输出中隐藏。 - 代理/系统:澄清子代理仍处于沙箱中,不能使用提升的主机访问权限。 - 网关:默认禁用兼容 OpenAI 的 `/v1/chat/completions` 端点;通过 `gateway.http.endpoints.chatCompletions.enabled=true` 启用。 - macOS:稳定桥接隧道,在断开连接时保护调用发送者,并清空标准输出/标准错误以避免死锁。(#676)——感谢 @ngutman。 - 代理/系统:在系统提示中澄清沙箱运行时环境,并在沙箱化时提示提升权限的可用性。 - 自动回复:优先使用 `RawBody` 进行命令/指令解析(WhatsApp + Discord),并防止备用运行干扰并发的会话更新。(#643)——感谢 @mcinteerj。 - WhatsApp:通过保留历史记录中的消息 ID 和发送者 JID 来修复群组反应;在对外反应中将参与者电话号码标准化为 JID。(#640)——感谢 @mcinteerj。 - WhatsApp:向模型公开群组参与者 ID,以便反应能够针对正确的发送者。 - Cron:`wakeMode: "now"` 会等待心跳完成(并在主通道繁忙时重试)。(#666)——感谢 @roshanasingh4。 - 代理/OpenAI:修复了仅工具调用的响应 → 后续回合的处理(避免独立的 `reasoning` 项触发 400 “required following item”错误),并在仅工具调用回合的响应/Codex 响应历史中重播推理项。 - 沙箱:增加了 `clawdbot sandbox explain`(有效的策略检查器 + 修复键);改进了“沙箱限制”工具策略/提升权限错误,提供了可操作的配置键路径;链接到文档。 - 钩子/Gmail:将 Tailscale 服务路径保持在 `/`,同时保留公共路径。(#668)——感谢 @antons。 - 钩子/Gmail:允许 Tailscale 目标 URL 保留内部服务路径。 - 认证:在刷新同步期间就地更新 Claude Code 钥匙串凭证;共享 JSON 文件辅助函数;增加 CLI 备用覆盖。 - 认证:限制外部 CLI 凭证同步频率(Claude/Codex),减少钥匙串读取,并在缓存凭证仍然有效时跳过同步。 - 命令行界面:`clawdbot status` 和 `clawdbot sessions` 命令现在遵循 `CLAWDBOT_STATE_DIR` 环境变量。 - 命令行界面:`clawdbot sessions` 现在在表格输出中包含 `elev:*` 和 `usage:*` 标志。 - 命令行界面/配对:为 `pairing list|approve` 接受位置参数形式的提供商(兼容 npm-run);更新文档/机器人提示。 - 品牌:将面向用户的 “ClawdBot”/“CLAWDBOT” 统一为标准大小写 “Clawdbot”(命令行界面、状态、文档)。 - 自动回复:修复了原生 `/model` 命令无法更新实际聊天会话的问题(Telegram/Slack/Discord)。(#646) - Doctor:在 git 安装情况下,提供首先运行 `clawdbot update` 的选项(使 doctor 输出与最新版本保持一致)。 - Doctor:当安装目录为 `~/clawdbot` 时,避免错误的旧工作区警告。(#660) - iMessage:修复了跨私信的推理持久性问题;在启用推理时避免部分/重复回复。(#655)——感谢 @antons。 - 模型/认证:允许 MiniMax API 配置在没有 `models.providers.minimax.apiKey` 的情况下工作(使用认证配置文件或 `MINIMAX_API_KEY` 环境变量)。(#656)——感谢 @mneves75。 - 代理:避免在消息工具发送时产生重复回复。(#659)——感谢 @mickahouan。 - 代理:强化了 Cloud Code Assist 工具 ID 的清理工作(toolUse/toolCall/toolResult),并清除了多余的 JSON Schema 约束。(#665)——感谢 @sebslight。 - 代理:在上下文构建时清理工具结果和 Cloud Code Assist 工具 ID(防止在运行中途因严格的提供商要求而被拒绝请求)。 - 代理/工具:解析相对于工作区的读/写/编辑路径;使 bash 的默认当前目录与工作区对齐。(#642)——感谢 @mukhtharcm。 - Discord:在代理会话上下文中包含转发的消息快照。(#667)——感谢 @rubyrunsstuff。 - Telegram:增加了 `telegram.draftChunk` 以调整 `streamMode: "block"` 时的草稿流式传输分块大小。(#667)——感谢 @rubyrunsstuff。 - 测试/代理:增加了对工作区工具路径解析和 bash 默认当前目录的回归测试覆盖。 - iOS/Android:启用更严格的并发/代码检查;修复了 Swift 6 严格并发问题以及 Android 代码检查错误(ExifInterface,过时的 SDK 检查)。(#662)——感谢 @KristijanJovanovski。 - iOS/macOS:共享 `AsyncTimeout`,在连接时需要显式提供 `bridgeStableID`,并强化工具显示默认设置(避免回退到缺少资源的标签)。 - Telegram:序列化媒体组处理,以避免在高负载下丢失相册。 - Signal:处理 `dataMessage.reaction` 事件(signal-cli SSE),以避免错误的附件错误。(#637)——感谢 @neist。 - 文档:增加了 ParentPay、R2 Upload、iOS TestFlight 和 Oura Health 的展示条目。(#650)——感谢 @henrino3。 - 代理:通过在整个历史记录中丢弃重复的工具结果来修复会话记录(在重试后解除了 Anthropic 兼容 API 的阻塞)。 - 测试/实时:在模型运行之间重置网关会话,以避免跨提供商的记录不兼容问题(特别是 OpenAI Responses 的推理重放规则)。