MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
OpenCodeの設定 - エージェントチームのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
OpenCodeの設定 - エージェントチーム
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == OpenCodeは、Go言語で開発されたオープンソースのターミナルベースAIコーディングアシスタントツールである。<br> Bubble Teaフレームワークによるターミナルユーザインターフェース (TUI) を実装しており、75以上のAIモデルをサポートする。<br> <br> OpenCodeには、プライマリエージェントとサブエージェントによる強力なエージェント機能が搭載されている。<br> プライマリエージェントはタスクの種類に応じて[Tab]キーで切り替え、サブエージェントは <code>@メンション</code> で呼び出すことができる。<br> <br> oh-my-opencodeは、OpenCodeの機能を大幅に拡張するプラグインである。<br> <u>the best agent harness</u> として設計されており、11個の専門化されたエージェント、44個のライフサイクルフック、26以上の組み込みツールを提供する。<br> <br> 下表に、oh-my-opencodeが提供するエージェントチームの主な特徴を示す。<br> <br> <center> {| class="wikitable" |+ 組み込みワークフローエージェント一覧 |- ! エージェント名 !! 説明 |- | Sisyphus || メイン調整役・オーケストレーター<br>タスク完了まで実行継続し、中断後の自動再開をサポート |- | Hephaestus || ゴール指定での自律的な深掘り作業<br>コードベース全体をエンドツーエンドで完了 |- | Prometheus || インタビューモードで十分なコンテキストを収集した上で専門エージェントに委譲 |- | Librarian || ドキュメント管理とコード例・パターン発見に特化 |- | Explore || 大規模コードベースのナビゲーションと依存関係分析に特化 |- | Oracle || コンテキスト認識型の質問応答とトラブルシューティングに特化 |} </center> <br><br> == OpenCodeのエージェント機能 == OpenCodeは、プライマリエージェントとサブエージェントの2種類のエージェントを提供する。<br> <br> ==== プライマリエージェント ==== プライマリエージェントはOpenCodeの主要な動作モードを制御する。<br> <br> [Tab]キーで切り替えることができる。<br> <br> <center> {| class="wikitable" |+ エージェントモード一覧 |- ! エージェント名 !! 説明 |- | rowspan="2" | build || デフォルトのエージェント<br>開発作業向けのフルツールアクセスが可能 |- | コード編集、ファイル操作、コマンド実行など全ての操作を実行できる。 |- | rowspan="2" | plan || 読み取り専用エージェント<br>コード修正を行わずに分析・コード探索を行う。 |- | コードベースの構造理解や実装方針の検討に使用する。 |} </center> <br> ==== サブエージェント ==== サブエージェントは、<code>@メンション</code> で呼び出すことができる。<br> <br> <center> {| class="wikitable" |+ サブエージェント一覧 |- ! エージェント名 !! 説明 |- | general || 複雑な調査やマルチステップタスクを担当する汎用サブエージェント |- | explore || コードベース探索用の読み取り専用サブエージェント |} </center> <br> ==== カスタムエージェントの定義 ==== カスタムエージェントは、<u>opencode.json</u> または <u>~/.config/opencode/agents/</u> 内のMarkdownファイルで定義できる。<br> <br> <u>opencode.json</u> ファイルによるカスタムエージェント定義の例を以下に示す。<br> <br> <syntaxhighlight lang="json"> { "agents": { "custom-agent": { "mode": "subagent", "model": "anthropic/claude-opus-4", "tools": { "edit": true, "bash": false, "view": true }, "permission": { "edit": "ask", "bash": "deny" }, "temperature": 0.7, "prompt": "You are a specialized code reviewer focused on security." } } } </syntaxhighlight> <br> カスタムエージェントの管理には以下のコマンドを使用する。<br> <br> opencode agent create <エージェント名> opencode agent list <br><br> == oh-my-opencodeのインストール == ==== 前提条件 ==== oh-my-opencodeのインストールに必要な前提条件を以下に示す。<br> <br> * OpenCode 1.0.133以降 *: 以前のバージョンでは動作しない場合がある。 * Node.js最新バージョン *: <code>bunx</code> または <code>npx</code> コマンドが利用可能であること <br> 対応プラットフォームを以下に示す。<br> <br> * MacOS (ARM64, x64) * Linux (x64, ARM64, Alpine/musl) * Windows (x64) <br> ==== インストール手順 ==== oh-my-opencodeのインストール手順を以下に示す。<br> <br> # OpenCodeをインストールする。 #: OpenCodeのインストールは、[[インストール - OpenCode]]のページを参照すること。 # oh-my-opencodeをインストールする。 #: <pre>bunx oh-my-opencode install</pre> # OpenCodeを起動する。 #: <pre>opencode</pre> <br> <u>oh-my-opencodeはシェルエイリアスやPATHではなく、OpenCodeのプラグインシステムとして動作している。</u><br> <br> oh-my-opencodeはOpenCodeのプラグインであり、単独のCLIではない。<br> インストール時はplugin配列に追加され、設定ファイルが作成される。<br> <br> ==== インストールオプション ==== <code>bunx oh-my-opencode install</code> には、各種AIプロバイダーの設定を同時に行うオプションが用意されている。<br> <br> bunx oh-my-opencode install --no-tui --claude=<yes|no|max20> --gemini=<yes|no> --copilot=<yes|no> --openai=<yes|no> <br> 下表に、利用可能なオプションを示す。<br> <br> <center> {| class="wikitable" |+ インストールスクリプトのオプション一覧 |- ! オプション !! 説明 |- | <code><nowiki>--claude=yes|no|max20</nowiki></code> || Claudeの認証設定を行う。<br><code>max20</code> は、Claude Max (月20ドルプラン) を指定する。 |- | <code><nowiki>--openai=yes|no</nowiki></code> || OpenAIの認証設定を行う。 |- | <code><nowiki>--gemini=yes|no</nowiki></code> || Google Geminiの認証設定を行う。 |- | <code><nowiki>--copilot=yes|no</nowiki></code> || GitHub Copilotの認証設定を行う。 |- | <code><nowiki>--opencode-zen=yes|no</nowiki></code> || OpenCode Zenの設定を行う。 |- | <code><nowiki>--zai-coding-plan=yes|no</nowiki></code> || Z.AIコーディングプランの設定を行う。 |- | <code>--no-tui</code> || TUIを使用せず、対話なしでインストールを実行する。 |} </center> <br> 代替インストール方法を以下に示す。<br> <br> npm install -g oh-my-opencode bun install -g oh-my-opencode yarn global add oh-my-opencode pnpm add -g oh-my-opencode <br><br> == oh-my-opencodeのアンインストール == ==== OpenCodeの設定ファイルからプラグインを削除 ==== OpenCodeの設定ファイルを編集して、プラグインエントリを削除する。<br> <br> * 設定ファイルの場所 ** MacOS / Linux **: ~/.config/opencode/opencode.json **: または **: opencode.jsonc ** Windows **: %USERPROFILE%\.config\opencode\opencode.json **: または **: opencode.jsonc <br> <center> {| class="wikitable" |+ 削除対象ファイル一覧 ! 場所 !! ファイル !! 用途 |- |OpenCode設定 || ~/.config/opencode/opencode.json<br>または<br>/<プロジェクトルート>/opencode.jsonc || plugin配列からエントリ削除 |- |ユーザ設定 || ~/.config/opencode/oh-my-openagent.json[c] || ユーザプラグイン設定 (新名称) |- |ユーザ設定 || ~/.config/opencode/oh-my-opencode.json[c] || ユーザプラグイン設定 (旧名称) |- |プロジェクト設定 || .opencode/oh-my-openagent.json[c] || プロジェクトプラグイン設定 (新名称) |- |プロジェクト設定 || .opencode/oh-my-opencode.json[c] || プロジェクトプラグイン設定 (旧名称) |} </center> <br> 設定ファイル内のplugin配列から <u>oh-my-openagent</u> または <u>oh-my-opencode</u> のエントリを削除する。<br> <br> ==== 設定ファイルを削除 ==== プラグイン固有の設定ファイルを削除する。<br> <br> * ユーザ全体の設定ファイル *: <syntaxhighlight lang="text"> # プラグイン設定ファイルを削除 rm -f ~/.config/opencode/oh-my-openagent.jsonc ~/.config/opencode/oh-my-openagent.json \ ~/.config/opencode/oh-my-opencode.jsonc ~/.config/opencode/oh-my-opencode.json </syntaxhighlight> *: <br> * プロジェクト固有の設定ファイル (プロジェクト内に存在する場合) *: <syntaxhighlight lang="text"> # プロジェクト設定ファイルを削除(各プロジェクトディレクトリで実行) rm -f .opencode/oh-my-openagent.jsonc .opencode/oh-my-openagent.json \ .opencode/oh-my-opencode.jsonc .opencode/oh-my-opencode.json </syntaxhighlight> <br> ==== 削除の確認 ==== OpenCodeのバージョンコマンドを実行して、プラグインが表示されないことを確認する。<br> <br> opencode --version <br><br> == oh-my-opencodeの設定 == ==== 設定ファイルの場所 ==== oh-my-opencodeの設定ファイルの場所を以下に示す。<br> 優先度が高い設定が低い設定を上書きする。<br> <br> * プロジェクト固有設定 (最優先) *: <u>.opencode/oh-my-opencode.json</u> * ユーザ全体設定 *: <u>~/.config/opencode/oh-my-opencode.json</u> <br> ==== エージェント設定 ==== 各エージェントの有効 / 無効を設定できる。<br> <br> <syntaxhighlight lang="json"> { "agents": { "planner-sisyphus": {"enabled": true, "replace_plan": true}, "hephaestus": {"enabled": false}, "prometheus": {"enabled": false}, "librarian": {"enabled": false}, "explore": {"enabled": false}, "oracle": {"enabled": false} } } </syntaxhighlight> <br> <center> {| class="wikitable" |+ カスタムエージェントの設定項目 |- ! 設定項目 !! 説明 |- | <code>enabled</code> || <u>true</u> でエージェントを有効化、<u>false</u> で無効化する。 |- | <code>replace_plan</code> || <u>true</u> に設定すると、デフォルトのplanエージェントをこのエージェントで置き換える。 |} </center> <br> ==== フック設定 ==== 不要なライフサイクルフックを無効化できる。<br> <br> <syntaxhighlight lang="json"> { "disabled_hooks": ["comment-checker", "agent-usage-reminder"] } </syntaxhighlight> <br> <code>disabled_hooks</code> に無効化するフック名を配列で指定する。<br> <br> ==== MCP設定 ==== 不要なMCPサーバを無効化できる。<br> <br> <syntaxhighlight lang="json"> { "disabled_mcps": ["context7", "grep_app"] } </syntaxhighlight> <br> <code>disabled_mcps</code> に無効化するMCP名を配列で指定する。<br> <br><br> == エージェントチーム == oh-my-opencodeが提供するエージェントチームの各メンバーについて説明する。<br> <br> ==== Sisyphus ==== Sisyphusは、oh-my-opencodeのデフォルトエージェントであり、メインの調整役・オーケストレーターとして機能する。<br> ギリシャ神話のシジフォスから命名されており、タスクが完了するまで粘り強く実行し続けることを表している。<br> <br> 下表に、主な特徴を示す。<br> <br> <center> {| class="wikitable" |+ Sisyphusの特徴 |- ! 項目 !! 説明 |- | 役割 || メイン調整役・オーケストレーター<br>計画、委譲、並列実行管理を担当する。 |- | todo-driven workflow || タスクリストを管理しながら順序立てて実行する。 |- | extended thinking || 複雑な問題に対して深く考察してから行動する。 |- | 自動再開 || 中断後もタスクを自動的に再開できる。 |- | 推奨モデル || Claude Pro/Maxサブスクリプションを推奨 |} </center> <br> Sisyphusは <code>replace_plan: true</code> を設定することにより、デフォルトのplanエージェントを置き換えることができる。<br> <br> ==== Hephaestus ==== Hephaestusは、ゴールを指定するだけで自律的に深く作業を進めるエージェントである。<br> ギリシャ神話の鍛冶の神ヘパイストスから命名されており、ツールや技術の精通を象徴する。<br> <br> 下表に、主な特徴を示す。<br> <br> <center> {| class="wikitable" |+ Hephaestus の主な特徴 |- ! 項目 !! 説明 |- | 役割 || 自律的な深い作業者<br>ゴール指定での独立実行が得意。 |- | コードベースパターン探索 || プロジェクト全体のパターンを自ら探索・理解する。 |- | エンドツーエンド完了 || タスク開始から完了まで自律的に実行する。 |- | Sisyphusとの違い || 他のエージェントへの委譲ではなく、自ら深掘りして作業を完遂する。 |} </center> <br> ==== Prometheus ==== Prometheusは、十分なコンテキストを収集した上で専門エージェントに委譲する戦略的プランナーエージェントである。<br> ギリシャ神話のプロメテウスから命名されており、先見性と戦略的思考を象徴する。<br> <br> 下表に、主な特徴を示す。<br> <br> <center> {| class="wikitable" |+ Prometheusの特徴 |- ! 項目 !! 説明 |- | 役割 || 戦略的プランナー<br>委譲ベースの実行を担当する。 |- | インタビューモード || 作業開始前に十分なコンテキストを収集するための質問を行う。 |- | 要求分類 || ユーザの要求をリファクタリングと新機能開発に分類し、適切な専門エージェントに委譲する。 |- | 直接実行との違い || 自ら直接実行するのではなく、適切な専門家に委ねる。 |} </center> <br> ==== Librarian ==== Librarianは、ドキュメント管理とコード例・パターン発見に特化したエージェントである。<br> <br> 下表に、主な特徴を示す。<br> <br> <center> {| class="wikitable" |+ Librarianの特徴 |- ! 項目 !! 説明 |- | 役割 || ドキュメント・コード探索専門<br>ドキュメント管理、コード例・パターンの発見を担当する。 |- | コードベース構造理解 || プロジェクトのファイル構成や依存関係を把握する。 |- | Context7 MCP との連携 || Context7 MCPと組み合わせて使用することで効果的に機能する。 |} </center> <br> ==== Explore ==== Exploreは、大規模コードベースのナビゲーションに特化したエージェントである。<br> <br> 下表に、主な特徴を示す。<br> <br> <center> {| class="wikitable" |+ Exploreの特徴 |- ! 項目 !! 説明 |- | 役割 || コード探索専門<br>大規模コードベースのナビゲーションを担当する。 |- | 素早いコード移動 || 関連するコード間を効率的に移動できる。 |- | パターン検出 || コードベース内のパターンを素早く見つける。 |- | 依存関係分析 || モジュール間の依存関係を分析する。 |- | 用途 || 未知のコードベースへの入門や、既存コードの把握に適している。 |} </center> <br> ==== Oracle ==== Oracleは、コンテキストを理解した上で質問に答えることに特化したエージェントである。<br> <br> 下表に、主な特徴を示す。<br> <br> <center> {| class="wikitable" |+ Oracleの特徴 |- ! 項目 !! 説明 |- | 役割 || Q&A 特化型。コンテキスト認識型の質問応答を担当する。 |- | コード動作原理説明 || なぜそのコードがそのように動作するかを説明する。 |- | ベストプラクティス提示 || 特定の問題に対する推奨されるアプローチを示す。 |- | トラブルシューティング || 問題の原因と解決策を分析する。 |} </center> <br> ==== エージェントの比較 ==== 下表に、各エージェントの特性を示す。<br> <br> <center> {| class="wikitable" |+ oh-my-opencode エージェント比較 ! エージェント !! 主な役割 !! 特性 !! 推奨用途 |- | Sisyphus || オーケストレーター || todo-driven、委譲、並列実行 || 複雑なマルチステップタスク全般 |- | Hephaestus || 自律実行者 || 深掘り、エンドツーエンド完了 || 単一ゴールの自律的な実装 |- | Prometheus || 戦略プランナー || インタビュー、分類、委譲 || 要件が不明確な大きなタスク |- | Librarian || ドキュメント探索 || コードパターン発見 || ドキュメント作成・コード調査 |- | Explore || コード探索 || ナビゲーション、依存関係分析 || 未知コードベースへの入門 |- | Oracle || Q&A || コンテキスト認識型回答 || 技術的な質問・トラブルシューティング |} </center> <br><br> == エージェントの使用方法 == ==== 基本的な使い方 ==== 各エージェントの呼び出し方法を以下に示す。<br> <br> * プライマリエージェントの切り替え *: [Tab]キーを押下することにより、<u>build</u> と <u>plan</u> エージェントを切り替える。 * サブエージェントの呼び出し *: チャット入力欄で <code>@</code> に続けてエージェント名を入力する。 <br> サブエージェントの呼び出し例を以下に示す。<br> <br> @Librarian このプロジェクトの認証モジュールの構造を教えて @Oracle このエラーの原因と解決策を教えて @Explore このファイルに依存しているモジュールを全て教えて <br> ==== ultraworkコマンド ==== oh-my-opencodeが提供する <code>ultrawork</code> コマンド (短縮形: <code>ulw</code>) を使用することにより、エージェントがプロジェクトの探索から実装・検証・完了まで自動的に実行する。<br> <br> ultraworkコマンドの使用例を以下に示す。<br> <br> opencode "ultrawork: Refactor user authentication module, add OAuth2 support" <br> ultraworkコマンドの実行フローを以下に示す。<br> <br> # プロジェクト探索 #: コードベース全体の構造を把握する。 # パターン研究 #: 既存のコードパターンやアーキテクチャを理解する。 # 実装 #: タスクを実行する。 # 検証 #: 実装結果を確認・テストする。 # 完了 #: タスクを完了して結果を報告する。 <br> <code>auto_resume</code> 機能を有効化することにより、中断後も自動的にタスクを再開できる。<br> 設定方法を以下に示す。<br> <br> <syntaxhighlight lang="json"> { "experimental": { "auto_resume": true } } </syntaxhighlight> <br><br> == 認証設定 == ==== Claude (Anthropic) ==== Anthropic Claudeの認証設定手順を以下に示す。<br> <br> # 以下に示すコマンドを実行する。 #: <pre>opencode auth login</pre> #: <br> # 表示された一覧から[Anthropic]を選択する。 # <code>Claude Pro/Max</code> を選択する。 # Webブラウザが開くので、OAuthで認証する。 <br> <u>Sisyphusエージェントを最大限活用するには、Claude Maxサブスクリプションを推奨する。</u><br> <br> ==== Google Gemini ==== Google Geminiの認証には、<u>opencode-antigravity-auth</u> プラグインを使用する。<br> <br> # <u>~/.config/opencode/opencode.json</u> にプラグインを追加する。 #: <syntaxhighlight lang="json"> { "plugin": ["oh-my-opencode", "opencode-antigravity-auth@latest"] } </syntaxhighlight> #: <br> # 以下に示すコマンドを実行する。 #: <pre>opencode auth login</pre> # 表示された一覧から[Google]を選択し、OAuth (Antigravity) で認証する。 <br> ==== GLM 5 (Z.AI) ==== GLM-5は、智谱AI (Zhipu AI / Z.AI) が開発した大規模言語モデルである。<br> 744億パラメータのMoEアーキテクチャを採用し、アクティブパラメータは約40億、コンテキスト長は200,000トークンに対応する。<br> <br> 認証手順を以下に示す。<br> <br> # <code>opencode auth login</code> を実行して、[Z.AI]を選択する。 # [https://z.ai/ Z.AI Open Platform]にアクセスして、APIキーを取得する。 # APIキーを入力する。<br>APIキーの形式は <u>{API Key ID}.{secret}</u> である。 <br> * <u>opencode.json</u> ファイルに記述するカスタムプロバイダー設定を以下に示す。 *: <syntaxhighlight lang="json"> { "provider": { "zai": { "npm": "@ai-sdk/openai-compatible", "name": "Z.AI", "options": { "baseURL": "https://api.z.ai/api/paas/v4/", "apiKey": "{env:ZAI_API_KEY}" }, "models": { "glm-5": { "name": "GLM-5" } } } }, "model": "zai/glm-5" } </syntaxhighlight> *: <br> * コーディング専用エンドポイントを使用する場合の設定を以下に示す。 *: <syntaxhighlight lang="json"> { "provider": { "zai-coding": { "npm": "@ai-sdk/openai-compatible", "name": "Z.AI Coding", "options": { "baseURL": "https://api.z.ai/api/coding/paas/v4/", "apiKey": "{env:ZAI_API_KEY}" }, "models": { "glm-5": { "name": "GLM-5 Coding" } } } }, "model": "zai-coding/glm-5" } </syntaxhighlight> *: <br> * 環境変数を使用してAPIキーを設定する場合は、以下に示すコマンドを実行する。 *: <syntaxhighlight lang="sh"> export ZAI_API_KEY=<APIキー> </syntaxhighlight> <br> ==== GitHub Copilot ==== GitHub Copilotの認証設定手順を以下に示す。<br> <br> # 以下に示すコマンドを実行する。 #: <pre>opencode auth login</pre> #: <br> # 表示された一覧から[GitHub]を選択する。 # Webブラウザが開くので、OAuthで認証する。 <br><br> == トラブルシューティング == 下表に、oh-my-opencodeのインストールおよび動作に関する問題と対処法を示す。<br> <br> <center> {| class="wikitable" |+ トラブルシューティング一覧 ! 問題 !! 対処法 |- | インストールが失敗する || Node.jsの最新バージョンがインストールされているか確認する。<br>OpenCode 1.0.133以降を使用しているか確認する。 |- | JSONの設定が反映されない || 設定ファイルの内容が有効なJSON形式であるか確認する。 |- | <code>bunx</code> コマンドが見つからない || <code>npx oh-my-opencode install</code> を使用する。 |- | npmキャッシュの問題 || 以下に示すコマンドでキャッシュをクリアする。<br><code>npm cache clean --force</code> |- | Snapでインストールしたbunの問題 || npxを使用する、または、OpenCodeのオフィシャルインストーラーを再利用する。 |- | エージェントが起動しない || <u>oh-my-opencode.json</u> の <code>enabled</code> が <u>true</u> になっているか確認する。 |- | インストール後にエージェントが表示されない || 異なるパッケージマネージャー (npm, bun, yarn, pnpm) でのインストールを試みる。 |} </center> <br><br> {{#seo: |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,電気回路,電子回路,基板,プリント基板,OpenCode,oh-my-opencode,AI,エージェント,Agent,LLM,GLM-5,Claude,Gemini,GitHub Copilot,TUI,ターミナル |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:設定]]
OpenCodeの設定 - エージェントチーム
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse