很多人已经开始感觉到AI 编程助手正在改变日常开发的方式。不是“再过几年会改变”是已经改变了。Cursor、GitHub Copilot、Claude Code 这些工具在过去一年里密集地涌进来。你可能已经装了其中一个试过让 AI 帮你写点代码、修个 Bug。效果时好时坏——有时候 AI 像真的懂你的项目有时候它连你在用哪个框架都搞不清楚。问题不出在 AI 模型本身。Claude 和 GPT-4 的能力摆在那里写代码的逻辑推理没问题。问题出在上下文。AI 不知道你的项目是什么结构、用了什么技术栈、代码风格是什么、哪些文件是核心逻辑哪些是自动生成的。你给它一个需求它只能靠猜。猜对了是运气猜错了是常态。OpenCode 用 /init 解决了这个问题。这篇文章不讲概念讲它到底怎么做的。目录一、一个命令改变了什么二、本质是“让 AI 拿到项目的说明书”三、/init 到底做了什么——四个步骤拆解四、有 /init 和没有 /init 的差别五、对你有用的三个工程启示六、最后问你一个问题一、一个命令改变了什么OpenCode 是 SST 团队开发的开源 AI 编程 Agent用 Go 编写跑在终端里。它的定位很明确不是聊天窗口是能读代码、改文件、执行命令的 Agent。安装完 OpenCode进入项目目录输入 opencode会出现一个 TUI 界面。然后输入 /init。就这么简单。但这一瞬间发生的事情比你想象的多。OpenCode 会扫描整个项目分析代码组织方式然后自动生成一个 AGENTS.md 文件。这个文件记录了项目的结构、技术栈、代码规范等信息。之后你在 OpenCode 里问任何问题、提任何需求AI 都会基于这个文件来理解你的项目。换句话说/init 解决的是一个根本问题AI 怎么知道你的项目是什么。二、本质是“让 AI 拿到项目的说明书”要理解 /init 的价值得先理解 AI 编程助手工作的底层逻辑。AI 模型本身不包含你项目的任何信息。你问它“帮我给这个项目加个登录功能”它只能根据你提供的有限上下文比如当前打开的文件、你刚说的话来推测。如果它不知道你的项目是 Next.js 还是 Express、不知道数据库用什么、不知道代码风格是什么生成的东西大概率需要大量修改。AGENTS.md 本质上是给 AI 看的项目说明书。工具决定 AI 能做什么读文件、改代码、执行命令AGENTS.md 决定 AI 应该怎么做。它定义了项目结构、代码风格、开发规范、架构决策。OpenCode 启动时会把 AGENTS.md 的内容加载进 AI 的系统提示词里。AI 在回答任何问题之前都已经读过了这份“说明书”。/init 就是生成这份说明书的最快方式。三、/init 到底做了什么——四个步骤拆解flowchart TDA[用户在 OpenCode 中输入 /init] -- B[扫描项目目录结构]B -- C[识别框架和语言模式]C -- D[读取包管理器和配置文件]D -- E[生成 AGENTS.md]E -- F[后续对话自动加载项目上下文]第一步扫描目录结构/init 触发后OpenCode 会遍历项目根目录及子目录。它不是简单地列文件名而是识别组织模式——哪些是源代码目录、哪些是配置文件、哪些是构建产物。这一步的关键是区分“项目内容”和“项目噪音”。node_modules、.git、dist 这些目录不会被当作项目核心结构来处理。第二步识别框架和语言模式OpenCode 通过文件扩展名和特定文件的存在来判断技术栈。看到 package.json 就知道是 Node.js 项目。看到 requirements.txt 或 pyproject.toml 就知道是 Python。看到 go.mod 就知道是 Go。看到 pom.xml 就知道是 Java Maven 项目。这一步不是猜是基于确定性特征做判断。第三步读取关键配置文件/init 会读取 package.json、tsconfig.json、.eslintrc 这类配置文件。它要从中提取项目名称和版本主要依赖构建工具和脚本语言版本要求这些信息会被写入 AGENTS.md让 AI 知道项目用了什么库、什么版本。第四步生成 AGENTS.md基于前三步收集的信息OpenCode 生成一份结构化的 Markdown 文档。这份文档通常包含项目概述架构说明目录结构及每个目录的用途代码规范常用操作如果项目里已经存在 AGENTS.md/init 会在其基础上进行补充而不是覆盖。整个过程是自动化的不需要你手动填写任何内容。四、有 /init 和没有 /init 的差别场景一没有 /init你打开 OpenCode直接输入“帮我找到支付流程的入口。”AI 不知道你的项目结构。它只能猜测——可能在 src/payment、可能在 routes、可能在 api。它会尝试读几个它认为可能的文件如果猜错了你得多轮对话纠正它。场景二运行了 /init同样的需求。AI 已经在系统提示词里包含了 AGENTS.md 的内容。它知道项目是 TypeScript Express 架构知道 src/payment/ 是支付模块知道 routes/ 下是路由定义。它能直接定位到正确的文件告诉你流程是怎么走的。差别不是“快一点”是从“猜”变成了“知道”。再看一个更具体的对比维度没有 /init有 /initAI 对项目结构的理解零需要你逐步告知完整启动即具备代码生成一致性每次可能不同风格遵循项目既有规范多轮对话效率重复解释项目背景一次初始化全程复用接手新项目从零开始摸索/init三秒建立认知/init 把 AI 从一个“会写代码的陌生人”变成了“懂你项目的同事”。五、对你有用的三个工程启示启示一上下文是 AI 编程的瓶颈不是模型能力很多人抱怨 AI 生成的代码用不上归根结底是上下文没给够。/init 做的事情本质上就是把项目上下文结构化、持久化。OpenCode 的上下文管理思路值得借鉴不是每次对话重新构建上下文而是通过 AGENTS.md 这样的文件做到一次性建立、持续性复用。你的项目里有没有类似的“上下文资产”技术文档、架构决策记录、代码规范——这些都可以成为 AI 的输入。模型能力决定 AI 的上限上下文质量决定 AI 的下限。启示二AGENTS.md 可以团队共享不止个人用AGENTS.md 推荐提交到 Git 仓库。这意味着团队所有人共享同一份项目上下文。新人入职git clone 之后运行 /initAI 就能基于团队统一的规范来辅助开发。不需要老人一遍遍口头交代“我们这个项目要注意什么”。本质上AGENTS.md 是把团队的隐性知识变成了显性文档而且是 AI 能直接使用的文档。启示三/init 不只是初始化是持续演进/init 不是只跑一次就完事。项目结构变化、技术栈升级、新增模块——这些变化都应该反映在 AGENTS.md 里。OpenCode 支持在 opencode.json 中通过 instructions 字段加载额外的规则文件比如 CONTRIBUTING.md、docs/guidelines.md。这意味着你可以把项目规范分散维护OpenCode 自动聚合。好的项目上下文不是一次性生成的是跟着项目一起生长的。六、最后问你一个问题**你的团队现在用的 AI 编程工具每次对话都知道你的项目是什么结构、用什么技术栈、遵循什么规范吗如果答案是否定的你浪费的不仅仅是 Token——你在浪费 AI 本可以具备的“项目理解力”。而这个问题一个 /init 就能解决。