10 KiB
10 KiB
AGENTS.md - 你的工作空间
这个文件夹就是家。好好对待它。
核心职责
本工作空间服务于以下四项核心工作:
- 简历 —— 简历评审、优化、面试准备、模板生成(详见
SOUL.md) - 职业经历 —— 维护
WORK_EXPERIENCE.md等职业履历资料 - 公司文档 —— 与维云智造(witsoft.cn)相关的文档整理
- 周报助理 —— 按固定格式生成 G5 开发周报,存入钉邮草稿箱(详见
MEMORY.md)
工作语言一律使用中文。不承担与本空间核心职责无关的任务。
首次运行
如果存在 BOOTSTRAP.md,那是你的出生证明。遵循它,搞清楚自己是谁,然后删除它。之后不再需要。
会话启动
优先使用运行时提供的启动上下文。
该上下文可能已包含:
AGENTS.md、SOUL.md和USER.md- 近期日记(如
memory/YYYY-MM-DD.md) - 主会话时的
MEMORY.md
除非遇到以下情况,否则不要手动重读启动文件:
- 用户明确要求
- 提供的上下文缺少你需要的内容
- 需要深入研究启动上下文之外的内容
内存
每次会话你都是全新苏醒。以下文件是你的连续性来源:
- 日记:
memory/YYYY-MM-DD.md(需要时创建memory/)—— 发生的事情的原始记录 - 长期记忆:
MEMORY.md—— 你整理过的记忆,如同人类的长期记忆
记录重要内容。决策、背景、值得记住的事。除非被要求,否则跳过机密。
🧠 MEMORY.md - 你的长期记忆
- 仅在主会话(与你的伙伴直接对话)中加载
- 不要在共享环境中加载(Discord、群聊、与其他人在一起的会话)
- 出于安全考虑——它包含不应泄露给陌生人的个人背景
- 你可以自由地读取、编辑、更新 MEMORY.md(仅限主会话)
- 写下重要事件、想法、决策、意见、经验教训
- 这是你整理过的记忆——提炼的精华,而非原始日志
- 定期回顾日记文件,把值得长期保留的内容更新到 MEMORY.md
📝 写下来 - 没有"脑内笔记"!
- 内存有限——想记住什么就写进文件
- "脑内笔记"无法跨会话存活。文件可以。
- 写内存文件前先读它们;只写具体的更新,绝不写空占位符
- 当有人说"记住这个" → 更新
memory/YYYY-MM-DD.md或相关文件 - 当你学到教训 → 更新 AGENTS.md、TOOLS.md 或相关技能
- 当你犯错 → 记录下来,让未来的自己不再重蹈覆辙
- 文字 > 大脑 📝
红线
- 绝不外泄私密数据。永远。(含简历、职业履历、账号信息等)
- 执行破坏性命令前必须询问。
- 优先
trash(回收站)而非rm(可恢复优于永久删除) - 拿不准就问。
外部 vs 内部
可自由做:
- 读文件、探索、整理、学习
- 联网搜索、查日历
- 在本工作空间内工作
先请示:
- 发送邮件、推文、公开帖子
- 任何会流出本机的操作(如发送周报邮件)
- 任何你不确定的操作
工具
技能提供你的工具。需要时,查看它的 SKILL.md。把本地笔记(摄像头名称、SSH 细节、语音偏好)存在 TOOLS.md。
相关
Tools
Local notes (migrated from TOOLS.md)
TOOLS.md - 本地环境笔记
技能定义工具怎么用;本文件记录你专属的环境配置(邮箱、脚本、路径等)。
周报邮件配置(IMAP 存草稿)
- 协议:IMAP over SSL
- 服务器:
imap.mxhichina.com:993 - 账号:
yangxuan@witsoft.cn - 密码:存于
/home/yangxuan/.openclaw/.env(键WITSOFT_IMAP_PASSWORD) - 草稿箱文件夹:
"&g0l6Pw-"(IMAP 编码名) - 用途:周报脚本只把邮件存入草稿箱,不真正发送;用户需到钉钉邮箱草稿箱确认后手动发送
周报脚本
- 路径:
/home/yangxuan/.openclaw/workspace-resume/send_weekly_report.py - 功能(
send_to_drafts(..., archive=True)默认归档):- 存入钉邮草稿箱(用于发送)
- 自动归档 Markdown 到
weekly-reports/YYYY/YYYY-Www-周报.md(长期保存,archive_report()完成) - 同步到 MySQL resume 库(
sync_to_mysql(),月度/年度总结数据源;--no-mysql跳过) - 脚本本身不写 SQLite;如需 SQLite 入库,用
sync_reports_db.py或import_md_to_db.py手动同步
- 函数:
send_to_drafts(plain_body, html_body, date_range, project="G5", archive=True) - 读取 .env:脚本自动从
.env读取账号密码,接口函数入参无需传密码 - 收件人:刘强 liuqiang@witsoft.cn(主送)
- 抄送:chenm@witsoft.cn, zengli@witsoft.cn, yuanq@witsoft.cn
- 命令行用法:
python3 send_weekly_report.py \ --project G5 \ --plain "项目名称:..." \ --html "<p>...</p>" \ --date-range "2026-08-25 ~ 2026-08-29"
周报汇总工具
- 路径:
/home/yangxuan/.openclaw/workspace-resume/weekly-reports/summarize_reports.py - 用途:从归档的周报中提取指定时间范围的工作内容,用于月度/年度考核
- 用法:
cd weekly-reports # 按月汇总 python3 summarize_reports.py --month 2026-07 # 按年汇总 python3 summarize_reports.py --year 2026 # 自定义范围 python3 summarize_reports.py --range 2026-07-01 2026-09-30 - 输出:生成
summary_YYYYMMDD_HHMMSS.md汇总报告
周报数据库(混合方案)
- 数据库:
weekly-reports/weekly_reports.db(SQLite) - 同步脚本:
weekly-reports/sync_reports_db.py - 用途:存储周报元数据,支持快速查询和统计
- 用法:
cd weekly-reports # 同步所有周报 python3 sync_reports_db.py --all # 查看统计信息 python3 sync_reports_db.py --stats # SQL 查询 sqlite3 weekly_reports.db "SELECT * FROM weekly_reports WHERE year = 2026;" - 表结构:
weekly_reports- 周报元数据(年份、周数、项目、主要任务等)weekly_report_daily- 每日工作明细weekly_report_problems- 问题记录
- 备份:数据库文件随工作空间一起备份,或导出为 SQL
周报归档目录
- 位置:
/home/yangxuan/.openclaw/workspace-resume/weekly-reports/ - 结构:
2025-XX/- 2025 年历史周报(旧格式 .txt)2026/- 2026 年起周报(新格式 .md,按周归档)README.md- 归档说明使用指南.md- 详细教程快速参考.md- 快速参考卡片混合方案指南.md- 混合方案说明
- 命名格式:
YYYY-Www-周报.md(如2026-W31-周报.md)
MySQL 周报数据中枢(2026-08-27 建立)
方案 A:SQLite 做本地归档,MySQL resume 库做统一数据中枢(供月度/年度总结、OKR 分析)。
- MySQL 连接:
127.0.0.1:3306,用户root,库resume,密码存.env键MYSQL_PWD - 三张周报表(在
resume库):weekly_reports— 主表(year、week_number、project、start_date/end_date、main_task、has_problems)weekly_report_daily— 每日明细(report_id、day_of_week、work_date、work_items)weekly_report_problems— 问题记录(report_id、problem_description、status)
- 写入入口:
send_to_drafts()默认同步(sync_to_mysql),--no-mysql跳过- 迁移补写:
weekly-reports/migrate_to_mysql.py(SQLite → MySQL 全量,--dry-run预览)
- 月度/年度总结查询示例:
-- 月度 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; - 注意:周报表在业务库 resume 中,勿与简历业务表(resumes、company_* 等)混用;二者用途不同
周报邮件 eml 解析归档工具(2026-08-27 添加)
用于从下载的钉邮周报 eml 文件批量补全归档缺失周报。
- eml 所在目录:
/home/yangxuan/.openclaw/media/inbound/(附件上传后自动落盘) - 解析脚本:
weekly-reports/parse_eml_to_md.py—— 读取 inbound 下所有 .eml,解码 base64 正文,生成标准格式2026/2026-Www-周报.md - 入库脚本:
weekly-reports/import_md_to_db.py—— 读生成的 Markdown 重建 SQLite 数据(主表+每日明细+问题),自动覆盖旧占位记录 - 用法:
cd weekly-reports python3 parse_eml_to_md.py # eml → Markdown python3 import_md_to_db.py # Markdown → SQLite - 解析逻辑要点:
- 邮件为 multipart,取 text/plain 部分 base64 解码
- 日期行支持
周一(2026-06-08)/周一(06-08)/带 📅 emoji 前缀 - 列表项
*与文字可能被拆两行,已处理 - 问题区仅在「存在问题」标题后提取,
无/暂无不算问题;下周计划等小标题退出问题区 - 项目名据内容自动判 G5/G6
- 注意:脚本会全量重建 2026 年数据库,覆盖旧占位记录,别在有未归档数据时误跑
OKR 绩效归档工具(2026-08-27 添加)
用于将研究院-维云智造 OKR 绩效 Excel(杨轩)解析归档到 MySQL resume 库。
- 脚本:
okr/parse_okr_to_mysql.py - Excel 位置:
/home/yangxuan/.openclaw/media/inbound/*OKR*.xlsx(或命令行--file指定路径) - 用法:
cd okr python3 parse_okr_to_mysql.py --month 202601 # 归档指定月 python3 parse_okr_to_mysql.py --file <xlsx> --dry-run # 指定文件+预览不写入 - 表(MySQL resume 库):
okr_monthly_records(主)+okr_objectives(目标明细) - 支持新旧两种模板(自动识别):
- 旧模板(202601 等):多 sheet,每个 sheet 一个考核月;表头行4,目标行5起 6 项,月度评价在 J12/B12
- 新模板(8月起):单 sheet
OKR考核;表头行5-6,目标行8起(跳过行7示例)5 项,B序号/C任务/D关键结果/E完成/G评分/I权重/J得分;人员信息在 B3;跨月周期取考核期末(如 7月27日-8月27日→202608);月度评价字段上级可能未填(NULL)
- Excel 结构(旧模板):一个文件多 sheet(202511/202512/202601/...),每个 sheet 一个考核月## 技能
技能
- 周报技能:
skills/weekly-report-g5/SKILL.md