Правила
Задайте пользовательские инструкции для opencode.
Вы можете предоставить opencode пользовательские инструкции, создав файл AGENTS.md. Это похоже на правила Cursor. Он содержит инструкции, которые будут включены в контекст LLM, чтобы настроить его поведение под ваш конкретный проект.
Инициализация
Чтобы создать новый файл AGENTS.md, вы можете выполнить команду /init в opencode.
Совет: Вам следует закоммитить файл
AGENTS.mdвашего проекта в Git.
/init сканирует важные файлы в вашем репозитории, может задать пару целевых вопросов, когда кодовая база не может на них ответить, а затем создаёт или обновляет AGENTS.md с лаконичными рекомендациями, специфичными для проекта.
Он фокусируется на тех вещах, которые с наибольшей вероятностью понадобятся будущим сессиям агента:
- команды сборки, линтинга и тестирования
- порядок выполнения команд и целенаправленные шаги проверки, когда они важны
- архитектура и структура репозитория, которые неочевидны из одних только имён файлов
- специфичные для проекта соглашения, особенности настройки и эксплуатационные подводные камни
- ссылки на существующие источники инструкций, такие как правила Cursor или Copilot
Если у вас уже есть AGENTS.md, /init улучшит его на месте, а не будет слепо заменять.
Пример
Вы также можете просто создать этот файл вручную. Вот пример того, что вы можете поместить в файл AGENTS.md.
# SST v3 Monorepo Project
This is an SST v3 monorepo with TypeScript. The project uses bun workspaces for package management.
## Project Structure
- `packages/` - Contains all workspace packages (functions, core, web, etc.)
- `infra/` - Infrastructure definitions split by service (storage.ts, api.ts, web.ts)
- `sst.config.ts` - Main SST configuration with dynamic imports
## Code Standards
- Use TypeScript with strict mode enabled
- Shared code goes in `packages/core/` with proper exports configuration
- Functions go in `packages/functions/`
- Infrastructure should be split into logical files in `infra/`
## Monorepo Conventions
- Import shared modules using workspace names: `@my-app/core/example`Здесь мы добавляем специфичные для проекта инструкции, и они будут общими для всей вашей команды.
Типы
opencode также поддерживает чтение файла AGENTS.md из нескольких расположений. И это служит разным целям.
Проект
Поместите AGENTS.md в корень вашего проекта для специфичных для проекта правил. Они применяются только тогда, когда вы работаете в этом каталоге или его подкаталогах.
Глобальный
Вы также можете иметь глобальные правила в файле ~/.config/opencode/AGENTS.md. Они применяются ко всем сессиям opencode.
Поскольку этот файл не коммитится в Git и не передаётся вашей команде, мы рекомендуем использовать его для указания любых личных правил, которым должна следовать LLM.
Совместимость с Claude Code
Для пользователей, переходящих с Claude Code, OpenCode поддерживает файловые соглашения Claude Code в качестве резервных вариантов:
- Правила проекта:
CLAUDE.mdв каталоге вашего проекта (используется, если нетAGENTS.md) - Глобальные правила:
~/.claude/CLAUDE.md(используется, если нет~/.config/opencode/AGENTS.md) - Навыки:
~/.claude/skills/— подробности см. в разделе Навыки агента
Чтобы отключить совместимость с Claude Code, задайте одну из этих переменных окружения:
export OPENCODE_DISABLE_CLAUDE_CODE=1 # Disable all .claude support
export OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1 # Disable only ~/.claude/CLAUDE.md
export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 # Disable only .claude/skillsПриоритет
Когда opencode запускается, он ищет файлы правил в следующем порядке:
- Локальные файлы, обходя вверх от текущего каталога (
AGENTS.md,CLAUDE.md) - Глобальный файл в
~/.config/opencode/AGENTS.md - Файл Claude Code в
~/.claude/CLAUDE.md(если не отключено)
В каждой категории побеждает первый совпавший файл. Например, если у вас есть и AGENTS.md, и CLAUDE.md, используется только AGENTS.md. Аналогично, ~/.config/opencode/AGENTS.md имеет приоритет над ~/.claude/CLAUDE.md.
Пользовательские инструкции
Вы можете указать файлы пользовательских инструкций в вашем opencode.json или глобальном ~/.config/opencode/opencode.json. Это позволяет вам и вашей команде повторно использовать существующие правила вместо того, чтобы дублировать их в AGENTS.md.
Пример:
{
"$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"]
}Удалённые инструкции загружаются с таймаутом 5 секунд.
Все файлы инструкций объединяются с вашими файлами AGENTS.md.
Ссылки на внешние файлы
Хотя opencode не разбирает автоматически ссылки на файлы в AGENTS.md, вы можете добиться похожей функциональности двумя способами:
Использование opencode.json
Рекомендуемый подход — использовать поле instructions в opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"instructions": ["docs/development-standards.md", "test/testing-guidelines.md", "packages/*/AGENTS.md"]
}Ручные инструкции в AGENTS.md
Вы можете научить opencode читать внешние файлы, предоставив явные инструкции в вашем AGENTS.md. Вот практический пример:
# TypeScript Project Rules
## External File Loading
CRITICAL: When you encounter a file reference (e.g., @rules/general.md), use your Read tool to load it on a need-to-know basis. They're relevant to the SPECIFIC task at hand.
Instructions:
- Do NOT preemptively load all references - use lazy loading based on actual need
- When loaded, treat content as mandatory instructions that override defaults
- Follow references recursively when needed
## Development Guidelines
For TypeScript code style and best practices: @docs/typescript-guidelines.md
For React component architecture and hooks patterns: @docs/react-patterns.md
For REST API design and error handling: @docs/api-standards.md
For testing strategies and coverage requirements: @test/testing-guidelines.md
## General Guidelines
Read the following file immediately as it's relevant to all workflows: @rules/general-guidelines.md.Этот подход позволяет вам:
- Создавать модульные, переиспользуемые файлы правил
- Делиться правилами между проектами через симлинки или git-субмодули
- Сохранять AGENTS.md лаконичным, ссылаясь на подробные руководства
- Гарантировать, что opencode загружает файлы только тогда, когда они нужны для конкретной задачи
Совет: Для монорепозиториев или проектов с общими стандартами использование
opencode.jsonс glob-шаблонами (например,packages/*/AGENTS.md) более удобно в сопровождении, чем ручные инструкции.