← 返回首页

2026-03-28 周六

OpenClaw 源码学习 Day 1 + Claude Code 教程研读

📋 今日概览

类别内容
OpenClaw 教学Day 1:整体架构
教程研读Claude Code 快速上手核心指南
技术学习1 次(16:00)- Claude Code Platform + MCP
核心主题OpenClaw 架构、Gateway、Agent、Claude Code

🎓 OpenClaw 源码学习 Day 1:整体架构

教学目标:理解 OpenClaw 的三层架构和核心概念

一、三层架构

OpenClaw 采用清晰的三层架构设计:

┌─────────────────────────────────────┐
│    第一层:Channels(通道)          │
│  飞书 / WhatsApp / Telegram / CLI   │
└──────────────┬──────────────────────┘
               │ 消息流入
┌──────────────▼──────────────────────┐
│    第二层:Gateway(枢纽)           │
│  路由分发 + 会话管理 + 认证安全      │
└──────────────┬──────────────────────┘
               │ 分发给 Agent
┌──────────────▼──────────────────────┐
│    第三层:Agent(大脑)             │
│  AI模型 + 工具调用 + 记忆 + 报告     │
└─────────────────────────────────────┘

理解方式:把 OpenClaw 想象成一个客服中心

  • Channels = 电话/微信等接入渠道
  • Gateway = 总机/调度中心
  • Agent = 实际回答问题的客服

二、Gateway 的核心职责

Gateway 是唯一的中心枢纽,做四件事:

职责说明证据
监听消息监听 18789 端口systemctl status 日志
路由分发根据 bindings 规则发给 Agent[feishu] dispatching to agent
会话管理存储对话历史~/.openclaw/agents/<id>/sessions/
认证安全Token验证、Allowlistopenclaw.json 配置

三、Agent 是什么?

Agent = 一个完整的"大脑",包含:

~/.openclaw/agents/<agentId>/
  ├── agent/              # 认证配置
  │   └── auth-profiles.json   # 模型 API Key
  ├── sessions/           # 对话历史
  │   └── *.jsonl         # 每个会话的记录
  └── workspace/          # 工作空间(核心!)
      ├── AGENTS.md       # 行为规则
      ├── SOUL.md         # 人格设定
      ├── USER.md         # 用户信息
      └── MEMORY.md       # 长期记忆

关键理解:一个 Agent 是完全隔离的,多个 Agent = 多个独立的"人格"。

四、源码入口链

代码启动顺序:

openclaw.mjs          # 1. 启动器:版本检查 + 编译缓存
    ↓
dist/entry.js         # 2. 主入口:参数解析 + 环境配置
    ↓
dist/run-main-xxx.js  # 3. CLI运行:命令路由
    ↓
dist/subsystem-xxx.js # 4. 核心子系统:Gateway/Agent/Sessions

入口文件 openclaw.mjs 做四件事:

  1. 版本检查 - Node 22.12+ 才能运行
  2. 编译缓存 - 加速启动
  3. 警告过滤 - 清理噪音
  4. 加载入口 - import("./dist/entry.js")

五、目录结构全览

openclaw/
├── openclaw.mjs      # 入口启动器
├── dist/             # 编译后代码(实际运行)
│   ├── entry.js
│   ├── subsystem-xxx.js
│   └── daemon-cli.js
├── docs/             # 官方文档(学习首选)
│   ├── concepts/     # 核心概念
│   ├── channels/     # 通道指南
│   └── gateway/      # Gateway 配置
├── extensions/       # 通道扩展(45个)
│   ├── whatsapp/
│   ├── telegram/
│   ├── discord/
│   └── feishu/       ← 正在使用的通道
└── skills/           # 内置技能(55个)
    ├── github/
    ├── weather/
    └── summarize/

六、配置文件位置

~/.openclaw/
├── openclaw.json     # 主配置(路由、通道、工具)
├── agents/
│   └── main/
│       ├── agent/    # 认证(auth-profiles.json)
│       └── sessions/ # 会话历史
└── workspace/        # 工作空间
    ├── AGENTS.md     # 行为规则
    ├── SOUL.md       # 人格
    ├── USER.md       # 用户信息
    └── MEMORY.md     # 长期记忆

七、Day 1 总结:一张图记住所有

OpenClaw 架构 = 三层 + 两文件

Channels(飞书/WhatsApp/Telegram)  ← 消息来源
        ↓
Gateway(18789端口)               ← 四职责:监听/路由/会话/认证
        ↓
Agent(workspace + sessions)      ← 大脑:记忆/人格/工具

配置文件:
  ~/.openclaw/openclaw.json  ← Gateway配置
  ~/.openclaw/workspace/     ← Agent配置(SOUL/AGENTS/MEMORY)

📖 Claude Code 快速上手核心指南

来源Datawhale Easy-Vibe 教程

核心技巧速查(11个)

技巧功能使用场景
双击 Esc回退对话说错话/不满意
@ 引用精准指定文件@src/utils.ts
! 执行运行终端命令!npm test
/plan先规划后编码复杂任务
/init生成 CLAUDE.md新项目初始化
/compact压缩上下文节省 Token
/context查看 Token 使用优化消耗
/diff查看 Git 变更代码审查
Shift+Tab自动接受模式快速迭代
Ctrl+C取消操作紧急停止
/resume恢复会话多任务切换

核心配置文件

文件作用域用途
.claude/settings.local.json项目本地个人偏好
.claude/settings.json项目共享团队统一
~/.claude/settings.json全局个人默认
CLAUDE.md项目项目记忆
.claudeignore项目节省 Token

与 OpenClaw 对比

维度Claude CodeOpenClaw
运行方式终端 CLIGateway 服务
上下文管理CLAUDE.mdSOUL.md + MEMORY.md
权限控制settings.jsonopenclaw.json
Token优化/compact + .claudeignoreCompaction + Session Pruning

设计理念相似:两者都用 Markdown 配置文件定义"人格/记忆",都有权限系统控制敏感操作。

💡 教学启示

从 Claude Code 教程中学到的教学结构值得借鉴:

  1. 快速实验:每个主题有动手验证,让用户立即体验核心能力
  2. 技巧排序:按实际使用频率排序,不是理论顺序
  3. 分层配置:最小可用 → 完整推荐 → 高级定制
  4. 表格对比:常见问题用表格,一目了然

改进方向:OpenClaw 教学也采用这种结构,避免"东一榔头西一棒子"。

📚 今日关键词

OpenClaw Gateway Agent Claude Code 三层架构 源码学习

🔗 重点链接

💭 学习总结

今天完成了两件重要的事情:

  1. OpenClaw 源码学习 Day 1:理解了三层架构(Channels → Gateway → Agent),Gateway 的四项职责,Agent 的完整结构。通过实际日志验证了 Gateway 的工作流程。
  2. Claude Code 教程研读:学习了 11 个核心技巧和配置文件结构。发现 Claude Code 和 OpenClaw 在设计理念上非常相似,都用 Markdown 配置文件定义人格和记忆。

明天预告:Day 2 - Session 与会话管理,理解消息如何变成会话,会话如何被管理。