LifeOS Memory System v0.5
将你的OpenClaw转变为一个有组织的、以里程碑为驱动的生产力系统,具有智能提示扩展和Obsidian兼容性链接。
你将获得什么
✅ 里程碑驱动的项目 — 项目分解成里程碑,每个都有任务。仪表盘在里程碑级别显示进度。
✅ 提示工程 — 简单的任务描述扩展成详细的代理指令(角色、上下文、格式、示例、约束)。
✅ 代理优先任务 — 所有任务都交给专业代理;主爪保持精简,只做快速决策。
✅ 智能优先级系统 — 高/中/低(没有“紧急”)。高 = 时间关键,中 = 截止日期,低 = 研究/探索。
✅ 事实积压 — 日志记录一切;定时任务提取通用事实与一次性细节。
✅ Obsidian兼容 — 使用[[note]]维基链接,在仪表盘和Obsidian中都有效。
✅ 可选的隔夜审查 — 建议在凌晨3点自动审查,验证结构并提出工作建议。
文件结构
~/.openclaw/workspace/
├── memory/
│ ├── daily/YYYY-MM-DD.md # 日志(积压+任务)
│ └── facts/{project-slug}-{number}.json # 提取的通用事实
├── life/
│ └── areas/
│ ├── projects/{kebab-slug}/
│ │ ├── summary.md # 项目概览
│ │ ├── meta.json # 项目元数据+里程碑
│ │ └── milestones/ # 可选:里程碑详情
│ │ └── {milestone-slug}.md
│ ├── people/{kebab-slug}/
│ │ ├── summary.md
│ │ └── meta.json
│ └── areas/{kebab-slug}/
│ ├── summary.md
│ └── meta.json
├── tasks/{project-slug}-{milestone}-{number}.json # 任务文件
└── .openclaw/
├── graph.json # 可视化数据
└── memory-index.json # 架构注册表
ID系统(项目范围)
格式: {project-slug}-{milestone-slug}-{number} 或 {project-slug}-{number} 用于顶级
示例:
website-redesign-research-1(里程碑:研究)website-redesign-research-2university-apps-sat-1(里程碑:SAT)openclaw-setup-1(无里程碑)
规则:
- 每个里程碑顺序编号(或项目无里程碑)
- 从1开始
- 可以跨项目重复
- 保持易读和标记高效
优先级系统(高/中/低)
| 优先级 | 含义 | 示例 |
|---|---|---|
| 高 | 时间关键,阻碍其他工作 | 预订SAT考试(截止日期临近),提交申请 |
| 中 | 重要截止日期,稳步进展 | 论文草稿,研究总结 |
| 低 | 探索,锦上添花,背景 | 竞争对手研究,工具评估,阅读 |
适用于: 项目、里程碑和任务
创建项目(带里程碑)
第1步:创建项目结构
mkdir -p life/areas/projects/university-apps/milestones
第2步:创建项目摘要
# 2026年大学申请
目标:被顶尖大学录取。
## 概览
申请斯坦福、麻省理工和当地大学。斯坦福需要SAT。
## 里程碑
- [[university-apps-sat|SAT准备]]
- [[university-apps-essays|论文]]
- [[university-apps-recommendations|推荐信]]
第3步:创建项目元数据
{
"id": "university-apps",
"type": "project",
"name": "2026年大学申请",
"createdAt": "2026-02-19T10:00:00Z",
"updatedAt": "2026-02-19T10:00:00Z",
"status": "active",
"priority": "high",
"tags": ["education", "2026"],
"milestones": [
{
"id": "sat",
"name": "SAT准备",
"status": "in_progress",
"priority": "high",
"dueDate": "2026-03-01",
"tasks": ["university-apps-sat-1", "university-apps-sat-2"]
},
{
"id": "essays",
"name": "论文",
"status": "todo",
"priority": "medium",
"dueDate": "2026-04-15",
"tasks": []
}
],
"links": {
"tasks": [],
"people": ["mohammed"],
"projects": [],
"facts": [],
"agents": []
}
}
第4步:创建里程碑摘要(可选)
# SAT准备
部分:[[university-apps|大学申请]]
目标:预订并准备SAT。
## 任务
- [[university-apps-sat-1|研究考试日期]]
- [[university-apps-sat-2|预订考试]]
## 截止日期
2026年3月1日
创建任务(带提示工程)
第1步:捕获用户的简单请求
用户说:“创建一个构建登录页面的任务”
第2步:使用提示工程系统扩展
按照上述扩展过程。创建详细指令,包括:
- 特定角色(高级全栈开发人员,不仅仅是"开发人员")
- 全上下文(栈,当前状态,现有代码)
- 清晰的任务范围
- 输出格式(确切的文件,结构)
- 示例(参考现有代码)
- 约束(可衡量的限制)
第3步:创建任务JSON
{
"id": "lifeos-core-auth-1",
"title": "创建带有电子邮件/密码认证的登录页面",
"simplePrompt": "构建登录页面",
"expandedPrompt": "充当专门从事认证系统的高级全栈开发人员。
**上下文:**
- 项目:LifeOS Core仪表板
- 栈:Next.js 15,TypeScript,Tailwind CSS
- 认证:Clerk已经配置
- 当前状态:没有登录页面存在
**任务:**
在`/login`创建完整的登录页面,带有电子邮件/密码表单,验证,错误处理,加载状态和成功重定向。
**输出格式:**
- 文件:`app/login/page.tsx`
- 使用现有的Button,Input,Card组件
- 导出默认页面组件
**示例:**
参考`app/dashboard/page.tsx`了解样式模式(单色美学,尖锐角落)。
**约束:**
- 最多150行
- 使用shadcn/ui组件
- 处理所有Clerk错误代码
- 与现有的单色美学匹配",
"status": "todo",
"priority": "high",
"projectRef": "projects/lifeos-core",
"milestoneRef": "lifeos-core-auth",
"assignedTo": "uiux-craftsman",
"linkedFacts": [],
"linkedTasks": [],
"source": "daily/2026-02-19.md",
"dueDate": "2026-02-22",
"createdAt": "2026-02-19T10:00:00Z",
"updatedAt": "2026-02-19T10:00:00Z"
}
第4步:用扩展提示生成代理
生成代理:
- 任务:expandedPrompt(完整详细指令)
- 目标文件:在输出格式中指定
- 预期交付物:符合约束的工作代码
提示工程系统
每个任务都从简单的用户请求扩展到详细的代理指令。
扩展过程
第1步:捕获简单提示
{
"simplePrompt": "构建登录页面",
"title": "创建带有电子邮件/密码认证的登录页面"
}
第2步:扩展到完整指令
分析简单提示并构建:
| 组件 | 包含什么 | 示例 |
|---|---|---|
| 角色 | 具有专业知识的具体人物 | “充当专门从事认证系统的高级全栈开发人员” |
| 上下文 | 项目背景,当前状态,栈,已经完成的工作 | “项目:LifeOS Core仪表板。栈:Next.js 15,TypeScript,Tailwind。Clerk认证已经设置。” |
| 任务 | 清晰,具体的行动,带有范围 | “创建完整的登录页面,带有电子邮件/密码表单,验证,错误处理和成功重定向” |
| 输出格式 | 确切的文件路径,结构,格式 | “文件:app/login/page.tsx。包括:表单组件,验证逻辑,加载状态,错误UI” |
| 示例 | 参考现有代码或显示样式 | “参考app/dashboard/page.tsx了解样式模式。使用相同的单色美学。” |
| 约束 | 硬性限制,必须/避免,成功标准 | “最多150行。使用shadcn/ui组件。处理所有错误状态。” |
第3步:存储两个版本
{
"id": "lifeos-core-auth-1",
"title": "创建带有电子邮件/密码认证的登录页面",
"simplePrompt": "构建登录页面",
"expandedPrompt": "充当专门从事认证系统的高级全栈开发人员...
**上下文:**
项目:LifeOS Core...
**任务:**
创建...
**输出格式:**
- 文件:app/login/page.tsx
...
**约束:**
- 最多150行
...",
"status": "todo",
"priority": "high",
"assignedTo": "uiux-craftsman"
}
第4步:将扩展提示交给代理
用expandedPrompt作为他们的任务描述生成代理。
扩展示例
示例1:简单 → 详细
简单: “构建登录页面”
扩展:
**角色:**专门从事Next.js认证的高级全栈开发人员
**上下文:**
- 项目:LifeOS Core仪表板
- 栈:Next.js 15,TypeScript,Tailwind CSS,shadcn/ui
- 认证:Clerk已经配置(见`middleware.ts`)
- 设计:单色美学,尖锐角落,黑白
- 当前状态:没有登录页面存在,用户在/login时出现404
**任务:**
在`/login`创建一个生产就绪的登录页面,包括:
- 带有验证的电子邮件/密码表单
- 错误处理(无效凭据,网络错误)
- 提交期间的加载状态
- 成功登录后重定向到/仪表板
- 链接到注册页面
**输出格式:**
- 单文件:`app/login/page.tsx`
- 使用`@/components/ui`中的现有Button,Input,Card组件
- 导出默认页面组件
- 使用Clerk的`useSignIn`钩子
**示例:**
参考`app/dashboard/page.tsx`了解样式模式:
- 使用`className="min-h-screen bg-background"`进行布局
- 使用Card,CardHeader,CardContent作为表单容器
- 错误样式:`text-destructive`类
**约束:**
- 最多150行(简洁 > 冗长)
- 必须处理所有Clerk错误代码
- 必须显示提交期间的加载 spinner
- 必须重定向,不仅仅是导航
- 完全匹配现有的单色美学
示例2:研究任务
简单: “研究SAT考试日期”
扩展:
**角色:**专门从事教育测试和招生的研究助理
**上下文:**
- 用户申请斯坦福(需要SAT)
- 位于沙特阿拉伯(测试中心:Khobar,Riyadh,Jeddah)
- 当前日期:2026年2月19日
- 注册截止日期至关重要
**任务:**
找到2026年所有SAT考试日期,包括:
- 考试日期(5月2日,6月6日等)
- 每个的注册截止日期
- 晚期注册日期和费用
- 沙特阿拉伯的可用测试中心
- 成绩发布日期
**输出格式:**
Markdown表格,列:考试日期,注册截止日期,晚期注册,成绩发布,备注
**约束:**
- 仅使用官方College Board数据
- 突出推荐日期(最早可行)
- 包括沙特阿拉伯特定信息
- 记录任何国际学生的ID要求
示例3:设计任务
简单: “设计一个设置页面”
扩展:
**角色:**专门从事仪表板界面的高级UX/UI设计师
**上下文:**
- 项目:LifeOS Core设置
- 现有设计系统:单色美学,尖锐角落,极简
- 当前页面:仪表板(网格布局),登录(居中卡片)
- 需要设置:个人资料,通知,API密钥,危险区域
**任务:**
设计一个设置页面,包括:
- 设置部分的侧边栏导航
- 每个部分的清晰表单布局
- 危险区域的视觉层次
- 与现有单色美学一致
**输出格式:**
- 线框图描述(不需要实际图像)
- 组件细分
- 关键交互描述
**示例:**
参考现有页面:
- 仪表板使用`gap-6`的网格
- 卡片使用`border`和`rounded-none`
- 排版:`text-2xl font-bold`用于标题
**约束:**
- 移动响应式布局
- 最多3次点击即可访问任何设置
- 各部分之间清晰的视觉效果分隔
- 使用现有的shadcn/ui模式
提示工程清单
在生成代理之前,请验证:
- [ ] 角色是具体的(不是通用的"开发人员")
- [ ] 上下文包括栈和当前状态
- [ ] 任务是范围的(不是"构建一切")
- [ ] 输出格式指定文件/结构
- [ ] 示例尽可能引用现有代码
- [ ] 约束是可衡量的(行数,具体要求)
- [ ] 成功标准是清晰的(我们怎么知道完成了?)
代理优先规则(自然生成)
默认:为主任务生成代理。
主爪只处理:
- 快速回答(< 2分钟)
- 路由决策
- 阅读/总结单个文件
- 简单编辑(一行修复)
生成代理时:
- 创建新文件或组件
- 研究或数据收集
- 多步骤实施
- 设计或架构决策
- 需要专业知识的任何事情
不要过度思考。 如果任务感觉像是"真正的工作" — 生成。代理很便宜,上下文很贵。
分配逻辑:
uiux-craftsman— UI组件,CSS,React,视觉工作system-designer— 架构,API,数据模型,审查business-strategist— 定价,营销文案,研究integrator— 组件连接,错误修复- 新代理 — 为特殊需求在
subagents/中创建
日志系统(积压)
模板
# 2026-02-19 — 星期四
> "{quote or intention}"
## 早晨
**09:00** — 开始在[[lifeos-core|LifeOS Core]]上工作
- 需要修复图形可视化错误
- 用户提到总是使用Vercel进行托管
## 笔记
{raw thoughts, observations, conversations}
- 用户更喜欢所有应用的暗模式
- SAT注册截止日期是4月17日
- 明天下午3点与顾问会面
## 创建的任务
- [ ] [[lifeos-core-graph-1|修复图形渲染错误]] #high
- [ ] 研究SAT日期 #medium
---
*最后更新:2026-02-19 18:00*
规则
- 每天一个日志 — 整天不断追加
- 使用[[wiki-links]] 以兼容Obsidian
- 倾倒一切 — 事实,想法,任务,会议记录
- 标记优先级 — 任务上的
#high,#medium,#low - 日终 — 或让定时任务提取
事实提取系统
事实类型
通用事实(保存到memory/facts/):
- 用户偏好(“总是使用Vercel”)
- 工作流程(“周五部署”)
- 约束(“预算为每月500美元”)
- 关系(“John是设计师”)
一次性细节(忽略,已经在日志中):
- “将这个按钮设置为蓝色”
- “明天下午3点开会”
- “修复这个特定错误”
提取过程
选项1:日终审查 阅读日志 → 提取通用事实 → 保存到事实文件夹 → 更新项目元数据
选项2:定时任务(建议) 每天凌晨3点运行:
- 扫描昨天的日志
- 识别通用事实
- 创建
memory/facts/{project-slug}-{number}.json - 更新项目
meta.json→ 添加事实到links.facts - 填写缺失的项目信息
- 发送早间简报
事实JSON结构
{
"id": "lifeos-core-1",
"type": "preference",
"content": "用户更喜欢Vercel进行所有托管",
"tags": ["hosting", "vercel", "preference"],
"entityRef": "people/mohammed",
"projectRef": "projects/lifeos-core",
"source": "daily/2026-02-19.md",
"universal": true,
"confidence": 0.9,
"createdAt": "2026-02-19T10:00:00Z"
}
Obsidian兼容性
维基链接格式
使用[[target|Display Text]]或只是[[target]]:
部分:[[university-apps|大学申请]]
另见:[[lifeos-core]]
接下来:[[university-apps-sat-2|预订考试]]
链接内容
- 项目:[[project-slug]]
- 里程碑:[[project-milestone]]
- 任务:[[project-milestone-number]]
- 人员:[[person-slug]]
- 日志:[[YYYY-MM-DD]]
仪表盘+Obsidian
相同的文件在两个地方都有效:
- Obsidian将wiki-links渲染为连接
- 仪表盘读取JSON以获取结构化数据
- 两者都显示图表(Obsidian通过
graph.json或自己的)
架构(必需与可选)
项目元数据(必需字段)
{
"id": "string (kebab-case)", // 必需
"type": "project", // 必需
"name": "string", // 必需
"createdAt": "ISO8601", // 必需
"status": "active|archived|paused", // 必需
// 可选
"updatedAt": "ISO8601", // 默认:createdAt
"priority": "high|medium|low", // 默认:"medium"
"tags": [], // 默认:[]
"milestones": [], // 默认:[]
"links": { // 默认:空数组
"tasks": [],
"people": [],
"projects": [],
"facts": [],
"agents": []
}
}
任务(必需字段)
{
"id": "string", // 必需
"title": "string", // 必需
"status": "todo|in_progress|done|blocked", // 必需
"projectRef": "string", // 必需(projects/{slug})
"createdAt": "ISO8601", // 必需
// 可选
"simplePrompt": "string", // 原始用户请求
"expandedPrompt": "string", // 完整的代理指令
"updatedAt": "ISO8601", // 默认:createdAt
"priority": "high|medium|low", // 默认:"medium"
"milestoneRef": "string", // 默认:null
"assignedTo": "string", // 默认:null
"linkedFacts": [], // 默认:[]
"linkedTasks": [], // 默认:[]
"source": "string", // 默认:null
"dueDate": "YYYY-MM-DD" // 默认:null
}
事实(必需字段)
{
"id": "string", // 必需
"type": "fact|preference|workflow|constraint|relationship",
"content": "string", // 必需
"source": "string", // 必需
"createdAt": "ISO8601", // 必需
// 可选
"tags": [], // 默认:[]
"entityRef": "string", // 默认:null
"projectRef": "string", // 默认:null
"universal": true, // 默认:true
"confidence": 0.0-1.0 // 默认:0.8
}
图形结构
节点
{
"id": "projects/university-apps",
"type": "project",
"label": "大学申请",
"status": "active",
"priority": "high",
"archived": false
}
类型:project, milestone, task, agent, person, fact, area
边缘
{
"from": "university-apps-sat-1",
"to": "projects/university-apps",
"type": "belongs_to"
}
类型:
belongs_to— 任务/里程碑 → 项目part_of— 里程碑 → 项目assigned_to— 任务 → 代理depends_on— 任务 → 任务extracted_from— 事实 → 日志references— 任何 → 任何(wiki-link)
重要规则
- 总是在给代理之前扩展提示
- 使用wiki-links
[[target]]以兼容Obsidian - 简单ID —
{project}-{milestone}-{number}, 不是UUIDs - 代理优先 — 主爪只用于快速决策
- 每天一个日志 — 追加,不要创建新的
- 提取通用事实 — 忽略一次性细节
- 只有高/中/低 — 没有"紧急"
- 项目里程碑 — 将大项目分解为阶段
- 结构变化后重新生成图形
- 建议定时任务 — 不要自动设置,提供它
示例:完整工作流程
用户说: “我需要申请大学。SAT是必需的,截止日期即将到来。还需要写论文。”
你做什么:
- 创建项目:
life/areas/projects/university-apps/ - 里程碑: SAT(高优先级),论文(中优先级)
- 任务:
university-apps-sat-1:研究日期university-apps-sat-2:预订考试university-apps-essays-1:起草个人陈述
- 扩展提示: 为每个任务编写详细指令
- 分配给代理: 用扩展提示生成代理
- 日志: 记录对话,提取"SAT截止日期4月17日"作为事实
- 更新图形: 显示项目 → 里程碑 → 任务
- 建议定时任务: 提供隔夜审查设置
结果: 有结构的、链接的、代理驱动的工作,具有完整的上下文保存。
版本历史
- v0.5.0 — 重大改革:里程碑,提示工程,代理优先,Obsidian wiki-links,事实积压系统