跳到主要内容

Reasonix Desktop v1.11.0 发布 —— 代码库自动建索引,MCP 启动不再偷懒

· 阅读需 4 分钟

Reasonix Desktop v1.11.0 封面

💡 核心更新:codebase-memory MCP 自动索引、SessionAPI 架构重构、MCP lazy 模式移除、工具调用预算用尽时有宽限轮次、/reload-cmd 热加载、会话级 todo 持久化。

codebase-memory MCP 自动索引

之前 codebase-memory MCP 要手动触发索引,新开一个项目得记着跑一遍。现在不用了——MCP 会在后台自动扫描代码库结构建索引,Agent 问"这个函数在哪调用"的时候直接命中。

这个改动不大,但实用。每次换项目不用再想着初始化那一步了(#4951)。

SessionAPI 重构——不只为今天

v1.11.0 有一半 PR 是在拆代码:goal FSM 抽成独立的 goalMachine、approval/ask 抽成 approvalManager、store 包管 session sidecar 布局、再定义一个 SessionAPI 端口把所有端(bot、serve、acp、CLI TUI、App)统一接到同一套接口上(#4918, #4922, #4928, #4931, #4932, #4935, #4939)。

对用户来说,这波重构短期内看不到什么直接变化。但把所有入口统一到 SessionAPI 之后,后面加新功能就不用每个端改一遍了——移动端、Web UI、或者新的集成入口,接入成本会低很多。

MCP 不再 lazy

MCP lazy 启动模式被移除了(#4961)。之前 MCP 工具在需要的时候才启动,省了一点资源,但也带来了"第一次调 MCP 工具要等几秒"的延迟。现在启动就全加载,响应更快,代价是多占一些内存。

如果你之前依赖 lazy 模式节省资源,这是唯一需要留意的地方。

工具调用预算用尽有宽限

Agent 调工具设了 max_tokenstoken_budget 的话,之前超了就立即停,有时候刚好卡在关键步骤上。现在加了一个宽限轮次(grace round),预算用尽后 Agent 还能再跑一轮,至少能输出计算结果再停。不会因为超预算就断在一个半截的推理里(#4869)。

/reload-cmd 命令

改了 custom slash 命令之后不用重启 App 了。/reload-cmd 直接热加载,slash 命令的定义改了马上生效。开发自己 slash 命令的时候省了反复重启的功夫(#5016)。

其他修复

  • 取消后任务可退出:之前点了取消,运行中的任务可能卡住退不出来。现在取消后确保能退出(#4975)
  • Agent 轮数上限全局化:Agent 的 max_steps 限制不再按每个 session 单独记,只按全局配置生效(#4979)
  • 会话级 todo 持久化:会话里的 todo 列表现在持久保存,清空会话也不会丢(#4959)
  • 模型切换按钮精简:桌面端模型切换的 UI 改小了,不挡界面(#5018)
  • PE 交接与规划路由修复:PE(Planning Executive)模块的交接和路由逻辑修了(#4938)
  • 桌面快捷键改进(#5005)
  • Windows 会话回收站修复:Windows 上删会话改用 copy+remove fallback,不再因为跨盘移动失败(#4999)
  • MiMo 内置引导移除:删掉了 MiMo 的内置引导提示(#4949)
  • Creation tool flow 视觉效果(#4974)

升级方式:

npm i -g reasonix
brew upgrade esengine/reasonix/reasonix
reasonix --version

完整更新日志:GitHub Release desktop-v1.11.0

📢 关注我,获取最新开源更新日志和开发者工具动态。

#Reasonix #DeepSeekReasonix #桌面端 #v1.11.0 #MCP #SessionAPI #AI编程工具 #开源 #AI写代码的小任 #LLM更新报告

Kilo Code v7.3.50 发布 —— 聊天区宽了 10 字符,Provider 错误不再挡住重试

· 阅读需 2 分钟

Kilo Code v7.3.50 封面

聊天区拓宽

从 88ch 拓宽到 98ch。对话、工具调用和 diff 有了更宽的空间,长行不再频繁换行。

Provider 错误不再挡住重试

之前 provider 报错后,Redo/重试按钮被错误信息挡住。现在错误信息折叠收起,重试控制始终可见

其他修补

BYOK 徽章:Kilo Gateway 模型中可用个人/组织 provider key 的会显示 BYOK 徽章

自定义 Provider 独立描述:自定义 Provider 的描述不再与 API 协议耦合

完成音效限定到父 Agent:子 Agent 完成时不再播放音效,减少干扰

并发 Subagent 更新不空白管理器:多个 Subagent 同时更新时,管理器页面不会白屏

工作树 hover 卡片加速:PR 详情的显示和消失更快速

Diff 编辑高亮保持标识符完整:行内 diff 高亮时,变量名不会被截断

其他扩展冲突兼容:其他 VS Code 扩展已注册面板命令时,Agent Manager 启动不再失败

升级方式:

#VS Code 扩展市场搜索 Kilo Code 更新
#或打开扩展面板搜索 kilocode

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#KiloCode #版本更新 #AI写代码的小任 #LLM更新报告

OpenCode v1.17.9 发布 —— 小版本里藏着大体验

· 阅读需 2 分钟

OpenCode v1.17.9 封面

Agent 走到步数上限直接挂掉。高配的 step limit 用来兜底,结果 Agent 到了限制也不说一声就停——没有结果、没有提示,开发者以为还在跑,实际卡死了。现在 Agent 到达步数上限时会生成一段完整的最终回复,把已经产出的结果带回来。

Devstral 模型登录不上。provider ID 的大小写不匹配,配置对了也报错。修复方案是把检测逻辑统一转小写,Devstral 模型现在能正常识别了。

自定义 Headers 传不过去。配了代理的团队在 Copilot 模型请求中丢了自定义头信息,认证链路断掉。现在这些头会正确附加到请求中,代理场景和自定义认证都能跑通。

GLM-5.2 加了 High/Max thinking 变体。之前 GLM-5.2 只有默认 thinking 强度,复杂推理场景不够用。现在支持的 provider 上能选 highmax 两个更高思考强度的变体了。

Prompt caching 终于能用了。一个隐蔽的 bug:每次用户发后续消息,系统都会包裹一条 steering reminder,导致 prompt cache 每一次都失效——长对话的 token 开销直线上升。现在后续消息不再包裹引导提示,prompt caching 可以正常工作了。算下来一个长对话可能省几倍的 token 开销,这种"小问题"在实际使用中比大 Bug 更耗钱。

TUI 后台子代理快捷键不再乱显示。某些 Server 根本不支持这个功能,但界面一直亮着快捷键——点了没反应,是视觉噪音。现在只有 Server 明确支持时才会显示。

升级方式

升级命令很简单:

opencode update # 已安装用户

首次安装则任选一种方式:

npm i -g opencode-ai@latest # npm
brew install anomalyco/tap/opencode # Homebrew

📢 关注我,获取最新开源更新日志和开发者工具动态。

#OpenCode #AI编程 #Agent工具链 #AI写代码的小任 #LLM更新报告

完整更新日志:GitHub Release

Claude Code v2.1.185 发布 —— 等了20秒,焦虑感少了一半

· 阅读需 3 分钟

Claude Code v2.1.185 封面

🕐 一行字的变迁

用过 Claude Code 的人,大概率见过这个场景:你给了一条指令,工具在执行,然后 API 那边卡了一下。终端浮出一行字:

"No response from API · Retrying in 10s…"

每次看到"No response",我的心都会咯噔一下。第一反应是"是不是 API 挂了?""网络断联了?"然后盯住那 10 秒倒计时。

这 10 秒经常还没走完,响应就回来了——屏幕上的提示还没消失,新结果已经涌了出来,留下那行字悬在那里。

今天早上的不同在于:那行字变成了 "Waiting for API response · will retry in 20s…"

措辞从"No response"变成了"Waiting for response",从"Retrying in"变成了"will retry in"。超时阈值从 10 秒翻倍到了 20 秒。

😰 10 秒的焦虑

仔细想,10 秒的窗口其实太紧了。模型推理、代码生成、工具执行——这些步骤叠在一起,偶尔跑超过 10 秒再正常不过。但提示器不关心这些,它只关心"10 秒没动静 = 出问题了"。

结果就是正常的等待时间里,你被强行拉进"故障预警"的心理状态。"No response"在传递出错信号,"Retrying"暗示刚刚失败了。我从"等结果"变成了"查我是不是哪里搞错了"。

20 秒的窗口要合理得多。大多数正常调用能在这个时间内返回,误触率会显著下降。当你真的看到提示时,它是确实该被注意了——而不是十次有八次在误报。

🔄 从"故障"到"等待"

这次改动最微妙的地方是措辞转向。"No response from API"在陈述一个负面事实——API 没回你。而"Waiting for API response"在描述一个中性状态——正在等它回你。前者传递出错,后者只是通知。

"Retrying in"暗示"刚才试了但失败了,再来一次"。"will retry in"传递的是"再等一下,我回头再问"。语言基调从"故障恢复流程"变成了"正常重试机制"。

别小看这种细节。日常使用中你可能每天看到这个提示十几次。每次微小的情绪消耗累积起来,就是使用疲劳感。

✨ 小改动,大不同

这次 v2.1.185 只有这一处改动,连 PR 编号都没有单独列出。团队在打磨的不是功能,是手感——你跟工具之间那种交互节奏。

20 秒和 10 秒只差 10 秒,但体验差了一个档次。

如果你还没升级,推荐试试:

curl -fsSL https://claude.ai/install.sh | bash # macOS/Linux
brew install --cask claude-code # macOS/Linux(Homebrew)
irm https://claude.ai/install.ps1 | iex # Windows
winget install Anthropic.ClaudeCode # Windows(WinGet)

Claude Code 也内置了 claude update 命令一键升级。

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#ClaudeCode #版本更新 #AI写代码的小任 #LLM更新报告

Oh My Pi v16.1.10 发布 —— JSON 解析器自研重写,流式输出丢失和 WebSocket 串帧全修了

· 阅读需 5 分钟

Oh My Pi v16.1.10 封面

自研 JSON 解析器:RelaxedJson 替换 partial-json

之前 pi-ai 用 partial-json 处理 LLM 返回的 JSON。问题是 LLM 输出的 JSON 几乎没有严格按照规范写过——单引号字符串、尾随逗号、Python 的 True/False/None、行内和块注释、原始控制字符、无效的 escape 序列,哪个模型都能偶尔吐一点。partial-json 处理不了就抛异常,用户除了重试别无选择。

v16.1.10 用自研的 RelaxedJson 完全替换了 partial-json。新解析器接受单引号字符串、未加引号的 object key、尾随和多余逗号、///* */ 注释、Python 布尔和 None 字面量、原始控制字符、无效 escape 和未转义的单引号——几乎覆盖了 LLM 会输出的所有 JSON 变体。最终解析仍在截断或乱码输入上正确报错,也拒绝 JS 独有的 NaN/Infinity。一句话:只要 LLM 吐的是人能看懂的东西,RelaxedJson 就能吃进去。partial-json 依赖已从项目中移除。

Tool-call ID 修复链——Anthropic 模型的工具调用 ID 规范化、Anthropic Messages 回放中工具调用 ID 的清洗、以及 transformMessages 把孤立工具结果拉到重用 ID 上的问题。三个修复贯穿了同一根根因:ID 的生成、传递和清洗链路上各有各的位置瑕疵,现在全链路对齐了。

Codex WebSocket 串帧:回连不再张冠李戴

Codex Responses WebSocket transport 藏了一个烦人的 bug:当你复用 WebSocket 连接发出新一轮请求时,服务端返回的数据帧可能被错误地分配到上一轮的输出里。终端上看到的就是"输出串了"——明明是新 prompt 的回答,显示的却是前一个问题的尾巴。

根因在于 WebSocket 连接上消息帧的归属判断逻辑不够严谨,复用连接时上下文切换标记丢失。修复后每一帧输出都能正确关联到当前轮的请求,连接复用不再是风险。

pi-coding-agent:ARIA 工具上线,write 和 find 不再隐身

编码 agent 包在这个版本拿到了两个新能力。

tab.ariaSnapshot(selector?) 按 Playwright 格式输出 ARIA 树 YAML——做浏览器自动化的场景下,你可以直接拿到页面的无障碍结构树,比翻 DOM 更直观。配合新增的 tab.ref("e5")aria-ref=e5 选择器,实现了基于 ARIA 引用的快速元素定位。写自动化脚本时不用再抠 CSS 选择器,标一个 ref 就能精准命中。

还有一个重要的行为变更:writefind 工具现在被标记为 essential,在 tools.discoveryMode === "all" 模式下不会被过滤掉。之前有些场景下这两个工具在发现模式中凭空消失,agent 想写文件却找不到 write 工具,现在这个问题不存在了。流式工具调用预览在工具完成后卡在占位符 body 上的问题也已修复。

pi-tui:流式输出不再消失在滚动缓冲区

pi-tui 的终端输出有一个隐蔽的 bug:当内容溢出视口后,commit-unstable "barrier" 区块之下的流式输出会被原生滚动缓冲区吞掉。你看到的景象是——能往回滚动看到之前的历史内容,但最新输出的"尾巴"凭空消失了。

修复后的行为:所有流式输出都正确保留在原生滚动缓冲区中,无论视口是否溢出、无论 barrier 块的位置在哪。对于重度终端用户来说,这是一个显著改善体验的修复——终于可以在 TUI 里放心滚回去查之前的输出了。

agent-core:Label 中断不再留下残损工具调用

Labelled user interrupts(带标签的用户中断)在触发时有一个边缘情况:如果当前正在流式接收工具调用,而流尚未发送 toolcall_end 标记,中断后的回放会残留一段不完整的工具调用 ID。这些残损 ID 在重放时导致匹配失败或解析异常。

修复逻辑很直接——中断发生时清除未完成的流式工具调用段,确保进入回放状态时所有工具调用都是完整可用的。

分级与细节修复

DashScope 429 限流分类修复:之前阿里云 DashScope 返回 429 限流错误时,被归类为凭据失败,导致客户端误认为 API Key 无效而将其标记为失效。现在 429 被正确识别为限流,不会触发 Key 失效逻辑。

OpenCode Go 401 配额错误分类修复:OpenCode Go 返回的 401 Insufficient balance 之前被当作未知错误处理。现在归类为 usage-limit 错误,余额不足时会触发合理的重试或降级策略。

升级方式

curl -fsSL https://omp.sh/install | sh # macOS/Linux
npm install -g @oh-my-pi/pi-coding-agent # or bun install -g @oh-my-pi/pi-coding-agent
brew install can1357/tap/omp # Homebrew

📢 关注我,获取最新开源更新日志和开发者工具动态。

#OhMyPi #版本更新 #AI写代码的小任 #LLM更新报告

Oh My Pi v16.1.8 发布 —— 思考脉冲升级,Prose Only Thinking 上线

· 阅读需 6 分钟

Oh My Pi v16.1.8 封面

🔦 Prose Only Thinking —— 思考中的代码终于可以隐身了

用 omp 写代码的人应该都有这个体验:模型在想问题的时候,思考轨迹里经常夹杂大量代码块的草稿、残缺片段、甚至完全跑偏的试错。在开发者眼里这是噪音,在你只想看推理脉络的时候尤其让人分心。

v16.1.8 的 Prose Only Thinking 设置干脆地解决了这件事——AI 思考轨迹渲染时把代码块全部隐藏,只保留纯文字的推理过程。这个开关一开,思考阶段的阅读压力直接降一个量级。

这个功能的价值不在于"隐藏"本身,而在于它承认了两种阅读模式的存在:debug 时需要看到所有代码草稿,但回顾意图脉络时只需要文字。一个设置解决两种场景,比手动过滤优雅得多。

⚡ 思考脉冲升级 —— 每秒 token 数实时可见

Oh My Pi 团队在 TUI(Terminal User Interface,终端用户界面)细节上一向愿意花心思。这次他们把思考脉冲动画改成了更快的星爆旋转,同时在脉冲旁边加了一个 tokens/秒 的实时速率显示

乍看是装饰性改动,实际用起来感受完全不同。之前你只知道"它在想",现在你能看到它想得有多快。习惯盯着 terminal 等结果的人,看到 50t/s 和 15t/s 时,对远端服务器负载的判断是完全不同的。这个数字让等待变成了另一种信息。

如果说 Prose Only Thinking 是用户体验层面的认真,那这个脉冲升级就是 omp 开发者趣味的外露。geek,但意外地实用。

🛠️ Auto-compaction 修复 —— 藏得最深也最痛的 bug

这次有一个修复值得所有用户关注。compactionContextTokens(…) 现在会取 provider 报告的 token 数和本地估算的 conversation 大小的较低值来做 compaction 决策。

翻译成白话:之前如果你用了 payload 变换(比如某些 provider 的请求压缩),provider 报告的 token 数会比真实历史小。系统基于这个缩小后的数字判断"还不到压缩时机",结果会话越长、越不做压缩、最终超限。这也是为什么有用户反馈"对话也没多长就爆了"。

这个 bug 沉默但致命——不影响单次推理,但会偷偷劣化长会话的稳定性。v16.1.8 修复后,不管 payload 怎么变换,compaction 决策都由本地的真实大小说了算。

🔧 其余值得关注的变化

协作协议升级(#3144)

协作者模块和通信层同步升到 COLLAB_PROTO=2,修复了大型协作 session 中 guest 端的假死问题。如果团队常用 /join 做多人协同,这个升级能明显减少掉线感。API(Application Programming Interface,应用程序接口)有 break,升级后所有参与者需要同步更新。

多 provider 修复集中落地

• Bedrock /btw 不再因之前遗留的工具调用失败(#3124)——这个 bug 影响所有在 Bedrock 上使用侧信道功能的用户

• Anthropic Messages 的 bad record MAC TLS 层间歇性故障被正确归入重试分类(#3134)——之前这些错误会在重试耗尽前直接冒出来,现在会等到预算用完才报错

• Fireworks 上托管 Qwen 模型因 enable_thinking 字段报 400 的问题已修复(#2864)——Fireworks/Qwen 用户之前根本没法用 thinking 模式

• openai-codex-responses 现在正确转发 sampling 控制参数到 Codex 请求体(#3117)——之前温度、top_p 等控制参数传不过去,Codex 用户等于一直在用默认采样

• MiMo 模型在 OpenAI 兼容网关只暴露被接受的 reasoning tiers(#2864)——避免选到一个不可用的 tier 然后跑不起来

TUI 细节打磨

slash 命令加了动态描述挂钩,自动补全时可以预览每个命令的实时状态。/btw 完成后出现复制按钮,已完成的问题可直接拷贝。部分 slash 命令支持上箭头召回之前输入过的文本。

临时模型选择器(Alt+P)的选型现在会标记为 session-only(#2952)。默认 advisor 中断冷却改为 3 turns,默认 auto-compaction 策略改为 snapcompact。

Mnemopi 稳定性加固

嵌入输入长度做了截断,修复了主动链接设置的溢出问题(#3126, #2440)。如果开了 mnemopi 的长记忆功能,这个修复直接影响 recall 的可靠性。自动前置链接也不会再撑爆 embedding 上下文窗口。

零散但值得注意的修复

read 命令对宽 SQLite 表的分列修复(#3107)——读宽表不再串列

internal://local://skill:// 等 URL 目录路由标记修复(#3116)

resume 选择器不再锁定到当前文件夹(#3099)——跨目录恢复会话方便了

/todo export 路径处理修复

/goal 连续 turn 跳过 compaction 的 bug(#3146)

• 首次 turn 的 recall 不再破坏 append-only 缓存(#3111)

• 侧信道 turn 正确混淆 secrets 和 tools,不再污染 prompt 缓存

• local tiny-model 推理失败修复(#3132)

破坏性变更提醒

三个子包将部分函数改为异步返回。pi-agent-coretransformProviderContextbuildSideRequestContext 变为 Promise 返回。pi-nativesrenderSnapcompactPngsnapcompactrender/renderMany 同样如此。如果自己的扩展或脚本依赖了这些函数,需要对应加上 await。

🚀 升级方式

macOS / Linux

curl -fsSL https://omp.sh/install | sh

Homebrew

brew install can1357/tap/omp

Bun(推荐)

bun install -g @oh-my-pi/pi-coding-agent

Windows(PowerShell)

irm https://omp.sh/install.ps1 | iex

Pinned versions(mise)

mise use -g github:can1357/oh-my-pi

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#OhMyPi #版本更新 #AI写代码的小任 #LLM更新报告

oh-my-pi v16.1.9 发布 —— Moonshot 回城、LSP 不再卡死

· 阅读需 3 分钟

oh-my-pi v16.1.9 封面

Moonshot 双通道打通

此前 oh-my-pi 的 Moonshot provider 硬编码了国际站 api.moonshot.ai,中国区用户没法走 Kimi 国内平台。现在新增 MOONSHOT_BASE_URL 环境变量覆盖,设成 api.moonshot.cn 就能走国内线路。KIMI_API_KEY 也作为 MOONSHOT_API_KEY 的 fallback 生效,手上有什么 key 都能直接用。对依赖 Kimi 模型的国内开发者来说,这是个不用折腾代理的省心更新。

LSP 懒加载不再假死

基于 pyright 等懒初始化 LSP 服务器的用户应该遇到过:第一次请求发出去就卡住不动了。原因是消息读取器先按 id 匹配响应,再检查 method——如果服务端主动发起的 workspace/configuration 请求的 id 恰好和当前 in-flight 请求撞上了,这条消息就被当作响应吞掉,订阅方永远等不到回复。现在消息路由逻辑改成优先按 method 派发,有 method 的先当服务端请求处理。gopls、rust-analyzer 等同样走懒加载的 LSP 都受益。这个 bug 藏得深,修得漂亮。

其他更新一览

🔴 llama.cpp 加入交互式 /login 提供商列表——API key 可选,默认走本地无认证模式

🔴 AI 工具 schema 优化——冗长的 anyOf 联合类型折叠为标准 enum,减少 token 消耗

🔴 修复 tool-call 参数校验中双层编码 key 的问题(比如 {""op"": "done"} 嵌套 JSON key)

🔴 移除 Wafer Pass 登录支持(Wafer Serverless 保留)

🔴 移除调试路径工具函数——PI_REQ_DEBUG 环境变量成为唯一录制机制

🔴 浏览器隐匿增强——抑制自动化标志、修补属性描述符、增强 WebGL/Worker/IFrame/Screen/Audio 隐匿

🔴 修复 omp list / omp remove 静默启动交互式会话的问题

🔴 修复 /mcp enable 和 /mcp disable 重连无关 MCP 服务器的问题

🔴 新增 /dump 导出 LLM 请求 JSON 功能

🔴 停止将本地 llama.cpp 无认证登录占位符作为 discovery bearer token 发送

升级方式

curl -fsSL https://omp.sh/install | sh # macOS/Linux
brew install can1357/tap/omp # Homebrew
bun install -g @oh-my-pi/pi-coding-agent # Bun

📢 关注我,获取最新开源更新日志和开发者工具动态。

#oh-my-pi #AI编程 #开发者工具 #AI写代码的小任 #LLM更新报告

完整更新日志:GitHub Release

Cline CLI v3.0.29 发布 —— 免费模型不显示费用,模型选择器回到熟悉的样子

· 阅读需 2 分钟

Cline CLI v3.0.29 封面

免费模型的费用显示,去掉了

Cline 有免费的模型额度,通过 Cline Provider 提供。但 v3.0.28 之前,免费模型后面也会挂一个费用数字——你明明用免费额度,界面却在显示花了多少钱。

这个版本把免费模型的费用显示隐藏了。改动极小,一行逻辑判断的事,但对免费用户来说界面干净了很多。不需要再看一个跟自己无关的数字。

Z.ai 模型元数据解析修复

Z.ai 的模型通过 Cline Provider 访问时,元数据解析会失败。具体表现就是选不了——模型名字在列表里但点上去没反应。这个版本修了,跟 Cline Provider 的路由层有关。

模型选择器回滚:v3.0.28 那个改动,用户不买账

v3.0.28 做了一个改动:模型选择器、模型选择下拉、状态栏都改成只显示模型名,不加 provider 前缀或其他标识。目的是简洁,但被用户反馈打回来了。

习惯是一件很奇怪的事。用户已经习惯看到 claude-sonnet-4 而不是光秃秃的 Sonnet,习惯状态栏显示当前是 Anthropic 还是 OpenRouter。v3.0.28 把所有这些标识全抹了,用户需要额外点一下才知道当前用的什么模型。

v3.0.29 回滚了这个改动。模型选择器、selector、状态栏都回到了 v3.0.27 的样子。

这不是一个技术问题——是个"你改了用户习惯了的东西"的问题。任何工具的每次 UI 变化都在消耗用户已经建立的肌肉记忆,消耗到了就该认。

升级

npm install -g cline

已安装用户直接:

cline update
#或
npm update -g cline

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#Cline #CLI #模型选择器 #AI写代码的小任 #LLM更新报告

CodeWhale v0.8.63 发布 —— 子智能体并发全链路加固,per-worker Token 预算落地

· 阅读需 6 分钟

CodeWhale v0.8.63 封面

子智能体并发:从"能跑"到"可控"

子智能体的并发问题在之前版本里一直处于"能跑就行"的状态。高扇出 Workflow 一旦启动,瞬间拉起几十甚至上百个子 agent——调度器没炸全靠运气。v0.8.63 用两个参数终结了这种不确定性。

[subagents] max_admitted——准入水位控制:之前的并发控制只限制了同时运行的 agent 数量(max_concurrent),但没有限制"排队中"的数量。高扇出场景下,大量的 agent 同时在队列中等待调度,内存和状态管理跟着膨胀。max_admitted 解决了这个问题——它定义了整个运行中能"存在"的子 agent 总数上限,包括正在运行的、正在入队排队的、以及正在排空的。超出上限的 agent 请求会被直接拒绝而非排队等待。这对于需要精确控制系统负载的场景是根本性的改进。

[subagents] token_budget——聚合 Token 天花板:之前 Token 限制只作用于单个 agent 调用。现在你可以给一个根 agent 及其所有子孙 agent 设定一个共享的 Token 预算池。根 agent 启动时分配一笔总额,所有子任务消耗的模型 Token 从同一个池子里扣除。池子耗尽后,整个 agent 子树停止工作。这对于在预算敏感的环境中使用 agent 来说是一道硬约束——不再依赖"模型应该收敛"的软性期望。

这两个参数配合使用,CodeWhale 的多 agent 并发模型从"尽力而为"变成了"严格受控"。

Per-worker Token 预算:每个子任务都有费用上限

如果说 [subagents] token_budget 是宏观预算控制,那么 #3321 引入的 per-worker Token 预算就是微观层面的精确制导。

之前你在单个 agent 调用上设置 max_tokens,它能约束这个调用的完成回合数,但无法在模型实际消耗 Token 的层面上施加限制。v0.8.63 的 token_budget / max_tokens 字段现在作用于单个 worker 的生命周期内——一旦该子 agent 累计的模型 Token 超过了设置的上限,它不会硬崩也不会无限等待,而是以 budget_exhausted 状态干净地停止,并带回已经产出的结果。

这意味着你可以给"快速探索型"子 agent 设置低预算、给"深度分析型"设置高预算,同时在根级别设置一个总额封顶。预算体系有了层级结构。

按 Provider 配置子智能体策略

不同 provider 的延迟、成本、并发特性差异巨大。之前所有 provider 共用一套子 agent 配置,DeepSeek 和 Claude 的调度参数一样——这显然不合理。

[subagents.providers.<provider>] 配置段允许你针对每个 provider 独立覆盖以下参数: • enabled——是否允许此 provider 启动子 agent

max_concurrent——该 provider 下的最大并行数

max_admitted——该 provider 下的最大准入数

launch_concurrency——该 provider 的启动并发(控制初始扇出速度)

max_depth——子 agent 嵌套深度

Token budget——该 provider 特有的预算上限

API 超时 & 心跳超时——provider 级别的通信超时

一个典型配置场景:Claude 子 agent 给高预算高并发,DeepSeek 给低预算低并发,本地模型关闭子 agent 功能。在同一个 Workflow 中混合使用不同 provider 的子 agent,现在每一条路线都有自己的行为规则。

子智能体监控与隔离

子 agent 一旦跑起来就"丢进黑箱"是之前版本的痛点。你不知道它在干嘛、卡在哪、能否取消它。v0.8.63 的 agent 工具新增三个运行时操作: • status——查询子 agent 的实时状态(running / waiting / completed / exhausted)

peek——查看子 agent 当前的中间输出(不等待完成)

cancel——终止一个正在运行的子 agent

配合 worktree: true 参数——为子 agent 创建独立的 git worktree 和分支——实现了完整的任务隔离。一个子 agent 的文件操作不会影响另一个 agent 的工作区。这对于需要并行修改同一仓库不同模块的场景非常有用。

修复与打磨

v0.8.63 的修复清单比功能清单长,这本身说明团队在稳定性上花的功夫。

模式与工具目录正确性修复:之前在某些边缘情况下,agent 选择的模式或工具与实际可用集不匹配。现在做了全链路的目录校准。

子智能体编排恢复:当子 agent 遇到 provider 临时超时(比如 API 限流瞬时飙升),之前直接失败。现在子 agent 会自动重试 transient 超时,大大降低了高并发场景下的偶发失败率。

DeepSeek 思考模式工具调用修复:启用推理时,显式传入 tool_choice 会导致 DeepSeek 返回异常。现在推理启用时自动省略 tool_choice,终于能在思考模式下正常使用工具了。

Config 显示脱敏:之前 codewhale config show 可能暴露 API key 等敏感信息。现在递归地 mask 配置输出中的所有密钥字段——有密文就不会明文输出。

任务侧边栏快捷方式和归属修复:Task 侧边栏的快捷键和 attribution 显示做了修正,多 agent 场景下哪个 agent 产生了哪条信息现在一目了然。

侧边栏默认恢复为 pinned:之前某次更新中侧边栏的默认状态变成了 unpinned,现在恢复为 pinned——打开 CodeWhale 就能看到侧边栏,不需要再手动固定一次。

JavaScript 执行代理环境变量处理改进:解决了一些环境中 child_process 继承环境变量时的兼容性问题。

遗留认证加固和非回环地址安全:Legacy app-server 的非回环访问路径做了安全加固,.deepseek 状态写入迁移和 Windows 状态子目录校验也一并修复了。

升级方式

codewhale update # 已安装用户(推荐)
npm install -g codewhale
cargo install codewhale-cli codewhale-tui --locked
docker pull ghcr.io/hmbown/codewhale:latest

完整更新日志:https://github.com/Hmbown/CodeWhale/releases/tag/v0.8.63

📢 关注我,获取最新开源更新日志和开发者工具动态。

#CodeWhale #版本更新 #AI写代码的小任 #LLM更新报告

Oh My Pi v16.1.5 发布 —— 工具参数不泄露 Schema 了,旧方法清理掉

· 阅读需 2 分钟

Oh My Pi v16.1.5 封面

工具参数不再偷渡 Schema 对象

v16.1.5 修了一个不容易注意但传出去就很尴尬的 bug:normalizeTools 的参数在 wire-encode 时没有统一处理。当工具的 intent 解析为 "omit" 时(比如内置的 evalresolve 工具),raw arktype/zod schema 对象会泄露到参数里

如果你在自己调 agent 的 tool 调试信息里看到过一堆奇怪的 schema 类型定义而不是干净的 JSON schema——就是这个 bug 导致的。修法就是把 normalizeTools 的所有分支统一 wire-encode,不挑工具类型下菜碟。

删了 nextToolChoice 旧入口

AgentSession 上之前有一个 nextToolChoice() 和一个 nextToolChoiceDirective() 两个方法,做的事情高度重叠。区别是 nextToolChoiceDirective() 会走完整的 hard-choice 出队 + active-tool 过滤流程,而 nextToolChoice() 只出队,跳过过滤。

v16.1.5 删了后者。per-turn tool-choice 指令全部走 nextToolChoiceDirective() 一条路径,不再给调用者留两个入口。这个清理本身不影响功能,但开发者如果直接调用 nextToolChoice() 做集成,需要改为 nextToolChoiceDirective()

升级

Oh My Pi 安装方式:

macOS / Linux:

curl -fsSL https://omp.sh/install | sh

Homebrew:

brew install can1357/tap/omp

Bun:

bun install -g @oh-my-pi/pi-coding-agent

mise:

mise use -g github:can1357/oh-my-pi

Windows(PowerShell):

irm https://omp.sh/install.ps1 | iex

完整更新日志:GitHub Release

📢 关注我,获取最新开源更新日志和开发者工具动态。

#OhMyPi #版本更新 #AI写代码的小任 #LLM更新报告