LectureMarch 29, 2026

OpenClaw 实战公开课讲义

三次公开课通用讲义。涵盖 OpenClaw 部署、四层记忆系统、安全加固、智能客服、自动化工作流、AI 维护网站。开课前替换「本周动态」部分即可。

OpenClaw 实战公开课:用 AI 搭建你自己的智能系统

讲师: Yao Song|全栈工程师|华科 CS + 圣玛丽金融|app.mmcwellness.ca 医疗平台作者|AP CS 辅导讲师 时长: 40 分钟 网站: openclaw.borui.ca Discord: Openclaw Club


开场(3 min)

「打开屏幕,展示 Discord 群 + openclaw.borui.ca 网站」

「你们加入的这个 Discord 群,不是一个普通群。两个 AI 在 24 小时运转——一个回答你的问题,一个静默保护群的安全。旁边这个网站,内容也是 AI 帮我维护的。今天 40 分钟,我把这套系统完整拆给你看。」

本周 OpenClaw 最新动态

【最新动态占位符——每次开讲前替换,其余内容不变】

格式:

「本周 OpenClaw 发布了 [版本号],新增了 [功能名]。这意味着 [对我们的影响]。今天就用最新版演示。」


Part 1:OpenClaw + 记忆系统(10 min)

1.1 你刚加入的这个群,背后在跑什么

「这不是 Demo 环境。这是真实生产系统,你现在就在用它。」

真实系统架构:

Discord 消息
    ↓
OpenClaw Gateway(WebSocket 长连接)
    │
    ├── 徐庶 Bot(OpenClaw + Claude Sonnet)
    │     ├── requireMention = true → @徐庶 才响应
    │     ├── 理解意图 → 查记忆 → 执行 Skill → 回复
    │     └── 任何群成员都能 @ 它
    │
    └── Monitor Bot(Node.js + Claude Haiku)
          ├── 静默扫描每条消息(你们不知道它在运行)
          ├── 检测:刷屏 / 广告 / prompt 注入
          ├── 第一次违规 → 禁言 10 分钟
          └── 第二次违规 → 踢出

演示脚本:

  1. 在群里 @徐庶 问「今天有什么课」→ AI 查记忆 → 回答
  2. 打开 openclaw.borui.ca → 「这个网站的内容是 AI 帮我维护的」

AI Agent vs 聊天机器人:

普通聊天机器人AI Agent(徐庶)
你问它才回答主动执行任务
对话结束就忘跨会话记忆,记住你是谁
只能聊天能调 API、改文件、发邮件
一个功能一个机器人一个 Agent 串联所有能力

真实场景举例:

场景 1:学员问报名
  学员:"怎么报名?"
  → 徐庶匹配知识库 → 回复报名链接 + 费用 + 时间
  → 全程 < 3 秒,不需要讲师介入

场景 2:讲师发指令
  讲师:"@徐庶 把今天的课程回放链接发到公告频道"
  → 徐庶调用 Discord API → 发送格式化公告
  → 自动 @everyone 提醒

场景 3:异常处理
  有人连发 10 条广告消息
  → Monitor Bot 检测 → 删消息 + 禁言 10 分钟
  → 私信通知管理员 → 全程 < 2 秒

1.2 ChatGPT vs OpenClaw 对比表

「你用过 ChatGPT 吧?那和 OpenClaw 有什么区别?」

维度ChatGPT / Claude 网页版OpenClaw
运行位置Anthropic / OpenAI 服务器你自己的服务器
数据安全上传给第三方不离开你的机器
能力聊天聊天 + 执行任务(Skill 系统)
平台网页Discord / Telegram / WhatsApp
记忆对话结束消失(或有限)四层持久记忆,跨会话
扩展性不能(或 GPTs,有限)Skill 系统,无限扩展
更新控制你无法控制你决定何时更新到哪个版本
源码黑箱开源,想改就改

「一句话:ChatGPT 是别人的产品,OpenClaw 是你自己的系统。」


1.3 四层记忆架构(核心干货)

「为什么需要四层?因为不同类型的信息,访问模式完全不同。一层做不了所有事。」

直觉理解——为什么不是一层:

临时对话 → 要快、过期就丢              → 缓存
重要决策 → 要语义搜索、模糊匹配        → 向量数据库
用户偏好 → 要精确查询、结构化          → 关系型数据库
文件附件 → 要大容量、直接下载          → 对象存储

硬塞一层 = 又慢又乱。四层各司其职。

四层详解:

存什么技术栈生命周期查询方式
Cache当前对话上下文、会话状态Redis4 小时自动过期键值查找(微秒级)
Vector重要信息、决策、技能、经验PostgreSQL + pgvector30–180 天(衰减)语义搜索("类似的问题"能找到)
Facts偏好、联系人、配置、密钥PostgreSQL JSONB永久精确查询("张三的邮箱"直接命中)
File图片、文档、音频、PDFMinIO(S3 兼容)永久元数据搜索

衰减机制(防止记忆无限膨胀):

记忆类型半衰期说明
对话记录30 天日常闲聊,过期自动清理
项目记录45 天正在做的事,完成后衰减
重要决策90 天架构 / 方向选择
技能经验180 天学到的方法,衰减最慢

衰减速度不是固定的:

衰减速度 = 基础速率 ÷ (重要性权重 × 访问频率加成)

重要性高 + 经常被引用 → 几乎不衰减("永久记忆"效果)
重要性低 + 长期没访问 → 加速衰减 → 自动清理

技术亮点:bge-m3 本地向量模型

bge-m3 = 北京智源开源的多语言向量模型
  ├── 跑在你自己的服务器上(不调用任何外部 API)
  ├── 中英文混合效果好(你说中文它也能搜到英文相关内容)
  └── 把文字变成 1024 维向量 → 语义相似的文字距离近

「你说"我明天要开会",搜"会议安排"就能找到它——因为语义距离近。这不是关键词匹配,是理解意思。」

演示脚本:

  1. 在群里 @徐庶 说:「记住我最喜欢的编程语言是 Rust」
  2. → 存入 Vector 层,importance = 7
  3. 关掉这个会话,重新开一个全新会话
  4. 问徐庶:「你还记得我喜欢什么语言?」
  5. → AI 召回 → 正确回答 Rust
  6. 这不是对话历史,是独立记忆数据库在工作

1.4 会改才是真本事(预告)

「OpenClaw 平均每周 2–3 个版本更新。只会用 ≠ 会改。」

会用的人                         会改的人
─────────────────────────────────────────────────
等别人适配                       自己看 changelog
遇到 breaking change 卡住        定位影响 → 自己 patch
新功能要等社区                   自己加功能
Bug 要等修复                     自己修

依赖别人 = 被别人的节奏绑架       不依赖任何人

这门课教会你五件事:

#能力说明
1部署从零搭 OpenClaw + 记忆系统 + 网站
2优化记忆系统调优,让 AI 真正认识你
3做 Skill扩展 AI 能力,把重复工作变自动化
4更新看懂 changelog,跟上每周迭代
5修改VS Code + Claude Code,读懂源码,自己 patch

「第 4 周专门有一节课:VS Code + Claude Code。教你跟上 OpenClaw 的更新节奏——甚至自己给 OpenClaw 加功能。」


Part 2:安全(5 min)

标题:「这三个坑,我们都踩过」

「不讲安全理论。直接讲我们部署过程中真实踩过的坑。」

坑 1:密钥泄露

❌ 错误做法:
docker-compose.yml 里直接写明文密码:
  DISCORD_TOKEN=MTIzNDU2Nzg5...
  CLAUDE_API_KEY=sk-ant-api03-...
然后 git push 到 GitHub
→ 10 分钟内被扫描机器人抓取
→ API Key 被盗刷,账单爆炸

✅ 正确做法:
  1. 所有密钥放 .env 文件
  2. .gitignore 排除 .env
  3. chmod 600 .env(只有你能读)
  4. docker-compose.yml 用 ${DISCORD_TOKEN} 引用
  5. 如果已经泄露 → 轮换所有密钥,从头来过

.env 文件长这样:

# .env —— 绝对不上传 GitHub
DISCORD_TOKEN=MTIzNDU2Nzg5...
CLAUDE_API_KEY=sk-ant-api03-...
POSTGRES_PASSWORD=随机生成的强密码
REDIS_PASSWORD=另一个随机密码

坑 2:AI 权限过大

❌ 错误做法:
AI 能读写服务器上所有文件
AI 能执行任意 shell 命令(rm -rf / 也行)
AI 能读 .env 里的 API Key

✅ 正确做法:
  - tools.fs.workspaceOnly = true  → AI 只能读写指定目录
  - agents.defaults.sandbox.mode = on  → 沙箱隔离
  - 高危命令需要 /approve 确认
  - 明确的 allowlist → 只开放 AI 需要的命令

坑 3:群聊信息隔离

❌ 错误做法:
用户 A 问 AI:"系统密码是什么?"
AI 回答:"管理员密码是 admin123"

✅ 正确做法:
  - 记忆按 user_id 严格隔离 → 你只能查自己的记忆
  - 群聊检测到 token / key / password 关键词 → 拒绝回答
  - allowlist:只响应指定 Discord 群组
  - DM 限制:只有管理员能执行 shell 命令

Monitor Bot 的由来(真实案例)

「有人在群里发了一段 prompt injection 攻击,试图让 AI 泄露系统配置。我们发现后,花了 45 分钟部署了 Monitor Bot——一个独立的安全守卫,用最便宜的 Claude Haiku 静默扫描每条消息。成本几乎为零,但把这类攻击堵上了。现在它静默运行,你们都不知道它在扫描每一条消息。」


Part 3:智能客服 + 自动化工作流(12 min)

3.1 智能客服 = 就是这个群(现场演示)

「不用模拟,直接看群里真实在跑的系统。」

完整消息处理架构:

用户发消息
  ↓
Monitor Bot 先扫(~100ms)
  ├── 违规 → 禁言/踢出 + 频道通知管理员
  └── 正常 → 传给徐庶
        ↓
      徐庶判断意图
        │
        ├── FAQ(报名/价格/时间)
        │     → 查记忆 → 直接回答
        │
        ├── 技术问题
        │     → 调用相关 Skill → 回答
        │
        ├── 超出范围
        │     → 「这个问题我需要让讲师来回答」
        │     → 同时通知管理员
        │
        └── 违规意图
              → 记录 + 拒绝

违规检测详情:

检测类型        触发条件                      处理方式
────────────────────────────────────────────────────────
刷屏            10 秒内发 5 条以上             禁言 10 分钟
广告            包含推广链接 / 二维码           删消息 + 警告
Prompt 注入     试图修改 AI 系统指令            禁言 + 通知管理员
人身攻击        情绪检测 + 关键词               删消息 + 警告
────────────────────────────────────────────────────────
第二次违规 → 直接踢出

演示脚本(三个现场演示):

  1. FAQ 演示: 发一条「课程什么时候开始」→ AI 查记忆 → 直接回答时间和报名方式
  2. 安全演示: 发一条测试违规消息 → Monitor Bot 检测并处理(讲师用测试账号演示)
  3. 转人工演示: 发一条超出 AI 能力范围的问题 → AI 回复「这个问题我需要让讲师确认」→ 管理员收到通知

3.2 自动化工作流:Admin 日报系统(完整链路)

「这是我们真实在用的系统。每天 23:00 自动跑,第二天早上打开邮箱就有报告。」

场景: 每天结束后,自动生成当天的咨询分析报告。

每天 23:00 自动触发(cron)
  │
  ▼
Step 1: 抓取 Discord 当天消息
  → Discord API:读取频道消息记录
  → 过滤:只保留用户咨询,去掉 Bot 自己的回复
  │
  ▼
Step 2: Claude 分析
  → 问题分类(技术 / 报名 / 价格 / 投诉 / 其他)
  → 情绪标注(正面 / 中性 / 负面)
  → 未解决问题识别(AI 没有给出满意回答的)
  → 热点话题提取(今天问最多的是什么)
  │
  ▼
Step 3: 生成结构化输出
  → Markdown 日报:标题 / 摘要 / 分类统计 / 未解决列表
  → Excel 文件:每行一条咨询,含分类 / 情绪 / 是否解决
  │
  ▼
Step 4: 上传 Google Drive
  → Google Drive API
  → 存入:/OpenClaw-Club/日报/2026-03/
  → 自动按日期命名:2026-03-29_日报.xlsx
  │
  ▼
Step 5: 发邮件通知
  → Gmail API
  → 收件人:Admin
  → 主题:[日报] OpenClaw Club - 2026-03-29
  → 正文:今日摘要 + 未解决问题列表
  → 附件:Excel 完整报告

OpenClaw Skill 串联方式:

每个步骤是一个独立 Skill:
  discord-fetch   → 抓取消息
  ai-analyze      → Claude 分析
  sheet-export    → 生成 Excel
  gdrive-upload   → 上传 Drive
  gmail-send      → 发邮件

主 Skill(daily-report)编排这些步骤:
  ├── 顺序执行 5 个子 Skill
  ├── 每步有失败重试机制
  ├── 失败通知管理员
  └── 这就是你在这门课里要自己做的 Skill

Skill 串联的代码结构:

// OpenClaw Skill 实际配置
{
  "name": "daily-report",
  "trigger": { "type": "cron", "schedule": "0 23 * * *" },
  "steps": [
    { "action": "discord.fetchMessages", "params": { "since": "today" } },
    { "action": "claude.analyze",        "params": { "template": "daily-report" } },
    { "action": "file.generateExcel",    "params": { "template": "report-v2" } },
    { "action": "gdrive.upload",         "params": { "folder": "日报" } },
    { "action": "gmail.send",            "params": { "to": "admin", "attach": true } }
  ]
}

「每一步都是独立 Skill,OpenClaw 像流水线一样串起来。你只需要定义"做什么"和"什么顺序",不需要写胶水代码。」


Part 4:AI 自动维护网站(8 min)

「openclaw.borui.ca 就是活例子——Next.js 16 + Express 5 + PostgreSQL,Docker Compose 一键部署。」

正常维护流程(你说需求,AI 干活)

你说:「把资料库页面加一个视频嵌入功能」
  │
  ▼
AI 读取项目结构(Next.js 16 + Express 5 + TypeScript)
  │  ├── 扫描 frontend/src/ 目录结构
  │  ├── 读取相关组件代码
  │  └── 理解现有样式和逻辑
  │
  ▼
AI 定位需要改的文件(components/ResourceCard.tsx 等)
  │
  ▼
AI 写 patch,你 review(能看懂大概就行)
  │
  ▼
docker compose up -d --build oc-web
  │
  ▼
网站更新 → AI 汇报:「已完成,新增了 VideoEmbed 组件」

真实发生过的案例

任务AI 用时你做了什么你写的代码
全站手机适配15 分钟说需求 + review0 行
Next.js 动态路由 4043 分钟贴报错信息0 行
资料库系统(新功能)45 分钟描述需求 + 测试0 行
安全加固(4 项)30 分钟确认操作0 行

案例细节——修 Bug:

我说:「课程详情页 404 了」

AI 做了什么:
  1. 读取 Next.js 动态路由 [slug]/page.tsx
  2. 定位问题:params 需要 await(Next.js 15+ breaking change)
  3. 加上 await:const { slug } = await params
  4. 重建部署
  5. 汇报:「Next.js 15 要求 params 必须 await,已修复」

耗时:3 分钟

案例细节——新功能:

我说:「资料库加一个视频嵌入功能」

AI 做了什么:
  1. 读取 resource 组件结构
  2. 新建 VideoEmbed 组件
  3. 支持 YouTube / Bilibili 链接自动解析
  4. 响应式 16:9 容器
  5. 注册到资料详情页
  6. 重建部署

耗时:10 分钟

核心认知转变

你不需要:                    你需要:
───────────────────────────────────────────
记住 CSS 语法                 看懂 AI 改了什么
记住 React API                判断结果对不对
记住 Docker 命令              知道出问题了怎么回退
背诵报错信息                  能描述清楚你要什么
───────────────────────────────────────────
      左边 AI 替你做            右边就是这门课教的元能力

OpenClaw 更新维护流程(核心技能)

「OpenClaw 每周 2–3 个版本。这是你必须掌握的跟上节奏的方法。」

OpenClaw 发布新版本(GitHub Releases)
  │
  ▼
查看 changelog
  → github.com/openclaw/openclaw/releases
  │
  ▼
用 Claude 分析:
  「这个 breaking change 影响我的配置吗?」
  │
  ▼
定位影响的文件 / 配置项
  │
  ▼
VS Code + Claude Code:
  → 读懂源码 → 写 patch → 本地测试
  │
  ▼
npm update openclaw → 重启 gateway
  │
  ▼
验证功能正常 → 完成

自己做 Skill(这门课的核心)

Skill 目录结构:

skills/
  my-skill/
    SKILL.md       ← 描述:什么时候用、做什么、返回什么
    script.sh      ← 实际执行的逻辑(或 .js / .py)
    references/    ← 参考文件(可选)

从零写一个 Skill 的流程:

Step 1: 想清楚三件事
  ├── 什么触发它?(用户说了什么 / 定时 / 事件)
  ├── 做什么?(调 API / 读数据 / 生成内容)
  └── 返回什么?(文字回复 / 文件 / 通知)

Step 2: 用 VS Code + Claude Code 写代码
  ├── 写 SKILL.md(告诉 OpenClaw 什么时候调用它)
  └── 写执行脚本(实际逻辑)

Step 3: 放到 skills/ 目录
  → OpenClaw 自动扫描加载,无需重启

Step 4: 测试
  → 在 Discord 群触发 → 验证行为 → 调试

「Skill 就是 AI 的能力边界。你做了多少 Skill,AI 就能做多少事。这门课教你自己扩展这个边界。」


收尾(5 min)

4 周后你拥有的五种能力

Week 1  部署
        └── 从零搭一套 OpenClaw + 记忆系统 + 网站
            在 Oracle Cloud 永久免费服务器上
            4 核 ARM + 24GB 内存(不是试用,真永久免费)

Week 2  优化
        └── 记忆系统调优
            让 AI 真正认识你,而不只是看对话历史
            衰减参数调整、向量搜索优化、Facts 结构设计

Week 3  做 Skill
        └── 扩展 AI 能力
            把任何重复工作变成自动化流程
            从日报系统到自定义工作流

Week 4  更新 + 修改
        └── VS Code + Claude Code
            看懂 changelog,跟上每周 2–3 个版本的迭代
            读懂源码,自己 patch,不依赖任何人

五种能力呼应表:

#能力你能做什么对应课程
1部署从零到跑起来,整套系统在自己服务器上Week 1
2优化记忆系统调优,AI 越用越懂你Week 2
3做 Skill任何重复工作自动化,AI 能力无限扩展Week 3
4更新看懂 changelog,不被版本落下Week 4
5修改读懂源码,自己 patch,不依赖任何人Week 4

成本(真实数字)

工具费用说明
Oracle Cloud 服务器永久免费4 核 ARM,24GB 内存,200GB 存储
域名~$10/年Cloudflare,可选(不买用免费子域名)
Cloudflare Tunnel免费安全暴露服务,无需开放端口
Claude Pro$24 CAD/月AI 引擎(API 调用 + Claude Code)
VS Code免费开发工具
Docker / OpenClaw免费开源

总成本:$24 CAD/月起。一顿火锅钱,换一个 24 小时运转、数据在你手里、代码你自己能改的 AI 系统。


报名

╔══════════════════════════════════════════════════╗
║                                                  ║
║     网站:openclaw.borui.ca                      ║
║                                                  ║
║     扫码加入 Discord 群                           ║
║     立即体验徐庶 Bot                              ║
║                                                  ║
║     你现在就在用这套系统                           ║
║     报名后学会自己搭一套                           ║
║                                                  ║
║     下一期开课时间:【占位符】                     ║
║                                                  ║
╚══════════════════════════════════════════════════╝

讲义版本: v2.0 最后更新: 2026-03-29 讲师: Yao Song|全栈工程师|OpenClaw 重度用户|维多利亚教育集团合作讲师

Common Questions

What will I learn in this session?

Each session builds directly on the previous one. You will walk away with runnable code and a clear mental model of how the covered component fits into a production AI agent stack.

How long is this session?

Each open class runs approximately 60–90 minutes, including a live Q&A segment. Full course lectures are 2 hours with hands-on exercises.

What are the prerequisites for this session?

A working OpenClaw installation or access to the session replay is sufficient. Check the slides link above for any setup instructions specific to this lecture.