跳到主要內容

AutoCLI:用 Rust 重寫的 AI 爬蟲工具,速度快 12 倍、記憶體省 10 倍

nashsu/AutoCLI on GitHub

AI agent 要從網站拿資料,通常有兩條路:一是自己寫爬蟲,二是讓 LLM 直接推理網頁結構。前者維護成本高,後者每次都要燒 token。AutoCLI 走第三條路——提前把 55+ 網站的 adapter 寫好,讓 agent 一行指令就能拿到結構化的 JSON。

而且它用 Rust 重寫了。效能數字說話:Bilibili 指令從 20.1 秒降到 1.66 秒,記憶體用量比 Node.js 版本少 6.6 到 10.6 倍,整個 binary 只有 4.7MB,零 runtime 依賴。


它解決什麼問題?

傳統 AI agent 操作網站的痛點:

  • Playwright/Puppeteer 爬蟲:要維護 CSS selector,網站改版就壞掉
  • LLM 直接推理 DOM:每次都要花 token 猜「哪個按鈕是送出」
  • 自己寫 adapter:55 個網站 = 55 套維護負擔

AutoCLI 的解法是把常用網站的操作封裝成確定性指令。你不用猜元素,不用燒 token,只需要 autocli bilibili hot --limit 5,拿到 JSON,結束。


效能對比

指令執行時間(秒,越低越好)

Rust 版本最顯著的提升在 Bilibili——12 倍速度差,這在 agent 批次操作時影響很大。


三種操作模式

Loading diagram...

Public Mode 不需要瀏覽器,直接打公開 API,適合 GitHub Trending、Hacker News 這類無需登入的場景。

Browser Mode 透過 Chrome extension 複用你已登入的 session,不用重新 auth,也不用在 code 裡存密碼。

Desktop Mode 控制本機 Electron app,讓 AI 可以操作 Cursor、Notion、Discord 等桌面工具。


支援的平台一覽

類別平台
中文社群Bilibili、小紅書、知乎、抖音、微博
英文社群Twitter/X、Reddit、YouTube、HN
電商1688、Amazon、淘寶
開發工具GitHub (gh)、Vercel、Docker
企業通訊飛書、釘釘、企業微信
桌面 AppCursor、Notion、Discord、Doubao

333 條指令,覆蓋 55+ 網站,測試通過率 84%(122 個自動化測試)。


AI 探索工具:讓 agent 自己找指令

AutoCLI 內建三個 AI 輔助工具:

# 分析網站的 API 結構
autocli explore <url>

# 根據需求自動生成 adapter
autocli generate "抓取小紅書用戶的所有筆記"

# 偵測登入流程,自動處理 auth
autocli cascade <url>

explore 讓 AI agent 在不知道有哪些指令時,先掃一遍目標網站的 API 端點。generate 則直接用 LLM 產出 YAML adapter,加速 onboarding 新網站。


YAML Adapter 格式

自訂 adapter 用 YAML 宣告,不需要寫 code:

name: my-custom-site
commands:
  - name: posts
    description: 抓取最新文章列表
    url: 'https://example.com/api/posts'
    method: GET
    params:
      limit:
        type: number
        default: 10
    output:
      format: json
      fields:
        - title
        - author
        - published_at

寫一次,autocli my-custom-site posts --limit 20,AI agent 就能直接用。


在 AI Agent 裡整合

如果你在用 Claude Code 或 Cursor,把 AutoCLI 加進 agent context 只要兩步:

# 安裝
npm install -g autocli

# 讓 agent 知道有哪些指令
autocli list --json > tools.json

tools.json 加進 AGENT.md 或 system prompt,agent 就能 discover 並直接呼叫所有指令。不需要額外的 tool wrapper,autocli 的 output 本身就是結構化 JSON。


為什麼選 Rust?

原版 TypeScript/Node.js 的 AutoCLI(OpenCLI)在效能上有幾個瓶頸:

  1. V8 啟動成本:每次 CLI 呼叫都要初始化 Node.js runtime
  2. 記憶體佔用:Agent 批次跑 50 個指令,記憶體很快就超標
  3. 依賴複雜度node_modules 本身就是 binary size 的噩夢

Rust 版本直接編譯成單一 binary,4.7MB,冷啟動幾乎是零,記憶體用量是 Node.js 的 1/10。對 AI agent pipeline 來說,每次 tool call 都省下的毫秒和記憶體,最後加起來差別很大。


結語

AutoCLI 的定位很清楚:把「AI agent 操作網站」這件事,從 LLM 自由發揮的黑盒子,變成可測試、可維護的確定性指令集。

Rust 重寫讓它在效能上沒有妥協,YAML adapter 系統讓擴充新網站不需要動 core code,browser session 複用讓登入問題消失。如果你在建 AI agent pipeline,需要抓網站資料,AutoCLI 值得評估。