modes.mdx 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. ---
  2. title: モード
  3. description: さまざまなユースケースに応じたさまざまなモード。
  4. ---
  5. :::caution
  6. モードは、opencode config の `agent` オプションを通じて設定されるようになりました。の
  7. `mode` オプションは非推奨になりました。 [詳細はこちら](/docs/agents)。
  8. :::
  9. Modes のモードを使用すると、さまざまなユースケースに合わせて動作、ツール、プロンプトをカスタマイズできます。
  10. **ビルド** と **プラン** という 2 つの組み込みモードが付属しています。カスタマイズできます
  11. これらを使用するか、opencode config を通じて独自の設定を行います。
  12. セッション中にモードを切り替えることも、構成ファイルでモードを構成することもできます。
  13. ---
  14. ## 内蔵
  15. opencode には 2 つの組み込みモードが付属しています。
  16. ---
  17. ### 建てる
  18. ビルドは、すべてのツールが有効になっている **デフォルト** モードです。これは、ファイル操作やシステム コマンドへのフル アクセスが必要な開発作業の標準モードです。
  19. ---
  20. ### プラン
  21. 計画と分析のために設計された制限付きモード。プラン モードでは、次のツールはデフォルトで無効になっています。
  22. - `write` - 新しいファイルを作成できません
  23. - `edit` - 計画自体の詳細を示す `.opencode/plans/*.md` にあるファイルを除き、既存のファイルを変更できません
  24. - `patch` - パッチを適用できません
  25. - `bash` - シェルコマンドを実行できません
  26. このモードは、コードベースに実際の変更を加えずに、AI にコードを分析させたり、変更を提案したり、計画を作成させたい場合に便利です。
  27. ---
  28. ## スイッチング
  29. セッション中に _Tab_ キーを使用してモードを切り替えることができます。または、設定された `switch_mode` キーバインド。
  30. 参照: [コードのフォーマット構成については、Formatters](/docs/formatters)。
  31. ---
  32. ## 設定する
  33. 組み込みモードをカスタマイズしたり、構成を通じて独自のモードを作成したりできます。モードは次の 2 つの方法で設定できます。
  34. ### JSON構成
  35. `opencode.json` 構成ファイルでモードを構成します。
  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. ### マークダウン構成
  61. マークダウン ファイルを使用してモードを定義することもできます。それらを次の場所に置きます。
  62. - グローバル: `~/.config/opencode/agents/`
  63. - プロジェクト: `.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. マークダウン ファイル名はモード名になります (例: `review.md` は `review` モードを作成します)。
  81. これらの構成オプションを詳しく見てみましょう。
  82. ---
  83. ### モデル
  84. `model` 設定を使用して、このモードのデフォルト モデルをオーバーライドします。さまざまなタスクに最適化されたさまざまなモデルを使用する場合に役立ちます。たとえば、計画にはより高速なモデルを、実装にはより有能なモデルを使用します。
  85. ```json title="opencode.json"
  86. {
  87. "mode": {
  88. "plan": {
  89. "model": "anthropic/claude-haiku-4-20250514"
  90. }
  91. }
  92. }
  93. ```
  94. ---
  95. ### 温度
  96. `temperature` 構成を使用して、AI の応答のランダム性と創造性を制御します。値が低いほど、応答はより集中的かつ決定的になりますが、値が高いほど、創造性と変動性が高まります。
  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. 通常、温度値の範囲は 0.0 ~ 1.0 です。
  110. - **0.0-0.2**: 非常に焦点が絞られた決定的な応答。コード分析と計画に最適です。
  111. - **0.3-0.5**: 創造性を備えたバランスの取れた応答。一般的な開発タスクに適しています。
  112. - **0.6-1.0**: より創造的で多様な応答。ブレーンストーミングや探索に役立ちます。
  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. 温度が指定されていない場合、opencode はモデル固有のデフォルトを使用します (通常、ほとんどのモデルでは 0、Qwen モデルでは 0.55)。
  131. ---
  132. ### プロンプト
  133. `prompt` 構成を使用して、このモードのカスタム システム プロンプト ファイルを指定します。プロンプト ファイルには、モードの目的に固有の指示が含まれている必要があります。
  134. ```json title="opencode.json"
  135. {
  136. "mode": {
  137. "review": {
  138. "prompt": "{file:./prompts/code-review.txt}"
  139. }
  140. }
  141. }
  142. ```
  143. このパスは、構成ファイルが配置されている場所に対する相対パスです。したがって、これは次の場合に機能します
  144. グローバルなオープンコード構成とプロジェクト固有の構成の両方。
  145. ---
  146. ### ツール
  147. `tools` 設定を使用して、このモードでどのツールを使用できるかを制御します。特定のツールを `true` または `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. ツールが指定されていない場合は、すべてのツールがデフォルトで有効になります。
  165. ---
  166. #### 利用可能なツール
  167. ここでは、モード設定を通じて制御できるすべてのツールを示します。
  168. | ツール | 説明 |
  169. | ----------- | ------------------------------ |
  170. | `bash` | シェルコマンドを実行する |
  171. | `edit` | 既存のファイルを変更する |
  172. | `write` | 新しいファイルを作成する |
  173. | `read` | ファイルの内容を読み取る |
  174. | `grep` | ファイルの内容を検索 |
  175. | `glob` | パターンでファイルを検索 |
  176. | `list` | ディレクトリの内容をリストする |
  177. | `patch` | ファイルにパッチを適用する |
  178. | `todowrite` | ToDo リストを管理する |
  179. | `todoread` | ToDo リストを読む |
  180. | `webfetch` | Web コンテンツを取得する |
  181. ---
  182. ## カスタムモード
  183. 構成に追加することで、独自のカスタム モードを作成できます。両方のアプローチを使用した例を次に示します。
  184. ### JSON設定の使用
  185. ```json title="opencode.json" {4-14}
  186. {
  187. "$schema": "https://opencode.ai/config.json",
  188. "mode": {
  189. "docs": {
  190. "prompt": "{file:./prompts/documentation.txt}",
  191. "tools": {
  192. "write": true,
  193. "edit": true,
  194. "bash": false,
  195. "read": true,
  196. "grep": true,
  197. "glob": true
  198. }
  199. }
  200. }
  201. }
  202. ```
  203. ### マークダウンファイルの使用
  204. モード ファイルをプロジェクト固有モードの場合は `.opencode/modes/` に、グローバル モードの場合は `~/.config/opencode/modes/` に作成します。
  205. ```markdown title=".opencode/modes/debug.md"
  206. ---
  207. temperature: 0.1
  208. tools:
  209. bash: true
  210. read: true
  211. grep: true
  212. write: false
  213. edit: false
  214. ---
  215. You are in debug mode. Your primary goal is to help investigate and diagnose issues.
  216. Focus on:
  217. - Understanding the problem through careful analysis
  218. - Using bash commands to inspect system state
  219. - Reading relevant files and logs
  220. - Searching for patterns and anomalies
  221. - Providing clear explanations of findings
  222. Do not make any changes to files. Only investigate and report.
  223. ```
  224. ```markdown title="~/.config/opencode/modes/refactor.md"
  225. ---
  226. model: anthropic/claude-sonnet-4-20250514
  227. temperature: 0.2
  228. tools:
  229. edit: true
  230. read: true
  231. grep: true
  232. glob: true
  233. ---
  234. You are in refactoring mode. Focus on improving code quality without changing functionality.
  235. Priorities:
  236. - Improve code readability and maintainability
  237. - Apply consistent naming conventions
  238. - Reduce code duplication
  239. - Optimize performance where appropriate
  240. - Ensure all tests continue to pass
  241. ```
  242. ---
  243. ### ユースケース
  244. さまざまなモードの一般的な使用例をいくつか示します。
  245. - **ビルド モード**: すべてのツールを有効にした完全な開発作業
  246. - **計画モード**: 変更を加えずに分析および計画を立てる
  247. - **レビュー モード**: 読み取り専用アクセスとドキュメント ツールによるコード レビュー
  248. - **デバッグ モード**: bash および読み取りツールを有効にして調査に重点を置きます
  249. - **ドキュメント モード**: ファイル操作を使用してドキュメントを作成しますが、システム コマンドは使用しません
  250. また、さまざまなユースケースにさまざまなモデルが適していることがわかるかもしれません。