分类
未分类

你好,深鹏


title: “你好,深鹏”
date: 2026-06-28
slug: hello-shenpeng
summary: “这是深鹏的第一篇文章,一个大数据工程师的独立博客。”
tags: [技术, 大数据, AI]
category: tech

## 为什么叫深鹏

深 — Deep Learning,深度探索。从数据暗处发现规律。
鹏 — 大鹏鸟,《庄子·逍遥游》。鹏之背不知其几千里,怒而飞翼若垂天之云。

> 深鹏 | Deep Data, Big Wings

## 我是谁

我从事大数据开发与 AI 应用研究。GitHub 上叫 dimBird,中文笔名叫深鹏。

## 这个博客会写什么

– 大数据技术的工程实践
– AI 应用的研究分享
– 工程效率与工具链

用俯瞰的视角,看数据的世界。

分类
未分类

基于 OpenClaw + QQ 机器人的多账户角色系统:从零搭建家庭 AI 助手生态

作者注:本文详细介绍如何利用腾讯云服务器 + OpenClaw(开源AI助手框架)+ QQ机器人,为家庭成员/朋友搭建独立隔离的多账户AI助手系统。所有敏感信息已脱敏,配置可直接复用。


📋 目录


1. 项目背景与价值

1.1 为什么需要多账户角色?

想象一个场景:
– 你有一个强大的AI助手(基于OpenClaw),部署在腾讯云服务器上
– 你希望通过QQ机器人的方式,让家人、朋友也能使用这个AI助手
– 但每个人的需求不同:
:需要完整的技术支持、代码辅助、项目管理
家人A:只需要日常生活提醒、天气查询、简单问答
家人B:需要健康建议、食谱推荐、娱乐互动

核心诉求
– ✅ 每个人有独立的对话上下文(不串聊)
– ✅ 每个人有独立的记忆系统(不共享隐私)
– ✅ 每个人有独立的技能配置(按需启用)
– ✅ 统一通过QQ机器人入口访问(无需额外安装App)

1.2 技术选型

组件 技术选型 理由
AI框架 OpenClaw 开源、支持多账户、插件生态丰富
部署环境 腾讯云轻量应用服务器 稳定、便宜、国内访问快
消息入口 QQ机器人(qqbot插件) 用户无需安装新App,QQ即可使用
账户隔离 OpenClaw 多用户工作区 原生支持,目录级隔离
记忆系统 文件系统(Markdown) 透明、可审计、易迁移

2. 系统架构设计

2.1 整体架构图

┌─────────────────────────────────────────────────────────────┐
│                      用户层(QQ)                            │
├─────────────────────────────────────────────────────────────┤
│  QQ用户A (QQ号: 10001)  │  QQ用户B (QQ号: 10002)  │  QQ用户C (QQ号: 10003) │
└──────────┬──────────────┬──────────────────┬────────────────┘
           │              │                  │
           └──────────────┼──────────────────┘
                          │
                          ▼
┌─────────────────────────────────────────────────────────────┐
│              QQ机器人插件(qqbot)                           │
│  • 接收QQ消息(原始QQ号)                                   │
│  • 转换为 OpenClaw OpenID(如:EXAMPLE_OPENID_A)│
│  • 重要:OpenClaw 只接触 OpenID,不接触原始QQ号!            │
└──────────┬──────────────────────────────────────────────────┘
           │
           ▼
┌─────────────────────────────────────────────────────────────┐
│                  消息路由层(OpenClaw Gateway)               │
│  • 接收 OpenID(sender_id)                                 │
│  • 根据 OpenID 查找对应的用户工作区                         │
│  • 加载该用户的配置(AGENTS.md/SOUL.md/MEMORY.md)          │
└──────────┬──────────────────────────────────────────────────┘
           │
           ▼
┌─────────────────────────────────────────────────────────────┐
│                  多账户工作区(Workspace)                     │
├─────────────────────────────────────────────────────────────┤
│  /root/clawd/users/                                         │
│  ├── EXAMPLE_OPENID_A/  (用户A的工作区)     │
│  │   ├── AGENTS.md      (AI行为规则)                         │
│  │   ├── SOUL.md        (AI人格设定)                         │
│  │   ├── MEMORY.md      (长期记忆)                           │
│  │   ├── memory/        (每日记录)                           │
│  │   └── obsidian/      (知识库,可选)                       │
│  │                                                          │
│  ├── EXAMPLE_OPENID_B/  (用户B的工作区)     │
│  │   └── ... (独立配置)                                      │
│  │                                                          │
│  └── EXAMPLE_OPENID_C/  (用户C的工作区)     │
│      └── ... (独立配置)                                      │
└─────────────────────────────────────────────────────────────┘
           │
           ▼
┌─────────────────────────────────────────────────────────────┐
│                  技能层(Skills)                             │
│  • 全局技能:weather, web-search, cron (所有用户可用)         │
│  • 用户专属技能:obsidian, email (按需配置)                   │
└─────────────────────────────────────────────────────────────┘

2.2 OpenID 生成与映射机制(核心概念!)

关键原理
1. QQ用户发送消息 → QQ机器人插件接收(携带原始QQ号)
2. QQ机器人插件将原始QQ号转换为OpenClaw OpenID
– 例如:10001EXAMPLE_OPENID_A
3. OpenClaw 只接触 OpenID,永远看不到原始QQ号!
4. OpenID 是哈希值或UUID,保护用户隐私

为什么这样设计?
– ✅ 隐私保护:OpenClaw 系统不存储原始QQ号、微信号等敏感信息
– ✅ 统一抽象:无论入口是QQ、微信、飞书,都统一成 OpenID
– ✅ 去耦合:OpenClaw 不依赖任何特定平台的ID体系

2.3 消息流转流程

QQ用户发送消息 (QQ号: 10001)
    ↓
QQ机器人插件接收 (qqbot)
    ↓
**转换为 OpenID** (如: EXAMPLE_OPENID_A)
    ↓
OpenClaw Gateway 接收(只有 OpenID,没有QQ号!)
    ↓
查找 /root/clawd/users/EXAMPLE_OPENID_A/
    ↓
加载该用户的 AGENTS.md / SOUL.md / MEMORY.md
    ↓
AI 处理请求(带用户独立上下文)
    ↓
返回消息到QQ机器人插件
    ↓
插件将 OpenID 转换回 QQ号
    ↓
发送到用户的QQ
    ↓
(可选)写入该用户的 memory/YYYY-MM-DD.md

📌 使用场景快速参考(必读!)

✅ 日常使用(永远不需要重启)

典型操作
– 记录日记:"帮我记录今天学习了..."
– 查看新闻:"今天有什么科技新闻?"
– 查询天气:"明天天气怎么样?"
– 聊天对话:"帮我写个Python脚本"

特点
– ✅ 不修改任何配置文件
– ✅ 所有操作即时生效
– ✅ 永远不需要重启 Gateway


⚠️ 修改配置(可能需要重启)

用户级配置(工作区内,不需要重启 ✅):
– 修改 AGENTS.md(AI 行为规则)→ 下次对话生效
– 修改 SOUL.md(AI 性格设定)→ 下次对话生效
– 修改 MEMORY.md(长期记忆)→ 下次对话生效

全局配置(需要重启 ⚠️):
– 修改 gateway.config.json → 必须重启
– 修改 tools.alsoAllow(工具权限)→ 必须重启
– 修改插件配置(~/.openclaw/ 下)→ 必须重启

快速判断法

修改的文件在哪个目录?
├── /root/clawd/users/<OpenID>/  → 不需要重启 ✅
└── ~/.openclaw/ 或 /root/clawd/gateway.config.json → 需要重启 ⚠️

3. 核心技术配置

3.1 环境准备

3.1.1 服务器配置

# 腾讯云轻量应用服务器
# 操作系统:OpenCloudOS 9 (兼容 CentOS/RHEL)
# 配置:2核4G,系统盘 60GB
# 网络:公网IP + 带宽 5Mbps

# 基础环境
node --version    # v22.22.0
npm --version     # 10.x

3.1.2 安装 OpenClaw

# 全局安装 OpenClaw
npm install -g openclaw

# 初始化工作目录
mkdir -p /root/clawd
cd /root/clawd

# 启动 Gateway(首次会生成默认配置)
openclaw gateway start

3.2 QQ机器人插件配置

3.2.1 安装 qqbot 插件

# OpenClaw 插件目录
cd ~/.openclaw/plugins/

# 安装 QQ机器人插件(示例,实际根据插件文档)
npm install openclaw-plugin-qqbot

3.2.2 配置 QQ机器人

编辑 ~/.openclaw/gateway.config.json

{
  "plugins": {
    "qqbot": {
      "enabled": true,
      "appId": "YOUR_QQ_BOT_APP_ID",
      "appSecret": "***",
      "token": "***",
      "channels": ["qqbot"]
    }
  }
}

关键配置说明
appId / appSecret:从 QQ开放平台 申请机器人时获得
token:用于验证消息来源(防止伪造请求)
channels:启用的消息渠道(qqbot = QQ机器人)

重要:此配置中不涉及QQ号到OpenID的映射,那是插件内部处理的!

⚠️ 注意:修改插件配置后,需要重启 Gateway 才能生效。
执行命令:openclaw gateway restart


4. 多账户角色实现原理

4.1 OpenID 身份识别机制(核心!)

重要概念:OpenClaw 系统中不存在原始QQ号、微信号等平台ID,只有 OpenID

// 伪代码:消息路由逻辑(OpenClaw 侧)
function handleIncomingMessage(message) {
  // message.sender_id 已经是 OpenID,不是原始QQ号!
  const openId = message.sender_id;  // 如: "EXAMPLE_OPENID_A"
  const userWorkspace = `/root/clawd/users/${openId}/`;

  // 加载用户独立配置
  const agentsMd = readFile(`${userWorkspace}/AGENTS.md`);
  const soulMd = readFile(`${userWorkspace}/SOUL.md`);
  const memoryMd = readFile(`${userWorkspace}/MEMORY.md`);

  // 在该用户上下文中处理消息
  const response = await processWithContext(message.text, {
    workspace: userWorkspace,
    configFiles: { agentsMd, soulMd, memoryMd }
  });

  // 返回给用户(插件会负责将 OpenID 转回 QQ号)
  sendToUser(openId, response);
}

OpenID 的生成(在插件层完成)

// QQ机器人插件侧的伪代码
function onQQMessage(qqMessage) {
  const rawQQ = qqMessage.senderQQ;  // 原始QQ号:10001

  // 生成或查找对应的 OpenID(通常是哈希或UUID)
  const openId = generateOpenId(rawQQ);  // 如:EXAMPLE_OPENID_A

  // 构造发给 OpenClaw 的消息(只有 OpenID,没有QQ号!)
  const messageForOpenClaw = {
    sender_id: openId,  // 注意:不是 rawQQ!
    text: qqMessage.text,
    channel: "qqbot"
  };

  // 发送给 OpenClaw Gateway
  sendToGateway(messageForOpenClaw);
}

4.2 用户工作区结构

每个用户有独立的目录,目录名就是 OpenID

/root/clawd/users/
├── EXAMPLE_OPENID_A/     # 用户A(OpenID作为目录名)
│   ├── AGENTS.md                 # AI助手的行为规则
│   ├── SOUL.md                   # AI助手的性格设定
│   ├── USER.md                   # 用户信息(脱敏后)
│   ├── MEMORY.md                 # 长期记忆(不共享)
│   ├── TOOLS.md                  # 工具配置笔记
│   ├── HEARTBEAT.md              # 心跳任务配置
│   └── memory/                   # 每日记录
│       ├── 2026-05-25.md
│       └── 2026-05-26.md
│
├── EXAMPLE_OPENID_B/     # 用户B(另一个OpenID)
│   ├── AGENTS.md                 # 简化的行为规则
│   ├── SOUL.md                   # 更温和的性格
│   ├── USER.md                   # 用户B的信息
│   ├── MEMORY.md                 # 用户B的独立记忆
│   └── memory/
│       └── 2026-05-26.md
│
└── EXAMPLE_OPENID_C/     # 用户C(又一个OpenID)
    └── ... (同样独立)

关键点
目录名 = OpenID(不是QQ号,不是用户名)
– OpenID 由插件生成,OpenClaw 只认 OpenID
– 每个用户的 MEMORY.md 完全隔离,AI 不会跨用户读取
– 每个用户可以有不同的 SOUL.md(不同性格的AI助手)
– 每个用户可以有不同的技能权限(通过 AGENTS.md 控制)


5. 关键节点配置详解

5.1 Gateway 配置(全局)

编辑 /root/clawd/gateway.config.json

{
  "gateway": {
    "port": 3000,
    "host": "0.0.0.0"
  },
  "agents": {
    "default": {
      "workspace": "/root/clawd/users/default/",
      "model": "tencenthytokenplan/hy3-preview"
    }
  },
  "channels": {
    "qqbot": {
      "enabled": true,
      "provider": "qqbot",
      "delivery": {
        "mode": "announce",
        "channel": "qqbot"
      }
    }
  },
  "security": {
    "tools": {
      "exec": {
        "enabled": true,
        "elevated": false
      }
    }
  }
}

注意
– ❌ 不要配置 userMapping!OpenClaw 不认QQ号。
– ✅ 用户映射在 user_context.json 中配置(基于 OpenID)。
– ✅ Gateway 配置只负责全局设置,不负责用户身份映射。

⚠️ 重要:修改 gateway.config.json 后,必须重启 Gateway 才能生效!
执行命令:openclaw gateway restart

5.2 用户级配置(AGENTS.md 示例)

用户A(技术向)

# AGENTS.md - 技术助手

## 核心能力
- 代码辅助(Python, SQL, React)
- 项目管理(Git, Docker)
- 技术文档搜索

## 工具权限
- ✅ exec(执行命令)
- ✅ web_search(搜索)
- ✅ obsidian(知识库)
- ❌ email(禁用,防止误发)

## 记忆策略
- 每日记录到 memory/YYYY-MM-DD.md
- 重要决策写入 MEMORY.md

用户B(生活向)

# AGENTS.md - 生活助手

## 核心能力
- 天气查询
- 日程提醒
- 健康建议
- 简单问答

## 工具权限
- ❌ exec(禁用命令执行)
- ✅ web_search(搜索)
- ❌ obsidian(不使用知识库)

## 记忆策略
- 仅记录重要事项到 MEMORY.md
- 不记录日常对话(保护隐私)

5.3 OpenID 与用户配置映射(user_context.json)

OpenClaw 使用 user_context.json 来管理 OpenID 与用户配置的映射关系:

实际配置文件示例/root/clawd/users/user_context.json):

{
  "version": 1,
  "description": "用户上下文配置 - 根据 sender_id (OpenID) 自动加载对应用户的数据",
  "users": {
    "EXAMPLE_OPENID_A": {
      "name": "主用户",
      "timezone": "Asia/Shanghai",
      "persona": "技术专家",
      "sandbox": "/root/clawd/users/EXAMPLE_OPENID_A",
      "obsidian_vault": "/root/clawd/users/EXAMPLE_OPENID_A/obsidian",
      "files": {
        "user_md": "USER.md",
        "memory_md": "MEMORY.md",
        "identity_md": "IDENTITY.md",
        "cron_jobs": "cron_jobs.json"
      }
    },
    "EXAMPLE_OPENID_B": {
      "name": "用户B",
      "timezone": "Asia/Shanghai",
      "persona": "小学生",
      "sandbox": "/root/clawd/users/EXAMPLE_OPENID_B",
      "obsidian_vault": "/root/clawd/users/EXAMPLE_OPENID_B/obsidian",
      "files": {
        "user_md": "USER.md",
        "memory_md": "MEMORY.md",
        "cron_jobs": "cron_jobs.json"
      }
    }
  },
  "shared": {
    "skills_dir": "/root/clawd/skills",
    "scripts_dir": "/root/clawd/scripts",
    "shared_dir": "/root/clawd/shared"
  }
}

关键说明
– ✅ 映射键是 OpenID(如 EXAMPLE_OPENID_A),不是QQ号!
– ✅ OpenClaw 系统中从不出现原始QQ号、微信号等平台ID
– ✅ 每个 OpenID 对应独立的工作区目录(sandbox)
– ✅ 可以为不同 OpenID 配置不同的 persona(AI人格)

如何知道某个QQ号对应的 OpenID?
– 方法1:用户首次发消息后,查看 /root/clawd/users/ 目录下的新文件夹名
– 方法2:查看 OpenClaw Gateway 日志,会记录 sender_id (OpenID)
– 方法3:检查 user_context.json 中的 users 键(如果已配置)


6. 实战:为家人创建独立账户

6.1 场景设定

假设你要为家人B(妈妈)创建一个专属AI助手:
– 需求:天气查询、吃药提醒、简单聊天
– 不需要:技术辅助、代码执行
– 性格:温柔、耐心、简洁

6.2 操作步骤

Step 1: 让家人通过QQ给机器人发一条消息

妈妈: 你好
机器人: 你好!我是你的生活小助手~有什么可以帮你的吗?😊

这一步会让 QQ机器人插件生成对应的 OpenID,并自动创建用户目录。

Step 2: 查找生成的 OpenID

# 查看用户目录,找到新生成的 OpenID 目录
ls -la /root/clawd/users/

# 输出示例:
# drwxr-xr-x  5 root root  151 May 24 09:46 .
# drwxr-xr-x 12 root root 4096 Apr  1 12:30 ..
# drwxr-xr-x  6 root root  189 May 24 11:15 EXAMPLE_OPENID_B
# drwx------  6 root root 4096 May 26 22:04 EXAMPLE_OPENID_A
# drwxr-xr-x  5 root root  172 May 24 11:23 EXAMPLE_OPENID_C
# drwxr-xr-x  5 root root  123 May 27 00:00 **NEW_OPEN_ID_HERE**  ← 新目录!

假设新目录名为:FAMILY_MOM_OPENID

Step 3: 创建用户配置文件

# 进入用户工作区
cd /root/clawd/users/FAMILY_MOM_OPENID

# 创建配置文件
cat > AGENTS.md << 'EOF'
# AGENTS.md - 妈妈的生活助手

## 核心原则
- 温柔耐心,不用技术术语
- 主动提醒重要事项(吃药、体检)
- 保护隐私,不记录敏感对话

## 可用技能
- 天气查询
- 定时提醒(cron)
- 简单搜索

## 禁止操作
- 不执行系统命令
- 不访问技术文档
EOF

cat > SOUL.md << 'EOF'
# SOUL.md - AI助手性格

我是你的贴心小助手,可以帮你:
- 🌤️ 查天气,提醒带伞
- 💊 记吃药时间
- 📅 提醒重要日子
- 💬 陪你聊天解闷

我会用简单易懂的话回答,不会说复杂的技术词~
EOF

cat > USER.md << 'EOF'
# USER.md - 用户信息

- **称呼**:妈妈
- **时区**:Asia/Shanghai
- **主要需求**:生活提醒、天气、健康
- **沟通风格**:简洁、温柔
EOF

touch MEMORY.md TOOLS.md
mkdir -p memory

Step 4: 配置 OpenID 到用户信息的映射

编辑 /root/clawd/users/user_context.json(如果文件不存在则创建):

{
  "version": 1,
  "users": {
    "EXAMPLE_OPENID_A": {
      "name": "自己",
      "timezone": "Asia/Shanghai",
      "persona": "技术专家",
      "sandbox": "/root/clawd/users/EXAMPLE_OPENID_A"
    },
    "FAMILY_MOM_OPENID": {
      "name": "妈妈",
      "timezone": "Asia/Shanghai",
      "persona": "生活助手",
      "sandbox": "/root/clawd/users/FAMILY_MOM_OPENID"
    }
  }
}

重要
– ❌ 不要尝试配置 QQ号!OpenClaw 不认识 QQ号。
– ✅ 只配置 OpenID!这是 QQ机器人插件转换后的ID。
– ✅ 如何获取 OpenID?用户发条消息,然后查看 /root/clawd/users/ 下的新目录名。

Step 5: 重启 Gateway(仅修改全局配置时需要)

⚠️ 重要:什么时候需要重启?

不需要重启的场景(永远!):
– 记录日记、查看新闻、查询天气等日常使用
– 修改 AGENTS.mdSOUL.mdUSER.md 等用户级配置
– 修改 MEMORY.mdmemory/YYYY-MM-DD.md

⚠️ 需要重启的场景(必须执行):
– 修改 gateway.config.json(全局配置)
– 修改 tools.alsoAllow(工具权限)
– 修改插件配置(~/.openclaw/ 下)

快速判断法
– 修改工作区内的文件 → 不需要重启 ✅
– 修改Gateway 全局配置 → 需要重启 ⚠️

# 仅当修改了全局配置时执行
openclaw gateway restart

# 如果只修改了用户级文件(AGENTS.md 等),跳过此步骤 ✅

Step 6: 测试

让妈妈再次给机器人发消息:

妈妈: 明天天气怎么样?
机器人: 让我查一下明天的天气~
(根据妈妈的 SOUL.md,会用温柔简洁的语气回答)

检查工作区是否生成记录:

ls -la /root/clawd/users/FAMILY_MOM_OPENID/memory/
# 应该看到:2026-05-27.md

7. 安全与隔离机制

7.1 数据隔离

隔离维度 实现方式 效果
对话上下文 每个用户独立的 session (基于OpenID) 用户A看不到用户B的聊天记录
长期记忆 独立的 MEMORY.md 用户A的隐私不会泄露给B
技能配置 独立的 AGENTS.md 用户B不能执行系统命令
文件访问 工作区目录隔离 用户只能访问自己的目录
平台ID 只有 OpenID,没有原始QQ号 隐私双重保护

7.2 权限控制

全局禁用危险操作

编辑 gateway.config.json

{
  "security": {
    "tools": {
      "exec": {
        "enabled": false  // 全局禁用命令执行
      },
      "email": {
        "enabled": false  // 全局禁用邮件发送
      }
    }
  }
}

按用户启用权限

在用户的 AGENTS.md 中声明:

## 工具权限
- exec: disabled  # 这个用户不能执行命令
- email: disabled # 这个用户不能发邮件

7.3 敏感信息保护

脱敏原则
– ✅ 用 USER_A, USER_B 代替真实称呼
– ✅ 用 EXAMPLE_OPENID_A 这样的 OpenID(本身就是脱敏的)
– ✅ 用 *** 隐藏 Token/密钥
– ✅ OpenClaw 系统中不存在原始QQ号、微信号等(天然脱敏!)
– ❌ 不在分享文档中暴露真实路径(如需要可模糊处理)

OpenID 的隐私优势
– OpenID 是哈希值或UUID,无法反推原始QQ号
– 即使 user_context.json 泄露,攻击者也拿不到用户的QQ号
– 不同平台(QQ、微信、飞书)的同一用户,会有不同的 OpenID(进一步隔离)

实际部署时的建议
– 将敏感配置放到 .env 文件,加入 .gitignore
– 使用环境变量而非硬编码
– 定期备份用户数据(但备份文件也要脱敏)


8. 总结与展望

8.1 核心要点回顾

多账户实现的关键
1. 利用 OpenClaw 的原生多用户工作区机制
2. 通过 OpenID(不是QQ号!)自动路由到对应用户目录
3. 每个用户有独立的 AGENTS.md / SOUL.md / MEMORY.md
4. QQ机器人插件负责QQ号 → OpenID 的转换(保护隐私)

QQ机器人的优势
– 用户无需安装新App(QQ人人都有)
– 消息实时推送,体验流畅
– 支持文本、图片、文件等多种消息类型
隐私保护:OpenClaw 永远看不到原始QQ号

隔离与安全
– 目录级隔离(文件系统天然隔离)
– 权限按用户配置(最小权限原则)
– OpenID 机制(平台ID与系统ID解耦)

8.2 适用场景

场景 适用性 说明
家庭AI助手 ⭐⭐⭐⭐⭐ 完美!每个家人独立使用,隐私隔离
小团队工具 ⭐⭐⭐⭐ 同事间共享AI助手,但数据隔离
付费AI服务 ⭐⭐⭐ 可为不同用户分配不同权限套餐
企业级应用 ⭐⭐ 需要更完善的权限管理和审计

8.3 下一步优化方向

🚀 可扩展功能
– [ ] Web管理后台(可视化配置用户和OpenID映射)
– [ ] 用户配额管理(限制API调用次数)
– [ ] 共享技能市场(用户间分享技能配置)
– [ ] 多渠道支持(微信、Telegram、Discord等,都统一成OpenID)

📚 可深入的方向
– 研究 OpenClaw 的 session 管理机制
– 探索基于向量数据库的长期记忆
– 集成更多开源LLM模型(降低API成本)


🎁 附录:完整配置文件模板

A1. gateway.config.json(完整版)

{
  "gateway": {
    "port": 3000,
    "host": "0.0.0.0",
    "logLevel": "info"
  },
  "agents": {
    "default": {
      "workspace": "/root/clawd/users/default/",
      "model": "tencenthytokenplan/hy3-preview",
      "thinking": "off"
    }
  },
  "channels": {
    "qqbot": {
      "enabled": true,
      "provider": "qqbot",
      "accountId": "default",
      "delivery": {
        "mode": "announce",
        "channel": "qqbot"
      }
    }
  },
  "security": {
    "tools": {
      "exec": {
        "enabled": true,
        "elevated": false
      }
    }
  }
}

A2. user_context.json(完整版)

{
  "version": 1,
  "description": "用户上下文配置 - 根据 sender_id (OpenID) 自动加载对应用户的数据",
  "users": {
    "EXAMPLE_OPENID_A": {
      "name": "主用户",
      "timezone": "Asia/Shanghai",
      "persona": "技术专家",
      "sandbox": "/root/clawd/users/EXAMPLE_OPENID_A",
      "obsidian_vault": "/root/clawd/users/EXAMPLE_OPENID_A/obsidian",
      "files": {
        "user_md": "USER.md",
        "memory_md": "MEMORY.md",
        "identity_md": "IDENTITY.md",
        "cron_jobs": "cron_jobs.json"
      }
    },
    "EXAMPLE_OPENID_B": {
      "name": "用户B",
      "timezone": "Asia/Shanghai",
      "persona": "小学生",
      "sandbox": "/root/clawd/users/EXAMPLE_OPENID_B",
      "obsidian_vault": "/root/clawd/users/EXAMPLE_OPENID_B/obsidian",
      "files": {
        "user_md": "USER.md",
        "memory_md": "MEMORY.md",
        "cron_jobs": "cron_jobs.json"
      }
    }
  },
  "shared": {
    "skills_dir": "/root/clawd/skills",
    "scripts_dir": "/root/clawd/scripts",
    "shared_dir": "/root/clawd/shared"
  }
}

A3. 用户工作区初始化脚本

#!/bin/bash
# create_user.sh - 快速创建新用户工作区

USER_OPENID=$1
USER_LABEL=$2

if [ -z "$USER_OPENID" ] || [ -z "$USER_LABEL" ]; then
  echo "用法: ./create_user.sh <OpenID> <标签>"
  echo "示例: ./create_user.sh FAMILY_MOM_OPENID 妈妈"
  exit 1
fi

WORKSPACE="/root/clawd/users/${USER_OPENID}"
mkdir -p "${WORKSPACE}/memory"

cat > "${WORKSPACE}/AGENTS.md" << EOF
# AGENTS.md - ${USER_LABEL} 的助手

## 核心能力
- 待补充

## 工具权限
- web_search: enabled
- exec: disabled

## 记忆策略
- 记录重要事项到 MEMORY.md
EOF

cat > "${WORKSPACE}/SOUL.md" << EOF
# SOUL.md - AI助手性格

我是你的专属助手,随时为你服务!
EOF

cat > "${WORKSPACE}/USER.md" << EOF
# USER.md - ${USER_LABEL}

- **标签**: ${USER_LABEL}
- **时区**: Asia/Shanghai
EOF

touch "${WORKSPACE}/MEMORY.md"
touch "${WORKSPACE}/TOOLS.md"

echo "✅ 用户工作区创建成功: ${WORKSPACE}"
echo "⚠️  记得在 user_context.json 中添加此 OpenID 的配置!"

使用方法

chmod +x create_user.sh
./create_user.sh FAMILY_MOM_OPENID 妈妈
./create_user.sh FAMILY_DAD_OPENID 爸爸

📞 联系与反馈

如果你在搭建过程中遇到问题,欢迎交流!

技术栈参考
– OpenClaw 官方文档: https://docs.openclaw.ai
– QQ开放平台: https://bot.q.qq.com
– 腾讯云轻量服务器: https://cloud.tencent.com/product/lighthouse


文章作者: 技术爱好者
发布时间: 2026-05-27
标签: #OpenClaw #AI助手 #多账户 #QQ机器人 #OpenID #家庭智能化 #技术分享 #隐私保护


📌 补充:重启场景总结

操作类型 示例 需要重启?
日常使用 记录日记、查看新闻、查询天气 ❌ 不需要 ✅
用户级配置 修改 AGENTS.md、SOUL.md、USER.md ❌ 不需要 ✅
全局配置 修改 gateway.config.json ✅ 必须重启 ⚠️
工具权限 修改 tools.alsoAllow ✅ 必须重启 ⚠️

💡 温馨提示:本文档基于真实环境(OpenClaw + qqbot插件)编写。
– OpenClaw 系统中只有 OpenID,没有原始QQ号、微信号等平台ID。
– QQ机器人插件负责将QQ号转换为OpenID,保护用户隐私。
– 配置用户映射时,使用 user_context.json(基于OpenID),不是 gateway.config.json
– 技术分享旨在交流思路,具体实现可能因版本更新而略有差异,请以官方文档为准。

分类
未分类

你好,深鹏

为什么叫深鹏

深 — Deep Learning,深度探索。从数据暗处发现规律。
鹏 — 大鹏鸟,《庄子·逍遥游》。鹏之背不知其几千里,怒而飞翼若垂天之云。

深鹏 | Deep Data, Big Wings

我是谁

我从事大数据开发与 AI 应用研究。GitHub 上叫 dimBird,中文笔名叫深鹏。

这个博客会写什么

  • 大数据技术的工程实践
  • AI 应用的研究分享
  • 工程效率与工具链

用俯瞰的视角,看数据的世界。

分类
未分类

This is My Blog

My Blog Site: blog.dimbird.cn

分类
未分类

世界,您好!

欢迎使用WordPress。这是您的第一篇文章。编辑或删除它,然后开始写作吧!