コンテンツにスキップ

主な機能

主な機能

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 デザインシステムに従う

次のステップ

主な機能について学んだ後は、以下のことをお勧めします:

  1. 📖 ベストプラクティスを読んで、効率的な使用パターンを学ぶ
  2. ⚙️ 高度な設定で深いカスタマイズを行う
  3. 💡 ユースケースを参照してインスピレーションを得る