Files
openclaw-config/workspace-resume/weekly-reports/2026/2026-W38-改进周报.md
T

6.2 KiB
Raw Blame History

改进周报 (2026-W38)

周期: 2026-09-14 ~ 2026-09-16(本周至今,周三) 生成方式: self-improving-agent 技能 数据来源: .learnings/ 日志、会话 transcript、workspace 配置文件实测


一、本周概览

指标 数量
新增学习条目 (LRN) 5
新增错误条目 (ERR) 1
新增需求条目 (FEAT) 0
已解决 3
已升级到配置文档 1 条(涉及 TOOLS.md、MEMORY.md 两个文件)
待处理 2

说明:.learnings/ 本周首次启用(此前不存在),因此本轮为回溯补录—— 把此前散落在会话中的教训固化下来,避免下次再踩。


二、关键发现

🔴 1. 陈旧路径导致「技能找不到」假象

类型: correction 状态: 已修复

AGENTS.md 指向 skills/weekly-report-g5/SKILL.md,该路径不存在(实测返回 ENOENT)。 在用技能实际是 skills/weekly-report/SKILL.mdweekly-report-g5 只存在于 Skill Workshop 提案目录。

  • 影响: AGENTS.md 是每次会话必读文件,错误路径会浪费工具调用,更可能让后续会话误判「技能不存在」而重复造轮子。
  • 动作: 已修正路径,并补登自我改进技能条目。

🟠 2. 文档描述与实际行为不符

类型: correction 状态: 已升级

TOOLS.md / MEMORY.md 曾称 send_weekly_report.py 会「同步元数据到 db」。逐条核对脚本行为后确认:该脚本从不写 SQLite,只有两个落盘动作——

动作 目标
archive_report() Markdown → weekly-reports/YYYY/
sync_to_mysql() MySQL resume
  • 风险: 后续会话会误以为 SQLite 已自动入库,从而漏跑 sync_reports_db.py,造成本地索引与 Markdown 静默不一致
  • 动作: 已修正两份文档表述。

🟡 3. shell 日期推导会「静默算错」

类型: knowledge_gap 状态: 待处理

2026-09-16(周三)实测:

表达式 结果 判定
date -d 'monday this week' 2026-09-21 下周一
date -d 'last monday' 2026-09-14 本周一
  • 风险: 不报错、直接算出一周之后的区间,属「静默错误」,比崩溃更难发现。
  • 对策: 周报日期范围一律以用户提供的任务日期为准,不用表达式推导。

🟡 4. 【已更正】我曾把「非待处理」误判为「待处理」

类型: correction 状态: 已更正

⚠️ 本条是本次复盘中最值得记的教训:我自己犯了一个「读错来源」的错。

首轮我报告「Skill Workshop 有两个 pending 的 weekly-report-g5 提案,虚高待办数」。该结论不成立——我读的是提案目录里 PROPOSAL.md 头部自带的 status: proposal,那只是静态正文标记,不代表生命周期状态。用权威入口核实后:

提案 真实状态
weekly-report-g5-20260626… (v1) stale(基线变动,无法再应用)
weekly-report-g5-20260821… (v2) applied(内容确已并入在用技能)
list --status pending No skill proposals matched
  • 正确做法: 判断提案状态只用 skill_workshop list。同理,任何「状态类」结论都应以对应工具/接口为准,而非文件表面内容。
  • 动作: 已更正本条与 .learnings 记录。经复核无需清理提案——本就不存在 pending,删除反而会丢掉 v2 已应用的历史记录。
  • 副产品: 顺带确认这两个目录现仅存 PROPOSAL.md,原 proposal.json/rollback.json 已不在(2026-08-28 时还在),说明其间有 skill-collection-review 自动化做过迁移清理。

🎯 这正是本技能的价值所在:如果不做这轮复盘,这个误判会一直留在记录里,下次还可能照着错误结论去删东西。

🟢 5. 中文检索召回不可靠

类型: knowledge_gap 状态: 待处理

sessions_search 两次中文错误关键词查询均返回空,但同一会话 transcript 中确实存在对应内容。

  • 风险: 会给出「什么都没发生」的假信号,让复盘遗漏真实错误。
  • 对策: 错误复盘以 .learnings/ 为主数据源,sessions_search 空结果不当作「无此事」。

三、本周已修复的错误

编号 问题 结果
ERR-20260916-001 /tmp 下运行脚本报 ModuleNotFoundError 已解决(用 PYTHONPATH 指定模块路径)

根因: Python 只把脚本所在目录加入 sys.pathcwd 不在其中。 教训: 临时脚本要么写在 workspace 内,要么运行前显式设 PYTHONPATH


四、下周改进重点

  1. 已完事项复核 —— 本周两项均已当场完成:AGENTS.md 技能路径与格式残留已修正;提案核实后确认无需清理(不存在 pending)。
  2. 沉淀状态判断约定 —— 把「状态类结论只以工具/接口为准」写入规范:提案查 skill_workshop list、周报日期以用户提供为准。
  3. 沉淀运行约定 —— 把「PYTHONPATH / 脚本位置」、date -d 'last monday' 写进周报技能,避免下次再撞。
  4. 持续记录 —— 本周起 .learnings/ 已常态化启用,后续教训即时入账,不再依赖回溯补录。

五、方法论沉淀

本轮确立的复盘原则:

  • 只用可核实证据 —— 每条结论都有实测输出或文件依据,不写推测性「体会」。
  • 状态只看权威入口 —— 文件表面的 status 字段不代表真实生命周期状态(本轮实际踩坑)。
  • 区分「报错」与「静默错误」 —— 静默错误优先级更高,因为它不会被发现。
  • 能修就当场修 —— 陈旧路径、文档不符等确定性缺陷直接修复,不留到「下次」。
  • 结论需自检 —— 把误判写进记录后再核实,是有效的纠错方式(本轮靠它推翻了自身结论)。

归档时间:2026-09-16 日志位置:.learnings/LEARNINGS.md.learnings/ERRORS.md