| --- |
| title: Zasady |
| description: Ustaw niestandardowe instrukcje dla opencode. |
| --- |
| |
| Możesz dostarczyć niestandardowe instrukcje do opencode, tworząc plik `AGENTS.md`. Jest to podobne do zasad Cursora. Zawiera instrukcje, które zostaną uwzględnione w kontekście LLM, aby dostosować jego zachowanie do konkretnego projektu. |
|
|
| --- |
| |
| |
|
|
| Aby utworzyć nowy plik `AGENTS.md`, możesz uruchomić komendę `/init` w otwartym kodzie. |
|
|
| :::tip |
| Powinieneś zatwierdzić plik `AGENTS.md` swojego projektu w Git. |
| ::: |
|
|
| Spowoduje to przeskanowanie projektu i całej jego zawartości, aby zrozumieć, czego dotyczy projekt i wygenerować z nim plik `AGENTS.md`. Pomaga to otwartemu kodowi lepiej poruszać się po projekcie. |
|
|
| Jeśli masz istniejący plik `AGENTS.md`, spróbujemy go dodać. |
|
|
| --- |
| |
| |
|
|
| Możesz także po prostu utworzyć ten plik ręcznie. Oto przykład niektórych rzeczy, które można umieścić w pliku `AGENTS.md`. |
|
|
| ```markdown title="AGENTS.md" |
| |
|
|
| This is an SST v3 monorepo with TypeScript. The project uses bun workspaces for package management. |
|
|
| |
|
|
| - `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 |
|
|
| |
|
|
| - 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/` |
|
|
| |
|
|
| - Import shared modules using workspace names: `@my-app/core/example` |
| ``` |
|
|
| Dodajemy tutaj instrukcje dotyczące konkretnego projektu, które zostaną udostępnione całemu zespołowi. |
|
|
| --- |
| |
| |
|
|
| opencode obsługuje także odczytywanie pliku `AGENTS.md` z wielu lokalizacji. A to służy różnym celom. |
|
|
| |
|
|
| Umieść `AGENTS.md` w katalogu głównym projektu, aby uzyskać reguły specyficzne dla projektu. Mają one zastosowanie tylko wtedy, gdy pracujesz w tym katalogu lub jego podkatalogach. |
|
|
| |
|
|
| Możesz także mieć reguły globalne w pliku `~/.config/opencode/AGENTS.md`. Jest to stosowane we wszystkich sesjach opencode. |
|
|
| Ponieważ nie jest to wymagane dla Git ani udostępniane Twojemu zespołowi, zalecamy użycie tego do określenia wszelkich osobistych zasad, których powinien przestrzegać LLM. |
|
|
| |
|
|
| W przypadku użytkowników migrujących z Claude Code opencode obsługuje konwencje plików Claude Code jako rozwiązania awaryjne: |
|
|
| - **Zasady projektu**: `CLAUDE.md` w katalogu projektu (używane, jeśli nie istnieje `AGENTS.md`) |
| - **Zasady globalne**: `~/.claude/CLAUDE.md` (używane, jeśli nie istnieje `~/.config/opencode/AGENTS.md`) |
| - **Umiejętności**: `~/.claude/skills/` — szczegóły znajdziesz w [Umiejętnościach agenta](/docs/skills/) |
|
|
| Aby wyłączyć kompatybilność z Claude Code, ustaw jedną z tych zmiennych środowiskowych: |
|
|
| ```bash |
| export OPENCODE_DISABLE_CLAUDE_CODE=1 |
| export OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1 |
| export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 |
| ``` |
|
|
| --- |
| |
| |
|
|
| Po uruchomieniu opencode szuka plików reguł w następującej kolejności: |
|
|
| 1. **Pliki lokalne** poprzez przejście z bieżącego katalogu (`AGENTS.md`, `CLAUDE.md`) |
| 2. **Plik globalny** w `~/.config/opencode/AGENTS.md` |
| 3. **Plik Claude Code** w `~/.claude/CLAUDE.md` (chyba że wyłączony) |
|
|
| Pierwszy pasujący plik wygrywa w każdej kategorii. Na przykład, jeśli masz zarówno `AGENTS.md`, jak i `CLAUDE.md`, używany jest tylko `AGENTS.md`. Podobnie `~/.config/opencode/AGENTS.md` ma pierwszeństwo przed `~/.claude/CLAUDE.md`. |
|
|
| --- |
| |
| |
|
|
| Możesz określić niestandardowe pliki instrukcji w swoim `opencode.json` lub globalnym `~/.config/opencode/opencode.json`. Dzięki temu Ty i Twój zespół możecie ponownie wykorzystać istniejące reguły, zamiast duplikować je w pliku AGENTS.md. |
|
|
| Przykład: |
|
|
| ```json title="opencode.json" |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"] |
| } |
| ``` |
|
|
| Możesz także użyć zdalnych adresów URL, aby załadować instrukcje z Internetu. |
|
|
| ```json title="opencode.json" |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "instructions": ["https://raw.githubusercontent.com/my-org/shared-rules/main/style.md"] |
| } |
| ``` |
|
|
| Instrukcje zdalne są pobierane z 5-sekundowym limitem czasu. |
|
|
| Wszystkie pliki instrukcji są łączone z plikami `AGENTS.md`. |
|
|
| --- |
| |
| |
|
|
| Chociaż opencode nie analizuje automatycznie odniesień do plików w `AGENTS.md`, możesz osiągnąć podobną funkcjonalność na dwa sposoby: |
|
|
| |
|
|
| Zalecanym podejściem jest użycie pola `instructions` w `opencode.json`: |
|
|
| ```json title="opencode.json" |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "instructions": ["docs/development-standards.md", "test/testing-guidelines.md", "packages/*/AGENTS.md"] |
| } |
| ``` |
|
|
| |
|
|
| Możesz nauczyć opencode czytać pliki zewnętrzne, podając wyraźne instrukcje w swoim `AGENTS.md`. Oto praktyczny przykład: |
|
|
| ```markdown title="AGENTS.md" |
| |
|
|
| |
|
|
| 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 |
|
|
| |
|
|
| 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 |
|
|
| |
|
|
| Read the following file immediately as it's relevant to all workflows: @rules/general-guidelines.md. |
| ``` |
|
|
| Takie podejście pozwala: |
|
|
| - Twórz modułowe pliki reguł wielokrotnego użytku |
| - Share rules across projects via symlinks or git submodules |
| - Keep AGENTS.md concise while referencing detailed guidelines |
| - Upewnij się, że opencode ładuje pliki tylko wtedy, gdy są potrzebne do konkretnego zadania |
|
|
| :::tip |
| W przypadku monorepo lub projektów ze wspólnymi standardami użycie `opencode.json` ze wzorami globalnymi (takimi jak `packages/*/AGENTS.md`) jest łatwiejsze w utrzymaniu niż instrukcje ręczne. |
| ::: |
|
|