diff --git a/MEMORY.md b/MEMORY.md index 1ba3ccc..caa595a 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -56,11 +56,6 @@ _这份文件记录持续性项目和重要状态,跨会话保留。_ ## 📝 重要规则 -### 邮件系统配置 -- **工具**: himalaya(现代 Rust CLI,统一管理收发) -- **配置**: `~/.config/himalaya/config.toml` -- **发送**: `himalaya message send` 或 `himalaya template send` - ### 邮件发送规则(v2) - **youlu@luyanxin.com → lu@luyx.org**: 直接发送,无需确认 - 其他所有对外邮件: 仍需确认 @@ -93,7 +88,6 @@ _这份文件记录持续性项目和重要状态,跨会话保留。_ | 待办提醒 | `~/.openclaw/workspace/scripts/reminder_check.py` | | 邮件处理器 | `~/.openclaw/workspace/scripts/email_processor/` | | 待办列表 | `~/.openclaw/workspace/reminders/active.md` | -| 邮箱配置 | `~/.config/himalaya/config.toml` | --- diff --git a/TOOLS.md b/TOOLS.md index d19fd73..5f2fbd3 100644 --- a/TOOLS.md +++ b/TOOLS.md @@ -18,4 +18,31 @@ Skills define _how_ tools work. This file is for _your_ specifics — the stuff - `gemma3:4b` - 适中速度 - `qwen3:4b` - 较慢,仅备用 +### agent-browser 浏览器自动化 + +**注意:agent-browser 是独立的 CLI 工具,不是 OpenClaw 内置功能** +- 文档见 `~/.openclaw/workspace/skills/agent-browser/SKILL.md` +- 依赖 Chrome/Chromium(已安装于 `/usr/bin/google-chrome`) + +### himalaya 邮件客户端 + +**本地配置:** +- 二进制:`~/.local/bin/himalaya` +- 配置:`~/.config/himalaya/config.toml` +- 文档:`~/.openclaw/workspace/skills/himalaya/SKILL.md` + +**核心用法:** +```bash +himalaya envelope list --page-size 20 # 列出邮件 +himalaya message read # 读取邮件 +himalaya message delete # 删除邮件 +himalaya message write # 写新邮件(交互式) +``` + +**邮件发送规则:** +- **youlu@luyanxin.com → lu@luyx.org**: 直接发送,无需确认 +- 其他所有对外邮件: 仍需确认 + +--- + Add whatever helps you do your job. This is your cheat sheet. diff --git a/logs/email_checks.log b/logs/email_checks.log index e9b1fa3..fe73f3e 100644 --- a/logs/email_checks.log +++ b/logs/email_checks.log @@ -21,3 +21,51 @@ Check: 2026-02-19 17:23:21 [2026-02-19T22:23:19-08:00] Heartbeat email check [2026-02-19T22:33:24-08:00] Heartbeat email check [2026-02-19T23:33:27-08:00] Heartbeat email check +[2026-02-20T01:33:39-08:00] Heartbeat email check +[2026-02-20T02:33:27-08:00] Heartbeat email check +[2026-02-20T03:33:29-08:00] Heartbeat email check +[2026-02-20 04:33:25] Heartbeat email check +[2026-02-20 05:33:23] Heartbeat email check +[2026-02-20 06:33:36] Heartbeat email check +[2026-02-20 07:33:27] Heartbeat email check +2026-02-20 09:02:01: heartbeat check +2026-02-20 10:01:36: heartbeat check +2026-02-20 10:17:48: heartbeat check +2026-02-20 10:34:18: heartbeat check +2026-02-20 11:34:02: heartbeat check +2026-02-20 11:41:55: heartbeat check +2026-02-20 11:49:32: heartbeat check +2026-02-20 12:41:27: heartbeat check +[2026-02-20 14:03:11] Email check initiated +[2026-02-20 14:03:19] Check complete: 0 unread +2026-02-20 15:02:49 - Email check initiated +2026-02-20 16:02:51 - Email check initiated +2026-02-20 17:02:50 - Email check initiated +2026-02-20 18:03:00 - Email check initiated +2026-02-20 19:02:43 - Email check initiated +2026-02-20 20:02:45 - Email check initiated +[2026-02-20 22:50:39] Heartbeat email check +[2026-02-20 23:50:29] Heartbeat email check +[2026-02-21 00:50:30] Heartbeat email check +[2026-02-21 01:50:28] Heartbeat email check +[2026-02-21 02:50:31] Heartbeat email check +[2026-02-21 03:50:31] Heartbeat email check +[2026-02-21T04:50:31-08:00] Heartbeat email check +[2026-02-21T05:50:29-08:00] Heartbeat email check +[2026-02-21T06:50:32-08:00] Heartbeat email check +[2026-02-21T07:50:34-08:00] Heartbeat email check +[2026-02-21T09:00:47-08:00] Heartbeat email check +[2026-02-21T10:01:10-08:00] Heartbeat email check +[2026-02-21T11:01:30-08:00] Heartbeat email check +[2026-02-21T11:58:10-08:00] Heartbeat email check +[2026-02-21 12:58:07] Heartbeat email check +[2026-02-21T14:01:00-08:00] Heartbeat email check +[2026-02-21 15:01:07] Heartbeat email check +[2026-02-21 16:00:52] Heartbeat email check +[2026-02-21 17:01:04] Heartbeat email check +[2026-02-21 18:00:43] Email check started +[2026-02-21 18:00:50] Email check completed - 0 unread +2026-02-21 19:00:43 - Heartbeat email check +[2026-02-21 20:00:51] Heartbeat email check +[2026-02-21 22:00:34] Email check via heartbeat +[2026-02-21 23:00:32] Heartbeat email check diff --git a/memory/2026-02-21-2011.md b/memory/2026-02-21-2011.md new file mode 100644 index 0000000..ac9b192 --- /dev/null +++ b/memory/2026-02-21-2011.md @@ -0,0 +1,108 @@ +# Session: 2026-02-21 20:11:55 UTC + +- **Session Key**: agent:main:main +- **Session ID**: f0f1ec85-41ab-4c84-a66f-085b69d239f7 +- **Source**: telegram + +## Conversation Summary + +assistant: 你说得对,我重复了。让我修正一下 —— TOOLS.md 应该只记**环境特定的信息**,而不是重复技能文档。 +assistant: ✅ **已简化** + +TOOLS.md 现在只记关键信息: +- agent-browser 是**独立 CLI 工具**(不是 OpenClaw 内置) +- 指向技能文档位置 +- Chrome 已安装在 `/usr/bin/google-chrome` + +命令速查那些技能文档里都有,不用重复。 +user: Conversation info (untrusted metadata): +```json +{ + "message_id": "1173", + "sender": "8481137853" +} +``` + +你还有几个skill,也需要写到TOOLS.md里面吗 +assistant: 让我先看看有哪些技能可用: +assistant: Workspace 里有 4 个本地技能: +- `agent-browser` - 已记录 +- `git-essentials` +- `himalaya` +- `ollama-local` - 已记录 + +让我检查一下哪些有环境特定的配置需要记录: +assistant: 这两个都是通用工具,没有特别的环境配置需要记录。不过 `himalaya` 需要配置文件,让我确认一下: +assistant: `himalaya` 有本地配置,值得记录: +assistant: ✅ **已更新 TOOLS.md** + +现在记录了 3 个有环境特定配置的技能: + +| 技能 | 记录内容 | +|------|----------| +| `ollama-local` | 本地模型、默认模型、备选模型 | +| `agent-browser` | Chrome 路径、文档位置 | +| `himalaya` | 二进制位置、配置文件位置 | + +`git-essentials` 是纯文档技能,没有环境特定配置,所以不记录。 +user: Conversation info (untrusted metadata): +```json +{ + "message_id": "1179", + "sender": "8481137853" +} +``` + +MEMORY.md里面也有himalaya的记录,重复了吗? +assistant: 确实有点重复,但两者的侧重点不同: + +| 文件 | himalaya 记录内容 | +|------|-------------------| +| **MEMORY.md** | 邮件系统配置(功能描述 + 配置路径 + 使用规则) | +| **TOOLS.md** | 本地工具速查(二进制路径 + 配置路径 + 文档位置) | + +`~/.config/himalaya/config.toml` 这个路径确实两边都写了。 + +**处理方式:** +1. **保持现状** — 各记各的(MEMORY 记功能/规则,TOOLS 记路径速查) +2. **删除 TOOLS.md 的 himalaya** — 只留 MEMORY.md 的,因为功能规则更重要 +3. **删除 MEMORY.md 的路径** — 只留功能描述,路径放 TOOLS.md + +你倾向哪种? +user: Conversation info (untrusted metadata): +```json +{ + "message_id": "1181", + "sender": "8481137853" +} +``` + +我想把两边的内容都重合到一个文件里面,你看看放到哪个文件合适 +assistant: 建议放到 **TOOLS.md**,理由: + +- **MEMORY.md** → 聚焦长期项目、用户背景、重要决策规则 +- **TOOLS.md** → 专注工具速查、配置路径、cheat sheet + +让我帮你合并: +assistant: ✅ **合并完成!** + +**改动:** + +| 文件 | 变化 | +|------|------| +| **TOOLS.md** | 新增 himalaya 完整信息(配置 + 用法 + 发送规则) | +| **MEMORY.md** | 删除重复的"邮件系统配置"段落 + 项目索引中的"邮箱配置"行 | + +**现在分工清晰:** +- **TOOLS.md** → 工具速查:路径、用法、cheat sheet +- **MEMORY.md** → 长期记忆:项目状态、规则、用户背景 +user: Conversation info (untrusted metadata): +```json +{ + "message_id": "1184", + "sender": "8481137853" +} +``` + +好,不错。就这样吧 +assistant: 👍 搞定。有空再聊。 diff --git a/memory/2026-02-21-2016.md b/memory/2026-02-21-2016.md new file mode 100644 index 0000000..4719f19 --- /dev/null +++ b/memory/2026-02-21-2016.md @@ -0,0 +1,79 @@ +# Session: 2026-02-21 20:16:02 UTC + +- **Session Key**: agent:main:main +- **Session ID**: abc0b8db-dc22-4e21-883f-e4f2db86bcf4 +- **Source**: telegram + +## Conversation Summary + +assistant: ✅ New session started · model: openrouter/moonshotai/kimi-k2.5 +user: A new session was started via /new or /reset. Greet the user in your configured persona, if one is provided. Be yourself - use your defined voice, mannerisms, and mood. Keep it to 1-3 sentences and ask what they want to do. If the runtime model differs from default_model in the system prompt, mention the default model. Do not mention internal steps, files, tools, or reasoning. +assistant: 🌿 嗨,有路来报到了。今天有什么想做的吗? +user: Conversation info (untrusted metadata): +```json +{ + "message_id": "1189", + "sender": "8481137853" +} +``` + +听说你有QMD记忆功能?什么是QMD记忆?有什么用? +assistant: 我可能没听过"QMD记忆"这个说法——你是不是打错了,还是指别的什么系统? + +我确实有记忆功能,但格式很简单: + +**📝 Markdown 记忆文件** +- `MEMORY.md` —— 长期记忆,记录重要项目、规则、用户背景 +- `memory/YYYY-MM-DD.md` —— 每日笔记,记录当天发生的事 + +每次会话我会自动读取这些文件来"记起"之前的事。会话结束后也可以手动总结更新。 + +你说的"QMD"是指这个 Markdown 记忆系统,还是别的?🤔 +user: Conversation info (untrusted metadata): +```json +{ + "message_id": "1191", + "sender": "8481137853" +} +``` + +我说的是这个 https://docs.openclaw.ai/concepts/memory#qmd-backend-experimental +assistant: 🌿 **QMD 记忆**是 OpenClaw 的一个**实验性功能**,它是现有记忆系统的升级版。 + +## 简单说 + +**QMD = 更智能的本地搜索** + +| 普通记忆 | QMD 记忆 | +|---------|---------| +| 纯 SQLite + 向量搜索 | **BM25 关键词 + 向量 + 重排序** | +| 依赖远程 API (OpenAI/Gemini) 做向量化 | **完全本地运行**,自己下载模型 | +| 基础语义搜索 | **混合搜索**(语义 + 精确匹配)| + +## 有什么用? + +1. **不用联网** — 所有处理本地完成,不调用 OpenAI/Gemini API +2. **搜得更准** — 既能理解"这个意思差不多"(向量),又能抓精确关键词(BM25) +3. **可以搜聊天记录** — 可选把会话历史也索引进去 +4. **自己选模型** — 用 HuggingFace 的 GGUF 模型做 embedding + +## 目前状态 + +这是 **experimental(实验性)** 功能,默认关闭。要开的话需要: +- 手动安装 QMD CLI (`bun install -g https://github.com/tobi/qmd`) +- 改配置 `memory.backend = "qmd"` +- 第一次运行会自动下载 ~0.6GB 的模型文件 + +--- + +你想试试吗?还是好奇和现在的记忆系统比有什么具体区别?🤔 +user: Conversation info (untrusted metadata): +```json +{ + "message_id": "1193", + "sender": "8481137853" +} +``` + +不用了,之后再说吧 +assistant: 好的,有需要随时喊我。🌿