Communitygithub.com

minsight-ai-info/AI-Search-Hub

AI Search Hubのブラウザ自動化スクリプトを実行し、元宝、LongCat、豆包、Qwen、Gemini、Grok、MiniMaxの各AIサイトでの質問を自動化します。ログインが必要な場合はユーザーの入力を待ち、その後自動的に処理を継続します。

AI-Search-Hub とは?

このスキルは、複数のAIチャットサイト(元宝、LongCat、豆包、Qwen、Gemini、Grok、MiniMax)に対してブラウザ自動化を実行するためのラッパースクリプト一式を提供します。主な処理フローは、Chrome DevTools Protocol(CDP)ポート9222の自動検出・起動、ユーザーのローカルブラウザデータから隔離されたデバッグプロファイルの作成、対象サイトへのアクセス、ログイン状態の確認と必要に応じたログイン待機、そしてプロンプト送信と応答取得までを自動化します。このスキルはmacOS、Linux、Windowsに対応しており、Chrome/Edge/Brave/Chromiumを自動検出します。Python 3.10以上とPlaywrightライブラリが必要です。また、質問内容を分析して最適なプラットフォームにルーティングする戦略も組み込まれており、リアルタイムなソーシャルメディア情報にはGrok、Googleの情報にはGemini、中国国内の各種サービスには対応する中国製AIサービスを推奨します。ログインが必要な場合は、ユーザーが手動でログインを完了するまで自動待機し、その後処理を再開するため、ユーザーはブラウザ操作を意識することなくAI検索結果を得ることができます。

対応~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add minsight-ai-info/AI-Search-Hub

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

AI Search Hub

このスキルは、このリポジトリのAI Search Hubブラウザ自動化スクリプトにのみ使用してください。

  • scripts/yuanbao_playwright.py
  • scripts/longcat_playwright.py
  • scripts/doubao_playwright.py
  • scripts/qwen_playwright.py
  • scripts/gemini_playwright.py
  • scripts/grok_playwright.py
  • scripts/minimaxi_playwright.py

使用タイミング

ユーザーが以下を依頼した場合にこのスキルを使用します。

  • このリポジトリがサポートするチャットサイトのいずれかを実行する
  • 3つのスクリプト間で呼び出しを正規化する
  • Chromium系ブラウザのデバッグセッションを自動起動する
  • 127.0.0.1:9222 が利用可能かどうかを検出する
  • 対象サイトにログインしていない場合、ログインを促し、その後自動的に続行する
  • ユーザーのローカルブラウザデータから隔離されたデバッグプロファイルを作成する

インストール

初回使用前に、依存関係がインストールされていることを確認してください。完全なセットアップ手順は INSTALL.md を参照してください。

  1. pip 付きの Python 3.10+
  2. pip install playwright
  3. playwright install chromium

ラッパーはmacOS、Linux、Windows上のChrome/Edge/Brave/Chromiumを自動検出します。

ルーティング戦略

すべての質問をすべてのプラットフォームに送信しないでください。まず質問を分析し、その質問に対する最良の回答が得られる可能性が最も高いデータ世界を持つプラットフォームにルーティングします。

完全な判断フレームワークについては ROUTING.md を参照してください。クイックリファレンス:

質問タイプ推奨サイト親会社
Twitter / X / リアルタイムソーシャルgrokxAI
Google / グローバルウェブgeminiGoogle
微信公众号 / WeChat コンテンツyuanbao腾讯
抖音 / 头条 / ByteDance トレンドdoubao字节跳动
美团 / 大众点评 / ローカルライフlongcat美团
淘宝 / 阿里 / 汎用中文qwen阿里巴巴
ユーザーが明示的に MiniMax / MiniMax Agent を要求minimaxiMiniMax

実行方法

サイトスクリプトを直接呼び出す代わりに、バンドルされているラッパースクリプトを実行します。

python3 scripts/run_web_chat.py --site doubao --prompt "Give me a short Hangzhou food guide."

主な引数:

  • --site yuanbao|longcat|doubao|qwen|gemini|grok|minimaxi
  • --prompt "..." 必須
  • --repo-root <path> 現在の作業ディレクトリがリポジトリルートでない場合
  • --cdp-http http://127.0.0.1:9222 既存のDevToolsエンドポイントを再利用する場合
  • --browser-path <path> 特定のChromium系ブラウザバイナリを強制する場合
  • --debug-profile-dir <path> 隔離されたデバッグプロファイルの場所を制御する場合
  • --user-data-source <path> 特定のソースブラウザのユーザーデータディレクトリを強制する場合
  • --output <path> 出力先ファイルを制御する場合

ワークフロー

ラッパースクリプトは自由度の低いパスであり、手動でシーケンスを組み立てるよりも優先されるべきです。

ラッパースクリプトは以下の処理を行います。

  1. リポジトリルートとターゲットサイトスクリプトを見つけます。
  2. 9222 がすでにリッスンしている場合は --cdp-http を再利用します。
  3. そうでない場合は、ユーザーのソースブラウザデータから隔離されたChromium系デバッグプロファイルを作成し、リモートデバッグポートでブラウザを起動し、別の about:blank スタートアップタブを残さずに、要求されたサイトを直接開きます。
  4. レガシーサイト(yuanbao、longcat、doubao)の場合、ターゲットサイトを開き、サイト固有のスクリプトをディスパッチする前にログインUIを確認します。
  5. 汎用サイト(qwen、gemini、grok、minimaxi)の場合、ターゲットサイトを開き、プロンプトを入力し、返信を待ちます。
  6. サイトがログインを必要とする場合、またはログインが必要なために使用可能な返信が生成されない場合は、プロンプトを表示してログインが完了するまで待機し、その後自動的に続行します。
  7. 標準化されたフラグと解決された --cdp-url を使用して、対応するサイトスクリプトを呼び出します。
  8. 可能な場合は単一のスタートアップページを再利用して、ブラウザに余分な空白タブを残さないようにし、キーボードタイピングよりもDOM側のテキスト入力を優先して、ユーザーが他の場所で作業しているときの偶発的な干渉を減らします。

サイト別注意事項

  • doubao:ログイン済みセッションが必要です。ビジターページは通常プロンプトに回答しません。
  • yuanbao:ページシェルが表示されている場合でも、QQ、WeChat、または最終ログインボタンを含むモーダルとしてログインが表示される場合があります。
  • longcat:ラッパーは、下流で --no-new-chat が要求されない限り、送信前に新しいチャットを優先します。
  • qwen、gemini、grok、minimaxi:それぞれに独自のPlaywrightエントリスクリプトがあり、共有のsite-chatコアによって支えられています。gemini は最初に表示されているコンポーザーをターゲットにし、ログイン待機ループにフォールバックする前に1回送信を試みます。これは、ランディングページがアカウントがまだ使用可能なチャット状態でない場合でも実際のテキストボックスを公開するためです。

制約事項

  • ログイン回復フローには、ヘッド付きのChromiumブラウザを優先します。ヘッドレスモードは、コピーされたデバッグプロファイルがすでにログインしている場合にのみ意味があります。
  • ユーザーが明示的に要求しない限り、ユーザーの通常のブラウザセッションを強制終了しないでください。
  • ラッパーはブラウザデータを隔離されたデバッグプロファイルにコピーし、ロックファイルをスキップするため、ユーザーの通常のブラウザは開いたままにできます。
  • ラッパーはローカルDevToolsリクエストのPythonプロキシ設定をバイパスします。これは、http://127.0.0.1:9222/json/version が誤って 502 を返す可能性があるためです。

関連スキル