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 风格):
- 理解意图
:把完整上下文 + 新消息发给 LLM(Claude / GPT / Gemini / DeepSeek / 通义 / 本地模型等)。 - 输出解析
:LLM 通常返回结构化输出(JSON / XML),常见字段: thought(思考) action(要执行的工具/技能) final_answer(可以直接回复了) - 工具调用(Skills / Tools 执行)
: - Browser
→ 浏览器自动化(Playwright) - Shell
→ 执行系统命令 - File
→ 读写本地文件 - Schedule
→ 定时任务 - Code
→ 写/改代码 - Search
→ 联网搜索 自定义 Skills(8000+ 社区技能) 如果需要调用工具,就交给 Nodes(本地执行层)去跑 常见节点类型: - 观察结果
→ 把工具执行结果再塞回上下文 - 循环
:回到步骤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 → 你收到回复关键特性总结(影响运行流程的几个点)
一句话总结运行流程:
“你随便在一个聊天软件里发消息 → OpenClaw Gateway 接到后带着你的全部记忆去问大模型 → 大模型决定用哪些工具 → 本地安全执行 → 把结果再问大模型 → 最终回复回到你原来的聊天软件”,全程数据基本不离本地,隐私优先。
如果你现在是在部署/调试阶段,建议先跑 openclaw onboard 向导,它会帮你把模型、渠道、基本Skills配通,然后再观察日志看完整流程。
夜雨聆风