刘名喜头像
关注

第32篇-自我改进闭环-Agent如何从经验中学习并沉淀技能

【Skills 系统从入门到精通】第 32 篇:自我改进闭环——Agent 如何从经验中学习并沉淀技能


本篇你将学到

  • 自我改进闭环的完整机制
  • Skills 与 Memory 在自我改进中的协作
  • Agent 从失败中学习的实际案例
  • 技能的迭代进化策略
  • 自我改进的质量控制

读完本篇,你将理解 AI Agent 最令人兴奋的能力——自我学习与持续改进。


一、自我改进的触发时机

1.1 四个触发条件

Agent 会在以下时机自动考虑是否需要创建或修改技能:

触发条件说明示例
完成复杂任务5+ 工具调用的成功任务部署了一个完整的微服务
踩坑后找到正确路径遇到错误、尝试多种方法端口冲突 → 排查 → 解决
被用户纠正用户说"不对,应该这样做"用户纠正了代码审查的标准
发现非平凡工作流无意间找到一个高效方法用组合命令快速分析日志

自我改进触发时机

完成复杂任务

5 步以上工具调用

成功的部署或分析

踩坑后找到正确路径

遇到错误尝试多种方法

端口冲突排查解决

被用户纠正

用户指出正确做法

修正审查标准等

发现非平凡工作流

无意间的高效方法

组合命令的妙用

1.2 不是每次都创建

触发条件只是"考虑"的时机。Agent 会判断这个经验是否值得保存——如果太简单、太特殊或不可复用,它可能不会创建技能。


二、Skills 与 Memory 的协作

2.1 分工模型

需要时刻记住的事实

可复用的操作流程

经验发生

经验类型

Memory
例 这个项目用 PostgreSQL

Skill
例 数据库迁移完整步骤

2.2 配合使用

一个任务经验可能同时更新 Memory 和 Skill:

Agent 完成了一次复杂的生产部署(踩了 3 个坑)
    │
    ├─ Memory 更新
    │   → "生产集群 A 的 kubeconfig 在 /home/user/.kube/config-a"
    │
    └─ Skill 创建/更新
        → deploy-k8s 技能中增加 3 条新 Pitfalls

三、实际案例:从失败中学习

3.1 场景

用户让 Agent 部署一个 Python 服务。Agent 的执行过程:

1. 克隆代码 → 成功
2. pip install → 成功
3. 启动服务 → 失败!端口 8080 被占用
4. 查找占用进程 → 发现旧版本还在运行
5. 停止旧进程 → 成功
6. 重新启动 → 成功
7. 健康检查 → 通过

3.2 Agent 的自我改进

Agent 判断这是一个值得保存的经验(踩坑+解决),创建/更新技能:

skill_manage(
  action="patch",
  name="deploy-python-service",
  old_string="## Pitfalls\n1. ...",
  new_string="## Pitfalls\n1. ...\n2. **Port conflict**: 端口可能被旧版本进程占用。
   排查: lsof -i :8080
   解决: kill 旧进程 PID 后重新启动"
)

3.3 下次受益

下次部署时,Agent 加载 deploy-python-service 技能,看到 Pitfall #2。它会先检查端口再尝试启动,避免重蹈覆辙。

技能Agent用户技能Agent用户下次部署部署 Python 服务启动失败 端口 8080 被占用排查发现旧进程 停止后成功patch 增加 Pitfall 端口冲突条目再部署 Python 服务加载技能看到 Pitfall先检查端口再启动一次成功 避免重蹈覆辙

四、技能的迭代进化

4.1 持续改进

技能不是一次写完就不变的。每次使用都可能发现新的改进点:

v1.0.0初版 基本流程v1.0.1使用后发现遗漏补充编码问题 Pitfallv1.1.0使用后发现新场景增加 JSON日志处理步骤v1.2.0团队反馈审查标准增加 Security 章节技能的迭代进化

4.2 patch 优于 edit 的迭代策略

每次小改进用 patch:

# 好的做法:每次小改进用 patch
skill_manage(action="patch", name="...", old_string="...", new_string="...")

# 不好的做法:每次都用 edit 重写全部
skill_manage(action="edit", name="...", content="完整新内容...")

patch 的好处:

  • Token 效率高
  • 变更历史清晰(diff 明确)
  • 不容易引入意外修改

五、质量控制

5.1 避免低质量技能堆积

自我改进如果不加控制,可能产生大量低质量技能。控制手段:

手段一:写入审批门控

skills:
  write_approval: true

Agent 创建/修改的技能需要人类审批才能落地(下一篇详解)。

手段二:Curator 自动维护

Curator 后台系统会追踪技能使用情况,长期不用的技能被标记为 stale 并归档(第 34 篇详解)。

手段三:description 质量检查

Agent 创建技能时,如果 description 写得太泛(不含 “Use when…”),系统可能不会使用该技能——自然淘汰。

自我改进质量控制

写入审批门控
write_approval
人类审批后落地

Curator 自动维护
追踪使用情况
长期不用标记 stale 归档

description 质量检查
写得泛不被触发
自然淘汰


本篇小结

知识点核心内容
触发时机复杂任务完成、踩坑后解决、被用户纠正、发现工作流
Memory vs Skill事实入 Memory,流程入 Skill
从失败中学习Pitfalls 是最有价值的积累
迭代策略patch 优于 edit,小步快跑
质量控制审批门控 + Curator 维护 + description 淘汰

下篇预告

下一篇讲解写入审批门控——如何让人类审查 Agent 的技能修改。


如果本篇内容对你有帮助,欢迎点赞收藏!有任何疑问,欢迎在评论区交流。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/liumingxiy/article/details/163893388

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--