📚AI 编程官方教程中文版
🧠 从原理到实战

04 · 配置、Rules 与自定义命令

基于官方 OpenCode Config、Rules、Commands 教程,面向新手讲清配置、规则和命令各自沉淀什么经验。

OpenCode 的长期价值来自配置系统。一次性提示词只能解决一次问题;配置、rules 和 commands 能把经验固化成项目约定。

先理解:三者分工

配置负责“OpenCode 怎么运行”。比如默认模型、provider、权限、agent、MCP server、主题和项目级设置。

Rules 负责“Agent 在这个项目里应该遵守什么”。比如包管理器、禁止目录、测试命令、代码风格和发布红线。

Commands 负责“把重复任务变成 slash command”。比如 review 当前 diff、解释某个模块、生成 release note、检查迁移风险。

不要混用。运行参数进配置,长期约束进 rules,重复流程进 commands。

怎么判断放全局还是项目

全局配置适合个人偏好,例如默认模型、主题、快捷键。

项目配置适合团队约定,例如默认 agent、MCP server、权限、命令和 rules。只要不包含密钥,项目级配置应该尽量版本化。

密钥不应该进项目配置。provider key、token、账号信息应该走 /connect、环境变量或凭据系统。

Rules 什么时候写

当你反复提醒 OpenCode 同一条规则时,写进 rules。

适合写入的内容包括:项目使用什么包管理器、哪些目录不能改、测试命令是什么、命名和错误处理约定、安全红线、修改前要读哪些文档。

不要把一次性任务写进 rules。rules 越短、越稳定,越容易被模型遵守。

Commands 什么时候写

当你反复执行同一个流程时,写成 command。

比如 review 当前改动、解释模块、生成迁移计划、写发布说明、检查安全风险。

Command 适合把固定检查维度写进去,让每次运行都带同样标准。它比临时 prompt 稳定,也比 rules 更适合流程。

推荐沉淀顺序

先用 TUI 跑几轮真实任务。

把反复出现的注意事项放进 rules。

把反复出现的任务流程放进 commands。

把需要不同权限或角色的任务拆成 agents。

把可复用能力包沉淀成 skills 或 plugins。

OpenCode 的开放配置不是为了把所有东西都配置满,而是为了让真实经验有地方沉淀。

新手常见坑

  • 配置里写 API key。
  • rules 太长,像项目百科。
  • commands 太宽,变成另一个万能 prompt。
  • 把一次性任务写进 rules,后面污染所有任务。
  • 只写 rules,不配 permissions,误以为安全边界已经生效。
  • 改了项目配置但没让团队 review。

怎么验收

你能说清每条长期规则为什么存在。

你能用一个 slash command 稳定完成重复任务。

你能确认项目配置不含密钥。

你能让 OpenCode 在同一任务中自动遵守 rules,而不是每次重新提醒。

你能删除某条 command 或 rule,并知道会影响哪些流程。

官方资料

On this page