十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

opencode 使用指南:终端 AI 编程 Agent 的安装配置与实战

opencode 使用指南:终端 AI 编程 Agent 的安装配置与实战 如果你最近在逛技术社区一定会发现一个现象AI 编程助手已经从聊天窗口搬进了终端而且越来越多人开始用一个叫 opencode 的开源工具。它和 Claude Code、Codex CLI 属于同一个赛道但身上贴了两张很显眼的标签——模型自由、开源透明。简单说opencode 是一个跑在终端里的 AI 编程 Agent你给它一个任务它会自己读代码、改文件、跑命令、看报错循环迭代直到把活干完。最关键的是它可以任意接入你自己的模型服务不受某一家厂商绑定这也是“opencode 免费模型”这个搜索词热度一直很高的原因。不管你是第一次听说 opencode还是已经在配置文件里折腾了一下午这篇文章都值得花十分钟读完。我会从它是什么、为什么值得用讲起然后给出一套完整的安装、配置、模型接入、高级功能使用和常见报错排查手册。里面有我实际踩过的坑也有大量可以直接抄作业的配置模板希望能帮你把 opencode 真正用起来而不是装完就吃灰。1. opencode 到底是什么1.1 终端里的 AI 编程 Agent 是怎么一回事很多人第一次看到 opencode 的演示视频都会愣一下怎么没有图形界面就一个黑乎乎的终端其实这正是它聪明的地方。它跑在一个可以随时和你的代码仓库交互的环境里本质上像一个坐在你工位边的实习生——你给它布置任务它自己翻阅项目文件理解现有代码结构然后动手修改代码、运行测试、查看报错再根据结果继续调整直到任务完成。这个“读代码 → 规划 → 改文件 → 跑命令 → 看结果 → 再调整”的循环就是 AI 编程 Agent 的核心工作方式。它不是简单地帮你生成一段代码丢给你而是直接参与到开发闭环里。和 ChatGPT 那种一次性问答完全不同opencode 有“手”有“眼睛”它能感知到当前项目的真实状态而不是凭空想象。这也是为什么很多人在实际项目里用过一次之后就回不去了。1.2 它和 Claude Code、Codex CLI、Pi 到底怎么选AI 编程 Agent 这个赛道上现在已经有不少名字热搜词里“opencode codex pi 哪个agent好用”就是一个非常典型的问题。我把几个主流选择放在一起对比一下方便你判断哪些特性是 opencode 独有的。工具开源情况模型绑定核心特点适合谁opencode完全开源不绑定任意模型配置灵活支持 skills、memory、LSP、MCP想完全掌控模型和配置的开发者Claude Code闭源默认绑定 Claude官方调教成熟交互体验好深度使用 Claude 模型的用户Codex CLI代码开源绑定 OpenAI 模型和 OpenAI 生态深度集成OpenAI 的重度用户Pi未完全开放绑定 Amazon 生态背靠云服务适合 AWS 用户使用 Amazon 开发环境的团队这个对比表里最突出的差异就是“模型绑定”。Claude Code 和 Codex CLI 再强你也只能用它背后的模型而 opencode 是完全模型无关的OpenAI、Anthropic、Google、DeepSeek、Qwen、本地 Ollama只要是模型服务商提供了 API理论上都能接进去。很多人的第一台“免费模型 Agent”就是这么搭起来的。1.3 为什么要用 Go 重写一遍热搜词里“opencode go”出现过很多次。这里其实有两层意思第一层opencode 本身是用 Go 语言实现的第二层网上有些人在讨论模型服务商的 “Go 套餐”。先说第一层。Go 写的工具最大的优势是编译出来就是一个独立的二进制文件没有乱七八糟的运行时依赖下载就能跑跨平台也方便。对于 Agent 这种需要频繁启动、响应要快的命令行工具来说这个特性非常重要。另外 Go 在并发处理上天然有优势。opencode 在和模型服务通信、执行多个工具调用、处理本地进程输出的时候并发能力直接影响整体流畅度。我实际用下来它启动速度确实比基于 Node.js 的一些同类工具快长时间运行的资源占用也更干净。至于“Go 套餐”这个说法放到后面讲模型接入时再细说。2. 装不上、找不到命令opencode 安装与基础配置全解2.1 三种安装方式一键脚本、包管理器、源码编译安装 opencode 的方式其实有好几种我建议按你自己的系统环境来选。macOS 和 Linux 用户最省事的方式是直接用官网和 README 里的一键安装脚本它会自动检测你的系统架构把对应版本的二进制下载到本地。如果你用的是 macOS 且装了 Homebrew也可以直接通过brew install opencode安装好处是后续升级方便一条brew upgrade就搞定了。Windows 用户可以直接去 GitHub Releases 页面下载对应系统的压缩包解压后把 opencode.exe 放到一个固定目录。如果你不想用别人编译好的版本或者想体验最新代码可以自己 clone 源码然后用 Go 编译。项目仓库地址在 GitHub 上搜 opencode 就能找到确保本地 Go 版本较新然后在项目目录里执行go build即可。这种方式适合开发者还能顺便改源码但对于大多数使用者来说一键脚本或者包管理器就完全够用了。2.2 “无法将 opencode 项识别为 cmdlet”的解决过程这个词条在热搜里出现频率非常高几乎每隔几天就有人在群里问一次。问题描述通常是这样的在 Windows 上装完 opencode兴冲冲打开 PowerShell 输入opencode结果弹出一行红字“无法将‘opencode’项识别为 cmdlet、函数、脚本文件或可运行程序的名称”。第一次遇到的人很容易慌以为自己装坏了。其实这个报错的本质只有一个Windows 根本不知道 opencode.exe 这个文件在哪里。它只会在当前目录和 PATH 环境变量列出的目录里找可执行文件。解决办法分三步。第一步确认 opencode.exe 的位置比如你把它放在D:\tools\opencode\下面。第二步打开系统设置搜索“环境变量”在用户变量的 Path 里新增这个目录。第三步重新打开一个 PowerShell 窗口输入opencode --version看到版本号就说明成功了。如果你实在不想折腾环境变量还有一个更快的临时方案直接用完整路径运行比如D:\tools\opencode\opencode.exe。这个方法适合先确认工具能不能跑但长期用还是建议把 PATH 配好。另外提醒一句修改完环境变量之后已经打开的终端窗口不会自动生效一定要重新开窗口这一步被很多人忽略了。2.3 配置目录长什么样全局配置与项目配置opencode 的配置遵循一套很清晰的规则。全局配置放在用户目录下的配置文件里Linux 和 macOS 通常是~/.config/opencode/opencode.jsonWindows 则在%USERPROFILE%\.config\opencode\opencode.json。这里存的是你所有项目通用的设置比如默认模型、API Key、你常用的 skills。除了全局配置它还支持项目级配置放在项目根目录的.opencode/目录下。这个设计逻辑其实和 Git 很像全局配置解决“我这个人习惯怎么用”项目配置解决“这个项目该怎么被 Agent 处理”。举个例子你在全局配置里用 Claude 模型做默认但这个 Java 项目里大家都统一用某个中转服务那就可以在项目级配置里覆盖为对应的 provider。项目级配置可以提交到 Git 仓库这样团队所有成员打开项目时opencode 自动就有了正确的项目上下文和约束规则体验非常一致。2.4 ccswitch 这类工具到底在帮你省什么很多人搜“ccswitch 配置 opencode”“opencode go 需要配合 cc switch 等工具”是因为同时有多个模型的 API Key又不想每次手动改 JSON。ccswitch 本质上就是一个配置文件切换器它把不同的模型服务预设成一套套配置切换时自动替换 opencode 的配置文件。不过我想说的是这个需求你自己手动也能解决。最简单粗暴的办法是准备几个 JSON 模板文件分别是opencode-config-openrouter.json、opencode-config-ollama.json要用哪套就复制覆盖到全局配置路径然后重启 opencode。老手更常用的做法是把 API Key 放在环境变量里配置文件中只写模型名称和服务地址这样切换模型服务时根本不需要改配置文件改环境变量即可。如果你确实喜欢可视化操作再考虑 ccswitch工具本身没什么问题但不要把它当成必需品。3. 模型怎么接、套餐怎么选模型接入配置一次讲透3.1 Provider 配置结构与一份可直接使用的模板模型接入是 opencode 的精华所在也是劝退最多新手的地方。它的核心概念叫 provider也就是“模型服务商”。opencode 通过 provider 知道你该去哪个地址、用哪个 Key、请求哪种模型。配置文件里最常见的字段就三个provider 名称、模型列表、默认模型。打开配置文件大概长这样{ $schema: https://opencode.ai/config.json, provider: { openrouter: { models: [openai/gpt-4o-mini, anthropic/claude-3.5-sonnet] }, ollama: { models: [qwen2.5-coder:7b] } }, model: openrouter/openai/gpt-4o-mini }这里要注意不同版本的字段名可能略有差异最保险的方式是把$schema字段也写上这样在 VS Code 或 IDEA 里编辑 JSON 时会有自动补全和校验不容易写错。API Key 不建议直接写在配置文件里尤其是项目配置如果会提交到 Git更不能明文写。优先用环境变量存放比如OPENROUTER_API_KEYopencode 会自动读取常见服务商的环境变量名。本地 Ollama 这类不需要 Key 的场景不设环境变量也能正常运行。3.2 免费模型、Go 套餐、hy3-free 这些说法背后是什么先解决“Go 套餐”这个迷惑词。opencode 本身没有任何套餐概念它只是把你的 API Key 和请求地址转发到模型服务商。网上讨论的“go 套餐”实质是某些第三方模型服务商推出的订阅计划只是恰好名字里带个“go”配上 opencode 之后被搜索引擎记成了热搜。你拿到哪家服务商的 Key就在 provider 的 baseURL 里填哪家的地址套餐名称对 opencode 没有任何影响。再来说免费模型。opencode 能跑免费模型本质原因是它不挑模型服务商。只要 API 兼容 OpenAI 或 Anthropic 的调用格式就可以接。市面上有不少提供免费额度的模型服务比如 OpenRouter 上的免费模型列表或者本地 Ollama 上开源的 Qwen、Llama 系列。我个人非常推荐 Ollama 作为免费方案因为它完全本地运行没有网络延迟也不受任何服务商限制缺点是模型推理速度取决于你的电脑配置。至于“hy3-free 下线了吗”这类搜索我见到过很多次。免费模型资源本身就是不稳定状态服务商说下就下说限流就限流。我见过有人把整个工作流都绑在一个免费模型上某天醒来发现服务下线任务全部失败。我的建议是永远不要对免费模型做生产依赖哪怕它现在再香也要同时配置 2 到 3 个可切换的 provider挂了一个马上切下一个损失才能降到最低。3.3 遇到 This model is not available 这类限制时怎么处理“This model is not available in your country” 是很多人第一次配置 opencode 时被卡住的点。先说结论这是模型服务商在服务端设置的开放策略和 opencode 本身没有任何关系。它在响应你的请求时发现你的账号或访问来源不在它允许的范围内就会直接拒绝返回结果。遇到这个报错我建议按顺序排查。第一步检查你的 API Key 是否真的有权访问这个模型有些服务商会把新模型限制为仅特定套餐可用。第二步确认你填写的 baseURL 指向的服务商确实提供这个模型很多时候填错了地址把 A 模型的 Key 发到了 B 服务的请求里。第三步看服务商官方文档里对这个模型的开放范围和账号要求不同服务商的策略差别很大。最重要的是不要通过非常规手段绕开限制那样反而可能带来账号安全问题。正确做法是选择你的账号有权限、服务商允许的模型或者换一个你本来就能正常访问的服务商。opencode 的灵活性足够大没必要在一棵树上吊死。3.4 一套实用的多模型组合策略当你把几个 provider 都配好之后就会面临一个幸福的烦恼什么时候用哪个模型我目前在实际开发里用三档组合。第一档是本地 Ollama跑 Qwen 之类的中小尺寸模型处理快速问答、格式化代码、写注释这类简单任务零成本零延迟。第二档是一个便宜的云端模型处理普通的 CRUD 开发、单元测试编写。第三档是能力更强的大模型做大型重构、复杂问题诊断、代码评审。opencode 里切换模型非常方便对话中可以随时用命令切换不需要退出会话。这个体验比很多同类工具都要好。我通常的做法是先用便宜模型让 Agent 快速理解任务、制定方案真正动大手术改代码时再切到强模型。一次复杂开发下来费用比全程用强模型省了至少一半响应速度也快很多。如果你核心诉求是省钱这个“先便宜、后强大”的组合思路可以直接照搬。4. 从会用到好用skills、memory、LSP、Playwright 实战4.1 skills把高频操作封装成 Agent 能调用的技能包用 opencode 一段时间后你会发现很多任务是重复出现的比如“跑一遍测试”“检查代码风格”“评审这个 MR”。每次都用自然语言重新描述一遍太累而且 Agent 的理解还不一定稳定。这时候就该上 skills 了。简单说skills 就是给 Agent 预置的专业能力模块一个 skill 可以包含指令、脚本和使用说明Agent 在需要时会自动匹配并调用。我在项目里最常用的是一个“code review” skill里面写了评审时要重点检查的维度、输出格式、以及要用哪些命令做静态检查。触发后Agent 会自动按流程执行而不是每次给我不同的评审格式。社区里很多人会把 Claude Code 生态里的 superpowers 技能库拿过来给 opencode 用步骤非常简单把技能仓库克隆下来然后把 skills 目录里的内容复制或软链到 opencode 的 skills 目录重启之后就能在对话里触发了。要注意不同版本的目录路径可能略有差异安装前先查看当前版本的支持说明不要盲抄网上老教程。4.2 memory让 Agent 不再每次对话都“失忆”用 Agent 最头疼的一件事是它经常“转头就忘”。你可能辛辛苦苦在对话里告诉它项目的测试命令是pnpm test:unit结果过一会儿它又用npm test去跑然后报错。opencode 的 memory 设计就是来治这个毛病的。它的核心思想是把那些你反复强调的约定、规则、命令沉淀成 Agent 每次启动都会自动读取的指令。最常见的做法是维护一份项目规则文件比如在项目根目录放一个AGENTS.md把项目结构、常用命令、代码风格、禁止事项都写进去。opencode 在启动时会自动读取并把它作为系统提示词的一部分。除了项目级规则还有全局规则适合放你自己的通用偏好。我建议规则要写得具体可验证比如“所有 API 请求必须经过 service 层禁止在 controller 里直接访问数据库”而不是“代码要写得好”这种没有操作性的废话。这个文件一旦建好团队所有成员和所有 Agent 会话都会受益。4.3 接入 LSP让 Agent 拥有编译器的眼睛普通的 AI 编程工具读代码本质上是把文本喂给模型看图猜意思。但 opencode 支持接入 LSPLanguage Server Protocol也就是语言服务器。接入 LSP 之后Agent 可以获得编辑器的能力跳转定义、查找引用、获取类型信息、读取诊断错误。这相当于给了 Agent 一双“编译器的眼睛”它不再是基于猜测改代码而是能基于真实的类型系统和静态分析结果做判断。前端项目一般用 typescript-language-serverPython 项目用 pyrightJava 项目用 jdtls。Java 项目还需要注意 Maven 配置先保证本地的mvn compile能通过因为 LSP 启动时要读取项目模型依赖拉不全的话诊断信息会失真。接入 LSP 后最明显的变化是Agent 在跨文件重构时不会把类型改坏因为它在动手之前就能看到类型错误。如果你经常让 Agent 做小重构这个功能建议优先配好。4.4 Playwright 实战让 Agent 自己打开浏览器复现前端 Bug“opencode playwright 怎么测试前端 bug”这个热搜我看过很多次这确实是 opencode 最有吸引力的使用场景之一。前端 Bug 最讨厌的地方在于难以用文字准确描述截图又截不到关键时机。现在你完全可以给 opencode 挂一个 Playwright MCP Server把浏览器控制权交给 Agent然后直接下指令“打开 http://localhost:3000进入登录页面输入测试账号和密码点击登录按钮看登录后页面是什么状态。”Agent 会自己操作浏览器、等待页面渲染、截图给你看。我在实际项目中用这个能力处理过一个很难复现的 bug表单在特定条件下提交按钮置灰带 UI 的测试人员重试了好几次都没触发。我让 opencode 用 Playwright 连续切换不同的输入顺序结果它把触发条件跑出来了还顺手把复现步骤写成了自动化脚本。配置 Playwright MCP 的方式以官方文档为准常见问题基本都集中在几个点MCP Server 没有正常启动、Node 版本太低、没有安装对应浏览器内核、端口被占用。启动后先用一个简单的页面路径测试一下 Agent 能不能成功打开页面再让它跑完整场景排查效率会高很多。5. 接手开发项目IDE 插件、桌面版与完整工作流5.1 VS Code 插件与 JetBrains IDEA 插件怎么选虽然 opencode 本身是终端工具但很多人还是习惯在 IDE 里工作于是官方和社区提供了 VS Code 插件和 JetBrains IDEA 插件。VS Code 用户直接在扩展市场搜 opencode 就能安装装好之后侧边栏会多出一个 Agent 面板可以查看会话状态、切换模型、查看工具调用记录。IDEA 用户在插件市场里也能找到对应插件安装后一般会在工具窗口里出现 opencode 的入口。IDE 插件的核心价值不是替代终端而是把 Agent 的上下文直接绑定到你当前打开的文件和项目上。比如你在某个函数上右键可以直接让 Agent 解释或重构这个函数它跳转文件、引用定位都更自然。一个容易踩的坑是IDE 启动时的 PATH 环境和终端不同导致插件里的 opencode 找不到可执行文件。解决办法是在插件设置里手动指定 opencode 可执行文件的完整路径不要让它自动探测。5.2 桌面版不想碰终端的人也有入口opencode 官方还提供了桌面版应用基于 Tauri 开发体积小巧。如果你对命令行有天然的陌生感或者你团队里有非纯开发角色想试用 Agent桌面版是个不错的入口。它会提供图形界面来创建会话、配置模型、查看 Agent 的交互过程体验比纯终端友好不少。桌面版和 CLI 共用同一套配置也就是说你在终端里配好的 provider 和 skills桌面版打开就能直接用不需要重新配置。我个人的看法是桌面版适合初次体验和轻量使用但真正的高效操作仍然离不开终端。原因很简单终端里你能同时掌握 Git 操作、文件编辑和 Agent 会话所有信息流都在同一个地方桌面版虽然好看但在多任务衔接上反而多了切换成本。所以我的建议是新手入门可以从桌面版开始熟悉了之后再迁移到终端工作流。5.3 实战演练让 opencode 在真实仓库里完成一次功能开发理论讲再多不如跑一遍实际任务。假设现在有一个 Express 项目用户要求新增一个“获取用户列表”的接口。我会在项目根目录启动 opencode然后下达明确指令“在现有路由结构下新增一个 GET /api/users 接口返回用户列表需要遵循项目现有的分层结构先读取 README 和相关路由文件再动手。”注意这里最关键的是最后一句——让它先读 README 和相关文件。Agent 会进入自己的循环先读取项目结构定位路由文件参考现有接口的实现方式然后规划改动方案。改完之后它会尝试运行项目的测试或 lint 命令做验证报错了就继续修直到通过。最后它会总结自己改了什么、为什么这么改、验证结果如何。整个过程中你只需要在关键节点确认方案不需要亲自改每一行代码。我还习惯让它先跑一遍现有测试确保改动之前项目就是绿的这样后面出了问题责任划分很清楚。5.4 让 opencode 融入团队协作MCP、CI 与统一配置opencode 继承了现代 AI 开发工具最流行的扩展标准 MCPModel Context Protocol可以把它理解成 Agent 的“万能插座”。通过 MCP你可以给 Agent 接入各种外部工具数据库查询、浏览器自动化、内部文档检索、监控系统查询等。我之前接过一个内部接口文档的 MCPAgent 在写代码前会先查一下真实接口定义而不是凭训练数据猜正确率提升非常明显。在团队协作上opencode 也支持非交互式的命令运行方式这意味着它有机会集成进 CI 流程。比如可以做一个定时任务让 Agent 自动跑一轮代码评审。更基础的做法是把项目级配置和规则文件提交到 Git 仓库让每一个打开项目的同事都有一致的环境。团队规模的 Agent 协作核心不是工具多先进而是大家对 Agent 的使用方式和约束是否统一文件化的规则比口头约定靠谱得多。6. 常见报错与排查技巧6.1 一张问题速查表我把自己和身边朋友在实际使用 opencode 过程中遇到的高频问题整理成了一张速查表建议收藏备用。症状可能原因解决办法Windows 提示无法识别 opencode可执行文件不在 PATH 中把 opencode 目录加入用户 PATH重开终端启动后报 unexpected server error服务端地址或 Key 配置错误查看日志改用小模型逐步排查模型返回 not available 提示服务商账号权限或开放范围限制换有权限的模型或可用服务商免费模型突然变慢或报错免费档限流或服务下线配置多个 provider做好降级Linux 下修改 JSON 不生效配置路径写错或未重启会话检查实际目录重启 opencodeIDE 插件连不上 opencodeIDE 的 PATH 与终端不一致插件设置里指定可执行文件路径Playwright 无法启动浏览器缺少浏览器内核或端口占用安装对应浏览器内核换端口测试6.2 unexpected server error 的完整排查思路这个报错很笼统第一次遇到时容易一头雾水。我的经验是先别急着怀疑 opencode绝大多数情况出在模型服务配置上。第一步看日志opencode 在运行时会有日志输出启动时加上调试参数或者查看日志文件找到具体是在哪个环节报错。第二步看是不是模型名写错了有时候服务商提供的模型名有前缀和你在别处看到的不一致。第三步手动用 curl 或者类似工具直接请求一下你配置的 API 地址看看返回结果是否正常。如果手动请求正常但 opencode 报错那问题可能出在配置格式上。这时候最快的定位方法是把模型切成一个非常基础的版本比如本地 Ollama 上的小模型如果一切正常说明问题只出在远端服务配置上和 opencode 核心功能无关。我用这个方法定位过不少问题省去了大量瞎猜时间。6.3 免费模型下线后怎么办免费模型下线的案例我在社区里见过太多次。这里分享一个我在踩过坑之后坚持至今的配置习惯任何一个模型服务在实际工作中使用之前我都会提前准备一个备用 provider。这个备用方案不一定要免费但一定要稳定。以我为例日常小任务跑本地 Ollama云端主力用一个便宜的付费模型第三个备选才用免费模型。这样免费模型下线时我只需要在 opencode 里切换一下模型现有会话不用断任务继续跑。另外一个实用技巧是把模型服务商的可用性用一个简单的脚本定期检查每天早上运行一次把不可用的 provider 列出来。这听起来有点过度工程但如果你真的发生过“线上 Agent 任务因为模型源挂了而失败”的情况就会觉得这点投入完全值得。毕竟 Agent 越来越自动化它跑得越久你对基础设施稳定性的要求就越高。6.4 修改配置不生效的常见原因与 Linux 路径细节“Linux 修改 JSON 不生效”这个问题我当初也遇到过。后来才发现问题往往出在路径上。如果你用的是 XDG 风格配置路径那配置文件就在~/.config/opencode/opencode.json不是一些老教程里写的项目目录下也不是 home 目录下随便放的opencode.json。还有一点容易被忽略opencode 是在启动时读取配置的如果你在会话运行中改了配置当前会话不会自动重新加载必须重启 opencode 才能生效。另外JSON 文件格式要求非常严格多一个逗号少一个引号都会导致整个配置被忽略而且报错不一定明显。所以我对所有配置文件的建议都一样务必加上$schema字段用支持 JSON Schema 校验的编辑器编辑写错的地方编辑器会直接标红可以省掉大半调试时间。6.5 如何在群里高效提问而不是被吐槽最后分享一个很多人没意识到的问题opencode 的报错信息非常多但很多人在社区提问时只丢一句“不行报错了”没有任何上下文。高效提问的基本姿势很简单把报错全文、配置文件记得遮住 API Key 敏感部分、模型名称、系统版本、opencode 版本这五样信息贴出来。如果你能带上日志尾部的内容很多人一眼就能判断出问题方向。我见过太多提问帖来回追问三轮才把信息凑齐效率极低。学会把问题描述清楚这本身就是排查能力的一部分。我在实际使用 opencode 的过程中最大的体会是这个工具的学习曲线不算陡但可玩性很高从简单接一个模型到配置 skills、LSP、Playwright再到团队统一规则每一步都能感受到效率的提升。它不是一个装完就忘的玩具而是一个会随着你使用深度增加而越来越顺手的基础设施。最后再分享一个小习惯每次接手新项目第一件事不是让 Agent 直接改代码而是让它先读一遍 README 和测试目录把项目结构和验证命令汇报给你。这个动作看上去多花了一两分钟但能避免后面大量返工。希望这篇文章能帮你少踩一些我踩过的坑早点把 opencode 用顺手。
返回列表