編集の要約なし
 
351行目: 351行目:
*: リーダーキーの設定
*: リーダーキーの設定
*: デフォルト : <code>ctrl+x</code>
*: デフォルト : <code>ctrl+x</code>
<br><br>
== サブエージェントの自動復旧 ==
OpenCodeのサブエージェント (taskツールで起動されるエージェント) は、ストールや一時的な通信障害で <u>Task aborted</u> 等のエラーで停止することがある。<br>
<br>
これは、opencode-auto-resumeプラグインを使用することにより、自動的な復旧を行うことができる。<br>
<br>
==== opencode-auto-resumeプラグイン ====
opencode-auto-resumeプラグインは、OpenCodeのセッションがストールした際に自動的に復旧を試みるプラグインである。<br>
主に以下の状況で有効である。<br>
<br>
* サブエージェントが停止応答なくハングした場合
* ツール実行が一時的なエラーで中断した場合
* ストリームが長時間停止した場合
<br>
===== インストール =====
以下に示すいずれかの方法でインストールする。<br>
<br>
npm経由でインストールする。<br>
npm install -g opencode-auto-resume
<br>
または、OpenCodeの設定ファイル (<u>opencode.json</u> / <u>opencode.jsonc</u>) の <code>plugin</code> 配列に追加する。<br>
OpenCode起動時に自動的にインストールされる。<br>
<br>
===== 設定例 =====
<syntaxhighlight lang="json">
{
  "$schema": "https://opencode.ai/config.json",
  "plugin": [
    [
      "opencode-auto-resume",
      {
        "chunkTimeoutMs": 60000,
        "gracePeriodMs": 5000,
        "maxRetries": 3
      }
    ]
  ]
}
</syntaxhighlight>
<br>
下表に、opencode-auto-resumeプラグインの主な設定項目を示す。<br>
<br>
<center>
{| class="wikitable"
|+ opencode-auto-resume 設定項目
! 設定項目 !! デフォルト値 !! 説明
|-
| <code>chunkTimeoutMs</code> || 45000 || ストリームが停止とみなされるまでの無応答時間 (ミリ秒)
|-
| <code>gracePeriodMs</code> || 3000 || 動作を起こす前の猶予時間<br>ユーザのESC中止を誤検出しないように調整する。
|-
| <code>maxRetries</code> || 3 || 最大自動復旧試行回数
|-
| <code>checkIntervalMs</code> || 5000 || 状態監視のポーリング間隔
|-
| <code>subagentWaitMs</code> || 15000 || 孤立した親セッションを停止とみなすまでの待機時間
|}
</center>
<br>
===== 注意事項 =====
以下に示す事柄に注意して設定すること。<br>
<br>
* <code>chunkTimeoutMs</code> を短くしすぎると、処理の重いタスクが誤って停止判定されることがある。
* ユーザが意図的に[ESC]キーで中止した場合は、自動復旧させないよう <code>gracePeriodMs</code> を適切に設定する。
* oh-my-openagent等の他プラグインと併用する場合は、<code>plugin</code> 配列の順序に影響されることがある。
<br><br>
==== runtime_fallbackの設定 (oh-my-openagent) ====
oh-my-openagentプラグインを使用している場合は、APIエラーやレート制限、プロバイダ障害時にモデルを自動フォールバックする <code>runtime_fallback</code> 設定も併用することを推奨する。<br>
これにより、サブエージェントの停止リスクをさらに減らすことができる。<br>
<br>
<u>~/.config/opencode/oh-my-openagent.json</u> に以下に示すように設定する。<br>
<br>
<syntaxhighlight lang="json">
{
  "runtime_fallback": {
    "enabled": true,
    "retry_on_errors": [400, 429, 503, 529],
    "max_fallback_attempts": 3,
    "cooldown_seconds": 60,
    "timeout_seconds": 30,
    "notify_on_fallback": true
  }
}
</syntaxhighlight>
<br>
下表に、設定項目の説明を示す。<br>
<br>
<center>
{| class="wikitable"
|+ runtime_fallbackプラグインの設定項目
! 設定項目 !! 説明
|-
| <code>enabled</code> || ランタイムフォールバックの有効 / 無効を設定する。
|-
| <code>retry_on_errors</code> || 自動リトライを行うHTTPステータスコードのリスト
|-
| <code>max_fallback_attempts</code> || セッションあたりの最大フォールバック試行回数
|-
| <code>timeout_seconds</code> || 指定時間内にモデルが応答しない場合に次のフォールバック先へ切り替える。
|-
| <code>notify_on_fallback</code> || フォールバック発生時に通知を表示する。
|}
</center>
<br>
===== 併用時の推奨設定 =====
opencode-auto-resumeプラグイン と runtime_fallbackプラグインは目的が異なるため、併用することでカバー範囲が広がる。<br>
<br>
* opencode-auto-resume
*: サブエージェントのハングやストールに対処する。
* runtime_fallback
*: API障害やレート制限等のプロバイダ側エラーに対処する。
<br>
両方を有効にした後はOpenCodeを再起動して、プラグインが正常に読み込まれることを確認する。<br>
<br>
起動ログに <u>opencode-auto-resume ready</u> 等のメッセージが表示されれば正常に動作している。<br>
<br><br>
<br><br>


1,125行目: 1,241行目:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|description={{PAGENAME}} - OpenCodeのインストール、設定、使用方法、ビルド手順、サブエージェントの自動復旧に関する情報 | This page is {{PAGENAME}} in our wiki about OpenCode installation, configuration, usage, build instructions and subagent recovery
|image=/resources/assets/MochiuLogo_Single_Blue.png
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}
}}