跳转到内容

规则

OpenCode 允许你通过 AGENTS.md 文件提供自定义指令,类似于 Cursor 的规则。这些指令包含在 LLM 的上下文中,以根据你的特定项目自定义行为。

初始化

要创建新的 AGENTS.md 文件,在 OpenCode 中运行 /init 命令:

/init

/init 扫描 repo 中的重要文件,当代码库无法回答时可能会询问有针对性的问题,然后创建或更新 AGENTS.md,其中包含简洁的项目特定指导。

它专注于未来智能体会话最可能需要的内容:

  • 构建、lint 和测试命令
  • 命令顺序和重点验证步骤
  • 从文件名中不明显的架构和 repo 结构
  • 项目特定的约定、设置怪癖和操作注意事项
  • 对现有指令源的引用,如 Cursor 或 Copilot 规则

如果你已经有 AGENTS.md/init 将就地改进它。

示例

你也可以手动创建此文件。这是一个示例:

# SST v3 Monorepo Project

This is an SST v3 monorepo with TypeScript. The project uses bun workspaces.

## Project Structure
- `packages/` - All workspace packages
- `infra/` - Infrastructure definitions

## Code Standards
- Use TypeScript with strict mode
- Shared code goes in `packages/core/`

类型

OpenCode 支持从多个位置读取 AGENTS.md 用于不同目的。

项目

在项目根目录放置 AGENTS.md 以获取项目特定规则。这些仅适用于该目录或其子目录。

全局

你也可以在 ~/.config/opencode/AGENTS.md 中有全局规则。这适用于所有 OpenCode 会话。将其用于个人规则,因为它不会被提交到 Git。

Claude Code 兼容性

对于从 Claude Code 迁移的用户,OpenCode 支持 Claude Code 文件约定作为后备:

  • 项目规则:项目目录中的 CLAUDE.md(如果不存在 AGENTS.md 则使用)
  • 全局规则~/.claude/CLAUDE.md(如果不存在 ~/.config/opencode/AGENTS.md 则使用)

要禁用 Claude Code 兼容性:

export OPENCODE_DISABLE_CLAUDE_CODE=1        # 禁用所有 .claude 支持
export OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1 # 仅禁用 ~/.claude/CLAUDE.md
export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 # 仅禁用 .claude/skills

优先级

当 OpenCode 启动时,它按此顺序查找规则文件:

  1. 从当前目录向上遍历本地文件(AGENTS.md,然后 CLAUDE.md
  2. 全局文件在 ~/.config/opencode/AGENTS.md
  3. Claude Code 文件在 ~/.claude/CLAUDE.md(除非禁用)

每个类别中的第一个匹配文件获胜。

自定义指令

你可以在 opencode.json 中指定自定义指令文件:

{
  "$schema": "https://opencode.ai/config.json",
  "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"]
}

你也可以使用远程 URL:

{
  "$schema": "https://opencode.ai/config.json",
  "instructions": ["https://raw.githubusercontent.com/my-org/shared-rules/main/style.md"]
}

所有指令文件与你的 AGENTS.md 文件合并。

引用外部文件

虽然 OpenCode 不会自动解析 AGENTS.md 中的文件引用,但你可以通过两种方式实现这一点:

使用 opencode.json

推荐的方法是使用 opencode.json 中的 instructions 字段:

{
  "$schema": "https://opencode.ai/config.json",
  "instructions": ["docs/development-standards.md", "test/testing-guidelines.md"]
}

AGENTS.md 中的手动指令

你可以通过提供显式指令来教 OpenCode 读取外部文件:

# TypeScript Project Rules

## Development Guidelines
For TypeScript code style: @docs/typescript-guidelines.md
For React patterns: @docs/react-patterns.md

OpenCode 按需加载文件,而不是预先加载。