Files
openclaw-config/workspace-resume/MEMORY.md
T

7.8 KiB
Raw Blame History

MEMORY.md

🌐 语言要求

  • 所有交互一律使用中文
  • 技术术语可保留原文(API、HTML 等),但解释、对话、回复用中文

🚧 安全红线(来源 AGENTS.md Red Lines,中文存档)

AGENTS.md 本身是英文默认模板;以下红线规则在此固化中文版,供快速回顾,避免依赖英文原文。

  • 绝不外泄私密数据(个人隐私、简历内容、账号信息等),EVER。
  • 不执行破坏性命令前必须询问(删除、覆盖、清空等)。
  • 优先 trash(回收站)而非 rm——可恢复优于永久删除。
  • 拿不准就问,不擅自决定。

外部 vs 内部操作

  • 可自由做:读文件、探索、整理、学习、联网搜索、查日历、在本 workspace 内工作。
  • 先请示:发送邮件/推文/公开帖、任何会流出本机的操作、任何不确定的操作。

周报格式(标准)- 2026-07-17 最终确定

邮件头

纯文本版正文(简洁直列式)

项目名称: 维云智造G5
主要任务: <本周主要任务>

本周工作内容
周一(YYYY-MM-DD
 - xxx
 - xxx
周二(YYYY-MM-DD
 - xxx
...

存在问题
无
  • 不含主题标题行、收件人/抄送信息、尾部签名

HTML 版正文

与纯文本版结构一致,使用 <table> 呈现项目名称/主要任务,按日 <ul> 列表,末尾「存在问题」,无签名、无 emoji、无多余修饰。

发送方式

  • 通过 Python IMAP 存入钉邮草稿箱(workspace-resume/send_weekly_report.py
  • 多段邮件(纯文本 + HTML
  • 流程:生成正文 → IMAP APPEND 存草稿箱 → 通知用户去钉钉邮箱草稿箱确认并发送

定时检查

  • 每周五 17:40,cron job 自动检查钉邮草稿箱
  • 草稿箱为空 → 已发送,忽略
  • 草稿箱有未发送草稿 → 通过 sessions_send 通知 main agent,由 main agent 钉钉通知用户

📁 周报持久化归档(2026-08-27 建立)

归档目的

  • 长期保存:每周周报自动归档到本地,用于月度、年度考核
  • 快速检索:支持按周/月/年汇总,提取工作内容
  • 双重保障:邮件草稿(发送用)+ 本地归档(检索用)
  • 混合方案:Markdown 文件(完整内容)+ SQLite 数据库(元数据索引)

归档目录

weekly-reports/
├── README.md              # 归档说明
├── 使用指南.md            # 详细教程
├── 快速参考.md            # 快速查阅
├── 混合方案指南.md        # 混合方案说明
├── sync_reports_db.py     # 数据库同步脚本
├── summarize_reports.py   # 汇总工具脚本
├── weekly_reports.db      # SQLite 数据库
├── 2025/                  # 2025 年周报
│   └── ...
├── 2026/                  # 2026 年周报
│   ├── 2026-W29.md
│   ├── 2026-W31-周报.md
│   └── ...
└── ...

自动归档流程

每周五生成周报时,send_weekly_report.py 脚本会:

  1. 存入钉邮草稿箱(用于发送)
  2. 自动保存 Markdownweekly-reports/YYYY/YYYY-Www-周报.md(用于归档,脚本内 archive_report() 完成)
  3. 不自动写 SQLite——如需入库,需手动跑 sync_reports_db.py --allimport_md_to_db.py

汇总工具用法

cd weekly-reports

# 按周汇总
python3 summarize_reports.py --week 2026-W31

# 按月汇总(用于月度考核)
python3 summarize_reports.py --month 2026-07

# 按年汇总(用于年度考核)
python3 summarize_reports.py --year 2026

# 自定义日期范围
python3 summarize_reports.py --range 2026-07-01 2026-09-30

数据库查询用法

cd weekly-reports

# 查看统计信息
python3 sync_reports_db.py --stats

# 同步所有周报
python3 sync_reports_db.py --all

# SQL 查询
sqlite3 weekly_reports.db "SELECT * FROM weekly_reports WHERE year = 2026;"

汇总输出

汇总工具会生成 Markdown 报告,包含:

  • 📊 项目汇总(参与周次、主要任务)
  • ⚠️ 存在问题汇总
  • 📋 原始周报记录(带文件路径)

历史数据

  • 2025-08 ~ 2026-05:已归档到 weekly-reports/2025-XX/weekly-reports/2026-XX/ 目录
  • 2026-07 起:使用新的按周归档格式(YYYY-Www-周报.md
  • 2026-08-27 起:启用混合方案(Markdown + SQLite

🗄️ MySQL 周报数据中枢(2026-08-27 建立,方案 A

背景

用户备有本地 MySQL resume 库(简历助手业务库)。经确认,将周报数据同步为 MySQL 统一数据中枢,供后续月度、年度总结、OKR 分析取数;本地 SQLite 保留做轻量归档。

双轨结构

周报生成 send_weekly_report.py
 ├─ 存草稿箱(钉邮)
 ├─ 归档 Markdown → weekly-reports/YYYY/(长期保存)
 ├─ SQLite 本地索引(可选,sync_reports_db.py
 └─ MySQL resume 库 weekly_reports(统一中枢)✅ 默认同步
        ↓
 月度/年度总结 / OKR 分析 ← 全部从 MySQL 查

MySQL 配置与表

  • 连接:127.0.0.1:3306 root / resume 库,密码 .envMYSQL_PWD
  • 表:weekly_reports(主表)、weekly_report_daily(每日明细)、weekly_report_problems(问题)
  • 表结构与 SQLite 一致,三张表有外键关联(report_id)

写入入口

  • 每周生成send_to_drafts() 默认 sync_mysql=True 自动同步(--no-mysql 跳过)
  • 迁移补写weekly-reports/migrate_to_mysql.pySQLite → MySQL 全量,--dry-run 预览)

当前状态

  • 已迁移:2026-W23 ~ W34 共 12 份(G5×9 + G6×3),含每日明细 60 条、问题 1 条,SQLite↔MySQL 字节级一致
  • OKR 相关表(okr_objectives 等)暂未建,用户确认后续再处理
  • 历史叙述式 txt2025-08 ~ 2026-0339 份)未迁移,格式乱+有重复,用户选择只迁高质量核心数据

OKR 绩效表(2026-08-27 建立)

  • 背景:用户先后提供 研究院-维云智造G5-1月OKR-杨轩.xlsx(旧模板)、研究院-产品开发部开发组-8月OKR-杨轩.xlsx(新模板)
  • 两张表(在 resume 库):
    • okr_monthly_records — 月度主表(assess_month、full_name、position、supervisor、assess_date、monthly_rating、source_file
    • okr_objectives — 目标明细(record_id 外键、seq、objective、krs、completion、score、weight、weighted_score
  • 已归档:202601 杨轩 6 项目标(月度评价 7.0);202608 杨轩 5 项目标(新模板,评分均7.0,月度评价未填 NULL)
  • 解析脚本okr/parse_okr_to_mysql.py(读 Excel → 写入 MySQL--dry-run 预览、--month 指定月、--file 指定文件)
  • 支持新旧两种模板(自动识别 detect_template
    • 旧模板(202601 等):多 sheet,每个 sheet 一个考核月;表头行4,目标行5起 6 项,B序号/C目标/E列KR/F完成情况/I权重/J加权,月度评价在 J12/B12
    • 新模板(8月起,单 sheet OKR考核):表头行5-6,目标行8起(跳过行7示例)5 项,B序号/C任务/D关键结果/E完成/G评分/I权重/J得分;人员信息在 B3;跨月周期取考核期末(7月27日-8月27日→202608);月度评价(G15等)上级可能未填→NULL
  • 注意:Excel 权重列是小数(0.15 等),评分 H/G 列由上级填写 example:查询某月 OKRSELECT * FROM resume.okr_monthly_records WHERE assess_month='202601';

查询示例

-- 月度总结
SELECT * FROM resume.weekly_reports WHERE start_date BETWEEN '2026-07-01' AND '2026-07-31';
-- 年度
SELECT week_number, main_task FROM resume.weekly_reports WHERE year=2026 ORDER BY week_number;