opencode终端AI代理实测:多模型接入、IDE集成与实战踩坑 📅 发布时间:2026/9/9 3:28:37 👁 浏览次数: 最近 opencode 的热度起来得很快社区里铺天盖地都是安装截图和插件讨论。我先给个直接结论如果你已经在用 Claude Code 或 Codex 这类终端 AI 编程代理但又被“模型绑定”和“配置封闭”卡住那 opencode 几乎是一个可以无缝补位的选择。它开箱支持多家模型能装进 VSCode 和 JetBrains还能通过 skills 和 memory 把项目经验沉淀下来。这篇文章是我从安装到日常实战场景的完整记录包含具体命令、配置文件思路、报错排查链路以及我实际踩过的几个坑。不管你是刚听说 opencode 的新手还是想从其他 agent 迁过来的老玩家应该都能在这里找到点有用的东西。1. opencode 定位终端原生编码代理解决的是“IDE 补全”以外的活很多第一次接触 opencode 的人会把它和 GitHub Copilot 这类 IDE 补全工具混在一起这是个不小的误解。opencode 不是“下一个单词预测器”它是一个跑在终端里的编码代理核心工作模式是你给它一个目标它自己读代码、跑命令、改文件、执行测试然后把结果汇报给你。1.1 它和“IDE 里的 AI 补全”不是一回事打个比方IDE 补全就像一个在 Word 里帮你联想下一个词的人它看到你打了前几个字就知道你想写什么但整篇文档的谋篇布局它不管。opencode 是一个真正坐在你电脑前的“远程实习生”它能打开整个项目目录、读日志、跑测试、改代码、提交 git你只需要给它验收标准它负责干活。这种差异在使用体验上非常明显。用补全工具你永远在主导每一个函数都要自己写开头AI 只是帮你续写用 opencode 你是在“派活”它会把一个任务拆解成多步执行遇到报错会自己查日志改代码再重试。我第一次看着它自己修完一个编译错误并重新跑通测试的时候确实有一种“这不是自动补全这是有人在帮你干活”的感觉。opencode 运行的场景是终端这恰恰是它强于普通 IDE 插件的地方它能直接调用 shell 里的所有工具git、docker、mvn、playwright 之类都可以成为它的“双手”。IDE 插件往往被限制在编辑器进程里做不到这种自由度。1.2 与 Codex、Claude Code 的本质区别现在市面上主流的终端编码代理有三类Anthropic 官方的 Claude Code、OpenAI 推的 Codex CLI 概念以及 opencode 这类开源社区项目。它们的核心差别在于“绑定程度”。Claude Code 体验成熟但整体生态和 Claude 模型绑定比较深配置和扩展机制相对封闭。Codex 也在快速发展但如果你不是 OpenAI 生态的重度用户它给你的选择空间有限。opencode 走的是另一个路子它更像一个“前端 shell 多模型后端”的组合体不绑定任何单一模型供应商你可以在同一个工具里接 OpenAI、Anthropic、DeepSeek、本地模型等各种端点。背后团队方面opencode 由 SST 团队Anomaly开源属于社区驱动的开源项目不是大厂的闭源产品。这带来一个好处迭代速度飞快社区贡献的 skills 扩展、第三方插件、Go 版本重写、桌面版都陆续出现坏处是文档和版本之间偶尔对不上今天学到的东西下个月可能就变了。下面这个表大致能看出它们的定位差异维度opencodeClaude CodeCodex模型绑定多模型BYOK以 Claude 系为主以 OpenAI 系为主开源程度完全开源部分开放部分开放扩展机制skills / memory / 插件有扩展生态偏少IDE 集成官方 VSCode / JetBrains 插件有限有限适合人群多模型玩家、爱折腾的人Claude 生态用户OpenAI 生态用户1.3 哪些人应该用哪些人暂时别用我会推荐下面这几类人去尝试 opencode一是重度终端用户平时就习惯在 shell 里干活多一个命令行工具没有学习成本二是想摆脱单一模型绑定的人希望在同一个会话里按任务切换强模型和便宜模型三是经常接手老项目的开发者opencode 的“先读代码再动手”风格很适合快速摸清陌生仓库。反过来如果是刚学编程没多久的朋友终端操作本身还不太熟我建议先把基础命令和环境变量搞明白再碰 opencode。它毕竟是 agent会给你的系统执行命令如果连它干了什么都不理解出了问题会很被动的。另外如果你只想要一个安静的代码补全工具不太想折腾配置那 opencode 现阶段对你来说可能有点过重老老实实用 IDE 里的补全反而更省心。2. 安装与第一个报错cmdlet 无法识别的完整排查链路opencode 的安装本身不算复杂但“安装不复杂”和“装完就能用”之间差着一个环境变量。这一节从零讲起把我在 Windows 上碰到的高频问题完整拆一遍。2.1 一条命令装到能用先跑通再说opencode 的官方 npm 包名是opencode-ai全局安装只需要一条命令npm install -g opencode-ai装完之后验证一下opencode --version能输出版本号说明基本环境已经就绪直接在当前目录运行opencode就能进入交互界面。如果你是 macOS 或者 Linux这一步通常不会出什么幺蛾子。真正的风暴集中在 Windows 上尤其是 PowerShell 环境。2.2 “无法将 opencode 识别为 cmdlet”的根因排查很多人在 Windows PowerShell 里执行opencode时会看到这样一句报错opencode : 无法将“opencode”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写如果包括路径请确保路径正确然后再试一次。这个报错的字面意思是“命令找不到”但根因一般是 npm 全局安装目录没有加到系统 PATH。npm 安装全局命令时会把可执行文件放到一个专门的目录Windows 上通常是C:\Users\你的用户名\AppData\Roaming\npm如果这个目录不在 PATH 里无论你怎么输入命令系统都找不到。排查过程我建议按这个顺序来先确认包真的装上了。执行npm list -g --depth0看输出里有没有opencode-ai。再确认 npm 全局目录在哪。执行npm prefix -g记录输出的路径。检查这个路径是否在系统 PATH 里。PowerShell 执行echo $env:PATH看输出中能否找到上一步的路径。如果找不到把目录加进 PATH。可以用setx PATH $env:PATH;C:\Users\你的用户名\AppData\Roaming\npm然后重开终端窗口让环境变量重新加载。重开后再次输入opencode --version一般就能通了。这一步最容易犯的错误是setx 命令执行完以为当前窗口立刻生效其实当前窗口不重新读取环境变量必须开一个新窗口才能验证。2.3 Node 版本切换和全局包丢失的隐形坑如果 PATH 没问题但依然提示“找不到命令”还有一个隐蔽原因你用了 nvm 这样的 Node 版本管理工具。nvm 切换 Node 版本时不同版本有各自独立的全局包目录你在 Node 18 下装的 opencode切到 Node 20 之后就消失了因为两个环境的全局安装目录不一样。遇到这种情况先执行node -v看当前版本再which node或where node看路径确认自己是不是还在原来的 Node 环境里。如果是切换版本造成的只需要切回安装 opencode 的那个版本或者在新版本下重新安装一次即可。另外如果你用的是 fnm 或 volta 这类工具全局包路径和 npm 默认路径也可能不一致报错时先看看这些版本管理工具的自定义路径别一上来就去改系统 PATH否则容易把环境改乱。3. 模型接入与免费模型的实际使用姿势opencode 能跑起来只是第一步真正决定体验的是你给它接了哪个模型、用的什么服务商。这一节的模型配置思路和免费模型问题是社区讨论最多也最容易产生误解的地方。3.1 模型配置的核心结构provider 与 API keyopencode 的模型配置集中在配置文件里常用位置是用户目录下的.config/opencode/opencode.json。它的核心逻辑是先声明 provider模型服务商再指定默认模型。一个很简化的示例结构是这样的{ provider: { openai: { apiKey: env:OPENAI_API_KEY }, anthropic: { apiKey: env:ANTHROPIC_API_KEY } }, model: openai/gpt-4o }这里model字段里的openai/gpt-4o表示“使用 openai 这个 provider 下的 gpt-4o 模型”。API key 推荐用env:变量名的方式从环境变量读取而不是直接把密钥写进配置文件这样就算将来分享配置文件也不会泄密。不同版本的 opencode 在配置字段上可能略有差异新版本的配置界面一般会带 schema 提示照着提示填就行。我自己的习惯是任何 key 都走环境变量配置文件里只保留 provider 和模型偏好方便整套点 files 直接备份和迁移。3.2 opencode Go 版本与 CC Switch 配合切换多套配置opencode 社区现在有一个明显的趋势大量用户从 Node 版迁移到 Go 版本。Go 版在启动速度、内存占用、长任务稳定性上都有明显优化尤其是项目代码量大的时候体验差距能直观感受到。如果你用的是 Go 版工具名在部分场景下会有区分社区里常见的做法是把opencode指向 Go 版本把旧版本通过其他方式共存。说到这里就不得不提 CC Switch。CC Switch 原本是 Claude Code 用户用来管理多套账号配置的工具社区很快发现它同样可以配合 opencode 使用用于在多个 API 端点之间一键切换。比如你手上有三五家不同模型服务商的 key手动改环境变量很容易出错CC Switch 可以把这些配置收拢到一套 UI 里切换时全自动更新对应的环境变量和配置文件。我的实际用法是在 CC Switch 里建立“主力”“备用”“测试”三套配置主力走付费的强模型端点测试指向本地或低价模型端点。切换时只需在 CC Switch 里点一下再重开 opencode 会话即可完全不用手动改配置文件。对经常对比模型效果的人来说这个组合非常省事。3.3 hy3-free 这类免费模型为什么只能当玩具社区里时不时会流传一些“免费模型”消息比如 hy3-free 这类限时免费端点。坦白说这类端点拿来做功能验证、随便问几个问题是可以的但我强烈不建议把它当成主力模型用。原因无非三点稳定性没保障、速率限制不可控、数据隐私成谜。免费端点往往由个人或临时项目维护高峰期动不动就 429长任务跑到一半连接断掉是家常便饭更关键的是你发的代码、项目内容都会经过它的服务端能不能保密根本没人敢打包票。有一次我用一个社区免费端点跑重构任务跑到第三步直接报错前功尽弃从那以后我再也没有把免费端点放进主力配置。如果你只是体验 opencode 的工作流、不涉及敏感代码那免费端点当个入门玩具没有问题一旦开始处理正式项目至少准备一个按量付费的商用端点作为保底这是我对所有想认真用 opencode 的人的建议。4. 让 opencode 真正干活新项目、旧项目和 skills/memory装好工具接好模型之后真正的分水岭在于你怎么和它协作。同一个 agent有人用起来感觉像神队友有人用起来只会生成一堆没法用的代码。差别主要出在指令方式和工作流设计上。4.1 新项目初始化先讲验收标准再讲功能清单新手最常见的做法是丢给 opencode 一句“给我做一个待办事项应用”然后等它自由发挥。这种做法不是不行但生成出来的东西大概率不符合你的预期。我的习惯是给一个结构化的初始化指令核心思路是“先讲验收标准再讲功能清单”。一个比较实用的 prompt 模板大概是这样的在这个目录下初始化一个待办事项 Web 应用。 技术栈前端 React Vite后端 Node.js Express数据存 SQLite。 验收标准 1. 新增待办后页面不刷新就能出现在列表里 2. 待办可以标记完成和删除 3. 服务端重启后数据不丢失 4. 目录结构要清晰README 写清楚启动方式。 实现时先建好目录结构再开始写代码每完成一个模块跑一次测试。注意我在指令里给了技术栈约束、四条可验证的验收标准、以及“先结构后代码”的执行顺序。这样 opencode 就不会漫无目的地自由发挥它知道边界是什么也知道怎么判断自己有没有做完。4.2 接手旧项目没建立基线之前别让它动手改代码接手老项目和初始化新项目是两个完全不同的场景。老项目代码量大、文档可能早就过期、依赖关系错综复杂这时候如果你上来就让 opencode 改某个功能它大概率会在错误的理解上叠加错误的修改越改越乱。我的工作流是分三步走先让它建立项目基线。让 opencode 读 README、启动脚本、测试命令、目录结构然后输出一份“这个项目是干嘛的、怎么启动、测试怎么跑”的总结。再让它做静态摸底。挑几个核心模块让它梳理数据流向、模块依赖、已知的 TODO 和潜在问题。最后才进入修改阶段。此时你可以明确告诉它“基于你刚才的理解把某个模块的某个逻辑改掉要求是现有的测试全部通过新增行为有测试覆盖”。这个顺序本质上是在“管控上下文”。opencode 虽然能读很多文件但它不会自动知道哪些文件重要你需要用分阶段指令让它一步步建立正确的心理模型。我踩过最痛的坑就是跳过摸底直接改代码结果它改了一个孤立模块完全没意识到另一个模块依赖它的内部结构最后整个运行时崩掉。重来之后我每个老项目都会先花十分钟做基线梳理后面反而省出几小时。4.3 skills 与 memory把个人经验固化成可复用资产opencode 真正拉开差距的地方是 skills 和 memory这两个机制让你不用每次重新教育它。memory 负责记住你的偏好和项目约束。比如我希望提交信息用 conventional commits 规范测试统一用pnpm test而不是npm test这些只需要配置一次后续对话它都会自动遵守。配置的方式不复杂核心是在配置或项目初始化时把规则告诉它它会在后续交互中持续参考。我实际用下来最明显的感受是一个被正确配置过 memory 的 opencode和一个默认状态的 opencode输出质量完全不在一个量级。skills 则是给它配技能包相当于把“调试流程”“重构方法”“代码 review 规范”这样的经验固化成可调用的流程。社区里已经有一些成体系的 skills 合集像 Superpowers、oh-my-claudecode 都很有参考价值它们本身就是把 Claude Code 社区里的最佳实践整理成了标准流程。opencode 可以直接读取这些 skills让你的 agent 在遇到对应任务时自动采用更成熟的执行路径。我自己的经验是不要把所有东西都塞进 skills只固化那些你反复在做、而且有明确步骤的任务。比如“修好一个前端 bug 的流程”“给新增接口补测试的流程”这类高频高确定性任务最适合固化成 skills。那种一次性的、没有固定答案的创新任务反而不适合硬套模板。4.4 用 Playwright 复现前端 bug 的实测流程opencode 对前端开发的实用价值很大程度上靠 Playwright 这类浏览器自动化工具来体现。前端 bug 很难通过静态代码分析定位因为它往往和运行时状态、CSS 层叠、异步请求时序有关。我现在的做法是让 opencode 自己用 Playwright 把 bug 复现出来。比如用户反馈“点击保存按钮后页面没有弹出成功提示”。我会给 opencode 这样一个指令帮我定位保存按钮没有提示的问题。用 Playwright 写一个复现脚本 1. 启动本地开发服务器 2. 打开页面进入表单填写一条合法数据 3. 点击保存按钮 4. 观察页面是否有成功提示同时采集控制台报错和网络请求状态 5. 把结果以日志的形式输出给我。opencode 会先读前端代码理解按钮的事件绑定逻辑然后写一个 Playwright 脚本去真实操作浏览器。它会自己启动 headless 模式跑一遍采集 console 报错、网络请求返回值然后根据这些信息定位到具体是接口失败、还是响应处理逻辑有问题。这个流程我用下来最大的感受是以前需要人肉打开浏览器、开 DevTools、手动点按钮、看 Network 面板的工作现在变成了 agent 自动执行并且把结果结构化输出。遇到需要视觉确认的情况可以让它跑有头模式并把截图保存到指定目录结合截图基本能解决大多数前端定位问题。当然Playwright 环境需要先在项目里装好浏览器内核这个前置条件没满足的话agent 会一直卡在启动浏览器这一步。5. IDE 集成VSCode 插件和 JetBrains 插件的搭配思路opencode 的终端体验已经很好但长时间纯终端操作对 diff 查看和代码定位来说并不方便。好在官方提供了 VSCode 和 JetBrains 插件让我能把它嵌入到常规开发流程里。5.1 VSCode 里我建议的用法插件负责 review终端负责执行VSCode 的 opencode 插件装好之后可以直接在编辑器里和 agent 对话。它改动文件时插件会把 diff 直接展示在编辑器的差异视图里你可以像 review 同事代码一样逐行确认它改了什么。这一点是纯终端模式比不了的终端里它改文件你只能事后用 git diff 看但 IDE 插件里你能实时看到它在动哪些文件、改哪些行。我现在的工作分工是日常小需求、重构单文件逻辑、让 AI 解释某段代码直接在 VSCode 插件里做跨文件的大改动、批量迁移、需要跑完整测试链路的任务切回终端用 opencode 跑长会话。这个分工的逻辑很简单IDE 插件强在可视化和原地操作适合轻量交互终端版强在上下文完整性和长时间任务稳定性适合重活。两者不是替代关系是配合关系。5.2 JetBrains IDEA 插件与 Java/Maven 项目容易忽略的 JDK 一致性JetBrains 全家桶也有对应的 opencode 插件Java 开发者最常问的就是 Maven 项目怎么配。插件装好后能读取项目结构Maven 项目里你可以直接让它执行mvn compile、mvn test它会把输出结果带回来自己分析。这里有一个我个人踩过很多次的坑IDEA 中配置的 JDK 版本和终端里JAVA_HOME指向的版本不一致。opencode 插件如果走 IDEA 的运行时环境它会用 IDEA 配置的 JDK但在终端里跑它会用系统的JAVA_HOME。两边版本不同就会导致同一段代码在 IDE 里编译通过、在终端里报错而 opencode 会基于它实际看到的报错反复修修到怀疑人生。所以用 JetBrains 插件跑 Java/Maven 项目之前先确认三件事项目 SDK 用的是哪个 JDK、系统JAVA_HOME指向哪里、mvn -v在终端里输出的 Java 版本和 IDEA 里的 project SDK 是否一致。这三项对齐了opencode 在修编译问题时才不会被虚假冲突带偏。5.3 什么时候用终端版什么时候留在 IDE 里我的判断标准是看“你需不需要同时看多个上下文”。如果任务涉及修改多个文件、需要看测试结果、需要调用 git 操作终端版的信息密度更高agent 的上下文也保持得更连贯。如果任务只是在一个文件里加个函数、改个样式、或者解释一段逻辑IDE 插件显然更顺手。还有一个值得注意的细节终端的会话状态和 IDE 插件不完全同步。在终端里开的对话IDE 插件是看不到记忆的。所以如果你在终端里已经和 opencode 建立了很长的项目上下文突然切到 IDE 插件里问一个相关的问题它可能会“失忆”。我现在的办法是一个任务尽量只用一种入口跑到底中途不切避免上下文丢失带来的理解偏差。6. 高频报错排查实录unexpected server error 和配置失效用 opencode 的过程中不可能不遇到报错。下面挑两个最典型的问题完整走一遍排查链路。这里的重点不是“报错之后改哪一行”而是“怎么一步步缩小问题范围”这个思路在 agent 类工具的使用里特别重要。6.1 error: unexpected server error 的逐层排查很多用户第一次跑 opencode 时正好碰到这个报错error: unexpected server error. check server logs这个报错最让人困惑的地方是“server”指的是哪个 server。opencode 本身会起一个本地服务来处理会话这里的 server logs 首先指 opencode 自己的日志。不同平台的日志路径不一样常见位置是用户数据目录下可以翻一下~/.local/share/opencode或平台对应的日志目录没有明确日志入口时也可以直接看启动 opencode 的终端窗口有没有输出额外信息。拿到日志之后排查顺序我建议这样做区分“opencode 自身错误”和“上游模型服务错误”。日志里如果出现模型服务商的错误码、超时、HTTP 4xx/5xx说明问题大概率出在模型端点那边。换一个你已经验证过可用的模型再试一次。如果换模型就正常说明不是 opencode 的问题而是你当前用的那个 provider 配置有问题。检查 provider 的 baseURL 是否还活着。社区免费端点和一些第三方转接端点经常变动地址配置文件里的 baseURL 过得不更新就会报 unexpected server error。检查 API key 是否有效。key 过期、额度用尽、权限不足都有可能在 opencode 侧包装成这种笼统的报错。最后检查本地环境。Node 或 Go 版本太老也可能触发异常尤其 Go 版的迭代很快升级到最新版再试往往能解决一些莫名问题。我见过很多人在社区里直接问“unexpected server error 怎么办”但这个问题在没提供日志、没说明模型端点、没描述操作步骤的情况下基本只能靠猜。养成先看日志再提问的习惯能帮你省下大量等待时间。6.2 配置不生效、插件不加载的处理顺序第二种高频问题是我改了 opencode 配置文件但好像没生效或者 VSCode 里装了插件但不出来。配置不生效的判断顺序比较简单。首先确认你改的是不是 opencode 实际读取的那个配置文件很多人改了项目里的配置但 opencode 读的是用户目录的配置两边内容冲突后者优先级还不一定是开发者以为的那个。其次检查 JSON 语法。配置文件带一个注释或者末尾多个逗号都会被解析器拒绝症状就是“改了但完全没用”。最后改完配置要重开会话opencode 不会热加载所有配置项不重开会话你以为生效了其实没生效。插件不加载的问题要先看版本匹配。opencode 本身更新很快VSCode 或 JetBrains 插件如果你装的是很老的版本可能跟不上主程序的 API 变化。处理顺序是先确认主程序版本再确认插件版本把两个都升到最新后重启窗口。如果还不行把插件卸载重装一次重点看安装输出有没有报错信息。多数情况下这种问题不是配置问题而是版本错位。6.3 高频问题速查表把我在社区和实际开发中见过的高频问题汇总成一张速查表方便直接对照问题现象最可能的原因处理动作命令无法识别cmdlet 报错npm 全局目录不在 PATH把 npm prefix -g 对应的目录加入 PATH重开终端unexpected server error上游模型服务异常或 key 失效看 opencode 日志换已验证模型检查 baseURL 和 key长任务中途断流免费端点不稳或网络波动换稳定端点重开会话续跑改了配置没效果JSON 语法错误或没重开会话检查语法重开 opencode 会话IDE 插件不显示插件版本与主程序版本不匹配升级主程序和插件重启编辑器必要时重装换 Node 版本后命令丢失版本管理工具的全局包相互独立切回安装原包的环境或在新环境重装模型反应慢、经常 429社区免费端点排队严重换按量付费端点或降级模型大小这张表不能覆盖所有问题但覆盖了 80% 的新手卡壳点。遇到表里没有的情况核心思路永远是先看日志再缩小变量最后再提问。7. 选型思路opencode、Codex、Claude Code 到底怎么选几乎每一个认真用 opencode 的人都被“opencode 和 Codex 哪个好用”或“opencode 和 Claude Code 怎么选”这类问题困扰过。这期讨论背后没有标准答案因为不同人的使用场景差异太大。7.1 三者的定位差异Claude Code 最大的优势是 Anthropic 官方持续的投入和优化Claude 系模型在复杂代码理解上确实有一批忠实用户但它的生态和配置方式对“想自己控制一切”的人不算友好。Codex 的优势在 OpenAI 模型和生态整合如果你已经重度使用 OpenAI API它给你的流畅度是跨工具统一的但它的可玩性和社区扩展生态相对小。opencode 的切入点恰恰是“不站队”。它不绑定任何模型你想要什么效果就接什么模型社区提供了大量 skills 和插件几乎每周都有新玩法出现。代价是你要自己花一点时间做配置和筛选没有“开箱即用”的官方全家桶体验。如果你要一句话决策想要稳定省心、并且已经是 Claude 生态的重度用户Claude Code 值得继续用如果团队技术栈和 OpenAI 深度绑定Codex 也不差但如果你想要最大的灵活度和可玩性愿意花半小时调配置文件那 opencode 这个方向是当前的最优解。7.2 我的实际搭配方案我现在的主力组合是opencode 终端版 多个 provider 切换 IDE 插件做 review。日常小需求在 IDE 插件里完成跨文件的大改在终端里跑遇到项目摸底、老代码梳理这类活我在终端开一个新会话先让它读项目建立基线再动手。模型方面我会根据任务类型切换核心业务逻辑的编写和重构用推理能力更强的模型批量代码生成、补测试、写注释这类相对机械的任务用单价更低的模型。比如在同一个会话里我先让它用强模型设计接口和数据流再切到便宜模型去填充实现细节这样在保证质量的前提下能明显控制成本。这个搭配的思路是不要迷信“一个 agent 打天下”。opencode 提供了灵活接入模型的底座你要做的就是根据任务性质动态选择最合适的模型而不是一个模型用到黑。7.3 给新人的三条建议第一第一周不要装太多扩展。先把 opencode 装好、接一个模型、在自己的小项目上跑通一个完整任务就足够了。skills 插件的坑和配置学习成本都不低一上来就追求全套装备很容易被劝退。第二成本控制从一开始就要想。agent 类工具和普通聊天不一样它会在你看不到的地方执行大量任务、消耗大量 token。如果你用的是按量付费模型建议设置好预算提醒避免一个失控的循环任务跑出天价账单。第三注意代码隐私边界。opencode 会把代码内容发送到模型服务商那边如果你的项目涉及敏感信息要么选择支持私有化部署的模型端点要么明确避免在会话中传入敏感文件。这个意识越早建立越能避免后面出大问题。最后分享一个我个人的体会opencode 这类终端 agent 的流行本质上改变了“人和 AI 协作”的节奏。过去我们要自己读代码、自己找 bug、自己写测试现在可以把这些体力活交给 agent而人的核心价值变成了“判断它做的事对不对、方向有没有跑偏”。这恰恰是需要大量真实项目经验才能做好的部分。所以我的建议始终是工具可以换但自己的代码功底和项目判断力永远不能丢。