乐于分享
好东西不私藏

OpenClaw 运行流程详解

OpenClaw 运行流程详解

OpenClaw(开源个人AI助手框架,GitHub 项目:openclaw/openclaw)是一个本地优先多平台接入的AI智能体系统。它不像普通聊天机器人,而是更像一个“AI操作系统网关”,能24/7运行、跨应用执行任务、拥有长期记忆、调用大量工具(Skills)。

它的核心运行流程可以拆成以下几个关键阶段(从用户发消息到AI完成任务的完整闭环):

1. 消息进入(Ingress / Channel → Gateway)

  • 你在任意支持的平台发消息,例如:
    • Telegram / WhatsApp / Discord / 飞书 / 企业微信 / Slack / Signal / iMessage 等
    • 网页聊天界面(http://127.0.0.1:18789)
    • macOS 菜单栏应用
    • CLI 命令行
  • 对应的 Channel Bridge(接入插件)把消息转换成标准格式,通过 WebSocket 推送到 Gateway(默认端口 18789)。
  • Gateway 收到后做的第一件事:
    • 身份验证(看你有没有权限)
    • 路由判断(这个消息属于哪个 Workspace / Agent)

2. 加载上下文与记忆(Memory & Session)

Gateway 从本地存储(通常是 SQLite / LevelDB / 文件系统)拉取:

  • 这个用户的 长期记忆(Long-term Memory)
  • 会话历史(Session)
  • 当前 Workspace 的配置(绑定的模型、Skills、工具权限等)
  • 用户画像 / 偏好(语气、默认模型、禁止的危险操作等)

→ 拼成一份完整的 Prompt 上下文。

3. 智能体决策(Agent Runtime / LLM Loop)

核心循环在这里发生(ReAct / Plan-and-Execute / Agentic 风格):

  1. 理解意图
    :把完整上下文 + 新消息发给 LLM(Claude / GPT / Gemini / DeepSeek / 通义 / 本地模型等)。
  2. 输出解析
    :LLM 通常返回结构化输出(JSON / XML),常见字段:
    • thought(思考)
    • action(要执行的工具/技能)
    • final_answer(可以直接回复了)
  3. 工具调用(Skills / Tools 执行)
    • Browser
       → 浏览器自动化(Playwright)
    • Shell
       → 执行系统命令
    • File
       → 读写本地文件
    • Schedule
       → 定时任务
    • Code
       → 写/改代码
    • Search
       → 联网搜索
    • 自定义 Skills(8000+ 社区技能)
    • 如果需要调用工具,就交给 Nodes(本地执行层)去跑
    • 常见节点类型:
  4. 观察结果
     → 把工具执行结果再塞回上下文
  5. 循环
    :回到步骤1,直到 LLM 输出 final_answer 或达到最大轮次

4. 回复分发(Gateway → Channel)

  • Gateway 拿到最终回答
  • 根据消息来源,推回对应的 Channel
    • Telegram → Telegram Bot 回复
    • 网页 → WebSocket 实时推送
    • Discord → Discord Webhook / Bot
  • 同时把本次对话存入记忆(更新长期记忆、向量数据库等)

典型完整流程示意图(文字版)

text

用户(Telegram) → Telegram Channel → WebSocket → Gateway                                 ↓                      加载 Memory + Session + Workspace                                 ↓                      发给 LLM(Claude-3.5 / GPT-4o 等)                                 ↓               LLM 返回 {thought, action: "browser_goto", args}                                 ↓                      Nodes 执行 → Playwright 打开网页                                 ↓                      拿到页面内容/截图 → 塞回上下文                                 ↓      (可循环多次)                      LLM 最终输出自然语言答案                                 ↓                      Gateway → Telegram Channel → 你收到回复

关键特性总结(影响运行流程的几个点)

层级
组件
作用
是否必须本地运行
接入层
Channels
微信/飞书/电报/Discord 等桥接
控制层
Gateway
消息路由、权限、调度
记忆层
Memory / VectorDB
长期记忆、RAG
执行层
Nodes / Skills
本地工具、浏览器、命令行
模型层
LLM
可以本地(Ollama)或远程API
可选

一句话总结运行流程:

“你随便在一个聊天软件里发消息 → OpenClaw Gateway 接到后带着你的全部记忆去问大模型 → 大模型决定用哪些工具 → 本地安全执行 → 把结果再问大模型 → 最终回复回到你原来的聊天软件”,全程数据基本不离本地,隐私优先。

如果你现在是在部署/调试阶段,建议先跑 openclaw onboard 向导,它会帮你把模型、渠道、基本Skills配通,然后再观察日志看完整流程。