CursorBot 文件

完整的 CursorBot 使用指南,從安裝設定到進階 API 整合,幫助您快速上手。

快速連結

選擇您需要的內容:

快速安裝 · API 文件 · 指令參考 · GitHub 原始碼

系統需求

在開始之前,請確保您的系統符合以下需求:

必要條件

項目 需求 說明
Python 3.10 - 3.12 不支援 3.13+
作業系統 Windows / macOS / Linux 推薦使用 Docker
記憶體 最少 2GB 建議 4GB 以上

選擇性需求

項目 用途
Docker 容器化部署(推薦)
Node.js 20+ WhatsApp Bridge
Cursor IDE CLI 模式

安裝方式

Docker(推薦)
本地安裝

使用 Docker 是最簡單的安裝方式,無需處理 Python 依賴。

  1. 複製程式碼

    bash
    git clone https://github.com/zhixuli0406/cursorBot.git
    cd cursorBot
  2. 設定環境變數

    bash
    cp env.example .env
    nano .env  # 編輯並填入您的 API 金鑰
  3. 啟動服務

    bash
    docker compose up -d --build

Docker 映像已包含所有必要工具:Python、Node.js、Git、Playwright 等。

本地安裝提供更多控制,適合開發和除錯。

  1. 複製程式碼

    bash
    git clone https://github.com/zhixuli0406/cursorBot.git
    cd cursorBot
  2. 建立虛擬環境

    bash
    python -m venv venv
    source venv/bin/activate  # Windows: venv\Scripts\activate
  3. 安裝依賴

    bash
    pip install -r requirements.txt
    playwright install chromium  # 可選,用於網頁自動化
  4. 設定並執行

    bash
    cp env.example .env
    nano .env  # 編輯環境變數
    python -m src.main

環境設定

CursorBot 使用環境變數進行設定。以下是主要的設定項目:

必要設定

env
# Telegram Bot(至少需要一個平台)
TELEGRAM_BOT_TOKEN=your_bot_token
TELEGRAM_ALLOWED_USERS=your_user_id

# AI 提供者(至少需要一個)
OPENAI_API_KEY=sk-xxx
# 或
ANTHROPIC_API_KEY=sk-ant-xxx
# 或
GOOGLE_GENERATIVE_AI_API_KEY=AIza-xxx

AI 模型設定

提供者 環境變數 推薦模型
OpenAI OPENAI_API_KEY gpt-4o, gpt-5
Anthropic ANTHROPIC_API_KEY claude-4.5-sonnet
Google GOOGLE_GENERATIVE_AI_API_KEY gemini-3-flash
OpenRouter OPENROUTER_API_KEY 多種模型
Ollama OLLAMA_ENABLED=true llama3.3

Gateway 設定(原生應用)

env
# Gateway Token(正式環境必須設定)
GATEWAY_TOKEN=your_secret_token

# 功能開關
GATEWAY_CHAT_ENABLED=true
GATEWAY_CANVAS_ENABLED=true
GATEWAY_PAIRING_ENABLED=true

首次執行

啟動後,在 Telegram 中向您的 Bot 發送 /start 開始使用!

驗證安裝

使用以下指令確認服務正常運行:

bash
# 檢查健康狀態
curl http://localhost:8000/health

# 應該返回
{"status": "healthy", "version": "1.0.0"}

常用 Bot 指令

指令 說明
/start 初始化並顯示歡迎訊息
/help 顯示所有可用指令
/status 查看系統狀態
/model 查看/切換 AI 模型

API 概覽

CursorBot 提供 RESTful API 和 WebSocket 端點,方便整合與監控。

基本資訊
Base URL http://localhost:8000
Content-Type application/json
認證方式 依端點不同(詳見各端點說明)

健康檢查

GET /health 基本健康檢查

回應範例

json
{
  "status": "healthy",
  "timestamp": "2026-01-28T10:00:00Z",
  "version": "1.0.0"
}
GET /health/detailed 詳細健康檢查

回應範例

json
{
  "status": "healthy",
  "timestamp": "2026-01-28T10:00:00Z",
  "version": "1.0.0",
  "components": {
    "telegram": { "status": "healthy", "latency_ms": 50 },
    "discord": { "status": "healthy", "latency_ms": 30 },
    "llm": { "status": "healthy", "providers": ["openai", "anthropic"] }
  },
  "system": {
    "cpu_percent": 25.5,
    "memory_percent": 45.2,
    "disk_percent": 60.0
  }
}

Webhook 端點

各平台的 Webhook 端點用於接收訊息和事件。

平台 端點 認證方式
Telegram /webhook/telegram Secret path
LINE /webhook/line X-Line-Signature
Slack /webhook/slack Signing Secret
WhatsApp /webhook/whatsapp Verify Token
Teams /webhook/teams Bot Framework
Google Chat /webhook/google-chat Bearer Token
POST /webhook/line LINE Messaging API

請求標頭

http
Content-Type: application/json
X-Line-Signature: {HMAC-SHA256 signature}

請求內容

json
{
  "events": [
    {
      "type": "message",
      "replyToken": "xxx",
      "source": { "userId": "U123456", "type": "user" },
      "message": { "type": "text", "text": "/help" }
    }
  ]
}

REST API

GET /api/nodes 列出已連接的原生應用

回應範例

json
{
  "nodes": [
    {
      "id": "node-abc123",
      "device_type": "macos",
      "device_name": "MacBook Pro",
      "connected_at": "2026-01-28T10:00:00Z"
    }
  ],
  "count": 1
}
GET /api/usage LLM 使用統計

回應範例

json
{
  "total_requests": 1000,
  "total_tokens": 500000,
  "by_provider": {
    "openai": { "requests": 500, "tokens": 250000 },
    "anthropic": { "requests": 300, "tokens": 150000 }
  }
}
POST /api/broadcast 廣播訊息

請求內容

json
{
  "message": "系統維護通知",
  "user_ids": ["user1", "user2"],
  "platforms": ["telegram", "discord"]
}

WebSocket

原生應用透過 WebSocket 即時連線到 CursorBot。

WS /ws/node 原生應用 Gateway

連線範例

javascript
const ws = new WebSocket('ws://localhost:8000/ws/node');

ws.onopen = () => {
  console.log('Connected to CursorBot');
};

// 發送聊天訊息
ws.send(JSON.stringify({
  type: 'chat',
  payload: {
    message: '你好!'
  }
}));

// 建立 Canvas
ws.send(JSON.stringify({
  type: 'canvas',
  payload: {
    action: 'create',
    name: 'My Canvas'
  }
}));

// 接收回應
ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log('Received:', data);
};

訊息類型

類型 說明
chat 與 AI 對話
canvas Live Canvas 操作
pairing 裝置配對
image 圖像分析
command 系統指令

錯誤處理

HTTP 狀態碼

狀態碼 說明
200 成功
400 請求格式錯誤
401 未授權
403 禁止存取
404 找不到資源
429 請求過於頻繁
500 伺服器錯誤

錯誤回應格式

json
{
  "error": {
    "code": "INVALID_REQUEST",
    "message": "請求格式錯誤",
    "details": {
      "field": "message",
      "reason": "required"
    }
  }
}

基礎指令

系統指令

指令 說明
/start 啟動 Bot 並顯示歡迎訊息
/help 顯示所有可用指令
/status 查看系統狀態
/doctor 系統診斷
/new 開始新對話
/clear 清除對話上下文

模式切換

指令 說明
/mode 查看當前模式
/mode cli 切換到 CLI 模式
/mode agent 切換到 Agent 模式
/mode auto 自動選擇最佳模式

AI 指令

AI 對話

指令 說明
/agent <任務> 啟動 Agent Loop 執行任務
/model 查看目前使用的 AI 模型
/model list 列出所有可用模型
/model set <id> 切換 AI 模型
/climodel 查看 CLI 模型設定
/climodel set <id> 切換 CLI 模型

RAG 知識庫

指令 說明
/rag <問題> 基於索引內容回答問題
/index <檔案> 索引單一檔案
/index_dir <目錄> 索引整個目錄
/search <關鍵字> 搜尋索引內容
/ragstats 查看 RAG 統計

任務指令

任務管理

指令 說明
/tasks 查看待處理任務
/cancel <id> 取消任務
/task_status <id> 查看任務詳情

程式碼審查

指令 說明
/review <檔案> AI 程式碼審查
/review dir <目錄> 審查整個目錄
/review diff 審查 Git 變更

進階指令

MCP 整合

指令 說明
/mcp MCP 狀態
/mcp servers 列出 MCP 伺服器
/mcp tools 列出 MCP 工具
/mcp connect <name> <cmd> 連接 MCP 伺服器

Live Canvas

指令 說明
/canvas Canvas 狀態
/canvas new [名稱] 新建 Canvas
/canvas list 列出 Canvas
/canvas add <type> <content> 新增元件

裝置配對

指令 說明
/pair 產生配對碼
/pair qr 產生 QR Code
/devices 列出已配對裝置
/devices remove <id> 解除配對

Telegram 設定

  1. 建立 Bot

    在 Telegram 中搜尋 @BotFather,發送 /newbot 建立新 Bot。

  2. 取得 Token

    BotFather 會給您一個 Token,格式如:123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11

  3. 取得您的 User ID

    搜尋 @userinfobot,發送任意訊息取得您的 User ID。

  4. 設定環境變數

    env
    TELEGRAM_BOT_TOKEN=your_bot_token
    TELEGRAM_ALLOWED_USERS=your_user_id

Discord 設定

  1. 建立 Application

    前往 Discord Developer Portal,點擊 "New Application"。

  2. 建立 Bot

    進入 "Bot" 頁面,點擊 "Add Bot",啟用 "Message Content Intent"。

  3. 邀請到伺服器

    在 "OAuth2" > "URL Generator" 選擇 botapplications.commands 權限。

  4. 設定環境變數

    env
    DISCORD_ENABLED=true
    DISCORD_BOT_TOKEN=your_bot_token
    DISCORD_ALLOWED_GUILDS=your_guild_id

LINE 設定

  1. 建立 Channel

    前往 LINE Developers 建立 Provider 和 Messaging API Channel。

  2. 設定 Webhook

    在 "Messaging API" 頁面設定 Webhook URL:https://your-domain/webhook/line

  3. 設定環境變數

    env
    LINE_ENABLED=true
    LINE_CHANNEL_ACCESS_TOKEN=your_token
    LINE_CHANNEL_SECRET=your_secret

Slack 設定

  1. 建立 App

    前往 Slack API 建立新 App。

  2. 設定 Event Subscriptions

    Webhook URL:https://your-domain/webhook/slack

    訂閱事件:message.channelsmessage.im

  3. 設定環境變數

    env
    SLACK_ENABLED=true
    SLACK_BOT_TOKEN=xoxb-xxx
    SLACK_SIGNING_SECRET=xxx

原生應用

CursorBot 提供 macOS、iOS、Android 原生應用程式碼,位於 apps/ 目錄。

macOS App

bash
cd apps/macos/CursorBot
swift build
swift run

iOS App

使用 Xcode 開啟 apps/ios/CursorBotNode.xcodeproj 進行建置。

Android App

使用 Android Studio 開啟 apps/android 目錄進行建置。

原生應用透過 WebSocket 連接到 /ws/node 端點,請確保已設定 GATEWAY_TOKEN