用 OpenCode 理解陌生代码库:3 个实用命令让你快速上手任何项目

📅 2026/7/2 4:10:42
用 OpenCode 理解陌生代码库:3 个实用命令让你快速上手任何项目
先问一个问题你接过多少个别人写的项目我指的是那种——没有文档、没有注释、连 README 都只有一行“TODO”的项目。打开文件夹里面几十上百个文件目录结构五花八门命名风格各成一派。你想改一个功能但不知道入口在哪你想修一个 Bug但不知道数据从哪来、往哪去。传统做法是什么grep搜关键字翻文件画调用关系图折腾半天还没开始写代码。OpenCode 能帮上忙。但很多人装完之后只会用一种用法把需求丢进去让它直接改代码。这当然能干活但如果你想先看懂一个陌生项目再动手有几个命令比你想象中好用得多。下面说三个。命令一explore —— 项目讲解员这是你面对陌生代码库第一个该敲的东西。explore是 OpenCode 内置的一个子代理subagent定位非常明确只读、快速、探索代码库。它不会改任何文件不会执行任何有副作用的操作唯一做的事情就是读代码、搜代码、回答你对代码库的问题。用法很简单。在 OpenCode 的 TUI 里直接输入explore 这个项目的入口文件在哪 explore 找出所有和数据库交互的代码 explore 梳理一下这个项目的目录结构 explore 这个认证逻辑是怎么串起来的它会自动调用grep、glob、read这些工具去翻你的代码库然后给你一个带文件路径和行号的回答。跟直接问有什么区别直接问默认走的是general代理它什么都能干但什么都不是最擅长。explore是专门为“看懂已有项目”设计的它的工作方式就是搜索 读取 总结不会跑偏去给你写代码或者改文件。什么时候用explore刚拿到一个陌生项目想知道它大概是干什么的想找一个功能在哪实现但不知道关键字怎么搜想理清模块之间的调用关系任何“我只想知道不想改动”的场景记住一句话看不懂代码的时候先explore别直接general或者/build。命令二/plan —— 先想清楚再动手explore帮你搞清楚了“项目现在是什么样”。下一步是“如果要改应该怎么改”。这时候用/plan。/plan是 OpenCode 的主代理primary agent之一和默认的Build平级。你按 Tab 可以在 Build 和 Plan 之间切换。Plan 模式和 Build 模式的核心差异只有一条Plan 不修改任何文件Build 会修改文件。Plan 模式禁用了所有写操作——edit不调write不调有文件写入风险的bash命令也被限制。它只做三件事读相关代码、分析依赖关系、输出实施方案。用法/plan 我想给这个模块加一个缓存层你先出一个方案 /plan 重构这个函数的逻辑告诉我改哪些文件、怎么改 /plan 把这个项目的日志从 console.log 换成 winston列一下改动范围Plan 模式会给你一份自然语言的实施计划涉及哪些文件、每一步改什么、有没有风险点。你看了方案觉得不对可以调整觉得没问题再切到 Build 模式执行。为什么推荐先/plan再动手根据社区数据复杂重构任务采用“先 Plan 后 Build”的策略**代码一次性通过率能提升大约 40%**。说白了就是让 AI 先把方案拿出来给你看你确认了再让它干比让它直接干然后你返工要快得多。什么时候用/plan需求涉及多个文件、多个模块你不确定改动会波及哪些地方你想先看看 AI 的理解对不对再让它动手任何“改动范围超过 3 个文件”的事情小改动改个配置、修个错别字直接 Build 就行。大改动先 Plan。命令三/build —— 动手干活这个你可能已经用过了。/build是 OpenCode 的默认主代理拥有所有工具的完整权限——读、写、编辑、删文件、跑命令全都能做。但这里要说的不是怎么用/build而是什么时候用。很多人打开 OpenCode 就直接输入需求默认走的就是 Build 模式。这在两种情况下没问题改动范围很小改一行配置、修一个错别字你已经完全理解了这个项目知道 AI 要改什么、改哪里但在陌生代码库上直接/build的风险在于AI 可能理解错你的意图改了你不想改的地方或者漏掉了关键依赖。正确的打开方式是把三个命令串起来第一步explore看懂项目第二步/plan确认方案第三步/build执行改动一个完整的工作流示例假设你刚接手一个 Express MongoDB 的项目需要给用户模块加一个“软删除”功能。第一步exploreexplore 这个项目的用户模块在哪里现有的删除逻辑是怎么实现的OpenCode 会搜出来src/models/user.js、src/routes/user.js、src/controllers/user.js告诉你删除接口调的是User.findByIdAndDelete。第二步/plan/plan 我要把用户删除改成软删除加一个 deletedAt 字段查询的时候默认过滤掉已删除的用户。出个方案。Plan 模式会分析现有代码告诉你需要改 Model 定义、改 Controller 里的删除逻辑、改查询方法、可能需要加一个索引。方案列得清清楚楚。第三步审完方案没问题切到 Build/build 按刚才的方案执行OpenCode 开始改文件、跑测试。你在旁边看着有问题随时中断。几个实用技巧1. Tab 键切换主代理在 TUI 里按 Tab 可以在 Build 和 Plan 之间切换。不用每次都敲/plan或/build按一下 Tab 就行。2. 子代理可以嵌套调用你可以在任何对话里用提及子代理。比如在 Build 模式下突然想查个东西直接explore xxx不用切换模式。3. 不确定先用哪个问自己一个问题我想知道还是我想改想知道就用explore想改但不确定怎么改就用/plan确定要改就直接/build。4. 把AGENTS.md用起来OpenCode 支持在项目根目录放一个AGENTS.md文件用来固化仓库的规则和上下文。第一次用explore梳理完项目之后可以把关键信息写进AGENTS.md下次再让 OpenCode 干活的时候它自动就有了项目背景不用每次都重新解释一遍。总结三个命令一张表说清楚命令类型能改文件吗什么时候用explore子代理否看不懂项目想梳理结构、搜代码/plan主代理否想改东西但先要个方案看看/build主代理是方案确认了直接动手干核心就一句话陌生代码库先 Explore 后 Plan 再 Build。别上来就 Build。这跟写代码的习惯是一样的——需求来了先理解上下文再设计方案最后才动手编码。只不过现在这些事可以让 OpenCode 帮你做一部分你只需要在关键节点上做判断。下次拿到一个陌生项目不妨试试这个流程。比你硬啃代码快得多。