この文書の内容
- Factory の Droid Exec をヘッドレスモードで使用して「リポジトリとのチャット」機能を構築する方法
- リアルタイムエージェントフィードバック用のServer-Sent Eventsによるストリーミングレスポンスの設定
- Factory の公式サンプルからの実際の実装の理解
For a complete reference on Droid Exec capabilities, see the Droid Exec Overview
1. 前提条件とインストール
要件
- Bun(サンプルではBunを使用していますが、Node.jsでも動作します)
- Factory CLI をインストール済み(
droidがPATHに設定されている) - チャット対象となるローカルリポジトリ
インストール
droid exec はコード内でAPIキーを必要とせず、アプリから動作します。
公式サンプルを試す
2. Droid Exec を使用する理由
コードベースを理解するAI機能の構築には、複数の操作の調整が必要です:ファイル検索、コード読み込み、構造解析、回答の合成などです。droid exec がなければ、*「MCP サーバーの課金方法は?」*のような質問には、関連するコードの検索、読み込み、理解のために数十回のAPI呼び出しとカスタムロジックが必要になります。
droid exec は Factory のヘッドレス CLI モードで、これを単一のコマンドで自動的に処理します。コードベースの検索、ファイル読み込み、コード構造の推論を行い、構造化されたJSON出力を返します—安全性制御と設定可能な自動化レベルが組み込まれています。チャットインターフェース、CI/CD自動化、またはコードベースインテリジェンスが必要なあらゆるアプリケーションの構築に最適です。
3. 動作原理:基本パターン
Factory のサンプルはシンプルなパターンを使用しています:droid exec を --output-format debug で起動し、Server-Sent Events(SSE)経由で結果をストリーミングします。
Droid Exec の実行
主要フラグの説明
--output-format debug:エージェントの作業中に構造化イベントをストリーミング
- 各ツール呼び出し(ファイル読み込み、検索など)がイベントを出力
- ユーザーにリアルタイム進捗を表示可能
- 代替:最終出力のみの
--output-format json
-m(モデル):AIモデルを選択
glm-4.7- 高速、安価(デフォルト)gpt-5-codex- 複雑なコード用で最も強力claude-sonnet-4-5-20250929- 速度と性能のベストバランス
-r(推論):思考の深度をコントロール
off- 推論なし、最高速low- 軽い推論(デフォルト)medium|high- より深い解析、低速
--auto フラグなし?:読み取り専用がデフォルト(最も安全)
- ファイルの変更不可、読み取り/検索/解析のみ
- チャットアプリケーションに最適
See CLI Reference for all flag explanations
4. チャット機能の構築:SSEでのストリーミング
Factory のサンプルは、Server-Sent Events を使用してエージェントのアクティビティをリアルタイムでストリーミングします。これにより、エージェントが検索、ファイル読み込み、思考を行う際にユーザーに即座にフィードバックを提供します。サーバー:SSE ストリーミングエンドポイント
受信するイベントタイプ
--output-format debug を使用すると、droid は以下のようなイベントを出力します:
クライアント:SSE 用 React Hook
実例:動画内容
デモ動画では、ユーザーが次のように質問しました:「MCP サーバーの課金方法を検索してもらえますか?」 バックグラウンドで、droid exec は自動的に以下を実行しました:
- 検索 - ripgrep を使用してコードベース内の「MCP」「課金」「支払い」を検索
- 読み込み - 関連ファイル(課金設定、価格設定ロジック、環境変数)を読み込み
- 解析 - コード構造を解析して課金フローを理解
- 統合 - ファイルの場所、変数名、実装詳細を含む完全な回答を統合
プロジェクト構造(サンプルから)
設定オプション
サンプルは環境変数をサポートしています:ベストプラクティス
✅ 推奨:- ユーザー向け機能には読み取り専用モード(
--autoフラグなし)を使用 droid execに渡す前にユーザー入力を検証- タイムアウトを設定(サンプルでは240秒)
- レスポンシブなUI のためにSSE イベントを増分解析
- クライアントに送信する前に、デバッグ出力からローカルファイルパスを除去
- サンドボックス化せずに本番環境で
--auto medium/highを使用 - 無害化されていないユーザー入力を直接 CLI に渡す
- 結果待機中にメインスレッドをブロック
5. カスタマイゼーションと拡張
データソースの変更
サンプルはローカルリポジトリで提供されていますが、簡単に適応できます: PDF と文書:モデルの動的変更
ツール呼び出しの可視化を追加
サンプルのstream.ts はデバッグイベントを解析します。これらをUIに表示できます:
追加リソース
公式サンプル:- GitHub: droid-chat example - 完全な動作コード
- Droid Exec Overview - 完全な CLI リファレンス
- Autonomy Levels Guide -
--autoフラグの理解 - CI/CD Cookbook - 本番パターン
- Model Configuration - 利用可能なモデルと設定
- Factory Discord - チームからのサポートを受ける
- GitHub Discussions - あなたの作品を共有する
次のステップ
- サンプルをクローン:
git clone https://github.com/Factory-AI/examples.git - ローカルで実行:
cd examples/droid-chat && bun dev src/server/chat.tsのコードを調査して SSE ストリーミングの動作を確認src/server/prompt.tsをカスタマイズしてエージェントの動作を変更./repos/コンテンツを交換して独自のリポジトリとチャット
