modes.mdx 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. ---
  2. title: Tilstande
  3. description: Forskellige tilstande til forskellige anvendelsestilfælde.
  4. ---
  5. :::caution
  6. Tilstande er nu konfigureret gennem indstillingen `agent` i opencode-konfigurationen. De
  7. `mode` mulighed er nu forældet. [Learn more](/docs/agents).
  8. :::
  9. Tilstande i opencode giver dig mulighed for at tilpasse adfærd, værktøjer og prompter til forskellige brugstilfælde.
  10. Den kommer med to indbyggede tilstande: **build** og **plan**. Du kan tilpasse
  11. disse eller konfigurer dine egne gennem opencode-konfigurationen.
  12. Du kan skifte mellem tilstande under en session eller konfigurere dem i din konfigurationsfil.
  13. ---
  14. ## Indbyggede
  15. opencode leveres med to indbyggede tilstande.
  16. ---
  17. ### Byg
  18. Byg er **standard**-tilstanden med alle værktøjer aktiveret. Dette er standardtilstanden for udviklingsarbejde, hvor du har brug for fuld adgang til filhandlinger og systemkommandoer.
  19. ---
  20. ### Plan
  21. En begrænset tilstand designet til planlægning og analyse. I plantilstand er følgende værktøjer deaktiveret som standard:
  22. - `write` - Kan ikke oprette nye filer
  23. - `edit` - Kan ikke ændre eksisterende filer, undtagen filer placeret på `.opencode/plans/*.md` for at detaljere selve planen
  24. - `patch` - Kan ikke anvende patches
  25. - `bash` - Kan ikke udføre shell-kommandoer
  26. Denne tilstand er nyttig, når du vil have AI til at analysere kode, foreslå ændringer eller oprette planer uden at foretage egentlige ændringer af din kodebase.
  27. ---
  28. ## Skift
  29. Du kan skifte mellem tilstande under en session ved at bruge _Tab_-tasten. Eller din konfigurerede `switch_mode` nøglebinding.
  30. Se også: [Formatters](/docs/formatters) for information om konfiguration af kodeformatering.
  31. ---
  32. ## Konfiguration
  33. Du kan tilpasse de indbyggede tilstande eller oprette dine egne gennem konfiguration. Tilstande kan konfigureres på to måder:
  34. ### JSON-konfiguration
  35. Konfigurer tilstande i din `opencode.json`-konfigurationsfil:
  36. ```json title="opencode.json"
  37. {
  38. "$schema": "https://opencode.ai/config.json",
  39. "mode": {
  40. "build": {
  41. "model": "anthropic/claude-sonnet-4-20250514",
  42. "prompt": "{file:./prompts/build.txt}",
  43. "tools": {
  44. "write": true,
  45. "edit": true,
  46. "bash": true
  47. }
  48. },
  49. "plan": {
  50. "model": "anthropic/claude-haiku-4-20250514",
  51. "tools": {
  52. "write": false,
  53. "edit": false,
  54. "bash": false
  55. }
  56. }
  57. }
  58. }
  59. ```
  60. ### Markdown-konfiguration
  61. Du kan også definere tilstande ved hjælp af markdown-filer. Placer dem i:
  62. - Globalt: `~/.config/opencode/modes/`
  63. - Projekt: `.opencode/modes/`
  64. ```markdown title="~/.config/opencode/modes/review.md"
  65. ---
  66. model: anthropic/claude-sonnet-4-20250514
  67. temperature: 0.1
  68. tools:
  69. write: false
  70. edit: false
  71. bash: false
  72. ---
  73. You are in code review mode. Focus on:
  74. - Code quality and best practices
  75. - Potential bugs and edge cases
  76. - Performance implications
  77. - Security considerations
  78. Provide constructive feedback without making direct changes.
  79. ```
  80. Markdown-filnavnet bliver tilstandsnavnet (f.eks. opretter `review.md` en `review`-tilstand).
  81. Lad os se nærmere på disse konfigurationsmuligheder.
  82. ---
  83. ### Model
  84. Brug `model`-konfigurationen til at tilsidesætte standardmodellen for denne tilstand. Nyttigt til brug af forskellige modeller optimeret til forskellige opgaver. For eksempel en hurtigere model til planlægning, en mere dygtig model til implementering.
  85. ```json title="opencode.json"
  86. {
  87. "mode": {
  88. "plan": {
  89. "model": "anthropic/claude-haiku-4-20250514"
  90. }
  91. }
  92. }
  93. ```
  94. ---
  95. ### Temperatur
  96. Styr tilfældigheden og kreativiteten af ​​AI's svar med `temperature`-konfigurationen. Lavere værdier gør svar mere fokuserede og deterministiske, mens højere værdier øger kreativitet og variabilitet.
  97. ```json title="opencode.json"
  98. {
  99. "mode": {
  100. "plan": {
  101. "temperature": 0.1
  102. },
  103. "creative": {
  104. "temperature": 0.8
  105. }
  106. }
  107. }
  108. ```
  109. Temperaturværdier varierer typisk fra 0,0 til 1,0:
  110. - **0.0-0.2**: Meget fokuserede og deterministiske svar, ideel til kodeanalyse og planlægning
  111. - **0,3-0,5**: Afbalancerede svar med en vis kreativitet, god til generelle udviklingsopgaver
  112. - **0.6-1.0**: Mere kreative og varierede svar, nyttige til brainstorming og udforskning
  113. ```json title="opencode.json"
  114. {
  115. "mode": {
  116. "analyze": {
  117. "temperature": 0.1,
  118. "prompt": "{file:./prompts/analysis.txt}"
  119. },
  120. "build": {
  121. "temperature": 0.3
  122. },
  123. "brainstorm": {
  124. "temperature": 0.7,
  125. "prompt": "{file:./prompts/creative.txt}"
  126. }
  127. }
  128. }
  129. ```
  130. Hvis der ikke er angivet nogen temperatur, bruger opencode modelspecifikke standarder (typisk 0 for de fleste modeller, 0,55 for Qwen-modeller).
  131. ---
  132. ### Prompt
  133. Angiv en brugerdefineret systempromptfil for denne tilstand med `prompt`-konfigurationen. Promptfilen skal indeholde instruktioner, der er specifikke for tilstandens formål.
  134. ```json title="opencode.json"
  135. {
  136. "mode": {
  137. "review": {
  138. "prompt": "{file:./prompts/code-review.txt}"
  139. }
  140. }
  141. }
  142. ```
  143. Denne sti er i forhold til, hvor konfigurationsfilen er placeret. Så dette virker for
  144. både den globale opencode-konfiguration og den projektspecifikke konfiguration.
  145. ---
  146. ### Værktøjer
  147. Kontroller, hvilke værktøjer der er tilgængelige i denne tilstand med `tools`-konfigurationen. Du kan aktivere eller deaktivere specifikke værktøjer ved at indstille dem til `true` eller `false`.
  148. ```json
  149. {
  150. "mode": {
  151. "readonly": {
  152. "tools": {
  153. "write": false,
  154. "edit": false,
  155. "bash": false,
  156. "read": true,
  157. "grep": true,
  158. "glob": true
  159. }
  160. }
  161. }
  162. }
  163. ```
  164. Hvis der ikke er angivet nogen værktøjer, er alle værktøjer aktiveret som standard.
  165. ---
  166. #### Tilgængelige værktøjer
  167. Her er alle de værktøjer, der kan styres gennem tilstandskonfigurationen.
  168. | Værktøj | Beskrivelse |
  169. | ----------- | -------------------------- |
  170. | `bash` | Udfør shell-kommandoer |
  171. | `edit` | Rediger eksisterende filer |
  172. | `write` | Opret nye filer |
  173. | `read` | Læs filindhold |
  174. | `grep` | Søg filindhold |
  175. | `glob` | Find filer efter mønster |
  176. | `list` | Liste biblioteksindhold |
  177. | `patch` | Anvend patches til filer |
  178. | `todowrite` | Administrer todo-lister |
  179. | `webfetch` | Hent webindhold |
  180. ---
  181. ## Brugerdefinerede tilstande
  182. Du kan oprette dine egne brugerdefinerede tilstande ved at tilføje dem til konfigurationen. Her er eksempler, der bruger begge tilgange:
  183. ### Brug af JSON-konfiguration
  184. ```json title="opencode.json" {4-14}
  185. {
  186. "$schema": "https://opencode.ai/config.json",
  187. "mode": {
  188. "docs": {
  189. "prompt": "{file:./prompts/documentation.txt}",
  190. "tools": {
  191. "write": true,
  192. "edit": true,
  193. "bash": false,
  194. "read": true,
  195. "grep": true,
  196. "glob": true
  197. }
  198. }
  199. }
  200. }
  201. ```
  202. ### Brug af markdown-filer
  203. Opret tilstandsfiler i `.opencode/modes/` for projektspecifikke tilstande eller `~/.config/opencode/modes/` for globale tilstande:
  204. ```markdown title=".opencode/modes/debug.md"
  205. ---
  206. temperature: 0.1
  207. tools:
  208. bash: true
  209. read: true
  210. grep: true
  211. write: false
  212. edit: false
  213. ---
  214. You are in debug mode. Your primary goal is to help investigate and diagnose issues.
  215. Focus on:
  216. - Understanding the problem through careful analysis
  217. - Using bash commands to inspect system state
  218. - Reading relevant files and logs
  219. - Searching for patterns and anomalies
  220. - Providing clear explanations of findings
  221. Do not make any changes to files. Only investigate and report.
  222. ```
  223. ```markdown title="~/.config/opencode/modes/refactor.md"
  224. ---
  225. model: anthropic/claude-sonnet-4-20250514
  226. temperature: 0.2
  227. tools:
  228. edit: true
  229. read: true
  230. grep: true
  231. glob: true
  232. ---
  233. You are in refactoring mode. Focus on improving code quality without changing functionality.
  234. Priorities:
  235. - Improve code readability and maintainability
  236. - Apply consistent naming conventions
  237. - Reduce code duplication
  238. - Optimize performance where appropriate
  239. - Ensure all tests continue to pass
  240. ```
  241. ---
  242. ### Brugsscenarier
  243. Her er nogle almindelige brugstilfælde for forskellige tilstande.
  244. - **Build mode**: Fuldt udviklingsarbejde med alle værktøjer aktiveret
  245. - **Plantilstand**: Analyse og planlægning uden at foretage ændringer
  246. - **Anmeldelsestilstand**: Kodegennemgang med skrivebeskyttet adgang plus dokumentationsværktøjer
  247. - **Fejlretningstilstand**: Fokuseret på undersøgelse med bash og læseværktøjer aktiveret
  248. - **Docs-tilstand**: Dokumentationsskrivning med filhandlinger, men ingen systemkommandoer
  249. Du kan også finde ud af, at forskellige modeller er gode til forskellige brugssituationer.