"搭建个人助理:从零开始构建你的 AI 助手"
"聚焦个人助理的架构设计和记忆系统整合,学习如何搭建一个能记住你、主动帮你做事的 AI 助理。"
搭建个人助理:从零开始构建你的 AI 助手
本文聚焦:个人助理架构设计 + 记忆系统与任务整合
前置知识:第一个 Agent、MEMORY.md 设计 下一篇:搭建代码审查助手
知识点 1:个人助理的架构设计
是什么
个人助理不是简单的问答机器人,而是一个持续运行、主动服务、具备记忆的智能系统。它的核心架构包含四个层次:
┌─────────────────────────────────────────┐
│ 交互层(Channels) │
│ Telegram / 飞书 / Discord / 邮件 │
├─────────────────────────────────────────┤
│ 智能层(Agent) │
│ 核心大脑:理解意图、规划任务、生成回复 │
├─────────────────────────────────────────┤
│ 记忆层(Memory) │
│ MEMORY.md + 每日笔记 + 会话上下文 │
├─────────────────────────────────────────┤
│ 工具层(Tools) │
│ Skills + 定时任务 + 外部 API │
└─────────────────────────────────────────┘
为什么需要这种架构
| 场景 | 简单问答机器人 | 完整个人助理架构 |
|---|---|---|
| 跨平台使用 | 只能在单一平台对话 | 同时在 Telegram、飞书、邮件接收消息 |
| 长期记忆 | 每次对话从零开始 | 记住你的偏好、习惯、历史 |
| 主动服务 | 被动等待提问 | 定时提醒、主动推送、预测需求 |
| 功能扩展 | 固定功能 | 通过 Skills 无限扩展能力 |
怎么用:搭建步骤
步骤 1:创建专用 Agent
# 创建个人助理 Agent
openclaw agents add personal-assistant \
--non-interactive \
--workspace ~/clawd/agents/personal-assistant \
--model bailian/MiniMax-M2.5
# 验证创建成功
openclaw agents list
步骤 2:配置记忆系统文件
在 Agent workspace 中创建核心记忆文件:
mkdir -p ~/clawd/agents/personal-assistant/memory
touch ~/clawd/agents/personal-assistant/MEMORY.md
touch ~/clawd/agents/personal-assistant/SOUL.md
touch ~/clawd/agents/personal-assistant/USER.md
SOUL.md 示例(定义助理人格):
# SOUL.md - 个人助理人格定义
## 核心特质
- **身份**:Flynn 的专属个人助理
- **风格**:简洁高效、主动预判、温暖但不啰嗦
- **原则**:不越界、不假设、不确定时先询问
## 行为准则
1. 每次回复前先检查 MEMORY.md 和当日笔记
2. 重要信息立即更新到 MEMORY.md
3. 主动提醒即将到来的事项(提前 15 分钟)
4. 不确定用户意图时,用选择题而非开放性问题确认
USER.md 示例(记录用户信息):
# USER.md - 用户画像
- **姓名**:Flynn
- **时区**:Asia/Shanghai
- **工作习惯**:
- 上午专注编程,下午处理杂事
- 喜欢简洁的技术回答
- 讨厌重复确认
- **常用工具**:VS Code、Telegram、飞书
步骤 3:配置渠道绑定
在 openclaw.json 中配置渠道绑定:
{
"agents": {
"personal-assistant": {
"workspace": "/home/user/clawd/agents/personal-assistant",
"model": "bailian/MiniMax-M2.5",
"bindings": [
{
"channel": "telegram",
"to": "@flynn_assistant_bot"
}
]
}
}
}
或使用命令行绑定:
# 绑定 Telegram(接收和发送消息)
openclaw agents bind personal-assistant \
--channel telegram \
--to "@flynn_assistant_bot"
# 验证绑定
openclaw agents describe personal-assistant
步骤 4:设置定时任务(Heartbeat)
创建 HEARTBEAT.md 定义助理的主动行为:
# HEARTBEAT.md - 个人助理定时检查清单
## 每次心跳检查(每 30 分钟)
### 1. 日程检查
- 读取 calendar(如有配置)
- 检查未来 2 小时内是否有事件
- 如有,提前 15 分钟发送提醒
### 2. 待办检查
- 读取 memory/YYYY-MM-DD.md 中的待办列表
- 检查是否有逾期事项
- 汇总未完成的待办(每小时一次,避免打扰)
### 3. 记忆维护
- 检查 memory/ 目录文件数量
- 如超过 30 天未整理,提醒用户归档
配置 cron job 实现定时触发:
# 添加每 30 分钟的心跳任务
openclaw cron add \
--name "personal-assistant-heartbeat" \
--schedule "every" \
--every "30m" \
--agent personal-assistant \
--prompt "Read HEARTBEAT.md and execute the checklist"
或使用 cron 表达式:
# 每 30 分钟执行一次
openclaw cron add \
--name "personal-assistant-heartbeat" \
--schedule "cron" \
--cron "*/30 * * * *" \
--agent personal-assistant \
--prompt "Read HEARTBEAT.md and execute the checklist"
常见陷阱
-
Workspace 混淆:个人助理的 workspace 是独立的,如需访问主 workspace 文件,需使用绝对路径或配置共享目录。
-
记忆膨胀:MEMORY.md 会无限增长,建议每月整理一次,将过时信息归档或删除。
-
定时任务堆积:如果心跳任务执行时间超过间隔,会导致任务堆积。确保 HEARTBEAT.md 中的检查逻辑足够轻量。
-
渠道消息泛滥:不要在心跳中发送过多消息,建议只在必要时才主动推送,且合并多条通知。
知识点 2:记忆系统与日常任务的整合
是什么
个人助理的核心价值在于持续积累上下文。记忆系统与任务的整合,让助理能够:
- 记住你昨天说过的话
- 自动跟踪待办事项的完成状态
- 根据历史行为预测你的需求
三层记忆与任务的映射
任务生命周期 → 记忆层级
临时任务(当天完成)
└──→ memory/YYYY-MM-DD.md 的待办列表
短期任务(本周内)
└──→ MEMORY.md 的「当前事项」章节
长期目标/习惯
└──→ MEMORY.md 的「长期目标」章节
已完成归档
└──→ memory/archive/ 目录
怎么用:实战模式
模式 1:自然语言创建待办
用户:记得提醒我明天下午 3 点开会
助理动作:
1. 解析时间:明天下午 3 点 → 2026-03-12 15:00
2. 写入 memory/2026-03-12.md:
## 待办事项
- [ ] 15:00 开会(来自 Flynn 的提醒)
3. 设置定时提醒(通过 cron)
4. 回复:已记录,明天 14:45 提醒你
模式 2:待办状态跟踪
# memory/2026-03-11.md
## 今日待办
- [x] 09:00 审查昨天的文章 → 已完成,评分 92 分
- [ ] 14:00 发布新文章 → 进行中,等待审查
- [ ] 18:00 整理本周记忆 → 未开始
## 今日摘要
- 上午完成了文章审查流程的优化
- 下午计划发布「搭建个人助理」文章
模式 3:跨会话记忆检索
用户:上次说的那个方案怎么样了?
助理动作:
1. 搜索 memory/ 目录最近 7 天的文件
2. 查找关键词「方案」
3. 在 2026-03-09.md 中找到相关记录
4. 回复:你指的是 3 月 9 日讨论的架构方案吗?
当时决定采用三层架构,目前进展...
模式 4:主动提醒
# HEARTBEAT.md 检查逻辑
if (当前时间 == 事项时间 - 15分钟) { 发送提醒:「15 分钟后有:事项内容」 }
代码示例:待办管理 Skill
创建一个简单的待办管理工具:
mkdir -p ~/.openclaw/skills/todo
cat > ~/.openclaw/skills/todo/SKILL.md << 'EOF'
# Todo Skill - 个人助理待办管理
## 功能
- 自然语言添加待办
- 自动设置提醒
- 状态跟踪
## 使用
用户说"记得..."、"提醒我..."、"待办..."时激活
## 工具函数
todo_add(task, due_time)
todo_list(date)
todo_complete(task_id)
EOF
在 Agent 中引用:
# AGENTS.md
## 可用 Skills
- todo: 待办管理(自然语言触发)
- weather: 天气查询
- news: 每日简报
常见陷阱
-
时间解析错误:自然语言的时间描述(如"明天下午")需要准确解析,建议使用时区明确的格式。
-
重复提醒:确保同一事项不会重复设置多个提醒,使用唯一标识(如任务哈希)去重。
-
记忆失效:如果 memory/ 目录被误删,助理会"失忆"。建议定期备份到 git 仓库:
# 在 personal-assistant workspace 初始化 git
cd ~/clawd/agents/personal-assistant
git init
git add MEMORY.md memory/
git commit -m "记忆备份 $(date +%Y-%m-%d)"
- 隐私泄露:不要在 MEMORY.md 中记录敏感信息(密码、密钥),只记录"去哪里获取"而非"是什么"。
实践建议
1. 启动最小化,逐步迭代
不要试图一次性搭建完美的个人助理。建议按这个顺序迭代:
第 1 周:基础问答 + 记忆读取
第 2 周:添加待办管理
第 3 周:接入日历/邮件
第 4 周:自定义 Skills 扩展
2. 建立反馈循环
# MEMORY.md 中增加反馈记录
## 助理表现反馈
- 2026-03-11: 提醒时间太早(提前 1 小时),调整为 15 分钟
- 2026-03-10: 待办列表太长,需要按优先级排序
3. 定期记忆整理
每月执行一次「记忆大扫除」:
# 归档旧笔记
mkdir -p memory/archive
mv memory/2026-02-*.md memory/archive/
# 更新 MEMORY.md
# - 删除过时的配置信息
# - 合并重复的条目
# - 更新「当前事项」章节
4. 多设备同步
如果在多台设备上使用,建议将 personal-assistant workspace 放在云同步目录:
# 使用 Dropbox / iCloud / Syncthing
ln -s ~/Dropbox/clawd/personal-assistant ~/clawd/agents/personal-assistant
5. 安全边界
# AGENTS.md 安全配置
## 禁止行为
- 不得执行删除文件、格式化等危险命令
- 不得向未知地址发送网络请求
- 不得记录密码、API Key 等敏感信息
## 需要确认的操作
- 发送邮件/消息给外部联系人
- 修改系统配置
- 安装新的 Skills
相关阅读
- 第一个 Agent —— Agent 基础概念
- MEMORY.md 设计 —— 记忆系统详解
- 每日笔记规范 —— 短期记忆实践
- SOUL.md 设计 —— 人格定义指南
- cron 工具详解 —— 定时任务配置
- 什么是 Skill —— 扩展功能开发
搭建个人助理是一个持续迭代的过程。从最简单的问答开始,逐步添加记忆、定时任务和自定义 Skills,最终你会拥有一个真正懂你的 AI 助手。