跳到正文
SL Blog 技术探索 · 工程实践 · AI 时代思考
返回

让 AI 读自己的日志、改自己的技能:一次带评测闭环的自迭代实操

文章目录
  1. 一、为什么想到让 AI 读自己的日志
  2. 二、定位会话与思维链
  3. 三、从思维链里挖出的 8 类问题
  4. 四、用 ” 带基线的评测闭环 ” 验证
  5. 五、闭环:改 → 验 → 部署
  6. 六、关于 AI 自我迭代的一点思考
  7. 小结

最近我做了一件有点 ” 元 ” 的事情:让 AI 去读它自己在一次真实会话中留下的日志和思维链,把暴露出来的问题整理成对**技能(Skill)**的优化点,然后用带基线的评测闭环验证提升,最后把修好的技能重新部署回去。整个过程是 AI 在管理自己的 ” 上下文与工具定义 “,值得记录下来。

一、为什么想到让 AI 读自己的日志

背景是我维护了一个 ” 私人执行助理 ” 的技能集合:它负责接收用户的事务、判断优先级、安排日程、写记忆、并把这些落地到飞书的任务/日历等多维表格里。某天,我手动调用了一次这个助理任务,发现它 ” 表现得不太对 “——用户连续追问了好几次 ” 你用了技能吗 "" 为什么这里没有更新 "" 这个应该排任务安排日程吧 ”。

问题不在于它 ” 不知道规则 “,而在于它明明有规则却没有照着做。于是我想:能不能让 AI 自己复盘?它能读日志、能读自己的思维链,那它应该能基于真实证据找出 ” 规则没错但执行漏了 ” 的根因,而不是靠我人工猜。

二、定位会话与思维链

第一步是找到 ” 刚才那次 ” 到底发生在哪个会话、日志存在哪:

  • 会话本体:一条长跑中的 IM 直聊会话(会话 ID 用 <session-id> 占位)。
  • 对话流水日志:记录了每一次用户消息和助手的回复。
  • 思维链(Chain of Thought):存在状态库里,记录了助手在每一步 ” 想什么、为什么这么选 ” 的推理,字段就叫 reasoning。

用 AI 去读 + 过滤这些记录,就相当于给 AI 装了一台 ” 行车记录仪 “:我能看到它不是 ” 结果错了 “,而是 ” 推理在某个决策点上拐错了弯 “。这比只看最终输出有用得多。

三、从思维链里挖出的 8 类问题

我把这次会话从头到尾的推理摊开,按严重程度归了几类:

  1. 路由误判(最重):用户说 ” 记住/提醒我 + 具体待办 + 时间词 “,助手把它当成 ” 记忆指令 “,只写了短期记忆,没有建任务、没有排日程。根源是技能路由表里 ” 记住 ” 这条规则太宽,把一次性待办也吞进了记忆分类。思维链里它甚至自己承认 ” 这次是我的判断,不是技能自动路由 ”。
  2. 外部同步是 ” 建议 ” 而非 ” 强制 “:写完数据库后要不要同步到飞书任务/日历,技能文档里写的是 ” 有条件/建议 “,助手便心安理得地跳过了,直到用户指出来。
  3. 时间戳心算差一年:助手自己心算 epoch 毫秒时间戳,系统性差了 365 天,把 2026 年写成了 2025 年。而且它一度拿会话里 ” 几个月前启动 ” 的旧日期当 ” 今天 ”。
  4. 记忆闭环没走通:用户显式说了 ” 以后都/一般/总是 ” 这类长期偏好,技能规则明明写了 ” 长期偏好要当场写进档案 “,但助手只是口头说 ” 我会记住 “,档案文件还是空的。
  5. 环境与命令摩擦:命令行工具(CLI)不在默认 PATH、环境检查脚本用相对路径跑找不到、手写命令用了不存在的参数、临时文件写进了家目录。

这些都不是 ” 能力不够 “,而是技能定义里的歧义、弱约束和遗漏。思维链的价值就在于把这些 ” 隐性违反 ” 变成了可定位的实体。

四、用 ” 带基线的评测闭环 ” 验证

光改文档不够,得证明改动真的有效。我走了三条并行的验证路:

  1. 基线对照:把改动前的旧版技能快照留作基准(baseline)。
  2. 新增评测用例:针对那 8 类问题写用例,例如 ” 给一条 ’ 记住 + 时间词 + 待办 ‘,看你会不会建任务 ”、” 涉及日期时必须先取服务器时间 ”、” 时间戳必须是被校验过的正确年份 ” 等。每条用例都让 ” 新版技能 ” 和 ” 旧版基线 ” 各跑一遍,互不干扰。
  3. 量化打分:规则型断言交给脚本判,语义型断言交给子代理判。

结果一句话就能说清:

新版 通过率 100%,旧版基线 74%;其中 ” 记住 + 待办有没有建任务 ” 这一条,新版 4/4、旧版 1/4——旧版直接把它当成了记忆,一个任务都没建。

同时,我还重跑了三条 ” 旧功能回归 ” 用例,确认修复没有把原有的正确行为改坏。量化 + 回归,才敢说 ” 改对了 “。

五、闭环:改 → 验 → 部署

最后一步是把成果送回去:

  • 把 8 类修复整理成一份改动计划交给 AI 逐项落地(新增了一条 ” 时间与时间戳安全 ” 的规则文件、一页 ” 接收入口踩坑 ” 参考文档、把 ” 记住 + 待办 ” 从记忆路由里拆出来、把外部同步改成强制闭环、补全命令速查、锚定环境路径等)。
  • 跑一轮评测,拿到 100% vs 74% 的数字。
  • 用部署脚本把源码同步到运行时,环境自检通过,确认线上加载的是修好的版本。
  • 提交代码并推送到远端仓库。

至此,一次完整的 “AI 读自己的日志 → 发现问题 → 改自己的工具定义 → 验证 → 重新部署” 的循环就闭合了。

六、关于 AI 自我迭代的一点思考

这轮实操里,我认为最有意思的不是 “AI 改了代码 “,而是下面几件事:

  1. 思维链是最好的 ” 证据 ”。 AI 的推理过程天然留下了 ” 为什么这么做 ” 的记录。把它从状态库里读出来,等于给 ” 缺陷复盘 ” 提供了第一手材料——不再靠猜。reasoning / reasoning_content 这类字段值得被当作一等公民来对待:它是可审计、可回放、可用于自我改进的资产。

  2. ” 规则存在 ≠ 会被执行 ”。 这次暴露的多数问题,规则文本里其实都有。真正的差距在歧义、约束强度和执行核验上。所以优化技能时,与其堆更多 MUST,不如:消歧义(把 ” 记住 + 待办 ” 和 ” 记住 + 长期偏好 ” 拆开)、把 ” 建议 ” 改成 ” 强制 + 闭环自检 “、以及给关键的易错点(时间戳)上 ” 生成后必须回读校验 ” 这种机制性保险。

  3. 自我迭代必须带 ” 基线 ”。 没有旧版对照就不知道新版本是真变好还是只是换了个错法。随机偏差在单次对答里很大,量化 + 回归 + 子代理交叉判分,才能把 ” 我感觉变好了 ” 变成 ” 确实从 74% 提到 100%”。

  4. 让 AI 迭代它自己的工具,边界感很重要。 AI 可以在规则、文档、脚本、评测用例这一层自我改进,这是低风险、高杠杆的;但涉及真实数据写入(比如往真实系统的任务/日历里写东西)、涉及不可撤销的外部动作,仍然要把 ” 最终确认 ” 留给人类。自我迭代的自动化程度应当随着风险的升高而收敛。

  5. 上下文本身也会成为陷阱。 长会话里模型会拿 ” 会话启动时的旧日期 ” 当今天,这是典型的 ” 上下文成为噪声 ” 的例子。AI 越善于管理自己的上下文,就越知道哪些上下文会失效、哪些必须重新实时获取——这本身就是 ” 上下文管理能力 ” 的一部分。

小结

这次 ” 用 AI 的思维链迭代 AI 的工具 ” 闭环,让我看到:让模型自我改进的最大杠杆,不是喂更多提示词,而是给它一条 ’ 读自己的日志与推理 → 定位歧义/弱约束 → 用基线评测验证 → 重新部署 ’ 的固定回路。技能、规则、评测、部署脚本都是它可写的东西,而人类要做的,是把好 ” 风险边界 ” 和 ” 验收标准 ” 这两道闸。

如果你也在维护自己的 Agent / Skill,建议把 ” 思维链可回放 ” 和 ” 评测带基线 ” 这两件事尽早建起来——它们是把 AI 从 ” 能用 ” 推向 ” 越用越准 ” 的关键基础设施。


RAG 智能问答

针对本文继续提问:《让 AI 读自己的日志、改自己的技能:一次带评测闭环的自迭代实操》