ADK Connector¶
ADKでサポートPythonTypeScript
ADK Connectorは、任意の ADK エージェントをラッピングし、Telegram や Discord などの一般的なメッセージングチャネルにチャットボットとして公開できるプラグアンドプレイ의 ツールキットです。現在サポートされているチャネルの完全なリストについては、プロジェクトリポジトリを参照してください。
数行のコードを追加するだけで、ローカル開発、テスト環境と実際のプロダクションメッセージングプラットフォームの間のギャップを埋めることができ、データベースベースのデバイス間セッション同期をネイティブにサポートします。
主なユースケース¶
- マルチチャネルデプロイ (Multi-Channel Deployment): サポートされているメッセージングチャネル(Telegram、Discord など)に、Python または JavaScript/TypeScript で記述された ADK エージェントをチャットボットとして即座にデプロイできます。
- デバイス間のセッション同期 (Cross-Device Session Synchronization): 会話をシームレスに切り替えることができます。Telegram や Discord でのチャット履歴を、ローカルの ADK Web UI (
adk web) 内でそのまま確認、デバッグし、会話を継続できます。 - 弾力的な状態管理 (Resilient State Management): セッション状態、ツール呼び出し、ユーザーのインタラクションを記録するための非同期 SQLite バックエンドを自動的に構成します。
- 堅牢なマルチエージェントワークフロー (Robust Multi-Agent Workflows): 二重インポート(double-import)防止セーフティと、親およびサブエージェント間でのプロンプトコンテキスト変数の自動解決を提供します。
前提条件¶
- Python 3.10+ または Node.js 18+
- Gemini API キー(
GOOGLE_API_KEYとして設定) - メッセージングチャネルの認証情報:
- Telegram: Telegram アカウントと BotFather からの Bot トークン
- Discord: Discord 開発者アカウント、Discord Bot トークン、およびクライアント ID
インストール¶
ADK プロジェクトに応じて、Python または JavaScript / TypeScript 用のコネクタをインストールできます。
エージェントでの使用¶
既存の Google ADK エージェントをラップしてメッセージングチャネルで起動する方法は次のとおりです。
import os
from dotenv import load_dotenv
from google.adk.agents.llm_agent import Agent
from adk_connectors.telegram import TelegramConnector
# 環境変数をロード
load_dotenv()
# 1. 標準の Google ADK エージェントを定義
assistant = Agent(
model='gemini-flash-latest',
name='my_assistant',
instruction='You are a helpful assistant.'
)
if __name__ == "__main__":
# 2. Telegram Bot トークンを取得
token = os.getenv("TELEGRAM_BOT_TOKEN")
# 3. コネクタをバインド
connector = TelegramConnector(
token=token,
agent=assistant
)
# 4. ポーリングを開始
connector.start()
import os
from dotenv import load_dotenv
from google.adk.agents.llm_agent import Agent
from adk_connectors.discord import DiscordConnector
# 환경변수 로드
load_dotenv()
# 1. 標準の Google ADK エージェントを定義
assistant = Agent(
model='gemini-flash-latest',
name='my_assistant',
instruction='You are a helpful assistant.'
)
if __name__ == "__main__":
# 2. Discord Bot トークンを取得
token = os.getenv("DISCORD_BOT_TOKEN")
# 3. コネクタをバインド
connector = DiscordConnector(
token=token,
agent=assistant
)
# 4. ボットを起動します!
connector.start()
import { LlmAgent } from '@google/adk';
import { TelegramConnector } from 'adk-connector-js';
import dotenv from 'dotenv';
dotenv.config();
// 1. 標準の Google ADK エージェントを定義
export const rootAgent = new LlmAgent({
name: 'my_assistant',
model: 'gemini-flash-latest',
instruction: 'You are a helpful assistant.'
});
// 2. スクリプトのエントリーポイントで Telegram コネクタを起動
if (import.meta.url === `file://${process.argv[1]}` || process.argv[1]?.endsWith('agent.ts')) {
const connector = new TelegramConnector({
token: process.env.TELEGRAM_BOT_TOKEN!,
agent: rootAgent
});
connector.start();
}
adk webとのセッション同期¶
Python セットアップの場合、プロバイダー固有のユーザー ID をローカル開発環境にマッピングすることで、Telegram または Discord のチャット履歴をローカルの ADK Web UI と直接同期できます。
-
コード内で
session_management_across_device=Trueを設定し、ユーザー ID を渡します。 -
ボットスクリプトを実行します:
- 別のターミナルで ADK Web UI を実行します:
http://127.0.0.1:8000にアクセスして、アクティブな会話とツール実行ログをブラウザで直接確認します。