ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

opencode v2 新增能力

2026/10/8 7:23:26 拓冰建站 浏览量
opencode v2 新增能力 极速版启动运行时从 Bun 迁移到 Node桌面端从原来的实现转投ElectronServer API 整体重设计后台统一服务端opencode增加标签栏热生效能力skill等可以热生效subagent子代理可以后台运行后台子代理background: true在独立会话中异步运行不依赖主线程的执行状态。主线程启动后可以继续执行其他操作无需等待子代理完成。工作流程时间线 ├── 主线程启动子代理 #1 和 #2后台 ├── 主线程继续执行其他操作如查看工作区 ├── 主线程回复用户告知已启动 ├── ... 对话继续 ... ├── 子代理 #2 完成 → 系统自动推送通知 └── 子代理 #1 完成 → 系统自动推送通知完成通知机制子代理完成后系统会自动发送一条通知消息到对话中。这是事件驱动的不是主线程轮询等待的结果。场景行为主线程正在执行工具调用通知排队等待当前调用结束后展示主线程正在等待用户输入通知出现在对话中用户下次交互时可见主线程已结束无更多操作通知直接展示subagent 可传入参数subagent 工具这几个参数含义是agent指定要用哪个子代理 ID例如 explore、general或你在 .opencode/agents/*.md 里配置的 mode: subagent 代理。它必须存在、可见、不是 primary 模式且当前父代理有启动它的权限。description3–5 个词的短任务描述用来展示给用户/UI也会作为新子会话的标题。prompt给子代理的具体任务说明。新子会话时会自动加一句 You are a subagent spawned by another session. 再拼上你的 prompt。model指定子代理使用的模型格式是 providerID/modelID 或 providerID/modelID#variant。除非用户明确要求一般不要传不传时用子代理配置或父会话模型。sessionID传入之前返回的子会话 ID用来继续同一个子会话。它必须是当前会话的子会话不传则新开一个。background是否后台运行。true 时立即返回父会话可继续做别的事完成后通知false 或省略时会等待子代理完成并返回结果。后台不负责轮询状态插件 API 全新不兼容变更V1 插件在 V2 完全不跑改文件名没用入口、hooks、tools、events、exports 都要按新 API 重写opencode V2 LSP移除“lspconfig is preserved but V2 does not run language servers, expose LSP tools, or produce diagnostics — use lint/typecheck/compiler commands instead.”具体三点变化配置字段还在但不生效——opencode.json里的lsp配置 V2 会保留、不报错但不启动语言服务器没有 LSP 工具——agent 无法调用“跳转定义/查引用/取诊断”这类工具没有诊断产出——V1 里 agent 能拿到的实时错误/警告信息没有了。替代方案官方建议让 agent 跑 lint、typecheck、编译命令来获取同类信息比如 TypeScript 项目配tsc --noEmitPython 配ruff/mypy。实操上可以在AGENTS.md里写一条规则比如“改完代码后运行npm run typecheck检查错误”让 agent 养成自查习惯基本能补上大部分诊断场景。