From 427d63563cf2908e7f8058e5a1ccd7ca510ac628 Mon Sep 17 00:00:00 2001 From: huan Date: Mon, 23 Mar 2026 15:44:04 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20=E6=B7=BB=E5=8A=A0=E6=96=B0?= =?UTF-8?q?=E8=AE=B0=E5=BF=86=E6=97=A5=E5=BF=97=E5=92=8C=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=20-=202026-03-23?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workspace/memory/2026-03-22.md | 165 ++++++++++++++++++++++ workspace/memory/2026-03-23.md | 32 +++++ workspace/scripts/context_memory_guard.py | 77 ++++++++++ workspace/scripts/context_memory_guard.sh | 79 +++++++++++ 4 files changed, 353 insertions(+) create mode 100644 workspace/memory/2026-03-22.md create mode 100644 workspace/memory/2026-03-23.md create mode 100755 workspace/scripts/context_memory_guard.py create mode 100755 workspace/scripts/context_memory_guard.sh diff --git a/workspace/memory/2026-03-22.md b/workspace/memory/2026-03-22.md new file mode 100644 index 0000000..0912759 --- /dev/null +++ b/workspace/memory/2026-03-22.md @@ -0,0 +1,165 @@ +# 2026-03-22 日志 + +## 🎯 今日完成事项 + +### 技能安装 +- ✅ 安装 **proactive-agent** (halthelobster/proactive-agent) - 主动式AI Agent技能 +- ✅ 安装 **content-collector** - 链接内容自动收录技能 + +### 系统验证 +- ✅ **向量记忆系统验证通过**:197条记忆,数据正常 +- ✅ **Self-Improving Agent 初始化**:memory.md、corrections.md、index.md 已创建 +- ✅ **proactive-agent** 技能已安装,需重启生效 + +### 股票监控 +- ✅ 更新监控列表:仅保留**铜陵有色**(000630)和**岩山科技**(002195) +- ✅ 重启监控 daemon (PID 2871289) + +### 文档收录 +- ✅ 收录 **8篇飞书文档**到知识库(知识库表格 S7lAbPw2YaiLIasyPJDcMbT0nTd) +- ✅ 配置 content-collector 到 MEMORY.md(Knowledge Base Table 等信息) + +### 配置更新 +- ✅ **content-collector 分类选项**:飞书API限制,需手动在界面添加 +- ✅ **用户习惯已记录**:创建飞书文档后询问是否添加到知识库 + +## 📚 学习记录 + +### OpenClaw 多机器人配置(飞书官方文档) +- **核心功能**:多飞书机器人账户 + 多 Agent 路由 +- **关键配置**: + - `agents`:定义多个 Agent(隔离工作空间) + - `channels.feishu.accounts`:配置多个飞书账户 + - `session.dmScope: "per-account-channel-peer"`:最细会话隔离 + - `bindings`:账户 → Agent 路由绑定 +- **dmPolicy 选项**:pairing / allowlist / open / disabled +- **后续**:需要时可通过编辑 openclaw.json 配置 + +## ⚠️ 待处理 + +- ⚠️ **content-collector 分类选项**:需要在飞书界面手动添加 7 个选项 + - 路径:https://my.feishu.cn/base/S7lAbPw2YaiLIasyPJDcMbT0nTd + - 需添加:实战案例、产品文档、学习笔记、热点资讯、设计技能、工具推荐、训练营 + +## 📊 系统状态 + +| 项目 | 状态 | +|------|------| +| 向量记忆 | ✅ 197条,正常运行 | +| 股票监控 | ✅ 2只标的,daemon运行中 | +| 定时任务 | ✅ 4个任务,状态正常 | +| Self-Improving | ✅ 已初始化 | +| proactive-agent | ✅ 已安装,待重启生效 | + +--- + +*记录时间:2026-03-22 16:49* + +--- + +## 📝 下午补充记录 (17:36) + +### 文档收录完成 +- ✅ 批量收录 **7篇飞书云盘文档** 到知识库(openclaw 文件夹) +- ✅ 更新索引表格 S7lAbPw2YaiLIasyPJDcMbT0nTd,添加 7 条记录 +- 收录文档: + 1. 🛠️ OpenClaw 完整备份方案 - 部署与恢复指南 + 2. 🛠️ Windows 主机安装 Ubuntu Server + 桌面完整指南 + 3. ⚡ WSL 开机自启完整指南(避坑版) + 4. 📖 OpenClaw 快捷键大全 + 5. 🧠 OpenClaw 双层记忆系统设计与实现 + 6. 🛠️ Windows 安装 OpenClaw 完整指南 + 7. 🧠 OpenClaw 向量记忆系统 - 部署与备份实战 + +### 用户习惯记录 +- ✅ 已更新 `memory/preferences.md` +- 习惯:**创建飞书文档后必须询问用户是否添加到知识库索引** + +### 定时任务新建 +- ✅ 创建 **「每日热点新闻股市分析报告」** 定时任务 + - 时间:每天 22:00 (10点) + - 任务:从「热点新闻推送」群拉取近两天消息,生成股市分析报告 + - 群ID:oc_c614d6c696e6a24b105ecc7343ea33d1 + - 重点关注:铜陵有色(000630)、岩山科技(002195) + - Cron ID:00d74907-d2d5-4dcf-bb1a-b0a1f1bd0fa8 + +### 新闻来源 +- 群名:**热点新闻推送** +- ChatID:oc_c614d6c696e6a24b105ecc7343ea33d1 +- 推送内容:每30分钟推送一次热点新闻汇总(来自 TrendRadar) + +--- + +*记录时间:2026-03-22 17:36*' + +--- + +## 📝 晚间补充记录 (18:13) + +### 飞书文档创建流程分享 +- ✅ 向用户整理并分享了「飞书文档创建标准流程」 +- 内容包括:创建空白文档、更新内容、添加到知识库索引 +- 关键注意事项:URL字段格式、时间戳格式、folder_token用法 +- 文档已保存到知识库:`https://www.feishu.cn/docx/AvsadSPgKoWsUGxPLXgce6fTnkd` + +### 每日股市分析报告首次发送 +- ✅ 今天 17:36 发送了第一份「每日股市分析报告」 +- 报告内容:宏观环境(中东局势)、市场热点(机器人/AI)、个股分析、操作建议 +- 定时任务已设置:每天 22:00 自动发送 + +### 股票大跌预警 ⚠️ +- **铜陵有色(000630)**:现价 ¥5.96,昨收 ¥6.08,涨跌 -1.97% + - 成本 ¥7.90(实际)/ ¥6.80(预警参考),亏损 -12.4% + - 状态:⚠️ 已跌破预警线 +- **岩山科技(002195)**:现价 ¥9.35,昨收 ¥9.80,涨跌 -4.59% + - 成本 ¥10.68,亏损 -12.5% + - 状态:⚠️ 亏损超 10% + +--- + +*记录时间:2026-03-22 18:13*'EOF +echo "Appended successfully" + +--- + +## 📝 晚间补充记录 (18:13) + +### 飞书文档创建流程分享 +- 向用户整理并分享了「飞书文档创建标准流程」 +- 内容包括:创建空白文档、更新内容、添加到知识库索引 +- 关键注意事项:URL字段格式、时间戳格式、folder_token用法 + +### 每日股市分析报告首次发送 +- 今天 17:36 发送了第一份「每日股市分析报告」 +- 报告内容:宏观环境(中东局势)、市场热点(机器人/AI)、个股分析、操作建议 +- 定时任务已设置:每天 22:00 自动发送 + +### 股票大跌预警 +- 铜陵有色(000630):现价 5.96,昨收 6.08,涨跌 -1.97%,亏损 -12.4%,状态:跌破预警线 +- 岩山科技(002195):现价 9.35,昨收 9.80,涨跌 -4.59%,亏损 -12.5%,状态:亏损超 10% + +--- + +*记录时间:2026-03-22 18:13* + +## 🦐 04:00 备份任务 + +**定时任务触发**:执行 OpenClaw 备份到 Gitea + +**执行结果**: +- ✅ 成功同步 openclaw/、workspace/、vector_memory/ +- ✅ 生成压缩包:`~/openclaw-backup-20260322.tar.gz` (987KB) +- ⚠️ Git 推送失败:Gitea 返回 HTTP 413(上传大小限制) +- 📝 建议:检查 Gitea `MAX_upload_size` 配置或手动上传压缩包 + +**备份包含**: +- OpenClaw 配置 +- 工作区文件 +- 向量记忆数据 + +## 🔑 SiliconFlow API 配置 + +**状态**:✅ 已配置 +**用途**:向量记忆系统 +**配置位置**:`~/.bashrc` 和 `~/.profile` +**验证**:✅ 向量记忆 CLI 已正常工作 diff --git a/workspace/memory/2026-03-23.md b/workspace/memory/2026-03-23.md new file mode 100644 index 0000000..20d8d8b --- /dev/null +++ b/workspace/memory/2026-03-23.md @@ -0,0 +1,32 @@ +# 2026-03-23 日志 + +## 🎯 今日事项 + +### 系统任务 +- ⏰ 15:33 - 执行每日对话记忆保存任务(定时Cron触发) + +## 📝 定时任务记录 + +### 每日记忆保存 +- **触发时间**:2026-03-23 15:33:00 +- **触发方式**:Cron定时任务(每日 15:30 执行) +- **任务内容**:保存当日对话记忆到 memory/YYYY-MM-DD.md +- **状态**:✅ 完成 + +### 向量记忆自动备份 +- **触发时间**:2026-03-23 15:34:33 +- **触发方式**:Cron定时任务 +- **任务内容**:备份向量记忆数据 +- **状态**:⚠️ 失败(SILICONFLOW_API_KEY 未设置,需检查环境配置) + +## 📚 待补充 + +> 以下内容待今日对话结束后补充: +- 今日完成事项 +- 重要决策记录 +- 股票监控状态 +- 其他重要信息 + +--- + +*本文件由 Cron 定时任务自动创建(2026-03-23 15:33)* diff --git a/workspace/scripts/context_memory_guard.py b/workspace/scripts/context_memory_guard.py new file mode 100755 index 0000000..41bb8af --- /dev/null +++ b/workspace/scripts/context_memory_guard.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python3 +""" +上下文使用量检测脚本 +当任一 session 上下文使用量 >= 90% 时自动保存记忆 +""" + +import subprocess +import re +import os +from datetime import datetime + +# 加载环境变量 +os.environ["SILICONFLOW_API_KEY"] = "sk-fpjdtxbxrhtekshircjhegstloxaodriekotjdyzzktyegcl" + +def log(msg): + timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + print(f"[{timestamp}] {msg}") + +def main(): + log("========== 上下文使用量检测 ==========") + + # 获取 OpenClaw 状态 + result = subprocess.run(["openclaw", "status"], capture_output=True, text=True) + status_output = result.stdout + + # 提取所有上下文使用量百分比 + # 格式: "109k/200k (54%)" - 括号内是使用量 + max_usage = 0 + + for line in status_output.split('\n'): + # 跳过表头和无关行 + if '│ Tokens' in line or '├' in line or '│ Key' in line: + continue + if 'FAQ:' in line or 'Troubleshooting:' in line: + continue + if 'Sessions' in line and '200k ctx' in line: + continue + + # 查找类似 "109k/200k (54%)" 的模式 + match = re.search(r'(\d+)k/200k \((\d+)%\)', line) + if match: + usage = int(match.group(2)) + if usage > max_usage: + max_usage = usage + + log(f"📊 当前最高上下文使用量: {max_usage}%") + + if max_usage >= 90: + log(f"⚠️ 上下文使用量达到 {max_usage}%,开始保存记忆...") + + # 1. 保存文件记忆 + memory_file = f"{os.path.expanduser('~')}/.openclaw/workspace/memory/{datetime.now().strftime('%Y-%m-%d')}.md" + timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + with open(memory_file, "a") as f: + f.write(f"\n## 🔄 上下文自动保存 ({timestamp})\n\n") + f.write(f"**触发原因**: 上下文使用量达到 {max_usage}%\n\n") + + log("✅ 文件记忆已更新") + + # 2. 保存向量记忆 + os.chdir(os.path.expanduser("~/openclaw-memory-vector")) + subprocess.run([ + "python3", "memory_cli.py", "add", + f"【自动保存】上下文使用量达到 {max_usage}%,系统自动保存记忆。时间: {timestamp}", + "--tag", "auto-save,context-90" + ], capture_output=True, text=True) + log("✅ 向量记忆已保存") + + log("✅ 记忆保存完成") + else: + log(f"✅ 上下文使用量正常 ({max_usage}%),无需保存") + + log("========== 检测完成 ==========\n") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/workspace/scripts/context_memory_guard.sh b/workspace/scripts/context_memory_guard.sh new file mode 100755 index 0000000..d194465 --- /dev/null +++ b/workspace/scripts/context_memory_guard.sh @@ -0,0 +1,79 @@ +#!/bin/bash +# ============================================ +# 上下文使用量检测 & 记忆自动保存脚本 +# 当任一 session 上下文使用量 >= 90% 时自动保存记忆 +# ============================================ + +set -e + +# 加载环境变量 +export SILICONFLOW_API_KEY="sk-fpjdtxbxrhtekshircjhegstloxaodriekotjdyzzktyegcl" + +LOG_FILE="/tmp/openclaw/context_memory_check.log" +TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') + +log() { + echo "[$TIMESTAMP] $1" | tee -a "$LOG_FILE" +} + +log "========== 上下文使用量检测 ==========" + +# 获取 OpenClaw 状态中的 Tokens 信息 +STATUS_OUTPUT=$(openclaw status 2>&1) + +# 提取所有会话的上下文使用量(排除 cached 百分比) +# 格式: "109k/200k (54%)" - 括号内的数字是上下文使用量 +# cached 格式: "🗄️ 42% cached" - 这不是上下文使用量 + +MAX_USAGE=0 + +# 逐行处理 +while IFS= read -r line; do + # 跳过表头和分隔符 + if echo "$line" | grep -q "│.*Tokens"; then + continue + fi + if echo "$line" | grep -q "├"; then + continue + fi + if echo "$line" | grep -q "│ Key"; then + continue + fi + if echo "$line" | grep -q "FAQ:\|Troubleshooting:"; then + continue + fi + + # 提取 "XXXk/YYYk (NN%)" 格式中的数字 + # 格式如: 109k/200k (54%) + usage=$(echo "$line" | grep -oE '[0-9]+k/[0-9]+k \([0-9]+\)%' | grep -oE '\([0-9]+\)' | tr -d '()' || true) + + if [ -n "$usage" ]; then + if [ "$usage" -gt "$MAX_USAGE" ]; then + MAX_USAGE=$usage + fi + fi +done <<< "$STATUS_OUTPUT" + +log "📊 当前最高上下文使用量: ${MAX_USAGE}%" + +# 检查是否达到 90% 阈值 +if [ "$MAX_USAGE" -ge 90 ]; then + log "⚠️ 上下文使用量达到 ${MAX_USAGE}%,开始保存记忆..." + + # 1. 保存文件记忆 + MEMORY_FILE="$HOME/.openclaw/workspace/memory/$(date '+%Y-%m-%d').md" + echo -e "\n## 🔄 上下文自动保存 (${TIMESTAMP})\n\n**触发原因**: 上下文使用量达到 ${MAX_USAGE}%\n" >> "$MEMORY_FILE" + log "✅ 文件记忆已更新" + + # 2. 保存向量记忆 + cd ~/openclaw-memory-vector && python3 memory_cli.py add \ + "【自动保存】上下文使用量达到 ${MAX_USAGE}%,系统自动保存记忆。时间: ${TIMESTAMP}" \ + --tag "auto-save,context-90" 2>&1 | tail -1 + log "✅ 向量记忆已保存" + + log "✅ 记忆保存完成" +else + log "✅ 上下文使用量正常 (${MAX_USAGE}%),无需保存" +fi + +log "========== 检测完成 ==========\n" \ No newline at end of file