Rules(规则)用于定义AI助手的行为准则和项目特定的指南。通过规则配置,可以让AI更好地理解项目上下文和团队规范。
AGENTS.md文件
OpenCode使用 AGENTS.md 文件作为规则配置的主要载体。这个文件名与Claude Code的规则文件兼容。
基本结构
# 项目规则
## 项目概述
这是一个基于React的电商平台前端项目。
## 技术栈
- React 18
- TypeScript
- Tailwind CSS
- Zustand (状态管理)
## 代码规范
- 使用函数式组件和Hooks
- 组件文件使用PascalCase命名
- 工具函数使用camelCase命名
- 所有组件必须有TypeScript类型定义
## 目录结构
- src/components - UI组件
- src/pages - 页面组件
- src/hooks - 自定义Hooks
- src/utils - 工具函数
- src/types - TypeScript类型定义
## 注意事项
- 不要直接修改node_modules
- 提交前运行 npm run lint
- 新功能需要添加单元测试
/init命令
使用 /init 命令可以自动生成项目的AGENTS.md文件:
# 在项目根目录执行
/init
OpenCode会分析项目结构,自动生成包含以下内容的规则文件:
- 检测到的技术栈和框架
- 项目目录结构说明
- 常见的开发命令
- 基本的代码规范建议
提示
生成的AGENTS.md只是起点,建议根据项目实际情况进行补充和完善。
配置层级
OpenCode支持多级规则配置,按优先级从高到低:
1. 项目级配置
位于项目根目录,优先级最高:
project/
├── AGENTS.md # 项目规则
├── .opencode/
│ └── AGENTS.md # 或放在.opencode目录
└── src/
2. 全局级配置
位于用户配置目录,作为所有项目的默认规则:
# macOS/Linux
~/.config/opencode/AGENTS.md
# Windows
%APPDATA%\opencode\AGENTS.md
配置合并
多级配置会按优先级合并,项目级配置会覆盖全局配置中的同名规则。
外部文件引用
可以在AGENTS.md中引用外部文件,保持规则文件简洁:
# 项目规则
## 代码规范
@import ./docs/code-style.md
## API文档
@import ./docs/api-reference.md
## 部署流程
@import ./docs/deployment.md
引用语法
| 语法 | 说明 |
|---|---|
@import ./path/to/file.md | 引用相对路径文件 |
@import /absolute/path.md | 引用绝对路径文件 |
@import https://url/file.md | 引用远程文件(需网络权限) |
规则最佳实践
清晰的项目描述
## 项目描述
MyApp是一个面向企业的任务管理系统,主要功能包括:
- 任务创建和分配
- 团队协作
- 进度追踪
- 报表生成
目标用户:中小型企业的项目管理团队
明确的技术约束
## 技术约束
- Node.js版本:>=18.0.0
- 必须使用pnpm作为包管理器
- 数据库:PostgreSQL 15
- 不使用ORM,使用原生SQL
- API遵循RESTful规范
具体的编码规范
## 编码规范
### 命名规则
- 变量:camelCase (例:userName)
- 常量:UPPER_SNAKE_CASE (例:MAX_RETRY_COUNT)
- 类型:PascalCase (例:UserProfile)
- 文件:kebab-case (例:user-profile.ts)
### 函数规范
- 单一职责原则
- 函数不超过50行
- 参数不超过4个
- 必须有JSDoc注释
禁止事项
## 禁止事项
- 不要使用any类型
- 不要使用var声明变量
- 不要在组件中直接调用API
- 不要硬编码配置值
- 不要提交console.log调试代码
Claude Code兼容性
OpenCode的规则系统与Claude Code完全兼容:
| Claude Code | OpenCode | 说明 |
|---|---|---|
CLAUDE.md | AGENTS.md | 两者都支持 |
.claude/ | .opencode/ | 配置目录 |
claude.json | opencode.json | JSON配置文件 |
兼容提示
如果项目中已有
CLAUDE.md 文件,OpenCode会自动识别并使用,无需重命名。动态规则
可以在JSON配置中设置动态规则:
{
"rules": {
"system": "你是一个专业的TypeScript开发者",
"user": "请使用简洁的代码风格",
"files": [
"./docs/rules.md",
"./CODING_STANDARDS.md"
]
}
}
规则类型
system- 系统级规则,作为系统提示词的一部分user- 用户级规则,附加到每次对话files- 引用的外部规则文件列表
下一步
接下来学习如何自定义OpenCode的界面主题。