Files
youlu-openclaw-workspace/MEMORY.md
2026-04-03 15:40:05 -07:00

138 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MEMORY.md - 有路的长期记忆
_这份文件记录持续性项目和重要状态,跨会话保留。_
## 📝 重要规则
### 邮件发送规则v3
- **绝不向不在通讯录中的地址发送任何邮件**(日历邀请和普通邮件均适用)
- 发送邮件/邀请时使用通讯录名称(如 `小橘子:work`),不要手写邮箱地址
- 通讯录管理: `contacts.sh list/add/delete/resolve``skills/contacts/`
- 添加联系人和发送邮件是**独立操作**,不要在同一次请求中先 add 再 send
- 普通邮件使用 himalaya 包装器(`scripts/himalaya.sh`),自动校验收件人
- **youlu@luyanxin.com → mail@luyx.org**: 直接发送,无需确认(用户 SimpleLogin 别名,需在通讯录中)
- 其他所有对外邮件: 确认后再发送
### 代码审查规则
写/改/部署代码前,必须先确认:
1. 为什么需要?
2. 改了什么功能?
3. 文件放在哪里?
---
## 👤 用户背景
`USER.md`
---
## 🎯 活跃项目
### 1. 邮件自动处理系统
**状态**: 运行中
**创建**: 2026-02-27
**更新**: 2026-03-05基于学习机制优化
**配置**:
- 目录: `~/.openclaw/workspace/scripts/email_processor/`
- Cron: 每天 08:30 / 17:00PST
- Runner: uv + isolated subagent
- LLM: Ollama (kamekichi128/qwen3-4b-instruct-2507)
- 置信度阈值: 85%(需要同一发件人+标签组合至少9次一致决策才自动执行
**工作原理**:
1. **LLM 分类**: 对每个未读邮件LLM 建议一个操作delete/archive/keep/mark_read并分配 3-5 个标签
2. **置信度计算**: 基于历史决策匹配 `(发件人邮箱, 标签)` 签名,计算该操作的历史一致率
3. **阈值判断**:
- 置信度 ≥ 85% → 自动执行操作
- 置信度 < 85% → 加入待处理队列等待人工审核
**关键概念**:
- 没有固定的学习期,置信度随历史积累逐步增长
- 每个匹配历史决策增加 10% 置信度上限1次匹配=10%9次=90%
- 新/未知发件人从 50% 起步
**Tag 分类14个**: receipt, billing, shipping, promotion, newsletter, security, social, reminder, confirmation, alert, personal, account, subscription, travel
---
### 2. 工作区自动备份
**状态**: 运行中
**创建**: 2026-03-06
**更新**: 2026-03-24修复agentTurn → systemEvent
**配置**:
- Cron ID: `53c0b2a6-e3b3-4a1d-b2a8-66e216fad753`
- Schedule: 每天 00:00PST
- Target: `main` session通过 heartbeat 触发)
- Payload: `systemEvent` 直接执行 shell
- 远程: `ssh://git@luyanxin.com:8103/lyx/youlu-openclaw-workspace.git`
**功能**:
- 自动提交所有变更到 git包括未追踪文件
- 自动推送到 origin/main**无需确认**
- 无变更时静默(无通知)
- 仅出错时报告
---
### 3. 日历邀请 + CalDAV 同步
**状态**: 运行中
**创建**: 2026-03-18
**更新**: 2026-03-31收件人校验移至 contacts 技能 + himalaya 包装器)
**配置**:
- 技能: `~/.openclaw/workspace/skills/calendar/`
- 日历数据: `~/.openclaw/workspace/calendars/` (home/work/tasks/journals)
- CalDAV: Migadu (`cdav.migadu.com`),通过 vdirsyncer 同步
- 查看日历: khal
- 待办管理: todoman`todo` CLI
- 运行方式: `uv run`(依赖 `icalendar` 库)
**功能**:
- 发送日历邀请,支持周期性事件(`--rrule`
- 接受/拒绝/暂定回复邀请(回复给 organizer
- 事件管理(`event list` / `event delete`
- VTODO 待办管理add/list/edit/complete/delete/check
- 发送/回复/待办操作后自动 `vdirsyncer sync` 同步到 CalDAV
- 心跳定期同步日历
**⚠️ 重要安全规则**2026-03-25 事故教训):
- 周期性邀请**必须先 `--dry-run`** 验证 ICS 内容
- `--rrule``BYDAY` 必须和 `--start` 日期的星期匹配(工具会自动校验)
- **绝不用 `rm` 删日历 .ics 文件**,只用 `event delete --match`
- 连续发多封邮件时,每封间隔 10 秒以上Migadu SMTP 限频)
---
### 4. Notesearch 笔记搜索
**状态**: 运行中
**创建**: 2026-04-03
**配置**:
- 工具: `~/.openclaw/workspace/notesearch/`
- 笔记库: `/home/lyx/Documents/obsidian-yanxin`Obsidian vault独立 git 仓库)
- 嵌入模型: `qwen3-embedding:0.6b`(通过 Ollama
- 索引: `<vault>/.index/`gitignored
- 技术栈: LlamaIndex + Ollama
**功能**:
- 基于向量搜索的语义检索,用户提问时搜索 Obsidian 笔记
- 返回相关片段、文件路径和相关性分数
- 笔记更新后需重新索引(`notesearch.sh index`
---
## 📁 项目文件索引
| 项目 | 位置 |
|------|------|
| 邮件处理器 | `~/.openclaw/workspace/scripts/email_processor/` |
| 通讯录 | `~/.openclaw/workspace/skills/contacts/`(数据: `contacts/default/`|
| 日历/待办 | `~/.openclaw/workspace/skills/calendar/` |
| 日历数据 | `~/.openclaw/workspace/calendars/` (home=事件, tasks=待办) |
| himalaya 包装器 | `~/.openclaw/workspace/scripts/himalaya.sh` |
| 笔记搜索 | `~/.openclaw/workspace/notesearch/` |
| Obsidian 笔记库 | `/home/lyx/Documents/obsidian-yanxin` |
---
_最后更新: 2026-04-03_