11 月 13 日 16:54 发了 v2.3.0 正式版(npm 推包时间,北京),latest 直接指向它。这版有两条改了默认值,不是加开关,是直接换了行为。
这次更新了什么
会话与子代理
- 子代理现在一律后台跑:调用立刻拿回 session ID,父会话接着干活,几个可以并行
- 每次空闲会往父会话回一份报告。自己后台的活还没结束时,报告标成「仍在跑」,等真正干完再发一份
- 会话是从别处 fork 出来的,agent 会知道
- 消息里的 session ID 能直接点开,桌面端也更好找和复制
终端界面
- TUI 把一轮里连着的工具调用和思考折成一条可展开的活动行
- 活动标签页能点开对应视图,shell 模式在新配色里有自己的提示符颜色
- 粘贴内容、撤销后的占位符、浏览历史后的草稿、小输入框的光标位置都修好了
桌面端
- 命令面板里多了 Jump to message,按
Cmd+Alt+G(Windows 和 Linux 是Ctrl+Alt+G)搜当前会话发过的提问并跳过去,没加载进时间线的旧提问也能搜到 - 实验性的 Recent 侧栏按跨服务器近期排,能置顶、重排,只收最近 7 天、最多 30 行,也能隐藏或静音
- Mermaid 图能放大后缩放拖动,
Alt+Enter把追问插到队列最前,Mod+Enter改下一条排队提问的方向 - 每个 server 的终端 shell 可以从自己的菜单里选,按住修饰键会显示标签快捷键数字
接口与扩展
- MCP 事件订阅有了实验支持,SDK 的事件订阅能收
experimental.mcp.event - 要求双向 TLS 的网关,provider 现在能带客户端证书,写在
settings.tls的cert、key和可选的passphrase里,值支持{file:}、{env:}写法 - 兼容模型支持 freeform tool input,加了 LM Studio 的 decision 模型
- 插件侧多了实验性的
session.fork钩子,@opencode/plugin/effect直接导出Tool,promise 工具可以通过ToolContext.signal协作停止 - Code Mode 里 file 和 skill 类工具返回更简单的结构化结果,把命名空间当工具调时会推荐它下面最多三个真工具
另有一批小修:本地模型发现(Ollama、LM Studio、vLLM)每个请求从等 1 秒改成 15 秒,远程或走隧道的端点才列得出模型,慢端点也不再拖住别的端点。shell 命令跨 server 交接不再丢输出,被中断时输出也留着。工具输出截断保留开头,tail 读取不再把整个文件读进内存。
少了那个开关,多了一份「还在跑」
以前前台是默认:父会话发起子代理后会一直等到它结束,想并行得显式打开后台选项。现在前台这一档整个没了,控制它的布尔选项连同返回值里的 completed 状态一起删了,TUI 里把子代理转后台的命令也没了。父会话按 Esc 不再把还在跑的子任务一起取消,Ctrl+B 那一套只留给前台 shell。
还有个容易误判的地方:子代理自己空闲了、但它开的 shell 或嵌套任务还在跑时,第一份报告以前被标成「跑完了」,模型常把它当最终答案,要么提前收尾要么再去催一遍。标签是作者拿几个模型跑对照定的,这个场景我没在本机复现过。
只是把默认值换了
详细度原来是 medium,现在默认 low。PR 里写明只改了默认值和设置项的初始显示,折叠逻辑本身没动,之前在 TUI 配置里写过详细度的人不受影响,值照旧。
没加载出来的旧提问也能跳
桌面端新加的那个跳转命令不只是个搜索框。时间线是分页的,早先的提问可能根本没进内存,它会按会话去搜,包括那部分历史,回车或点击直接把那条消息显示出来。PR 里特意提了按 Esc 会保留原来的阅读位置,搜不到或者改主意时不会把你看的地方弄丢。这条没挂功能开关,装上就有。
怎么升
官方页列了五条安装命令,重跑当初装的那条就是升级,没有 update 子命令。升完用 opencode --version 核一下是不是 2.3.0。
几处旧用法得跟着改:调子代理的代码不能再传 background,也别等返回值里直接给结果,改成收 <subagent> 报告。opencode run 现在会等后台任务跑完才退出,退出码由报告触发的那轮父会话决定。想看回 TUI 的每一步,把设置里的 Verbosity 调到 medium 或 high,或在配置里写 session.verbosity。mcp_events 管 MCP 事件订阅,shell_timeout_background 让超时的 shell 命令转后台,两个开关在正式版都默认关,要用得自己开。升级本身不用改配置文件。
升完先拿一个平时会派并行任务的工作流跑一次,看旧脚本有没有在哪一步报错。你们现在还在同步等结果,还是早就手动把并行打开了?






