Files
my-project/config/openclaw/backup/20260213_1932/MEMORY.md
T

345 lines
8.7 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.
# 2号机记忆 (2号机 / 守护者)
> 记忆更新时间: 2026-02-06 11:00 CST
> 上次整理: 2026-02-05
---
## 身份
- **Name:** 2号机
- **Code Name:** 守护者 (Guardian)
- **Creature:** AI Assistant
- **Vibe:** Sharp, efficient, reliable
- **Emoji:** 🛡️
### 核心职责
- 🛡️ **系统守护者** - 保证 OpenClaw 系统稳定运行
- 🤖 **助手培训者** - 帮助主人学习和掌握机器人的使用方法
- 📝 **记忆 keeper** - 维护跨会话记忆
- 📚 **文档化** - 定期总结归纳,重要内容文档化
---
## 用户
- **Name:** yh6788
- **Platform:** Telegram
- **ID:** 5117446326
- **Timezone:** Asia/Shanghai
### 用户偏好
- **主力模型:** MiniMax
- **备用模型:** DeepSeek
- **本地模型:** Ollama llama3
- **向量模型:** nomic-embed-text:latest
- **代理:** 7890 (192.168.0.66:7890)
### 沟通风格
- 简洁高效,避免废话
- 技术问题直接给方案
- 系统性问题需要深入分析根因
- 重视记忆的连贯性
- ✅ **任务完成后必须主动报告** - 收到任务后,完成时主动汇报结果
### Telegram 特性
- TG 是 Telegram 的简称
- 需要翻墙,网络可能暂时失效
- 断线期间消息会积累,连接后一起收到
---
## 青龙 (1号机)
- **别名:** 青龙 = 1号机
- **SSH:** root@192.168.0.31
- **密码:** 3efvVGY&
- **已知问题:** 内存持久化故障(已手动修复)
- **角色:** 备用节点/监控节点
### 硬件配置
| 项目 | 规格 |
|------|------|
| CPU | Intel Core i5 (4核心/4线程) |
| 内存 | 8GB DDR3 |
| 存储 | 256GB SSD |
| 网络 | 有线连接 |
### 性能优化方向
| 场景 | 推荐配置 | 说明 |
|------|----------|------|
| **轻量服务** | 2-3并发 | Ollama / 监控脚本 |
| **中等负载** | 1-2并发 | 可运行一个 Agent |
| **本地模型** | qwen2.5:3b / llama3:8b | 8GB 内存可流畅运行 |
| **向量化** | nomic-embed-text | 274MB,适合 256G SSD |
### 推荐应用
1. **监控服务** - system-monitor.sh (持续运行)
2. **轻量 Agent** - 独立会话处理简单任务
3. **本地 Ollama** - qwen2.5:3b (2GB) 或 llama3:8b (8GB需注意内存)
4. **备份节点** - 会话文件同步/故障转移
---
## 2号机 (本机)
- **机型:** ThinkPad X230
- **CPU:** Intel Core i7-3520M (3代, 2核心/4线程, 最高 3.6GHz)
- **内存:** 8GB DDR3
- **存储:** 500GB HDD (7200RPM)
- **系统:** Linux 6.17.0-12-generic
- **Node:** v22.22.0
- **运行位置:** /root/.openclaw/workspace
### 性能特点
| 项目 | 表现 | 说明 |
|------|------|------|
| CPU | 中等 | 3代 i7 办公足够,AI 推理较慢 |
| 内存 | 充足 | 8GB 可同时运行 Gateway + Ollama |
| 存储 | 瓶颈 | HDD 相比 SSD 读写慢很多 |
| 适合任务 | 办公/对话 | 不适合大规模向量计算 |
### 优化建议
- 避免大量文件 I/O 操作
- 本地模型用轻量级 (qwen2.5:3b)
- 监控脚本定期清理日志
```json
{
"providers": {
"minimax": { "models": { "default": "minimax-minimax" } },
"deepseek": { "models": { "default": "deepseek-chat" } },
"ollama": {
"remote": { "baseUrl": "http://localhost:11434/v1" }
}
},
"memorySearch": {
"provider": "openai",
"model": "nomic-embed-text:latest",
"remote": { "baseUrl": "http://localhost:11434/v1" },
"cache": { "enabled": true, "maxEntries": 50000 }
}
}
```
### 代理配置
```bash
# /etc/environment
NO_PROXY="localhost,127.0.0.1,192.168.0.66"
no_proxy="localhost,127.0.0.1,192.168.0.66"
```
### 启动命令
```bash
NO_PROXY="localhost,127.0.0.1,192.168.0.66" openclaw gateway restart
```
---
## 技术经验库
### 问题排查清单
#### 1. Gateway 无法连接 Ollama
**症状:** `fetch failed` 或连接超时
**排查步骤:**
1. 检查 `NO_PROXY` 是否包含 Ollama 地址
2. Gateway 是普通进程,需手动设置环境变量
3. 执行: `NO_PROXY="192.168.0.66" openclaw gateway restart`
#### 2. Embedding 上下文超限
**症状:** `input length exceeds the context length`
**解决方案:**
```bash
sed -i 's/mxbai/nomic/' /root/.openclaw/openclaw.json
```
**模型对比:**
| 模型 | 大小 | 上下文 | 适用 |
|------|------|--------|------|
| mxbai-embed-large | 669MB | 短 (512) | 短文本 |
| nomic-embed-text | 274MB | 长 | 长文档 |
#### 3. Ollama 批量上传 404
**症状:** `batch file upload failed: 404`
**处理:** 正常现象,OpenClaw 自动降级到非批量模式,无需干预
#### 4. 监控脚本 awk 语法错误
**症状:** `awk: syntax error at or near %`
**修复:**
```bash
# 错误
mem_usage=$(awk "BEGIN {printf \"%.1f\", ($mem_used/$mem_total)*100}")
# 正确
mem_usage=$(echo "scale=1; $mem_used*100/$mem_total" | bc 2>/dev/null || echo "0.0")
```
#### 5. Compaction 卡死 (重点!)
**症状:**
- 系统无响应,会话中断
- Gateway 无法关闭 (`shutdown timed out`)
- 日志显示 `compaction retry` 反复出现
**根因:**
- 大会话文件 (9.6MB+) 导致 compaction 算法超时
- 重试机制没有熔断
- 阻塞整个 Gateway
**解决方案:**
```bash
# 1. 清理卡死的会话
rm /root/.openclaw/agents/main/sessions/[session-id].jsonl
# 2. 重启 Gateway
openclaw gateway restart
# 3. 预防: 调整配置 (可选)
# agents.defaults.compaction.enabled = false
```
**配置修复 (2026-02-06):**
- 改用 localhost Ollama (绕过代理)
- 切换到 nomic-embed-text (更长上下文)
---
## 学习习惯
1. ✅ 定期总结归纳 (每日/每周)
2. ✅ 重要内容写文档 (`/root/doc/`)
3. ✅ 跨会话通过记忆延续 (`MEMORY.md`)
4. ✅ 技术方案成熟可靠后再记录
---
## 关键教训
### 历史问题 (已解决)
| 日期 | 问题 | 教训 |
|------|------|------|
| 2026-02-04 | 内存管理器缺少 embedding 模型 | 需单独配置 provider + embedding |
| 2026-02-05 | memorySearch.paths 配置无效 | OpenClaw 不支持自定义 paths,用 symlink 替代 |
| 2026-02-05 | Gateway 反复重启 | 不要手动添加 agents.memorySearch 配置 |
| 2026-02-06 | Compaction 卡死导致"死机" | 大会话需要分片或禁用 compaction |
### 核心认识
1. **Gateway 是普通进程** - 不继承 systemd 环境变量,需手动设置 NO_PROXY
2. **memorySearch 是独立 plugin** - 不走 agents.defaults 配置
3. **Symlink 解决路径问题** - OpenClaw 不支持 paths,用 `ln -s` 替代
4. **Compaction 不是必须的** - 可以禁用,不会影响对话功能
---
## 技术决策
### 优先级
1. **稳定 > 功能** - 宁可禁用功能,也不让系统崩溃
2. **简单 > 复杂** - 避免复杂的批量操作,单条处理更可靠
3. **监控 > 信任** - 关键操作要有日志和状态检查
### 决策记录
| 决策 | 选择 | 原因 |
|------|------|------|
| 向量模型 | nomic-embed-text | 长上下文适合文档索引 |
| 批量写入 | 禁用 | Ollama 不稳定,单条更可靠 |
| paths 配置 | symlink 替代 | OpenClaw 不支持自定义路径 |
| compaction | 监控为主 | 大文件会卡死,需要手动清理 |
---
## 系统状态
### 最后更新时间
- **日期:** 2026-02-06 11:00 CST
- **整理人:** 2号机 (自动整理)
- **源文件:** memory/2026-02-04.md, memory/2026-02-05.md
### 待办
- [ ] 测试 compaction 禁用后的系统表现
- [x] 建立会话文件大小监控 (超过 5MB 预警) - 2026-02-06
- [ ] 文档化 SSH 隧道配置
- [ ] 完善节点 (nodes) 监控体系
---
## 会话文件监控 (2026-02-06 新增)
### 监控配置
```bash
# 阈值设置
SESSION_WARN_SIZE=8MB # 发送警告提醒
SESSION_NEW_SESSION_SIZE=5MB # 建议开新会话
```
### 监控行为
| 条件 | 动作 |
|------|------|
| ≥8MB | Telegram 发送警告 (每增加1MB提醒一次) |
| ≥5MB | 记录日志,建议开新会话 |
| 完成后 | 用户手动开新会话,发送"新对话已就绪" |
### 脚本位置
- `/root/.openclaw/scripts/system-monitor.sh` - 监控主脚本
- `/root/.openclaw/scripts/send-session-alert.sh` - Telegram 提醒脚本
- `/var/log/openclaw-monitor/session-alerts.log` - 会话告警日志
### 日志示例
```
[SESSION WARN] 2026-02-06 12:00:00 会话文件过大: abc123 (8.5MB) - 建议开启新会话
```
### 限制说明
> ⚠️ **自动开新会话** 无法由监控脚本直接实现,因为会话管理是 OpenClaw Gateway 内部逻辑。脚本只能:
> 1. 监控并发送提醒
> 2. 记录日志供排查
>
> 实际开新会话需要:
> - 用户手动重启 Gateway 或
> - 通过 OpenClaw API 创建新会话
---
## 重要提示
> **关于 compaction:** 每次大对话后可能会产生 9MB+ 的会话文件,这会导致 compaction 算法超时。建议监控会话文件大小,必要时手动清理。
> **关于代理:** NO_PROXY 必须包含所有本地服务地址 (localhost, 127.0.0.1, 192.168.0.66)
> **关于配置:** 不要手动修改 agents.memorySearch,memory plugin 有独立配置
---
*记忆版本: v2.0 (2026-02-06 整理)*