編集の要約なし |
|||
| 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}} - | |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 | ||
}} | }} | ||