主な機能
主な機能
Oh My OpenCodeは、OpenCodeをプロフェッショナルレベルに引き上げる、一連の強力なエンタープライズグレードの機能を提供します。このドキュメントでは、各コア機能の仕組みと使用方法を詳しく説明します。
Sisyphus エージェントオーケストレーションシステム
Sisyphusとは?
SisyphusはOh My OpenCodeのコアオーケストレーションシステムであり、「プライマリエージェント」として機能します。その名前は、ギリシャ神話のシシュポス(巨石を絶えず山の上に押し上げ続けた)に由来し、永続的なタスクの実行と管理を象徴しています。
使用モデル: Sisyphusは通常、Claude Opus 4.5 HighやClaude Sonnet 4などの最も強力なモデルを使用して、優れたタスクの分解と調整能力を確保します。
なぜオーケストレーターが必要なのか?
複雑な開発タスクでは、単一のAIエージェントだけであらゆる側面を処理するのは困難です。オーケストレーターの価値は以下の点にあります:
- タスクの分解: 大規模なタスクを管理可能なサブタスクに分割する
- 専門分野の調整: 各サブタスクに最適な専門エージェントを選択する
- リソースの調整: 複数のエージェントの並列実行とリソース割り当てを管理する
- 結果の統合: さまざまなエージェントからの作業を完全なソリューションとして集約する
- コンテキスト管理: 異なるエージェント間でのコンテキスト共有と一貫性を確保する
仕組み
ユーザーのタスク
↓
Sisyphus がタスク要件を分析
↓
適切な専門エージェントを自動選択
↓
複数のエージェントが並行して作業するように調整
↓
結果を統合して返す
コア機能
1. インテリジェントなタスク分解
Sisyphusは複雑なタスクを複数のサブタスクに分解できます:
# ユーザー入力
opencode "認証システム全体をリファクタリングし、OAuth2とJWTのサポートを追加して"
# Sisyphus の内部分解
# - サブタスク 1: @oracle が新しい認証アーキテクチャを設計
# - サブタスク 2: @librarian が OAuth2 と JWT のベストプラクティスを調査
# - サブタスク 3: @backend-engineer がサーバー側のロジックを実装
# - サブタスク 4: @frontend-ui-ux-engineer がログインインターフェースを更新
2. エージェントの自動選択
タスクの種類に基づいて、最も適切なエージェントを自動的に選択します:
| タスクの種類 | 選択されたエージェント | 理由 |
|---|---|---|
| アーキテクチャ設計 | @oracle | システム思考と技術的な決定 |
| ドキュメント調査 | @librarian | 情報の検索と整理 |
| UI 開発 | @frontend-ui-ux-engineer | フロントエンドの技術的専門知識 |
| API 開発 | @backend-engineer | バックエンドの技術的専門知識 |
| バグ分析 | @explore | 深いコードベース分析 |
3. 並列タスクの調整
複数のエージェントが同時に作業でき、Sisyphusがそれを調整します:
{
"main_task": "ユーザーダッシュボードの開発",
"parallel_tasks": [
{
"agent": "@oracle",
"task": "コンポーネントアーキテクチャの設計",
"status": "進行中"
},
{
"agent": "@librarian",
"task": "UIライブラリのドキュメントを調査",
"status": "完了"
},
{
"agent": "@frontend-engineer",
"task": "ベースコンポーネントを実装",
"status": "進行中"
}
]
}
設定オプション
{
"sisyphus": {
"enabled": true,
"max_concurrent_tasks": 3, // 最大同時タスク数
"task_timeout": 300, // タスクのタイムアウト(秒)
"auto_delegate": true, // タスクの自動委任
"delegation_strategy": "optimal" // 委任戦略:optimal (最適), balanced (バランス), sequential (順次)
}
}
専門エージェントチーム
@oracle - アーキテクト
専門分野: システムアーキテクチャ設計、技術的な決定、パターンの選択
ユースケース:
- 新しいシステムアーキテクチャの設計
- 技術スタックの選択
- 大規模なリファクタリングの決定
- パフォーマンス最適化ソリューション
使用例:
# 直接呼び出し
opencode "@oracle 現在のマイクロサービスアーキテクチャのボトルネックを分析して"
# ultrawork との組み合わせ
opencode "ulw: @oracle 高可用な分散キャッシュシステムを設計して"
設定:
{
"agents": {
"oracle": {
"enabled": true,
"model": "claude-sonnet-4",
"temperature": 0.7,
"max_tokens": 4096,
"prompt_append": "詳細な技術的決定の根拠とトレードオフ分析を提供してください"
}
}
}
@librarian - ドキュメンテーション・スペシャリスト
使用モデル: GPT-4 Turbo、Claude Sonnet 3.5、または同様のモデル
専門分野: ドキュメント調査、ナレッジ整理、情報検索
ユースケース:
- フレームワーク/ライブラリのドキュメント調査
- 技術資料の整理
- 技術ドキュメントの作成
- 新しい技術の学習
使用例:
# ドキュメント調査
opencode "@librarian React Server Components のベストプラクティスを調査して"
# ドキュメント作成
opencode "@librarian 現在のプロジェクトの API ドキュメントを書いて"
@frontend-ui-ux-engineer - フロントエンド UI/UX エンジニア
使用モデル: Claude Sonnet 4、GPT-4、または同様のモデル
専門分野: フロントエンド開発、UI/UX デザイン、ユーザーエクスペリエンスの最適化
ユースケース:
- ユーザーインターフェースの設計と実装
- ユーザーエクスペリエンスの最適化
- レスポンシブデザイン
- アクセシビリティの改善
使用例:
# UI/UX 開発
opencode "@frontend-ui-ux-engineer モダンなログインページを設計して実装して"
# ユーザーエクスペリエンスの最適化
opencode "@frontend-ui-ux-engineer フォームのインタラクションとバリデーションフィードバックを最適化して"
@frontend-engineer - フロントエンドエンジニア
使用モデル: Claude Sonnet 4、GPT-4、または同様のモデル
専門分野: React/Vue/Angular 開発、UI/UX 実装
ユースケース:
- フロントエンドコンポーネント開発
- UI 実装
- スタイルの調整
- フロントエンドパフォーマンスの最適化
使用例:
# UI 開発
opencode "@frontend-engineer レスポンシブなユーザーカードコンポーネントを実装して"
# パフォーマンス最適化
opencode "@frontend-engineer ホームページの読み込みパフォーマンスを最適化して"
@backend-engineer - バックエンドエンジニア
使用モデル: Claude Sonnet 4、GPT-4、または同様のモデル
専門分野: Node.js/Python/Go 開発、API 設計、データベース
ユースケース:
- API エンドポイントの開発
- データベース設計
- ビジネスロジックの実装
- バックエンドパフォーマンスの最適化
使用例:
# API 開発
opencode "@backend-engineer JWT をサポートしたユーザー認証 API を実装して"
# データベース最適化
opencode "@backend-engineer 注文クエリのデータベースインデックスを最適化して"
@explore - 探索者
使用モデル: Claude Sonnet 3.5、GPT-4、または同様のモデル
専門分野: コードベース分析、バグ追跡、依存関係
ユースケース:
- バグのデバッグ
- コードベースの探索
- 依存関係の分析
- 影響範囲の評価
使用例:
# バグのデバッグ
opencode "@explore メモリリークの原因となっているコードの場所を見つけて"
# 依存関係の分析
opencode "@explore この関数がどこから呼び出されているか分析して"
@document-writer - テクニカルライティング・スペシャリスト
使用モデル: GPT-4、Claude Sonnet 3.5、または同様のモデル
専門分野: 技術ドキュメント作成、API ドキュメント、チュートリアル作成
ユースケース:
- 技術ドキュメントの作成
- API リファレンスの作成
- チュートリアルとガイドの作成
- プロジェクト README の保守
使用例:
# ドキュメント作成
opencode "@document-writer 新機能の完全な使用ガイドを書いて"
# API ドキュメント
opencode "@document-writer RESTful API の完全なドキュメントを生成して"
@multimodal-looker - 視覚コンテンツ分析スペシャリスト
使用モデル: Claude Sonnet 4 (Vision)、GPT-4 Vision、または同様のマルチモーダルモデル
専門分野: 視覚コンテンツ分析、画像理解、デザインレビュー
ユースケース:
- デザインカンプの分析
- UI スクリーンショットの理解
- ビジュアルデザインのレビュー
- 画像からの情報抽出
使用例:
# デザイン分析
opencode "@multimodal-looker このデザインカンプを分析して実装案を提案して"
# UI レビュー
opencode "@multimodal-looker 現在のページのビジュアルデザインとレイアウトをレビューして"
LSP ツール統合
LSPとは?
Language Server Protocol (LSP) は Microsoft によって開発されたプロトコルで、エディターに言語インテリジェンス機能を提供します。Oh My OpenCode は、AI エージェントが使用できるように LSP を統合しており、IDE と同じコード理解能力をエージェントに提供します。
利用可能な LSP 機能
lsp_hover - 定義の表示
シンボルの型定義とドキュメントを表示します:
// AI は lsp_hover ツールを使用して
// UserService の型情報を表示できます
const service = new UserService();
lsp_goto_definition - 定義へジャンプ
シンボルの定義場所へジャンプします:
# AI は lsp_goto_definition を使用して自動的に場所を特定できます
"authenticateUser 関数の実装を見つけて"
lsp_rename - 安全な名前変更
安全な複数のファイルにわたるシンボルの名前変更:
opencode "lsp_rename ツールを使用して getUserData を fetchUserProfile に変更して"
lsp_find_references - 参照の検索
シンボルのすべての参照場所を検索します:
opencode "lsp_find_references を使用して、非推奨の API が使用されているすべての場所を見つけて"
lsp_code_actions - コードアクション
コードのリファクタリングとクイックフィックスを実行します:
opencode "lsp_code_actions を使用して型エラーを自動的に修正して"
サポートされている言語
- ✅ TypeScript/JavaScript
- ✅ Python
- ✅ Go
- ✅ Rust
- ✅ Java
- ✅ C/C++
LSP の設定
{
"lsp": {
"enabled": true,
"languages": ["typescript", "python", "go"],
"servers": {
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"]
},
"python": {
"command": "pylsp",
"args": []
}
}
}
}
AST-Grep コード検索
AST-Grepとは?
AST-Grep は抽象構文木 (AST) に基づくコード検索ツールであり、単純なテキスト検索よりも正確で強力です。
コア機能
1. ast_grep_search - 構造化検索
# useState を使用しているすべてのコンポーネントを検索
opencode "ast_grep_search を使用して、useState を使用しているすべての React コンポーネントを見つけて"
# 特定のコードパターンを検索
opencode "ast_grep_search を使用して、try-catch のないすべての非同期関数を見つけて"
2. ast_grep_replace - コードリファクタリング
# 一括リファクタリング
opencode "ast_grep_replace を使用して、すべての var 宣言を const に変更して"
# パターンの置換
opencode "ast_grep_replace を使用して、すべてのクラスコンポーネントを関数コンポーネントに変換して"
例
# .ast-grep.yml 設定
rule:
pattern: console.log($$$ARGS)
fix: logger.debug($$$ARGS)
language: typescript
バックグラウンドタスクの並列実行
動作メカニズム
メインタスクを実行しているのと同時に、バックグラウンドエージェントが他の作業を並行して処理できます:
メインタスク:ユーザーログイン機能の実装
↓ (進行中)
バックグラウンドタスク 1: @librarian がセキュリティのベストプラクティスを調査
バックグラウンドタスク 2: @explore が既存の認証コードを分析
バックグラウンドタスク 3: @oracle が新しいセッション管理を設計
↓ (並列処理)
すべての結果を統合
利点
- ⚡ 効率の向上: 作業効率が 3 倍以上に向上
- 🧠 インテリジェントな連携: タスクが自動的にコンテキストを共有
- 🎯 自動バランス: リソースに基づいてタスクの割り当てを動的に調整
設定
{
"background_task": {
"enabled": true,
"defaultConcurrency": 3,
"priority": "balanced", // high (高), balanced (バランス), low (低)
"auto_merge_results": true
}
}
Claude Code 互換レイヤー
シームレスな移行
Oh My OpenCode は完全な Claude Code 互換性を提供しており、既存の設定を変更なしで使用できます:
Claude Code の設定例:
// Claude Code の設定
{
"custom_instructions": "TypeScript の string 厳格モードを使用",
"context_files": [".claud/CONTEXT.md"]
}
Oh My OpenCode 形式への自動変換:
{
"agents": {
"default": {
"prompt_append": "TypeScript の string 厳格モードを使用"
}
},
"context_injection": {
"files": [".claud/CONTEXT.md"]
}
}
サポートされている機能
- ✅ custom_instructions
- ✅ context_files
- ✅ project_rules
- ✅ custom_tools
- ✅ hooks
セッション管理ツール
特徴
- セッションの永続化: 作業セッションを保存して復元
- コンテキストの蓄積: セッション間でコンテキストのメモリを維持
- タスクのリンク: 関連するタスクを関連付ける
使用法
# セッションを保存
opencode "現在のセッションを refactor-auth として保存して"
# セッションを復元
opencode "セッション refactor-auth を復元して続けて"
# セッションを一覧表示
opencode "保存されたすべてのセッションをリストして"
インテリジェントなコンテキストインジェクション
AGENTS.md 階層システム
プロジェクトレベルおよびディレクトリレベルのコンテキストルールをサポートします:
project/
├── AGENTS.md # グローバルルール
├── src/
│ ├── AGENTS.md # src ディレクトリのルール
│ └── components/
│ └── AGENTS.md # components ディレクトリのルール
条件付きルールの有効化
条件に基づいてルールを自動的に有効にします:
<!-- AGENTS.md -->
# 条件付きルール
## when: file.ext == "*.test.ts"
Jest と React Testing Library を使用する
## when: agent == "@frontend-engineer"
会社の UI デザインシステムに従う
次のステップ
主な機能について学んだ後は、以下のことをお勧めします: