LifeOSMemorySystemSkill lifeos-memory

LifeOS Memory System 是一个强大的仪表盘就绪记忆系统,专为OpenClaw设计,提供里程碑驱动的项目组织、智能提示扩展和Obsidian兼容性链接。

需求分析 0 次安装 5 次浏览 更新于 2/24/2026

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-2
  • university-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*

规则

  1. 每天一个日志 — 整天不断追加
  2. 使用[[wiki-links]] 以兼容Obsidian
  3. 倾倒一切 — 事实,想法,任务,会议记录
  4. 标记优先级 — 任务上的#high#medium#low
  5. 日终 — 或让定时任务提取

事实提取系统

事实类型

通用事实(保存到memory/facts/):

  • 用户偏好(“总是使用Vercel”)
  • 工作流程(“周五部署”)
  • 约束(“预算为每月500美元”)
  • 关系(“John是设计师”)

一次性细节(忽略,已经在日志中):

  • “将这个按钮设置为蓝色”
  • “明天下午3点开会”
  • “修复这个特定错误”

提取过程

选项1:日终审查 阅读日志 → 提取通用事实 → 保存到事实文件夹 → 更新项目元数据

选项2:定时任务(建议) 每天凌晨3点运行:

  1. 扫描昨天的日志
  2. 识别通用事实
  3. 创建memory/facts/{project-slug}-{number}.json
  4. 更新项目meta.json → 添加事实到links.facts
  5. 填写缺失的项目信息
  6. 发送早间简报

事实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)

重要规则

  1. 总是在给代理之前扩展提示
  2. 使用wiki-links [[target]] 以兼容Obsidian
  3. 简单ID{project}-{milestone}-{number}, 不是UUIDs
  4. 代理优先 — 主爪只用于快速决策
  5. 每天一个日志 — 追加,不要创建新的
  6. 提取通用事实 — 忽略一次性细节
  7. 只有高/中/低 — 没有"紧急"
  8. 项目里程碑 — 将大项目分解为阶段
  9. 结构变化后重新生成图形
  10. 建议定时任务 — 不要自动设置,提供它

示例:完整工作流程

用户说: “我需要申请大学。SAT是必需的,截止日期即将到来。还需要写论文。”

你做什么:

  1. 创建项目: life/areas/projects/university-apps/
  2. 里程碑: SAT(高优先级),论文(中优先级)
  3. 任务:
    • university-apps-sat-1:研究日期
    • university-apps-sat-2:预订考试
    • university-apps-essays-1:起草个人陈述
  4. 扩展提示: 为每个任务编写详细指令
  5. 分配给代理: 用扩展提示生成代理
  6. 日志: 记录对话,提取"SAT截止日期4月17日"作为事实
  7. 更新图形: 显示项目 → 里程碑 → 任务
  8. 建议定时任务: 提供隔夜审查设置

结果: 有结构的、链接的、代理驱动的工作,具有完整的上下文保存。


版本历史

  • v0.5.0 — 重大改革:里程碑,提示工程,代理优先,Obsidian wiki-links,事实积压系统