LangBot Docs
Dify

Dify を Telegram に接続する

LangBot で Dify アプリを Telegram のボットとして動かす手順:Dify の設定、ボットの認証情報、ネットワーク、テスト、トラブルシューティング。

このレシピではお使いの Dify アプリを Telegram のボットにつなぎます。LangBot が Telegram のメッセージを受け取り、パイプラインで処理して返信するので、プラットフォーム連携のコードは不要です。

Dify ではチャットアシスタント、Chatflow、エージェント、ワークフローを作れます。LangBot は公開したアプリを Service API 経由で呼び出すため、プロンプト、ツール、ナレッジは Dify 側で管理できます。

必要なもの

  • 稼働中の LangBot:LangBot Cloud(サーバー不要)、または Docker や uvx langbot によるセルフホスト。
  • LangBot からネットワーク経由で到達できる Dify のアカウントまたはインスタンス。
  • @BotFather で取得したボットトークン(/newbot を送り、bot で終わるユーザー名を付けます)。

ネットワーク

Telegram はロングポーリングを使うため、LangBot から api.telegram.org へ外向きに接続できれば十分です。公開 Webhook URL は不要で、手元の PC や自宅サーバーでも動きます。

1. Dify を準備する

  1. Dify でチャットアシスタント(Chatflow を含む)、エージェント、ワークフローのいずれかを作成して 公開 します。
  2. アプリの API アクセス ページで API キーを作成します。
  3. ワークフローアプリの場合は、回答を summary というキーで出力します。

2. パイプラインを作成する

LangBot WebUI の パイプライン でパイプラインを作成(または既定のものを編集)し、AI を次のように設定します。ランナーが一覧にない場合は、プラグイン または LangBot Space マーケット から公式ランナープラグインをインストールします。

項目設定値
ランナーDify(公式 Dify Agent ランナープラグイン)
Base URLDify Cloud は https://api.dify.ai/v1、セルフホストは自分の Dify アドレスの末尾に /v1
API Keyアプリの API アクセスページで作成したキー

3. Telegram のボットを作成する

  1. ボット で新しいボットを作成し、Telegram アダプター(LangBot 4.11 の新しいアダプター。非推奨の旧版は選ばない)を選びます。
  2. トークンを貼り付け、必要に応じて Markdown とストリーミングを有効にし、ボットを有効化して保存します。

4. 紐付けてテストする

ボットを開いて作成したパイプラインを選び、保存してボットが有効になっていることを確認します。

ボットとの個人チャットで Start を押してからメッセージを送ります。グループではパイプラインのトリガー条件(ボットへのメンションや返信など)を満たす必要があります。

トラブルシューティング

  • 同じホストの Docker でセルフホスト版 Dify を動かす場合は、両方を共通の Docker ネットワークに参加させ、localhost ではなくコンテナのアドレス(例:http://dify-nginx/v1)を使います。
  • Chatflow アプリが返すのは回答(Answer)ノードの出力だけです。
  • 1 つのトークンをポーリングできるのは 1 インスタンスだけです。返信がない場合は、同じボットを別の LangBot インスタンスやスクリプトで有効にしていないか確認してください。
  • WebUI の モニタリング に、すべてのメッセージ、パイプラインの実行、エラーが記録されます。

よくある質問

Telegram には公開 IP のあるサーバーが必要ですか?

いいえ。Telegram はロングポーリングを使うため、LangBot から api.telegram.org へ外向きに接続できれば十分です。公開 Webhook URL は不要で、手元の PC や自宅サーバーでも動きます。

Telegram のボットはストリーミング返信に対応していますか?

はい。ボットでストリーミングを有効にし、AI 側もストリーミングに対応している必要があります。詳しくはプラットフォーム機能一覧をご覧ください。

同じ Dify の設定を他のプラットフォームでも使えますか?

はい。1 つのパイプラインを複数のボットに紐付けられるので、同じ設定で複数のプラットフォームに同時に応答できます。

関連ガイド

On this page