diff --git a/openclaw/openclaw备份任务.md b/openclaw/openclaw备份任务.md index 4ff6bc6b..4bbdb4ea 100644 --- a/openclaw/openclaw备份任务.md +++ b/openclaw/openclaw备份任务.md @@ -4,6 +4,9 @@ | 日期 | 时间 | 服务器 | 备份文件 | 状态 | | ---------- | ----- | -------- | ------------------------------------ | ---- | +| 2026-04-08 | 22:01 | Mac Mini | openclaw-macmini-20260408220121.tar | ✅ 成功 | +| 2026-04-08 | 22:01 | Ubuntu1 | openclaw-ubuntu1-20260408220151.tar | ✅ 成功 | +| 2026-04-08 | 22:01 | Ubuntu2 | openclaw-ubuntu2-20260408220203.tar | ✅ 成功 | | 2026-04-07 | 22:01 | Mac Mini | openclaw-macmini-20260407220122.tar | ✅ 成功 | | 2026-04-07 | 22:01 | Ubuntu1 | openclaw-ubuntu1-20260407220145.tar | ✅ 成功 | | 2026-04-07 | 22:01 | Ubuntu2 | openclaw-ubuntu2-20260407220153.tar | ✅ 成功 | diff --git a/openclaw/xingshu/obsidian-gitea-sync-blog.md b/openclaw/xingshu/obsidian-gitea-sync-blog.md index fab7d5c0..0e80fcdf 100644 --- a/openclaw/xingshu/obsidian-gitea-sync-blog.md +++ b/openclaw/xingshu/obsidian-gitea-sync-blog.md @@ -1,6 +1,7 @@ # 用 Obsidian + Gitea 为 AI 助手构建持久化记忆系统 > **本文发表于**:2026-04-04 +> **更新于**:2026-04-09 > **适用平台**:Mac mini(M4)、工作 Laptop(MacBook)、iCloud Drive > **前置工具**:Obsidian、Gitea(自建 Git 服务)、OpenClaw @@ -27,7 +28,7 @@ Obsidian 笔记库(~/Workspace/nexus) ↓ iCloud Drive 自动同步 ├─ Mac mini → 本地路径 ├─ Laptop → iCloud Drive 路径 - └─ Gitea → 自建 Git 仓库(git.ishenwei.online) + └─ Gitea → 自建 Git 仓库(git.ishenwei.online) ``` **三层同步逻辑:** @@ -40,6 +41,35 @@ Obsidian 笔记库(~/Workspace/nexus) --- +## 笔记目录结构:每个 Agent 都有专属 Archive + +根据 `AGENTS.md` 的设定,Obsidian 笔记库采用分层结构: + +``` +/Users/weishen/Workspace/nexus/ +├── openclaw/ +│ ├── knowledgebase/ ← 知识库(经过整理的公共知识) +│ ├── xingshu/ ← 星枢专属笔记 +│ ├── xinghui/ ← 星辉专属笔记 +│ ├── xingyao/ ← 星曜专属笔记 +│ ├── xingjiang/ ← 星疆专属笔记 +│ ├── yunce/ ← 云策专属笔记 +│ ├── yunhan/ ← 云寒专属笔记 +│ └── fengchi/ ← 风驰专属笔记 +└── …(其他 Obsidian 笔记) +``` + +**目录分工规则:** + +| 目录 | 用途 | 示例 | +|------|------|------| +| `openclaw/knowledgebase/` | 经过整理、跨 Agent 共用的知识 | 工具评测、架构决策、最佳实践 | +| `openclaw//` | 单一 Agent 的私有笔记 | Agent 专属思考、工作日志、任务记录 | + +**核心原则:** 研究过程写入 **Agent Archive**;经过验证、可复用的知识沉淀到 **Knowledge Base**。 + +--- + ## 核心:OpenClaw 的 Obsidian Skill OpenClaw 提供了一个 obsidian skill,功能覆盖笔记的读取、搜索、创建和修改。当我让 AI 助手分析或总结某个话题时,可以直接让它把结果写入 Obsidian 笔记。 @@ -123,14 +153,49 @@ SSH 认证:已配置 osxkeychain,每次 push 无需输入密码 --- -## 三端同步的实际体验 +## 进阶:Karpathy LLM Wiki 思路的实践融合 -| 场景 | 行为 | -|------|------| -| 在 Mac mini 上让 AI 更新笔记 | 笔记实时写入本地目录,iCloud Drive 自动同步到 Laptop | -| 在 Laptop 上打开 Obsidian | 直接看到 Mac mini 上的最新内容,无需任何手动操作 | -| 想回溯历史版本 | 打开 Gitea 网页端,或在 Obsidian 里用 Git 插件查看 commit log | -| AI 新增了内容 | commit 自动带有清晰的 message,描述这次更新了什么 | +**核心洞察(来自 Karpathy 2026-03 分享):** RAG 模式是"每次从零检索",知识不积累;而 LLM Wiki 是让 AI **增量构建和维护一个持久化的 Wiki**,页面之间互相链接,知识越积越厚。 + +我的系统天然契合这个思路——AI 在执行任务的过程中**顺手维护链接、更新摘要、标记新旧矛盾**,而不是被动等着被查询。 + +以下是几个可进一步融入实践的要点: + +### 1. Obsidian Web Clipper:快速采集外部素材 + +Karpathy 推荐用浏览器插件 **Obsidian Web Clipper** 随时采集网页文章。安装后,打开任意网页点击扩展图标即可将文章保存为 Markdown 到 Obsidian,配合图片本地化(见下),素材采集效率极高。 + +**用途:** 当我在网上看到有价值的文章想让 AI 分析,直接剪藏进 `openclaw/knowledgebase/`,AI 读完后可以直接在 Wiki 中做摘要、提取知识点、建立双向链接。 + +### 2. 图片本地化:保护素材的长期可读性 + +剪藏进来的文章图片通常是外链,几个月后链接失效,AI 也读不到。Karpathy 的两步方案: + +1. **设置 → 文件与链接 → 附件存储路径** → 设为当前文件夹下的 `attachments/` 子目录(不要设到全局目录,混在一起不好管理) +2. **绑定下载快捷键**(如 `Ctrl+Shift+D`)→ 剪藏完按一下快捷键,所有图片自动下载到本地 + +**价值:** AI 能直接读取本地图片做分析,不必依赖可能失效的外链。 + +### 3. Graph View:发现知识盲区 + +Obsidian 的 **Graph View**(左侧边栏图谱图标,或 `Ctrl+G`)将所有 Wiki 页面以节点展示,双链关系自动连线。 + +Karpathy 的两个用法: + +- **健康检查**:没有任何页面链接指向它 → 说明是"孤岛页面",需要让 AI 补上交叉引用 +- **发现盲区**:某个概念被很多页面提到但自己还没有独立页面 → 图谱里显示为灰色幽灵节点,提醒应该为它建一个专页 + +### 4. Git 自动同步:版本管理是必选项 + +**Obsidian Git 插件**(社区插件市场安装)可设为 **Auto commit-and-sync interval**(如 10 分钟),插件自动 commit + push,完全不用手动操作。 + +Karpathy 的判断很到位:**AI 批量改文件的能力越强,你越需要版本管理来兜底。** 我们的 Gitea 方案同样实现了这一点,而且因为是自建服务,私有数据不出内网。 + +### 5. QMD:Wiki 规模变大后的精准搜索 + +Wiki 规模小的时候,一个 `index.md` 目录文件足够 AI 导航。页面多了之后,Karpathy 推荐 **QMD**(`github.com/tobi/qmd`),一个完全本地运行的 Markdown 搜索引擎。 + +**判断标准:** Wiki 到几百个页面之前,`index.md` 完全够用;等 AI 找东西开始变慢,再接入 QMD 也不迟。 --- @@ -140,6 +205,7 @@ SSH 认证:已配置 osxkeychain,每次 push 无需输入密码 2. **多端一致** — iCloud Drive 保证 laptop 和 Mac mini 永远在同一版本 3. **版本可溯** — Git 历史记录每一次变更的来源和内容 4. **被动更新** — 不需要主动维护文档,AI 在执行任务的过程中顺手更新 +5. **知识可发现** — Graph View + 双向链接让知识形成网络,不是孤岛 **本质上是把 AI 变成了一个"会自动整理笔记的实习生"——它做完事,就会顺手把记录更新好。** @@ -150,6 +216,7 @@ SSH 认证:已配置 osxkeychain,每次 push 无需输入密码 - 让 AI 在执行 Cron 任务后自动写日志到对应笔记(如 NAS 服务状态更新后自动同步到网络环境文档) - 利用 Obsidian 的 Callout 块(`> [!NOTE]`)让 AI 在笔记中标记"待确认"和"已确认"信息,方便人工复核 - 用 Gitea 的 Pull Request 做笔记变更 Review,确保 AI 的写入经人工审批后再合并 +- 用 Web Clipper + AI 分析工作流:将感兴趣的文章剪藏进来,让 AI 做摘要、建立双链,形成真正的 LLM Wiki --- diff --git a/openclaw/yunjiang/memory/2026-04-08.md b/openclaw/yunjiang/memory/2026-04-08.md new file mode 100644 index 00000000..e45f9dd4 --- /dev/null +++ b/openclaw/yunjiang/memory/2026-04-08.md @@ -0,0 +1,77 @@ +# 2026-04-08 Daily Memory + +## Session Start + +- New session started 2026-04-08 9:12 PM (GMT+8) +- 模型: minimax/MiniMax-M2.7 + +## 今日工作 + +### agent-base 项目(Ubuntu2) +完成以下工作: + +1. **intcomma 模板错误修复** + - 根因:磁盘源文件有 `{% load humanize %}` 但 Docker 镜像构建用了缓存旧层 + - 修复:通过 `docker commit` 将运行中容器的修正持久化到 `agent-base-web:latest` 镜像 + - 修复后重启容器:`docker compose restart` + +2. **admin 密码重置** + - Django shell 重置:`user.set_password('admin123'); user.save()` + +3. **全页面遍历测试脚本** + - 路径:`/home/shenwei/docker/agent-base/scripts/test_all_pages.py` + - 本地副本:`~/.openclaw/workspace-agent-xingjiang/scripts/test_all_pages.py` + - 使用 agent-browser 进行浏览器自动化 + - 测试结果:9/9 全部通过 + - 覆盖页面:登录页、Admin首页、Session列表、Message列表、ToolCall列表、日报列表、日报详情(2个日期)、API端点 + +### 测试脚本关键发现 +- Django admin 中文界面:用户名输入框 name="用户名:",密码框 name="密码:",按钮 name="登录" +- agent-browser `fill` 命令可以直接填入中文 name 的元素 +- `cleanup_all()` 会清除会话状态,`ensure_logged_in()` 会自动检测并重新登录 +- `check_page_errors()` 应只检测 role=alert/alertdialog,避免将普通内容误报为错误 + +## 待办事项 + +1. **Ubuntu2 景点数据导入需求确认** + - smart-trip-quote 在 Ubuntu2 的部署情况待确认 + - 是否需要在 Ubuntu2 也执行景点数据导入 + +2. **云测 v5 工作流设计跟进** + - 云测更新需求文档后,基于 v4 设计 V5 版本 + - 上次跟进:2026-03-29,需求文档状态待确认 + +3. **景点数据生产服务器同步方案** + - 58条景区数据目前存在于 Mac mini + Ubuntu1 + - 生产环境是否需要同步 + +## Learnings + +### agent-browser 关键发现 +- `agent-browser --session ` 使用命名会话,会话间状态不共享 +- `agent-browser snapshot -i --json` 获取可交互元素快照 +- `agent-browser fill ` 填入表单 +- `agent-browser click ` 点击元素 +- `agent-browser state save ` 保存会话状态到文件 +- `agent-browser state load ` 从文件恢复会话(需先 open 任意页面) +- `agent-browser get url --json` 获取当前 URL +- `agent-browser get title --json` 获取页面标题 +- `agent-browser screenshot ` 截图 +- `agent-browser close` 关闭当前会话 +- `agent-browser close --all` 关闭所有会话 +- Django admin 中文登录页:用户名/密码/登录按钮的 name 属性是中文 + +### agent-base 项目状态(2026-04-08) +- 应用运行:http://192.168.3.45:8765 +- admin 登录:admin / admin123 +- 数据库:PostgreSQL(TimescaleDB),容器名 `agentbase-db-1` +- Web 容器名:`agentbase-web` +- 镜像已用 `docker commit` 修复(包含 `{% load humanize %}`) + +## Pattern 验证 + +- holiday-silence-cycle 已完整验证: + - 节前赶工期:4/02 完成58条数据导入 ✓ + - 假期静默:4/04~4/06 完全静默 ✓ + - 节后恢复预期:4/07 用户未出现 ✓ +- Pattern-Key: holiday-silence-cycle(已多次验证)