opc-architecture について
Orchestrated Parallel Claude(OPC)が Claude Code をどう拡張するかを解説するスキルです。エージェント調整の仕組みを把握したい開発者向けに、フック、スキル、スクリプト、データベースによる連携を説明します。
主な機能
- 01OPC と Claude Code の関係を説明
- 02フックとスキルの役割を解説
- 03子プロセスのエージェント起動を説明
- 04ファイルと PostgreSQL による調整を解説
- 05OPC の主要ファイルを紹介
活用シーン
- 01OPC のアーキテクチャの把握
- 02エージェントの起動と実行の追跡
- 03Claude Code インスタンス間の調整の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ parcadei/ continuous-claude-v3 --skill opc-architectureインストール後、Claude Code で/opc-architectureを入力して読み込まれたか確認します。
詳細
OPC のアーキテクチャを理解する
OPC(Orchestrated Parallel Claude)は Claude Code を拡張するものであり、置き換えるものではありません。
基本概念
Claude Code CLI が実行エンジンです。OPC は以下を通じてオーケストレーションを追加します。
- フック - Claude Code のイベント(PreToolUse、PostToolUse、SessionStart など)を傍受します
- スキル - プロンプトを Claude Code に読み込みます
- スクリプト - 調整のためにフック/スキルから呼び出されます
- データベース - Claude Code のインスタンス間で状態を保存します
エージェントの仕組み
エージェントを起動するとき:
- メインの Claude Code インスタンス(ターミナル)が Task ツールでフックを実行します
- フックが
subprocess.Popen(["claude", "-p", "prompt"])を呼び出します - 新しい Claude Code インスタンスが子プロセスとして起動します
- 子プロセスは独立して動作し、調整用 DB を読み書きします
- 親プロセスは DB 内の PID を使って子プロセスを追跡します
$ claude ← Main Claude Code (your terminal)
↓ Task tool triggers hook
↓ subprocess.Popen(["claude", "-p", "..."])
├── claude -p "research..." ← Child agent 1
├── claude -p "implement..." ← Child agent 2
└── claude -p "test..." ← Child agent 3
OPC ではないもの
- OPC は独立したアプリケーションではありません
- OPC は Claude Code なしでは動作しません
- OPC は Claude API の呼び出しを直接傍受しません
- OPC は Claude Code の内部動作を変更しません
OPC とは何か
- OPC は Claude Code が
.claude/hooks/から読み込むフックです - OPC は Claude Code が
.claude/skills/から読み込むスキルです - OPC は調整のためにフック/スキルから呼び出されるスクリプトです
- OPC は Claude Code のインスタンス間で状態を共有するためのデータベースバックエンドです
主要なファイル
.claude/
├── hooks/ ← TypeScript hooks that Claude Code runs
├── skills/ ← SKILL.md prompts that Claude Code loads
├── settings.json ← Hook registration, Claude Code reads this
└── cache/ ← State files, agent outputs
opc/
├── scripts/ ← Python scripts called by hooks
├── docker-compose.yml ← PostgreSQL, Redis, PgBouncer
└── init-db.sql ← Database schema
調整の流れ
- ユーザーがターミナルで
claudeを実行します - Claude Code が
.claude/settings.jsonからフックを読み込みます - ユーザーが「調査エージェントを起動して」と指示します
- Claude が Task ツールを使います
- PreToolUse フックが実行され、リソースを確認します
- フックがサブプロセスとして
claude -p "research..."を起動します - フックが PID を PostgreSQL に保存します
- 子エージェントが動作し、出力を
.claude/cache/agents/<id>/に書き込みます - 子エージェントが完了し、PostgreSQL に「完了」を通知します
- 親プロセスが DB を確認し、子プロセスの出力ファイルを読み込みます
覚えておくこと
- すべての「エージェント」は、単なる別の
claude -pプロセスです - フックはイベントを傍受しますが、新しい機能を作るわけではありません
- 調整はすべてファイルと PostgreSQL を介して行われます
- Claude Code が常に実行エンジンです
コメント
Markdown 対応