CursorBot 文件
完整的 CursorBot 使用指南,從安裝設定到進階 API 整合,幫助您快速上手。
系統需求
在開始之前,請確保您的系統符合以下需求:
必要條件
| 項目 | 需求 | 說明 |
|---|---|---|
| Python | 3.10 - 3.12 |
不支援 3.13+ |
| 作業系統 | Windows / macOS / Linux | 推薦使用 Docker |
| 記憶體 | 最少 2GB | 建議 4GB 以上 |
選擇性需求
| 項目 | 用途 |
|---|---|
| Docker | 容器化部署(推薦) |
| Node.js 20+ | WhatsApp Bridge |
| Cursor IDE | CLI 模式 |
安裝方式
使用 Docker 是最簡單的安裝方式,無需處理 Python 依賴。
-
複製程式碼
bashgit clone https://github.com/zhixuli0406/cursorBot.git cd cursorBot -
設定環境變數
bashcp env.example .env nano .env # 編輯並填入您的 API 金鑰 -
啟動服務
bashdocker compose up -d --build
Docker 映像已包含所有必要工具:Python、Node.js、Git、Playwright 等。
本地安裝提供更多控制,適合開發和除錯。
-
複製程式碼
bashgit clone https://github.com/zhixuli0406/cursorBot.git cd cursorBot -
建立虛擬環境
bashpython -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate -
安裝依賴
bashpip install -r requirements.txt playwright install chromium # 可選,用於網頁自動化 -
設定並執行
bashcp env.example .env nano .env # 編輯環境變數 python -m src.main
環境設定
CursorBot 使用環境變數進行設定。以下是主要的設定項目:
必要設定
# 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_GENERATIVE_AI_API_KEY |
gemini-3-flash | |
| OpenRouter | OPENROUTER_API_KEY |
多種模型 |
| Ollama | OLLAMA_ENABLED=true |
llama3.3 |
Gateway 設定(原生應用)
# Gateway Token(正式環境必須設定)
GATEWAY_TOKEN=your_secret_token
# 功能開關
GATEWAY_CHAT_ENABLED=true
GATEWAY_CANVAS_ENABLED=true
GATEWAY_PAIRING_ENABLED=true
首次執行
啟動後,在 Telegram 中向您的 Bot 發送 /start 開始使用!
驗證安裝
使用以下指令確認服務正常運行:
# 檢查健康狀態
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 |
| 認證方式 | 依端點不同(詳見各端點說明) |
健康檢查
回應範例
{
"status": "healthy",
"timestamp": "2026-01-28T10:00:00Z",
"version": "1.0.0"
}
回應範例
{
"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 |
/webhook/whatsapp |
Verify Token | |
| Teams | /webhook/teams |
Bot Framework |
| Google Chat | /webhook/google-chat |
Bearer Token |
請求標頭
Content-Type: application/json
X-Line-Signature: {HMAC-SHA256 signature}
請求內容
{
"events": [
{
"type": "message",
"replyToken": "xxx",
"source": { "userId": "U123456", "type": "user" },
"message": { "type": "text", "text": "/help" }
}
]
}
REST API
回應範例
{
"nodes": [
{
"id": "node-abc123",
"device_type": "macos",
"device_name": "MacBook Pro",
"connected_at": "2026-01-28T10:00:00Z"
}
],
"count": 1
}
回應範例
{
"total_requests": 1000,
"total_tokens": 500000,
"by_provider": {
"openai": { "requests": 500, "tokens": 250000 },
"anthropic": { "requests": 300, "tokens": 150000 }
}
}
請求內容
{
"message": "系統維護通知",
"user_ids": ["user1", "user2"],
"platforms": ["telegram", "discord"]
}
WebSocket
原生應用透過 WebSocket 即時連線到 CursorBot。
連線範例
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 |
伺服器錯誤 |
錯誤回應格式
{
"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 設定
-
建立 Bot
在 Telegram 中搜尋 @BotFather,發送
/newbot建立新 Bot。 -
取得 Token
BotFather 會給您一個 Token,格式如:
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 -
取得您的 User ID
搜尋 @userinfobot,發送任意訊息取得您的 User ID。
-
設定環境變數
envTELEGRAM_BOT_TOKEN=your_bot_token TELEGRAM_ALLOWED_USERS=your_user_id
Discord 設定
-
建立 Application
前往 Discord Developer Portal,點擊 "New Application"。
-
建立 Bot
進入 "Bot" 頁面,點擊 "Add Bot",啟用 "Message Content Intent"。
-
邀請到伺服器
在 "OAuth2" > "URL Generator" 選擇
bot和applications.commands權限。 -
設定環境變數
envDISCORD_ENABLED=true DISCORD_BOT_TOKEN=your_bot_token DISCORD_ALLOWED_GUILDS=your_guild_id
LINE 設定
-
建立 Channel
前往 LINE Developers 建立 Provider 和 Messaging API Channel。
-
設定 Webhook
在 "Messaging API" 頁面設定 Webhook URL:
https://your-domain/webhook/line -
設定環境變數
envLINE_ENABLED=true LINE_CHANNEL_ACCESS_TOKEN=your_token LINE_CHANNEL_SECRET=your_secret
Slack 設定
-
建立 App
前往 Slack API 建立新 App。
-
設定 Event Subscriptions
Webhook URL:
https://your-domain/webhook/slack訂閱事件:
message.channels、message.im -
設定環境變數
envSLACK_ENABLED=true SLACK_BOT_TOKEN=xoxb-xxx SLACK_SIGNING_SECRET=xxx
原生應用
CursorBot 提供 macOS、iOS、Android 原生應用程式碼,位於 apps/ 目錄。
macOS App
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。