跳到主要内容
知仓学习社ZHICANG

ai-search-hub

Run the AI Search Hub browser automation scripts for Yuanbao, LongCat, Doubao, Qwen, Gemini, Grok, and MiniMax. Use this skill when the user wants t…

读凭据执行命令联网写文件严重 0 · 高危 6minsight-ai-info/AI-Search-Hub

它会碰到什么

扫了多少16 个文本文件,149 KB
它会碰到什么读凭据执行命令联网写文件
命中总数38 处
命中统计严重 0 · 高 6 · 中 18 · 低 14
逐条看命中(6 条严重或高危)
  • scripts/run_web_chat.py:256cred-envread
    local = Path(os.environ.get("LOCALAPPDATA", ""))
  • scripts/run_web_chat.py:294cred-envread
    local = Path(os.environ.get("LOCALAPPDATA", ""))
  • scripts/run_web_chat.py:302cred-envread
    local = Path(os.environ.get("LOCALAPPDATA", ""))
  • scripts/run_web_chat.py:421cred-envread
    value = os.environ.get(key)
  • scripts/run_web_chat.py:533exec-spawn
    STARTED_DEBUG_BROWSER = subprocess.Popen(
  • scripts/run_web_chat.py:776exec-spawn
    completed = subprocess.run(cmd, cwd=repo_root)

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

AI Search Hub

Use this skill only for this repository's AI Search Hub browser automation scripts:

  • 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

When To Use

Use this skill when the user asks to:

  • run one of the supported chat sites from this repo
  • normalize invocation across the three scripts
  • auto-start a debug Chromium-family browser session
  • detect whether 127.0.0.1:9222 is available
  • prompt for login if the target site is not logged in, then continue automatically
  • seed an isolated debug profile from the user's local browser data

Installation

Before first use, ensure dependencies are installed. See INSTALL.md for the complete setup sequence:

  1. Python 3.10+ with pip
  2. pip install playwright
  3. playwright install chromium

The wrapper auto-detects Chrome/Edge/Brave/Chromium on macOS, Linux, and Windows.

Routing Strategy

Do not send every question to every platform. Analyze the question first, then route to the platform(s) whose underlying data world is most likely to contain the best answer.

See ROUTING.md for the full decision framework. Quick reference:

| Question Type | Recommended Site | Parent Company |

|---|---|---|

| Twitter / X / real-time social | grok | xAI |

| Google / global web | gemini | Google |

| 微信公众号 / WeChat content | yuanbao | 腾讯 |

| 抖音 / 头条 / ByteDance trends | doubao | 字节跳动 |

| 美团 / 大众点评 / 本地生活 | longcat | 美团 |

| 淘宝 / 阿里 / 通用中文 | qwen | 阿里巴巴 |

| 用户明确要求 MiniMax / MiniMax Agent | minimaxi | MiniMax |

How To Run

Run the bundled wrapper script instead of calling the site script directly:

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

Key arguments:

  • --site yuanbao|longcat|doubao|qwen|gemini|grok|minimaxi
  • --prompt "..." required
  • --repo-root <path> if the current working directory is not the repo root
  • --cdp-http http://127.0.0.1:9222 to reuse an existing DevTools endpoint
  • --browser-path <path> to force a specific Chromium-family browser binary
  • --debug-profile-dir <path> to control the isolated debug profile location
  • --user-data-source <path> to force a specific source browser user-data-dir
  • --output <path> to control the destination file

Workflow

The wrapper script is the low-freedom path and should be preferred over hand-rolling the sequence.

It does the following:

  1. Finds the repo root and target site script.
  2. Reuses --cdp-http if 9222 is already listening.
  3. Otherwise seeds an isolated Chromium-family debug profile from the user's source browser data and starts the browser with a remote-debugging port, opening the requested site directly instead of leaving a separate about:blank startup tab behind.
  4. For legacy sites (yuanbao, longcat, doubao), opens the target site and checks for login UI before dispatching the site-specific script.
  5. For generic sites (qwen, gemini, grok, minimaxi), opens the target site, enters the prompt, and waits for a reply.
  6. If the site requires login or produces no usable reply because login is required, prints a prompt and waits until login completes, then continues automatically.
  7. Invokes the matching site script with standardized flags and the resolved --cdp-url.
  8. Reuses the single startup page when possible so the browser does not keep an extra blank tab, and prefers DOM-side text entry over keyboard typing to reduce accidental interference from the user working elsewhere.

Site Notes

  • doubao: requires a logged-in session. The visitor page usually does not answer prompts.
  • yuanbao: login may appear as a modal with QQ, WeChat, or last-login buttons even when the page shell is visible.
  • longcat: the wrapper prefers a new chat before sending unless --no-new-chat is requested downstream.
  • qwen, gemini, grok, minimaxi: each has its own Playwright entry script backed by a shared site-chat core. gemini first targets the visible composer and attempts the send once before falling back to the login-wait loop, because the landing page exposes a real textbox even when the account is not yet in a usable chat state.

Constraints

  • Prefer headed Chromium browsers for login-recovery flows. Headless mode only makes sense when the copied debug profile is already logged in.
  • Do not kill the user's normal browser session unless the user explicitly asks for that.
  • The wrapper copies browser data into an isolated debug profile and skips lock files, so the user's normal browser can stay open.
  • The wrapper bypasses Python proxy settings for local DevTools requests because http://127.0.0.1:9222/json/version may otherwise return a false 502.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 1,266
本站分层T2
该仓技能数1
原文件路径SKILL.md