mcpField
C
claude-to-deerflow

claude-to-deerflow

github.com/bytedanceエージェントワークフロー84.6k3.9k 回インストール今日更新
リポジトリ

claude-to-deerflow について

claude-to-deerflow は、稼働中の DeerFlow インスタンスと HTTP API で通信するスキルです。エージェントとのストリーミング会話、スレッド管理、ファイルのアップロード、モデルやスキルの一覧取得などに対応します。

主な機能

  1. 01HTTP による応答のストリーミング
  2. 02会話スレッドの作成と継続
  3. 03モデル、スキル、エージェントの一覧
  4. 04スキルの有効化と無効化
  5. 05スレッドへのファイルの追加と一覧
  6. 06メモリとスレッド履歴の取得

活用シーン

  1. 01稼働中の DeerFlow への質問
  2. 02既存のエージェント会話の継続
  3. 03会話スレッドへの文書アップロード

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/bytedance/deer-flow --skill claude-to-deerflow

インストール後、Claude Code で/claude-to-deerflowを入力して読み込まれたか確認します。

同梱ファイルscripts/chat.shscripts/status.sh

詳細

DeerFlow スキル

実行中の DeerFlow インスタンスと HTTP API 経由で通信します。DeerFlow は LangGraph を基盤とする AI エージェントプラットフォームで、調査、コード実行、ウェブ閲覧などを行うサブエージェントをオーケストレーションします。

アーキテクチャ

DeerFlow は Nginx リバースプロキシの背後で、2 つの API を公開しています。

サービス直接ポートプロキシ経由用途
Gateway API8001$DEERFLOW_GATEWAY_URLREST エンドポイントと組み込みエージェントランタイム
LangGraph-compatible API8001$DEERFLOW_LANGGRAPH_URLエージェントのスレッド、実行、ストリーミング

環境変数

すべての URL は環境変数で設定できます。リクエストを行う前に、必ずこれらの環境変数を読み取ってください。

変数デフォルト説明
DEERFLOW_URLhttp://localhost:2026統合プロキシのベース URL
DEERFLOW_GATEWAY_URL${DEERFLOW_URL}Gateway API のベース URL(モデル、スキル、メモリー、アップロード)
DEERFLOW_LANGGRAPH_URL${DEERFLOW_URL}/api/langgraphLangGraph API のベース URL(スレッド、実行)

curl を呼び出す場合は、常に次のように URL を解決してください。

# Resolve base URLs from env (do this FIRST before any API call)
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 で設定):

  • Flash モード:thinking_enabled: false, is_plan_mode: false, subagent_enabled: false
  • Standard モード:thinking_enabled: true, is_plan_mode: false, subagent_enabled: false
  • Pro モード:thinking_enabled: true, is_plan_mode: true, subagent_enabled: false
  • Ultra モード: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 "Your question here"

実装については scripts/chat.sh を参照してください。このスクリプトは次の処理を行います。

  1. ヘルスチェックを実行します
  2. スレッドを作成します
  3. 実行をストリーミングし、最終的な AI の応答を収集します
  4. 結果を出力します

SSE 出力の解析

ストリームは SSE イベントを返します。values イベントから最終的な AI の応答を抽出するには、次の手順に従います。

  • 最後の event: values ブロックを探します
  • その data の JSON を解析します
  • messages 配列にはすべてのメッセージが含まれており、最後の type: "ai" のメッセージが応答です
  • そのメッセージの content フィールドが AI のテキスト応答です

エラー処理

  • ヘルスチェックに失敗した場合、DeerFlow は実行されていません。起動する必要があることをユーザーに伝えてください。
  • ストリームがエラーイベントを返した場合は、エラーメッセージを抽出して表示してください。
  • よくある問題:ポートが開いていない、サービスがまだ起動中、設定エラー。

ヒント

  • 簡単な質問には、フラッシュモード(最速で、プランニングなし)を使用してください。
  • 調査タスクには、プロモードまたはウルトラモード(プランニングとサブエージェントを利用可能)を使用してください。
  • 先にファイルをアップロードしてから、メッセージ内で参照できます。
  • スレッド ID は保持されるため、後で会話に戻ることができます。

コメント