🚀 龙虾新手指南

OpenClaw开源AI自动化框架:支持本地部署、多模型调度与30+应用集成

发布时间:2026-04-18 分类: 龙虾新手指南
摘要:《龙虾新手指南》专栏文章:OpenClaw——让AI自动化真正落地为什么选择OpenClaw?OpenClaw 是一个国产开源 AI 自动化框架,目标很实在:在本地跑起来、能干活、不挑环境。它不是玩具项目。所有功能都经过真实场景验证,支持离线运行,跨平台任务编排,原生兼容 WhatsApp、Telegram、Discord、Slack、GitHub、RSS 等 30+ 应用。模型层不绑定厂商...

封面

《龙虾新手指南》专栏文章:OpenClaw——让AI自动化真正落地

为什么选择OpenClaw?

OpenClaw 是一个国产开源 AI 自动化框架,目标很实在:在本地跑起来、能干活、不挑环境。

它不是玩具项目。所有功能都经过真实场景验证,支持离线运行,跨平台任务编排,原生兼容 WhatsApp、Telegram、Discord、Slack、GitHub、RSS 等 30+ 应用。模型层不绑定厂商——Claude、GPT-3.5/4、本地 LLM(如 Llama 3、Phi-3、Qwen2)都能按需调度,配置文件里切一下就行。

本地化部署的真实好处

  • 数据不出设备:聊天记录、文档、截图、日志全留在你自己的机器上,不上传、不中转、不缓存。
  • 断网照常工作:没有网络?没关系。本地模型 + 本地消息队列 + 本地规则引擎,整个流水线照跑。
  • 硬件说了算:CPU、GPU、Apple Silicon 都能压榨。模型量化、KV Cache 优化、批处理调度都开箱即用,不用改代码。

OpenClaw 的核心功能

1. 跨平台任务编排

OpenClaw 把不同平台的 API 封装成统一的动作接口。你写一次逻辑,就能在多个平台复用。

支持的平台包括:

  • 即时通讯:WhatsApp(通过 WWebJS)、Telegram(Bot API)、Discord(Gateway)
  • 社交媒体:Twitter/X(v2 API)、Reddit(PRAW)、Mastodon(ActivityPub)
  • 协作工具:Slack(Events API)、Microsoft Teams(Graph API)、Trello(REST)
  • 开发与信息流:GitHub(Webhooks)、RSS(Feedparser)、Notion(API)

典型用法:

  • 在 Telegram 群里监听关键词,自动转发到 Slack 频道并 @ 相关成员
  • 监控 GitHub PR 评论,用本地小模型做代码风格初筛,只把高风险评论推给 Reviewer
  • 每天早 8 点从 RSS 抓取技术博客摘要,用 Qwen2-1.5B 生成中文简报,发到 WhatsApp 工作群

2. 模型调度机制

OpenClaw 不预设“哪个模型最好”,而是提供一致的调用契约:

# 所有模型都遵循这个签名
def infer(prompt: str, **kwargs) -> str:
    ...

实际支持:

  • 远程模型:Claude(Anthropic API)、GPT(OpenAI / Azure / Ollama 兼容端点)、Gemini(Google AI SDK)
  • 本地模型:Transformers(pipelinegenerate)、llama.cpp(GGUF)、Ollama(ollama run)、vLLM(HTTP API)
  • 轻量模型:Sentence Transformers(嵌入)、FastChat(多轮对话管理)、LiteLLM(统一路由层)

调度策略可配:

  • 按任务类型分发(例如:/summarize → 本地 Qwen2;/code-review → 远程 Claude-3.5)
  • 按负载降级(远程超时 → 自动 fallback 到本地 Phi-3)
  • 按 token 成本路由(短 prompt 走小模型,长 context 走大模型)

安装与配置指南

1. 环境准备

确认系统满足:

  • OS:Linux(推荐 Ubuntu 22.04+)、macOS(13+)、Windows(WSL2 或原生 Python 3.9+)
  • Python:3.9–3.12(避免 3.13,部分依赖尚未适配)
  • 基础工具gitcurlmake(Linux/macOS),或 build-tools(Windows)
⚠️ Windows 用户优先用 WSL2。原生 Windows 支持有限,尤其涉及 Chromium 自动化(WhatsApp)时。

2. 克隆仓库

git clone https://github.com/openclaw-org/OpenClaw.git
cd OpenClaw
注意:官方仓库是 openclaw-org/OpenClaw,不是 your-repo。原文链接已修正。

3. 安装依赖

pip install -r requirements.txt

requirements.txt 分三类依赖:

  • core: 必需(httpx, pyyaml, playwright
  • platforms: 按需启用(python-telegram-bot, discord.py, webwhatsapi
  • models: 按需启用(transformers, llama-cpp-python, litellm

不需要 WhatsApp?注释掉 webwhatsapi 行再安装。

4. 配置平台凭证

编辑 config.yaml

platforms:
  telegram:
    token: "789123456:ABCdefGhIjKlmNoPqrStUvWxYz"
    chat_id: -1001234567890
  discord:
    token: "MTIzNDU2Nzg5MDExMjMyNDU2.Cxyz.ABC-defghijklmnopqrstuvwxyz"
    channel_id: "123456789012345678"
  whatsapp:
    headless: true
    timeout: 60
  • Telegram Bot Token 从 @BotFather 获取
  • Discord Token 从 Discord Developer Portal 创建 Bot 得到
  • WhatsApp 使用 Playwright 启动 Chromium 扫码登录,无需第三方网关

5. 启动服务

python main.py

启动后你会看到:

[INFO] Loaded 3 platforms: telegram, discord, whatsapp
[INFO] Model router ready: claude-3-haiku (remote), qwen2-1.5b (local)
[INFO] HTTP server listening on http://127.0.0.1:8000
[INFO] WebSocket gateway active

服务默认提供 REST API 和 WebSocket 接口,也支持 CLI 直接触发任务。

使用指南

1. 写一个任务

OpenClaw 的任务是纯 Python 函数,用 @task 装饰器注册:

# tasks/greet.py
from openclaw import task

@task(name="morning-greeting", trigger="cron:0 8 * * *")
def send_morning_greeting():
    return {
        "platform": "telegram",
        "message": "☀️ 早安!今日待办:\n1. 查看昨日 GitHub PR\n2. 同步 Notion 周计划"
    }

保存后执行:

openclaw run morning-greeting

支持触发方式:

  • cron:(系统级定时)
  • webhook:(接收 HTTP POST)
  • event:(监听平台事件,如 telegram:message
  • cli:(手动运行)

2. 调用模型做决策

模型调用封装为 openclaw.llm.infer(),屏蔽底层差异:

# tasks/summarize_rss.py
from openclaw import task, llm

@task(name="rss-summary")
def summarize_latest_post():
    # 从 RSS 抓最新条目(内置 feedparser)
    entry = get_latest_rss_entry("https://example.com/feed.xml")
    
    # 用本地模型生成摘要
    summary = llm.infer(
        model="qwen2-1.5b",
        prompt=f"用中文总结以下技术文章,限 100 字:\n{entry.title}\n{entry.content}"
    )
    
    return {
        "platform": "discord",
        "channel": "tech-news",
        "message": f"📰 {entry.title}\n{summary}"
    }

模型名直接对应 config.yaml 中定义的别名,切换模型只需改字符串。

常见问题

1. OpenClaw 支持哪些平台?

完整列表见 Supported Platforms。新增平台只需实现 3 个方法:connect(), listen(), send()。已有 PR 正在集成 LINE 和飞书。

2. 怎么加自己的模型?

两种方式:

  • HTTP 模型:在 config.yaml 加 endpoint,OpenClaw 自动适配 OpenAI 兼容格式
  • Python 模型:写一个模块,暴露 infer(prompt, **kwargs) 函数,放进 models/ 目录,重启服务即可识别

示例:models/my-rag.py

def infer(prompt: str, **kwargs) -> str:
    return rag_query(prompt)  # 你的 RAG 逻辑

3. 离线能跑吗?

能。只要:

  • 平台接入方式支持离线(Telegram Bot、Discord Gateway、RSS 都行;WhatsApp 需扫码但后续可离线收消息)
  • 模型是本地加载(transformers, llama.cpp, Ollama
  • 关闭所有远程依赖(注释 litellm, openai, anthropic 相关行)

实测 M2 Mac Mini(16GB)可同时跑 Qwen2-1.5B + Telegram + RSS,内存占用 < 4GB。

下一步学习建议

  • 动手改一个现有任务:把 examples/echo.py 改成监听 GitHub Issue 新建事件,自动用本地模型写回复草稿
  • 试跑本地模型:用 llama.cpp 转换 Qwen2-0.5B GGUF,填进 config.yaml,对比响应速度和质量
  • 看日志定位问题:OpenClaw 默认输出结构化 JSON 日志到 logs/,用 jqtail -f logs/app.log | jq '.' 实时观察动作流

遇到卡点?先查 logs/error.log,再搜 GitHub Issues。社区不灌水,PR 都带测试用例。

返回首页