Select Page

Stagehand 教學|AI 驅動的瀏覽器自動化神器,TypeScript 與 Python 都支援!

想用 AI 控制網頁自動化,但程式碼又要精準可靠,同時享受自然語言,高效又方便?那你絕不能錯過由 Browserbase 團隊推出的 Stagehand —— 這款專為 AI 時代設計的瀏覽器自動化框架,不僅支援 TypeScript 與 Python、可本地或雲端部署,還比 Browser‑Use 更快、更耐變動!

Stagehand 兼具控制力與智慧的 AI 瀏覽器自動化框架

Stagehand 是以 Playwright 為核心構建的 AI-native 自動化工具,它加入了 LLM 判斷能力,結合程式精準控制與自然語言指令,令自動化腳本更穩定、更智慧也更高效

  • 自然語言 + 程式碼混合操作:你可以用程式寫明確動作,也能用「act(‘點擊第一個 Stagehand 元件’)」這樣類人語法完成UI操作 。
  • 接口完整,支援察看、執行與資料萃取:核心三大命令 actobserveextract,讓操作更透明、更可控
  • 容錯與自恢復能力:UI 略有變動也不怕,Stagehand 的 observe + 快取策略讓腳本更具彈性
  • 完美整合 Playwright:所有 Playwright 腳本都能無縫升級 Stagehand,省心又高效

核心玩法!TypeScript/JavaScript 快速上手範例

// Use Playwright functions on the page object
const page = stagehand.page;
await page.goto("https://github.com/browserbase");

// Use act() to execute individual actions
await page.act("click on the stagehand repo");

// Use Computer Use agents for larger actions
const agent = stagehand.agent({
    provider: "openai",
    model: "computer-use-preview",
});
await agent.execute("Get to the latest PR");

// Use extract() to read data from the page
const { author, title } = await page.extract({
  instruction: "extract the author and title of the PR",
  schema: z.object({
    author: z.string().describe("The username of the PR author"),
    title: z.string().describe("The title of the PR"),
  }),
});

這段程式完整示範了初始化、導航、AI 驅動操作到資料萃取的流程,不僅省事,也大幅提升開發效率。

Stagehand 與 Browser-Use 比較

功能面Stagehand(此文主角)Browser-Use
控制精準度Token 級動作掌控 + 自然語言指令混合攻擊角度偏自然語言,程式控制較弱
容錯能力observe + 快取策略,對 DOM 變化更耐受缺少自恢復機制
雲端支援原生整合 Browserbase,輕鬆雲端部署需額外集成,無預設雲平台支援
語言支援TypeScript / Python主要依賴 Python
AI 整合天生結合 LLM,支援複雜任務拆解依賴外部 LLM,不那麼一體化

只要先學四個指令,快速上手

指定去那一個網頁

goto():

    # 初始化
    page = stagehand.page
    # 指定去那一個頁面
    await page.goto("https://rain.tips/")

使用自然語言操作

act():

    await page.act("點選確定按鈕");

抓取數據資料

extract():

    post = await page.extract("取得標題")

預覽功能

observe():

   links = await page.observe("找到頁面中的所有連結")

實戰快速導覽

安裝

# 用 pip
pip install stagehand python-dotenv

# 安裝playwright
python -m playwright install

# 裝 chromium 瀏覽器
python -m playwright install chromium

建立 .env

export BROWSERBASE_API_KEY="your_browserbase_api_key"
export BROWSERBASE_PROJECT_ID="your_browserbase_project_id"
export MODEL_API_KEY="your_model_api_key"  # OpenAI, Anthropic, etc.

建立程式碼 main.py

import asyncio
import os
from stagehand import Stagehand, StagehandConfig
from dotenv import load_dotenv

load_dotenv()

async def main():
    config = StagehandConfig(
        env="BROWSERBASE",
        api_key=os.getenv("BROWSERBASE_API_KEY"),
        project_id=os.getenv("BROWSERBASE_PROJECT_ID"),
        model_name="gpt-4o",
        model_api_key=os.getenv("MODEL_API_KEY")
    )
    
    stagehand = Stagehand(config)
    
    try:
        await stagehand.init()
        page = stagehand.page
        
        await page.goto("https://docs.stagehand.dev/")
        await page.act("click the quickstart link")
        
        result = await page.extract("extract the main heading of the page")
        
        print(f"Extracted: {result}")
        
    finally:
        await stagehand.close()

if __name__ == "__main__":
    asyncio.run(main())

驗證與測試

python main.py 

若要用本地端的瀏覽器的話,可以改成下面的程式碼

import asyncio
import os
from dotenv import load_dotenv
from stagehand import StagehandConfig, Stagehand

load_dotenv()

async def main():
    # 检查API密钥是否设置
    api_key = os.getenv("OPENAI_API_KEY")

    config = StagehandConfig(
        env="LOCAL",  # 本地运行
        # AI模型配置 - 使用环境变量
        model_name="gpt-4o-mini",  # 使用更便宜的模型
        model_api_key=api_key,  # 从环境变量读取

        # 本地运行配置
        headless=False,  # 显示浏览器窗口
        verbose=3,  # 详细日志
        debug_dom=True,  # DOM调试
    )

    # 使用配置创建Stagehand实例
    stagehand = Stagehand(config)

    # 初始化Stagehand(启动浏览器会话)
    await stagehand.init()

    # 获取页面对象,用于后续的页面操作
    page = stagehand.page

    await page.goto("https://rain.tips/")

    # # 使用observe()取得文章的連結
    blog_links = await page.observe("取得文章中的所有連結)
    print(f"✅ Page link: {blog_links}")

    await page.act(blog_links[0]) 
    data_post_1 = await page.extract("取得文章的標題和內文")
    print(f"✅ 文章資訊如下: {data_post_1}")

if __name__ == "__main__":
    asyncio.run(main())

總結:為什麼 Stagehand 是下一代自動化框架?

  • 語言直覺更自然,人類可理解
  • 對 UI 變化具彈性、不易失效
  • 結合 LLM,自動拆解任務,效率提升數倍
  • 支援本地與雲端,開發與生產環境都得心應手

Stagehand 正重新定義瀏覽器自動化,不再只是死板指令,而是一場「程式控+AI 智能」的完美結合,無論對開發者或 AI 自動化愛好者,都是一大利器。快一起駕馭它,打造更強、更智慧的自動化流程!

參考資料

BrowserBase

GitHub Stagehand

Demo

開發說明文件

https://www.aivi.fyi/aiagents/introduce-stagehand

GibberLink 教學:實現 AI 助理之間的加密音頻對話

GibberLink 教學:實現 AI 助理之間的加密音頻對話

GibberLink 是一項創新的開源專案,讓 AI 助理之間以更高效的方式進行音頻對話。​這項技術於 2025 年的 ElevenLabs 倫敦黑客馬拉松中脫穎而出,獲得了全球首獎。

🔍 GibberLink 是什麼?

GibberLink 是由 Boris Starkov 和 Anton Pidkuiko 兩位開發者在黑客馬拉松期間開發的開源專案。​其核心理念是讓 AI 助理在識別到對方也是 AI 時,切換到一種更高效的通訊協議,使用聲波傳輸結構化數據,而非傳統的人類語言。​這種方式不僅提高了通訊效率,還減少了計算資源的消耗。

⚙️ GibberLink 的運作原理

  1. 初始對話:​兩個 AI 助理以人類語言開始對話。
  2. 身份識別:​當其中一方識別到對方也是 AI 助理時,提出切換到 GibberLink 模式。
  3. 協議切換:​雙方同意後,切換到使用聲波傳輸數據的通訊協議。
  4. 數據傳輸:​利用開源的 ggwave 庫,將結構化數據編碼為聲波信號,進行高效的數據交換。

這種方式類似於早期撥號調製解調器的數據傳輸,但經過現代化的優化,更適合當前的 AI 通訊需求。​

🔐 AI 加密對話的實現

GibberLink 不僅提高了通訊效率,還注重數據的安全性。​在進行聲波數據交換時,AI 助理會使用非對稱加密技術(如 P-256 密鑰對)進行加密,確保通訊內容的保密性和完整性。​這種端對端的加密方式,即使通訊被攔截,也無法解密其中的內容。

🌐 如何體驗 GibberLink?

  • 線上體驗:​訪問 gbrl.ai,在兩個設備上打開該網站,即可觀察 AI 助理之間的音頻對話。
  • 開源代碼:​GibberLink 的完整代碼已在 GitHub 上開源,地址為 github.com/PennyroyalTea/gibberlink。​

🏆 為何值得關注?

  • 高效通訊:​GibberLink 模式下的 AI 對話比傳統語音通訊快約 80%,大幅提升了通訊效率。
  • 資源節省:​減少了語音生成和語音識別的計算資源消耗,降低了運營成本。
  • 安全保障:​採用先進的加密技術,確保通訊內容的安全性。
  • 開源共享:​開源的特性使得開發者可以自由使用、修改和擴展該技術。

🔧 GibberLink 安裝與本地部署教學

GibberLink 是一個開源專案,您可以在本地環境中部署並體驗 AI 之間的聲音通訊。​

1. 安裝 Node.js(建議版本:v20)

GibberLink 需要 Node.js 環境,建議使用 v18.18.0 或更高版本。以下是使用 NVM 安裝 Node.js 的步驟:

curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
source ~/.bashrc
nvm install 20
nvm use 20
nvm alias default 20  # 可選,將 Node.js 20 設為預設版本

2.下載並設定 GibberLink 專案

git clone https://github.com/PennyroyalTea/gibberlink.git
cd gibberlink
mv example.env .env

並且編輯 .env 檔案,填入您的 ElevenLabs 和 LLM 提供者的 API 金鑰。​

3.安裝相依套件並啟動專案

npm install
npm run dev

啟動後,您可以透過瀏覽器訪問 http://localhost:3003 來使用 GibberLink。​

參考資料

Cherry Studio:多模型 AI 助手,提升工作效率的全能桌面客戶端

Cherry Studio:多模型 AI 助手,提升工作效率的全能桌面客戶端

Cherry Studio 是一款功能強大的桌面客戶端,可以為使用者提供多模型對話、知識庫管理、AI 繪圖、翻譯等全方位的 AI 助手服務,其高度自訂的設計、強大的擴充能力和友善的使用者體驗,使其成為專業使用者和 AI 愛好者的理想選擇。

核心功能與特色

  1. 多模型對話支援:Cherry Studio 集成了多種大型語言模型(LLM)服務商,如 OpenAI、Gemini、Anthropic、Azure 等,使用者可以在同一平台上調用不同模型,滿足多樣化需求。
  2. 豐富的 AI 助手與對話功能
    • 預配置助手:內建超過 300 個行業專用助手,涵蓋翻譯、程式設計、寫作等領域,使用者也可自訂助手。
    • 多模型同時對話:支援同一問題通過多個模型同時生成回覆,方便使用者比較不同模型的表現。
    • 對話管理:自動分組管理對話記錄,支援對話匯出為多種格式(如 Markdown、PDF 等),便於儲存與分享。
  3. 文件與資料處理
    • 多格式支援:支援匯入 PDF、DOCX、PPTX、XLSX、TXT、MD 等多種檔案格式,方便使用者建構和查詢專屬知識庫。
    • 資料來源多樣性:支援本機檔案、網址、網站地圖甚至手動輸入內容作為知識庫來源。
    • 知識庫匯出:處理後的知識庫可匯出並分享給他人使用。
  4. 實用工具整合
    • AI 繪圖:提供專用繪圖面板,使用者可通過自然語言描述生成高品質圖像。
    • 翻譯功能:支援專用翻譯面板、對話翻譯、提示詞翻譯等多種翻譯場景。
    • 全域搜尋:快速定位歷史記錄和知識庫內容,提升工作效率。
  5. 使用者體驗提升
    • 跨平台支援:相容 Windows、macOS 和 Linux 系統,滿足不同使用者的需求。
    • 即裝即用:無需複雜的環境配置,下載後即可使用。
    • 介面自訂:支援自訂 CSS、對話佈局、頭像和側邊欄選單,打造個性化的使用體驗。

適用場景

  • 知識管理與查詢:通過本機知識庫功能,快速建構和查詢專屬知識庫,適用於研究、教育等領域。
  • 多模型對話與創作:支援多模型同時對話,幫助使用者快速獲取資訊或生成內容。
  • 翻譯與辦公自動化:內建翻譯助手和檔案處理功能,適合需要跨語言交流或文件處理的使用者。
  • AI 繪圖與設計:通過自然語言描述生成圖像,滿足創意設計需求。

公開原始碼

OpenRouter:輕鬆接入多種大型語言模型的統一平台

OpenRouter:輕鬆接入多種大型語言模型的統一平台

OpenRouter 是一個統一的大型語言模型(LLM)API 服務平台,可以讓使用者透過單一介面訪問多種大型語言模型。

主要特點:

  • 多模型支援: OpenRouter 集成了多種預訓練模型,如 GPT-4、Gemini、Claude、DALL-E 等,按需求選擇適合的模型。
  • 易於集成: 提供統一的 API 介面,方便與現有系統整合,無需自行部署和維護模型。
  • 成本效益: 透過 API 調用,使用者無需購買昂貴的 GPU 伺服器,降低了硬體成本。

使用方法:

  1. 註冊帳號: 使用 Google 帳號即可快速註冊 OpenRouter。
  2. 選擇模型: 在平台上瀏覽並選擇適合的模型,部分模型提供免費使用。
  3. 調用 API: 使用統一的 API 介面,將選定的模型整合到您的應用中。

Cline 整合

OpenRouter 與 Cline 的整合為開發者提供了強大的 AI 編程體驗,Cline 是一款集成於 VSCode 的 AI 編程助手,支援多種大型語言模型(LLM),如 OpenAI、Anthropic、Mistral 等,透過 OpenRouter,Cline 能夠統一調用這些模型,簡化了不同模型之間的切換和管理,使用者只需在 Cline 的設定中選擇 OpenRouter 作為 API 提供者,並輸入相應的 API 金鑰,即可開始使用多種模型進行開發。這種整合不僅提升了開發效率,還降低了使用多模型的技術門檻。

DeepSeek R1

OpenRouter 現在也支援 DeepSeek R1 模型,DeepSeek R1 是一款高性能的開源 AI 推理模型,具有強大的數學、編程和自然語言推理能力。透過 OpenRouter,開發者可以在 Cline 中輕鬆調用 DeepSeek R1 模型,享受其強大的推理能力。這進一步豐富了開發者的工具選擇,讓他們能夠根據項目需求選擇最適合的模型。

v0.dev:輸入網址,即可生成相同網站前端的 AI 工具

v0.dev:輸入網址,即可生成相同網站前端的 AI 工具

v0.dev 是由 Vercel 開發的 AI 驅動工具,你只要透過簡單的文字提示,就可以快速生成前端網頁的 UI 元件程式碼,其核心特色在於用戶只需輸入需求描述,v0.dev 即可生成對應的 React、Vue 或 Svelte 組件程式碼,並可直接複製到專案中使用。

主要功能:

  • 自然語言生成 UI 元件: 用戶可透過輸入簡單的文字描述,v0.dev 會根據提示生成相應的 UI 元件程式碼,無需手動編寫。
  • 即時程式碼複製與整合: 生成的程式碼可直接複製,並整合至現有專案中,方便進行客製化調整。 
  • 支援多種前端框架: 除了 React,v0.dev 也支援 Vue 和 Svelte 等框架,滿足不同開發者的需求。 

使用方法:

  1. 訪問 v0.dev 網站: 在瀏覽器中開啟 v0.dev
  2. 輸入提示詞: 在提示框中輸入您想要複製的網址即可。 
  3. 生成並複製程式碼: v0.dev 會根據您的描述生成對應的程式碼,您可直接複製並整合至您的專案中。

參考資訊:

Windows設置LLM環境變數的幾種方法

LLMs Server 還是需要放在 Linux 環境中比較好,但開發階段常常用 Windows 在開發,多數人使用的 Shell export 就沒法使用

export OPENAI_API_KEY="sk-...".

Windows中設置LLM環境變數的幾種方法解決方法

使用命令列 CMD

set OPENAI_API_KEY=sk-...

使用 PowerShell

[Environment]::SetEnvironmentVariable("OPENAI_API_KEY", "sk-...", "User")

放在 Python 程式中

import os

# 設置環境變數
os.environ['OPENAI_API_KEY'] = 'sk-你的API密鑰'

# 之後就可以使用這個環境變數了
# 例如,當使用OpenAI的API時,就可以從環境變數中獲取API密鑰
api_key = os.environ['OPENAI_API_KEY']
print("API Key:", api_key)

檢查是否有正確設置

echo %OPENAI_API_KEY%

相關資料