Leçon29 mars 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 重度用户|维多利亚教育集团合作讲师

Questions fréquentes

Qu'est-ce que j'apprendrai pendant cette séance?

Chaque séance s'appuie directement sur la précédente. Vous repartirez avec du code exécutable et une compréhension claire de la place qu'occupe le composant étudié dans une pile d'agent IA en production.

Combien de temps dure cette séance?

Chaque cours ouvert dure environ de 60 à 90 minutes, période de questions en direct comprise. Les leçons de la formation complète durent 2 heures et comprennent des exercices pratiques.

Quels sont les préalables pour cette séance?

Une installation fonctionnelle d'OpenClaw ou l'accès à la rediffusion de la séance suffit. Consultez le lien vers les diapositives ci-dessus pour les instructions de configuration propres à cette leçon.