DeerFlow スキル
実行中の DeerFlow インスタンスと HTTP API を介して通信します。DeerFlow は LangGraph 上に構築された AI エージェントプラットフォームで、リサーチ、コード実行、Web ブラウジングなどのためのサブエージェントを orchestration します。
アーキテクチャ
DeerFlow は Nginx リバースプロキシの背後に 2 つの API サーフェスを公開します:
| サービス | 直接ポート | プロキシ経由 | 目的 |
|---|---|---|---|
| Gateway API | 8001 | $DEERFLOW_GATEWAY_URL | REST エンドポイントと組み込みエージェントランタイム |
| LangGraph 互換 API | 8001 | $DEERFLOW_LANGGRAPH_URL | エージェントスレッド、実行、ストリーミング |
環境変数
すべての URL は環境変数で設定可能です。リクエストを行う前にこれらの環境変数を読み取ってください。
| 変数 | デフォルト値 | 説明 |
|---|---|---|
DEERFLOW_URL | http://localhost:2026 | 統一プロキシベース URL |
DEERFLOW_GATEWAY_URL | ${DEERFLOW_URL} | Gateway API ベース (モデル、スキル、メモリ、アップロード) |
DEERFLOW_LANGGRAPH_URL | ${DEERFLOW_URL}/api/langgraph | LangGraph API ベース (スレッド、実行) |
curl 呼び出しを行うときは、常に次のように URL を解決してください:
# 環境変数からベース URL を解決する (API 呼び出しの前に必ずこれを行う)
DEERFLOW_URL="${DEERFLOW_URL:-http://localhost:2026}"
DEERFLOW_GATEWAY_URL="${DEERFLOW_GATEWAY_URL:-$DEERFLOW_URL}"
DEERFLOW_LANGGRAPH_URL="${DEERFLOW_LANGGRAPH_URL:-$DEERFLOW_URL/api/langgraph}"
利用可能な操作
1. ヘルスチェック
DeerFlow が実行中であることを確認します:
curl -s "$DEERFLOW_GATEWAY_URL/health"
2. メッセージの送信 (ストリーミング)
これが主要な操作です。スレッドを作成し、エージェントの応答をストリーミングします。
ステップ 1: スレッドを作成する
curl -s -X POST "$DEERFLOW_LANGGRAPH_URL/threads" \
-H "Content-Type: application/json" \
-d '{}'
応答: {"thread_id": "<uuid>", ...}
ステップ 2: 実行をストリーミングする
curl -s -N -X POST "$DEERFLOW_LANGGRAPH_URL/threads/<thread_id>/runs/stream" \
-H "Content-Type: application/json" \
-d '{
"assistant_id": "lead_agent",
"input": {
"messages": [
{
"type": "human",
"content": [{"type": "text", "text": "YOUR MESSAGE HERE"}]
}
]
},
"stream_mode": ["values", "messages-tuple"],
"stream_subgraphs": true,
"config": {
"recursion_limit": 1000
},
"context": {
"thinking_enabled": true,
"is_plan_mode": true,
"subagent_enabled": true,
"thread_id": "<thread_id>"
}
}'
応答は SSE ストリームです。各イベントの形式は次のとおりです:
event: <event_type>
data: <json_data>
主なイベントタイプ:
metadata—run_idを含む実行メタデータvalues—messages配列を含む完全な状態スナップショットmessages-tuple— 増分メッセージ更新 (AI テキストチャンク、ツール呼び出し、ツール結果)end— ストリームが完了
コンテキストモード (context で設定):
- フラッシュモード:
thinking_enabled: false, is_plan_mode: false, subagent_enabled: false - スタンダードモード:
thinking_enabled: true, is_plan_mode: false, subagent_enabled: false - プロモード:
thinking_enabled: true, is_plan_mode: true, subagent_enabled: false - ウルトラモード:
thinking_enabled: true, is_plan_mode: true, subagent_enabled: true
3. 会話の継続
フォローアップメッセージを送信するには、ステップ 2 と同じ thread_id を再利用し、新しいメッセージで別の実行を POST します。
4. モデルの一覧表示
curl -s "$DEERFLOW_GATEWAY_URL/api/models"
返り値: {"models": [{"name": "...", "provider": "...", ...}, ...]}
5. スキルの一覧表示
curl -s "$DEERFLOW_GATEWAY_URL/api/skills"
返り値: {"skills": [{"name": "...", "enabled": true, ...}, ...]}
6. スキルの有効化/無効化
curl -s -X PUT "$DEERFLOW_GATEWAY_URL/api/skills/<skill_name>" \
-H "Content-Type: application/json" \
-d '{"enabled": true}'
7. エージェントの一覧表示
curl -s "$DEERFLOW_GATEWAY_URL/api/agents"
返り値: {"agents": [{"name": "...", ...}, ...]}
8. メモリの取得
curl -s "$DEERFLOW_GATEWAY_URL/api/memory"
ユーザーコンテキスト、事実、会話履歴の要約を返します。
9. スレッドへのファイルアップロード
curl -s -X POST "$DEERFLOW_GATEWAY_URL/api/threads/<thread_id>/uploads" \
-F "files=@/path/to/file.pdf"
PDF、PPTX、XLSX、DOCX をサポート — 自動的に Markdown に変換します。
10. アップロードされたファイルの一覧表示
curl -s "$DEERFLOW_GATEWAY_URL/api/threads/<thread_id>/uploads/list"
11. スレッド履歴の取得
curl -s "$DEERFLOW_LANGGRAPH_URL/threads/<thread_id>/history"
12. スレッドの一覧表示
curl -s -X POST "$DEERFLOW_LANGGRAPH_URL/threads/search" \
-H "Content-Type: application/json" \
-d '{"limit": 20, "sort_by": "updated_at", "sort_order": "desc"}'
使用スクリプト
メッセージを送信し、完全な応答を収集するには、ヘルパースクリプトを使用します:
bash /path/to/skills/claude-to-deerflow/scripts/chat.sh "あなたの質問をここに"
実装については scripts/chat.sh を参照してください。このスクリプトは:
- ヘルスチェックを実行
- スレッドを作成
- 実行をストリーミングし、最終的な AI 応答を収集
- 結果を表示
SSE 出力の解析
ストリームは SSE イベントを返します。values イベントから最終的な AI 応答を抽出するには:
- 最後の
event: valuesブロックを探す - その
dataJSON を解析 messages配列にはすべてのメッセージが含まれます。最後のtype: "ai"のものが応答です- そのメッセージの
contentフィールドが AI のテキスト返信です
エラーハンドリング
- ヘルスチェックが失敗した場合、DeerFlow は実行されていません。ユーザーに起動する必要があることを知らせてください。
- ストリームがエラーイベントを返した場合、エラーメッセージを抽出して表示してください。
- よくある問題: ポートが開いていない、サービスがまだ起動中、設定エラー。
ヒント
- 簡単な質問にはフラッシュモードを使用します (最速、計画なし)。
- リサーチタスクにはプロモードまたはウルトラモードを使用します (計画とサブエージェントを有効化)。
- 最初にファイルをアップロードしてから、メッセージ内でそれらを参照できます。
- スレッド ID は永続的です — 後で会話に戻ることができます。