尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【Agent能自进化,检索系统就不能吗?】——论文阅读笔记: ERSKILL: EVOLVING FOR SKILL-GUIDED ADAPTIVE MEMORY RETRIEVAL
一句话总结这篇文章关注的是检索方法的场景化自适应——这个角度很好打破了常见的检索方法固定的僵化思维具体来说检索动作常用的就那几个关键词检索、向量检索、抽实体-搜实体、沿着知识图谱walk等等。但是不同场景的侧重点不同固定配置并不是最好的解法。ERSkill的思路是演化出适合不同场景的检索动作组合每个动作组合算一个skill再按需选择适合的skill。具体是两个组件底层skill层从这几种检索动作里挑哪几个组合成 skill如果现有场景所有skill都不适配那就演化出个新的skill。上层路由层训练一个模型判断当前场景该用哪个skill支持单选或多选。看这个方法需要关注几个问题既然是演化而不是单skill进化那怎么保证效果提升怎么保证精英子代留存skill演化和路由模型训练同步进行具体怎么配合不存在winner-take-all的场景里路由模型怎么处理关键细节“从这几种动作里挑几个组合成skill如果不适配当前场景就演化一个新的skill出来。”这句话里有几个要素总共涉及哪几种查询动作skill的具体内容有什么skill不是进化而是演化那如何演化出一个新的一个一个看。1. 总共涉及哪几种查询动作查询动作也就是检索工具和知识库本身的设计是分不开的先看库长什么样。➡️作者把对话切成一条条小条目atom每条带原文、时间戳和一条实体名单这条里出现了哪些实体。库建好时一起建了四个索引 实体索引、 语义索引、 关系索引跟什么条目有关系 时间索引。所以只靠索引在库里查的检索方法就有四个entity_search实体检索从 query 里抽出实体查实体索引取出和这些实体相关的条目按 personalized PageRank 排序。排序分两部分实体的重要程度加上条目和 query 的语义相似度。lexical_search词条检索。dense_search语义检索。temporal_focus_expand时间检索LLM先给出查询的时间范围然后去查时间索引记录取出来后面按照语义相似度重排。除了纯检索工具以外检索的一般动作就是外扩作者准备了两种外扩工具similarity_expand语义相似度扩展。拿手上查询结果里的条目去查语义索引。relation_expand关系扩展。拿手上查询结果里的条目去查关系索引关系索引按类型因果、变化、阻碍等有 7 种LLM来指定用哪种。最后一个是LLM工具作者这里有些“油滑”——他把四个不同的动作都压到一个LLM call里去执行llm_process调一次 LLM做四件事 query改写把问题改写成更容易查到东西的问法 结果过滤从查到的条目里去掉与问题无关的留下的用来回答问题 扩展查询条件关系检索时候应该选用的关系或 时间检索中应该使用的时间。 概览摘要给当前查到的证据生成一份概览。这样这个工具可以插到检索流程的任意步骤里。我开始读Abstract的时候觉得这篇论文的方向有点荒诞但盘过这7种查询工具之后就发现日常系统检索用的基础逻辑基本都在这儿了无非是到我的场景我要把哪一层做得更厚的问题。像Zep图上做了三层就是在关系查询上做得厚。但比这层更General的问题是——能不能让Agent自己凭着实际需求调整检索系统的设计——这就是我选择ERSkill做笔记的原因。2. 一个 skill 大概长什么样符合一般 skill 的设计四个字段名字描述声明它管哪类问题information_preference更会处理哪类信息program_json配置参数集合7 个工具选几个不一定只用一个工具一次可以多次按什么顺序排列分别什么超参去调这个配好了就可以直接调用代码出结果了3. 演化技能库怎么长出分工Step 0初始技能库作者先准备了三个skill每个都只包含一个查询动作的 作为初始技能库。经验树一个用于管理分叉树的JSON结构用来记录【一串查询动作是否有效果】执行经验。每个试过的技能按它开头的一串查询动作放进树里开头相同的程序走同一条路。新程序来了顺着同样的开头走就知道有没有试过被拒的技能也留在那里标成「没通过」。Step 1给现有技能跑分。每轮开始时ERSkill会把所有在库的skill逐个放到【训练集上测评】。测评的label由 LLM-as-judge提供按答题正确性打分⚠️不是查没查到东西是最终基于记忆回答的题做对没有记成一张分数表每个技能在每道题上的分数加上执行过程。后面的提出新技能、增删技能库、训练路由器都读这张表。Step 2提出新Skill提出新技能的 LLM 会读分数表、答错的题、答对的题和现有技能。它还会读经验树里试过的skill这样避免重复提出试过的skill以及最近几轮的记录最近提出了什么新skill、过skill被拒绝、为什么被拒绝。然后它会从技能库里挑一个技能在它上面【加】一个查询动作或者【替换】掉一个动作。这里注意【一次只做一个有限变更】。Step 3技能库的增和删。技能库的增和删都看一个分数针对每道题① 库里所有技能在这道题上取得的最高分②所有题的这个最高分 取平均这就是筛新技能的标准。这里算的这个【平均最高分】是跨技能取的不是同一个技能重跑多次也不是 judge 多次打分取最高就是直接从 Step1 的分数表上计算出来的。产生新技能后在新技能上跑所有题目的分数作为Step1 分数表的补充表加上补充表的信息重新算【平均最高分】如果涨分了就入库没涨分就丢弃。反过来新技能入库之后看旧技能用leave-one-out的思路计算如果一个技能去掉后【平均最高分】降低了就说明这个skill至少保证了一种情况达到最好水平——保留否则就删除了。这里有个问题这么演化的种群会不会特别庞大——从增和删两步都做的角度看这个种群如果变得比较大可能是面对了比较复杂的场景。但在这种情况下作者倒是没有提剪枝的事情。4. 路由如何训练随着skill种群的演化一个必然的问题就是——用谁开头已经提到作者用一个冻结的EncoderMLP 作为打分器把【任务prompt】【Skill文本】拼成输入算分。这个东西是用一道题上所有skill的得分的Softmax⚠️注意这就意味着每次Softmax函数覆盖的skill数是不同的作为label 每轮skill演化路由器跟着训一轮。效果从我们读者的主观视角看我们有两层预期第一、自适应系统、或者特化的系统设计面对静态系统设计总是有【本地优势】所以我们可以预期这个方法效果不会差第二、体现自适应系统优越性的最好方案是比对应场景下针对性设计好的特化的系统的效果打平甚至超越。但是作者的主实验是体现自适应系统面对静态系统有优势即便GEPA也在演化但演化的不是检索工具也就是下表上表展示了作者这套方法比一些检索系统固化的系统在查询准确率和回答准确率上都有优势。但是上面说的第二个层面作者没有做不好找靶子吧所以要分析这个系统性能就要看论文的Ablation了。注意这是论文 v1 版本的图我觉得比v2版本的表格好读所以用了这个。图上的L-J评价的回答正确率图中深蓝柱线就是作者方法的全部组件带来的正确率其他不同颜色就是分别拿掉某个组件之后的效果。从上图看 柱线掉的最明显的是skill的路由模型作者在ablation里对照的是用LLM去临时选择用哪个skill结果效果仍然差这么多显示的是经验匹配性比字面匹配性更重要。 效果掉的第二明显的是Skill演化作者的对比组是只使用 语义检索、实体检索和关键检索上图还是给出了如我们预期的结论——自适应系统调整正确的时候效果优于静态设计。评价和感想这篇文章的视角很好——工程程度更高的工具组件也应该是演化的目标。路由器那部分其实可以接入Jev构型的模型让整个流更顺滑而且我还是希望可以把训练和解码都融合一下比如直接输出[Jev-Token] 然后这个位置换个解码方式就完了作者没有引入一个工程中更加常见的复杂度不存在winner-take-all的场景中如何组合选择skill我比较遗憾的是作者没有把演化的过程中的经验认知描述出来比如最终演化的 skill 和最初的 skill 差距多大演化过程中LLM有什么选择偏好和随机选择演化方向有什么效果上的差异所有演化出来的skill都上扩大budget能带来多大的边际收益
RELATED

相关推荐

氧传感器坏了车啥感觉?

氧传感器坏了车啥感觉?

说个前几天进店的真事儿,车主老汤,车开了八万多公里,发动机故障灯亮了快俩月。一开始灯闪了两下,他拍了拍仪表盘,灭了,就没当回事。后来直接常亮,跟粘在上面似的。最闹心的是油耗,以…

📅 2026/11/6 1:48:03
Python编程基础:变量与类型

Python编程基础:变量与类型

概述在这篇文章里面, 大家能够看到关于编程里面非常基础的变量还有类型这两个内容的详细介绍内容, 这包括了变量的命名规则怎么定之类的, 也包括了不同类型的数据应该怎么去操作之类的这些内容等等所有这些关键的步骤都会被分析得非常清楚明白的, 另外的话还会举出具体的实际例…

📅 2026/11/6 1:43:00
为什么“总结这个PDF”根本不够用?ko-lesson:把吃灰课程PPT复活成可复习学习系统的完整指南

为什么“总结这个PDF”根本不够用?ko-lesson:把吃灰课程PPT复活成可复习学习系统的完整指南

【免费下载链接】ko-lesson 一个帮助大学牲期末复习的skill,能将清朝老PPT复活为能看的资料 项目地址: https://gitcode.com/gh_mirrors/ko/ko-lesson 点击查看 免费下载 期末复习季一到,硬盘里吃灰的课程 PPT 反而成了最值钱的学习资料——…

📅 2026/11/6 1:43:00
MORE NEWS

更多资讯

📰

TDR管式土壤水分监测仪原理与应用实践

1. 项目背景与核心价值去年夏天帮朋友调试农场灌溉系统时,发现一个有趣现象:地表传感器显示土壤湿度充足,但作物却出现明显缺水症状。挖开土层后发现,地表以下20cm处已经干涸龟裂。这个经历让我开始关注深层土壤水分监测这个细分领…

📰

SocketChannel非阻塞读写避坑:从面试追问到工程落地

秋招那阵子帮几个学弟做模拟面试,问到一个很典型的问题:“你项目里用了NIO,说说 SocketChannel 吧。”结果大部分人能背出 open、read、write 这几个方法,再往下问“非阻塞模式下 read 返回 0 代表什么”“write 写不完怎么办”“…

📰

并查集与时间戳优化在网格连通性问题中的应用

1. 问题背景与核心思路这道题目来自洛谷P6405,是克罗地亚信息学竞赛(COCI)2014/2015赛季的第二题。题目描述了一个nn的网格,每个格子有两个属性:初始高度h和生长速度v。我们需要找出在某个时刻,高度相同的相…

📰

字典序最小拓扑排序算法详解与实现

1. 问题背景与核心诉求作为一名算法竞赛选手,我在解决图论问题时经常遇到这样一个经典场景:给定一个有向无环图(DAG),如何输出它的拓扑排序?这个问题本身并不复杂,但当遇到"字典序最小拓扑…

📰

时序数据库TDengine在智慧港口中的实践与优化

1. 智慧港口数字化转型中的时序数据挑战在港口运营这个传统重资产行业里,设备状态监控就像给码头装上了"数字神经"。我参与过多个港口数字化项目,亲眼见证过每分钟产生数十万数据点的岸桥设备如何拖垮传统数据库系统。山东港口科技面临的正是这…

📰

基于STM32和蓝牙5.0的智能自行车锁开发实践

1. 项目概述:当自行车遇上智能锁作为一名经常丢车的老骑友,我深知传统机械锁的痛点:要么太重影响骑行体验,要么太轻一剪就断。去年冬天连续丢了两辆电动自行车后,我决定自己动手开发一款真正靠谱的智能防盗锁。经过三个…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬