OpenClaw開源AI自動(dòng)化框架入門教程:支持30+平臺(tái)本地部署與多模型接入

《龍蝦新手指南:OpenClaw入門教程》
一、什么是OpenClaw?
OpenClaw 是一個(gè)開源的本地 AI 自動(dòng)化框架。它不依賴云服務(wù),所有任務(wù)都在你自己的設(shè)備上運(yùn)行。支持 WhatsApp、Telegram、Discord、Twitter、Slack、Instagram 等 30+ 平臺(tái),能自動(dòng)完成消息回復(fù)、內(nèi)容發(fā)布、數(shù)據(jù)抓取等操作。
它不是玩具項(xiàng)目。你可以把 OpenClaw 嵌入現(xiàn)有工作流,用它調(diào)度 Claude、GPT 系列 API,也能直接接入本地模型(比如 Llama 3、Phi-3、Qwen2),做文本生成、分類、摘要或結(jié)構(gòu)化提取。
二、為什么用 OpenClaw?
本地運(yùn)行,數(shù)據(jù)不出設(shè)備
- 所有輸入、中間狀態(tài)、輸出都保留在本地。聊天記錄、截圖、文件不會(huì)上傳。
- 斷網(wǎng)時(shí)照常工作——適合內(nèi)網(wǎng)環(huán)境、敏感場景或旅行途中。
- 直接調(diào)用 GPU/CPU,沒有網(wǎng)絡(luò)延遲和 API 配額限制。大模型推理、OCR、截圖識(shí)別都能壓到本地跑。
跨平臺(tái)任務(wù)統(tǒng)一編排
它把不同平臺(tái)抽象成一致的操作接口:
- 即時(shí)通訊:WhatsApp(通過 Twilio)、Telegram Bot API、Discord Gateway
- 社交平臺(tái):Twitter v2 API、Mastodon、Reddit(PRAW)
- 協(xié)作工具:Slack Events API、Microsoft Graph(Teams)
典型用法:
- 在 Telegram 收到“訂單查詢”,自動(dòng)查數(shù)據(jù)庫并回傳結(jié)果
- 每小時(shí)從 Discord 和 Slack 抓取帶
#bug標(biāo)簽的消息,匯總進(jìn) Notion 表格 - 同步發(fā)布圖文到 Twitter、Mastodon 和 Bluesky(自動(dòng)適配字?jǐn)?shù)/附件格式)
模型可插拔,按需切換
OpenClaw 不綁定任何模型。你在配置里聲明能力需求,框架自動(dòng)路由:
models:
default: "llama3-8b-instruct"
fallback: "gpt-4o-mini"
models:
llama3-8b-instruct:
type: "llm"
backend: "llama.cpp"
path: "./models/llama3.Q4_K_M.gguf"
n_gpu_layers: 40
gpt-4o-mini:
type: "api"
provider: "openai"
api_key: "${OPENAI_API_KEY}"實(shí)際使用中:
- 用本地 Llama 3 處理日常對(duì)話、日志摘要(零成本、低延遲)
- 遇到復(fù)雜推理或代碼生成失敗時(shí),自動(dòng)降級(jí)到 GPT-4o-mini(靠
fallback規(guī)則) - 用微調(diào)過的 Phi-3 做客服工單分類(加載
.gguf即可,不用改代碼)
三、安裝與配置
環(huán)境要求
- OS:Windows 10+、macOS 12+、主流 Linux 發(fā)行版(Ubuntu 22.04、Debian 12)
- Python:3.9–3.12(推薦 3.11)
- Git:用于拉取代碼
?? 提示:Windows 用戶建議開啟 WSL2;macOS M 系列芯片用戶優(yōu)先用 llama.cpp + Metal 后端。安裝步驟
1. 克隆代碼庫
git clone https://github.com/your-repo/OpenClaw.git
cd OpenClaw2. 創(chuàng)建并激活虛擬環(huán)境(強(qiáng)烈建議)
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate3. 安裝依賴
pip install --upgrade pip
pip install -r requirements.txt部分平臺(tái)需要額外依賴(如 WhatsApp 用 Twilio):
pip install twilio # 如果要用 WhatsApp
pip install python-telegram-bot # Telegram4. 配置模型
編輯 config.yaml,填入你的模型憑證和路徑:
models:
default: "llama3-8b-instruct"
models:
llama3-8b-instruct:
type: "llm"
backend: "llama.cpp"
path: "./models/llama3.Q4_K_M.gguf"
claude-3-haiku:
type: "api"
provider: "anthropic"
api_key: "sk-ant-api03-..."? 注意:API 密鑰不要硬編碼。用環(huán)境變量更安全:
api_key: "${ANTHROPIC_API_KEY}"然后啟動(dòng)前執(zhí)行
export ANTHROPIC_API_KEY=...
5. 配置平臺(tái)連接
修改 platforms.yaml,只填你實(shí)際用的平臺(tái):
platforms:
telegram:
token: "${TELEGRAM_BOT_TOKEN}"
discord:
token: "${DISCORD_BOT_TOKEN}"
intents: ["message_content", "guild_messages"]?? 獲取方式:
- Telegram:@BotFather 創(chuàng)建 bot,拿到 token
- Discord:Discord Developer Portal → Application → Bot → Token
- WhatsApp:Twilio 控制臺(tái) → Account SID + Auth Token
6. 啟動(dòng)
python main.py首次運(yùn)行會(huì)自動(dòng)下載默認(rèn)模型(可選),之后直接進(jìn)入監(jiān)聽狀態(tài)。
四、動(dòng)手寫兩個(gè)例子
示例 1:Telegram 關(guān)鍵詞自動(dòng)回復(fù)
在 skills/telegram_reply.py 中寫:
from openclaw import OpenClaw
oc = OpenClaw()
@oc.on_message("telegram")
def handle_hello(message):
if "hello" in message.text.lower():
return "Hello! Try `/help` for commands."
elif message.text.startswith("/help"):
return (
"Available commands:\n"
"/status — show running tasks\n"
"/ping — test bot responsiveness"
)保存后重啟 main.py,發(fā) /help 到你的 bot 就能看到響應(yīng)。
示例 2:定時(shí)抓取 Twitter 熱門話題
新建 skills/twitter_trends.py:
from openclaw import OpenClaw
oc = OpenClaw()
@oc.on_interval("twitter", interval=300) # 每 5 分鐘執(zhí)行一次
def fetch_trends():
trends = oc.get_trends(woeid=1) # 全球趨勢
top_3 = trends[:3]
for i, t in enumerate(top_3, 1):
print(f"{i}. {t.name} ({t.tweet_volume or 'low volume'})")?? 注意:Twitter v2 API 需要申請(qǐng) Academic Research 訪問權(quán)限,并在config.yaml中配置bearer_token。
五、排障清單
| 現(xiàn)象 | 快速檢查點(diǎn) |
|---|---|
ModuleNotFoundError | 確認(rèn)虛擬環(huán)境已激活,且 pip list 能看到 openclaw |
| Telegram bot 無響應(yīng) | 檢查 platforms.yaml token 是否正確;BotFather 是否設(shè)為 privacy mode: disabled |
| Discord 連不上 | 確認(rèn) intents 已在 Discord Developer Portal 開啟對(duì)應(yīng)權(quán)限(尤其是 message_content) |
| Llama 模型加載慢 | 檢查 path 是否指向正確的 .gguf 文件;GPU 層數(shù)是否超出顯存(n_gpu_layers: 0 強(qiáng)制 CPU) |
| API 調(diào)用報(bào) 401 | 檢查環(huán)境變量是否導(dǎo)出成功:echo $OPENAI_API_KEY |
六、下一步怎么走?
- 把
skills/下的示例改成你的真實(shí)需求:比如自動(dòng)歸檔郵件附件、同步飛書多維表格到本地 SQLite - 讀
examples/目錄里的完整工作流(含錯(cuò)誤重試、限流、日志埋點(diǎn)) - 在 GitHub Issues 里搜
good first issue,提 PR 修一個(gè)小 bug 或加一個(gè)平臺(tái)適配器