快速结论
opencode rules: 快速结论
OpenCode rules 是影响 Agent 工作方式的持久指令,可以作用于项目、全局用户环境或可信 URL 上下文。项目规则适合一个代码库的约束,全局规则只放跨项目稳定的习惯,URL 指令则必须先验证来源和变更边界。规则文件的关键不是写得多,而是作用域和优先级清楚。
Similarweb 的 `opencode rules` 词簇呈现出明确的配置意图:用户在找规则文件、全局规则、项目规则,以及规则冲突时谁优先。OpenCode 官方文档把 rules 与 skills、agents、permissions 和通用 config 分开,但很多教程只提到这些名词,没有把选择路径讲清楚。
本文把边界拆开:rules 负责会话中长期有效的指令,skills 负责可复用流程,agents 负责角色和工具边界,permissions 负责 allow/ask/deny,config 负责产品设置。示例都先从低风险只读检查开始,避免在规则尚未验证时直接允许编辑。
相关指南: OpenCode 技能指南, OpenCode Agent 指南, OpenCode 权限指南, OpenCode 配置指南.
1. 为 OpenCode rules 选择最小作用域
项目规则适合测试命令、生成目录、文件归属、安全边界和发布检查等仓库事实。它随仓库进入评审,能与被保护的代码一起更新。全局规则适合跨项目稳定的个人习惯,例如希望如何总结 diff 或先运行哪条无害检查。URL 规则适合可信文档上下文,但不能成为关键安全规则的唯一来源。
外部 URL 还带来网络和来源边界。应确认主机、传输、维护者和变更记录,并为密钥、生产路径、生成文件等高风险约束保留本地兜底。
| 作用域 | 适合内容 | 主要风险 |
|---|---|---|
| 项目 | 团队都要遵守的仓库规则 | 过期或范围过大的约束 |
| 全局 | 个人跨项目习惯 | 把某个技术栈的习惯带到别的仓库 |
| URL | 特定场景的可信外部说明 | 网络漂移、来源变化、未审查内容 |
2. 确认 OpenCode 发现规则的位置
官方 Rules 文档覆盖 Initialize、Types、Precedence、Custom Instructions 和外部文件引用。应先使用当前版本的初始化流程或检查生成的项目文件,再确认本机版本真正读取的路径。不要从别的 Agent 框架照抄目录名。
规则文件应靠近它描述的项目约定,写清保护什么、用哪条命令证明完成、如何更新。长流程应移到 skill,规则只保留约束和入口。

3. 把规则优先级当作可评审决定
全局规则和项目规则可能重叠,例如全局要求先跑快速测试,而项目要求另一条命令或禁止改生成目录。实际行为取决于官方记录的规则类型和优先级。先读当前 Rules 页面,再写一个小冲突案例观察谁生效。
实务上应让最具体的项目安全边界负责仓库行为。遇到冲突时删除重复表达、保留项目约束,并把原因写进规则或评审记录。不要通过复制两份指令来制造更长的 prompt。
4. 把自定义指令写成短契约
好的规则要回答五个问题:何时生效、Agent 必须做什么、必须避免什么、什么证据证明完成、如何禁用或更新。优先写具体路径和命令,不要只写“注意生产环境”这样的空话。
把事实和偏好分开。仓库文档明确的测试命令属于项目规则;偏好的解释长度更适合全局规则或 skill。这样不会把个人习惯误变成团队政策。
5. 通过信任检查后再引用外部文件
外部文件可以集中维护共享说明,但 URL 会成为执行边界。应检查域名、传输、归属、更新历史和是否无需审查就能变化。能成功返回页面,不代表适合交给可写会话。
外部引用先用于低风险上下文,例如 API 命名或公开风格指南。密钥、部署、破坏性命令和客户数据规则必须留在本地;网络不可用时要明确失败或使用已审查副本。
6. 将 rules 与 skills、agents、permissions、config 分开
Rules 表达持久指令;skills 表达可复用步骤;agents 定义角色、模型、工具和输出契约;permissions 决定工具动作是允许、询问还是拒绝;config 管理 provider 和目录等产品设置。它们可以协作,但职责必须可见。
不要把完整发布流程塞进规则文件,再用权限例外让它自动运行。规则保留护栏,重复流程放进 command 或 skill,高影响动作要求显式批准。
| 需求 | 使用 | 不要藏在 |
|---|---|---|
| 持久的仓库约束 | Rules | 宽泛的 Agent prompt |
| 重复的多步流程 | Skill 或 command | 带副作用的规则文件 |
| 命名角色和工具边界 | Agent | 影响所有任务的全局规则 |
| 允许、询问或拒绝工具 | Permissions | 只期待模型服从的文字 |
7. 在真实编辑前验证最终生效规则
用一次性分支或小仓库验收新规则。先让 OpenCode 解释它采用的规则、列出可能触碰的文件,再执行只读任务。随后做一次无害编辑,检查 Git diff,并与契约对照,尽早发现路径错误、语法过期、作用域泄漏和全局冲突。
保留回滚路径:删除项目规则、禁用外部引用或从 Git 恢复旧文件。回滚后复跑同一任务,确认行为确实改变。更新规则时记录日期、原因和验证命令,避免升级后出现无法解释的政策漂移。
OpenCode rules 常见问题
OpenCode rules 是什么?
它是在项目、全局用户环境或可信外部引用等作用域内指导 OpenCode 会话的持久指令。
项目规则应该放在哪里?
使用当前版本 OpenCode Rules 文档或初始化流程确认路径,并把仓库规则放在项目内,方便随代码评审。
rules 和 skills 有什么区别?
Rules 表达长期约束和约定,skills 表达带步骤和示例的可复用流程。规则可以指向 skill,但不应隐藏长流程。
全局规则会覆盖项目规则吗?
要看官方记录的规则类型和优先级。写一个小冲突例子验证,并保持更具体的项目安全边界明确。
URL 规则安全吗?
只有在来源可信、经过审查且适合当前任务时才安全。关键安全和部署指令应保留本地,并让网络失败可见。
官方来源
已于 2026-10-31 检查 OpenCode Rules、Config、Permissions、Skills 和 Agents 文档。路径和优先级会随版本变化,实际使用前请核对官方页面。
