OpenCROW は何をしますか?
攻撃セキュリティとCTF作業のためのエージェンティックAIオーケストレーションフレームワーク。Codex対応スキル、型付きMCPサーバー、ワークフローCLI、そしてマルチエージェント連携、コーパス同期、成果物の最終引き渡しのためのOpenCROW Constellationを備えています。
概要
OpenCROWは、複数のAIエージェント(Claude Code、Codexなど)が連携して攻撃的セキュリティタスクを実行するためのオーケストレーション基盤です。このフレームワークを使用することで、エージェントは共通のプロトコルとワークフロー定義に従い、効率的かつ再現性のある方法でセキュリティ分析、エクスプロイト開発、CTFチャレンジの解決などを行うことができます。
主な機能
- マルチエージェント連携: OpenCROW Constellationにより、複数のエージェントが協調して動作し、タスクを分割・委譲・統合します。
- 型付きMCPサーバー: Model Context Protocol (MCP) に基づく型安全なサーバーインターフェースを提供し、エージェント間のデータ交換を標準化します。
- ワークフローCLI: コマンドラインからワークフローを定義、開始、監視できるツールを提供します。
- Codex対応スキル: OpenAI Codexやその他のAIコーディングエージェントと互換性のあるスキル定義をサポートします。
- コーパス同期: 各エージェントが生成した分析結果や中間成果物を中央リポジトリに同期し、チーム全体で共有可能にします。
- 最終成果物引き渡し: ワークフローの完了後、最終的なレポートやコードを指定された場所に自動的に配置します。
クイックスタート
前提条件
- Python 3.10以上
- AIエージェント(例:Claude Code、Codex CLI)
- ネットワークアクセス(内部ネットワークスキャンなどに必要)
インストール
git clone https://github.com/02loveslollipop/OpenCROW.git
cd OpenCROW
pip install -r requirements.txt
基本的な使用方法
-
ワークフローの定義
workflows/ディレクトリにYAML形式でワークフローを定義します。name: example_scan steps: - agent: scanner skill: port_scan params: target: 192.168.1.0/24 ports: [22, 80, 443] - agent: analyzer skill: vuln_analysis params: input: "${{ steps.scan.results }}" -
ワークフローの実行
opencrow run example_scan -
結果の確認
実行後、
artifacts/ディレクトリに結果が出力されます。
OpenCROW Constellation
Constellationは、OpenCROWの中核をなすマルチエージェント調整メカニズムです。以下の機能を提供します:
- エージェントディスカバリー: ネットワーク上の利用可能なエージェントを自動的に検出します。
- タスクスケジューリング: 各エージェントの能力と負荷に基づいてタスクを最適に割り当てます。
- 状態同期: ワークフローの進行状況をすべての参加エージェント間でリアルタイムに同期します。
- エラーハンドリング: エージェントの障害やタイムアウトに対する堅牢なフォールトトレランスを実装します。
スキル開発
OpenCROW用のカスタムスキルを作成するには、以下のテンプレートに従ってください:
from opencrow.skills import BaseSkill
class CustomScanSkill(BaseSkill):
name = "custom_scan"
description = "カスタムスキャンスキル"
def execute(self, params):
# スキルのロジックを実装
return {"result": "success"}
スキルを追加した後、 skill.yaml で登録します:
skills:
- name: custom_scan
path: ./skills/custom_scan.py
設定
環境変数で設定を変更できます:
| 変数名 | 説明 | デフォルト値 |
|---|---|---|
OPENCROW_LOG_LEVEL | ログレベル | INFO |
OPENCROW_CONSTELLATION_PORT | Constellationの通信ポート | 8765 |
OPENCROW_ARTIFACT_DIR | 成果物の出力ディレクトリ | ./artifacts |
トラブルシューティング
- エージェントが見つからない:
opencrow discoverコマンドでネットワーク上のエージェントを確認してください。 - ワークフローがタイムアウトする: タイムアウト値を
workflow.yamlのtimeoutフィールドで調整してください。
貢献
バグ報告や機能リクエストはIssuesにお寄せください。プルリクエストも歓迎します。
ライセンス
このプロジェクトはMITライセンスの下で公開されています。詳細は LICENSE ファイルを参照してください。