我是怎么用LangChain的DeepAgents开发了检索增强的skills实现智能问答功能?

作者:互联网

2026-04-18

AI快讯

“ openclaw的出现,打破了传统智能体的僵硬流程,大大扩展了智能体的应用场景。”

最近在研究openclaw在具体业务场景中的应用,然后就利用langchain框架提供的deepagents功能开发一个支持skills的智能体,来优化当前检索增强(RAG)功能。

使用skills实现检索增强

在openclaw出现之前,做RAG检索增强要么是用传统的被动式检索方式,即用户提问,问题优化,相似度计算;要么使用主动检索方式,使用agent主动调用工具实现更复杂的召回策略。

但不管使用哪种方式都存在一个问题,那就是整个系统太僵化了,不够智能;而openclaw爆火之后,特别是使用不同的skills+tools,可以实现更复杂的业务场景。

为什么会有这种想法?

在openclaw之前,开发一个智能体要只能做检索,要么只能完成某个类型的任务;但有了openclaw之后,就可以给智能体提供不同的skills技能,让智能体自主规划,自己使用技能,来完成复杂的任务。

比如说,给智能体提供RAG检索增强的技能,提供写PPT的技能,再接入微信,钉钉等社交工具,这样我们就可以通过给智能体发消息的方式,来让智能体直接帮我们做PPT,做方案,做总结,而缺少的知识点,也可以通过RAG检索增强的方式来补充。

总之,openclaw小龙虾的出现使得智能体能够从一个只会聊天的机器人,变成了一个真正能够解决问题的“人”。

那我是怎么做的呢?

首先,使用deepagents的create_deep_agent创建一个智能体,具体参数如下图所示。skills目录就是技能的存放目录,智能体可以扫描此目录来获取有哪些技能;同时,再给智能体配上检索增强的工具,这样智能体就可以使用技能来调用工具完成任务。

技能详情如下图所示,由skill.md,scripts,agents和references几个模块组成;其中skill.md是技能的描述文件,scripts中是技能需要的脚本;而agents和references中是类似于资源文件的东西,用以辅助技能的执行。

那这个技能是怎么开发出来的呢?是作者自己手写的吗? 

其实并不是,这个技能的开发是通过codex开发工具,使用skills-creater技能创建工具实现的,通过此工具,只需要描述你所需要的技能能力,以及现在已有的功能,就可以让模型帮我们创建一个符合检索增强能力的技能。

踩坑实录

当然,刚开始做这个技能的时候第一次执行还是出现了一些问题,那就是我想的是让技能直接在脚本中完成工具的调用,然后直接输出工具调用的结果即可;但是,在实际的创建中,技能脚本只有第一个build_search_catalog_params.py脚本,只实现了调用工具的参数,并没有真正调用工具。

因此就导致了一个问题,模型在不断的死循环,因为并没有给它提供真正的检索工具;所以,后面给它重新配置了工具之后就可以正常执行了。

但是,在测试的过程中也发现了一些问题,最明显的就是智能体的能力边界很难把控,它一不小心就越界了,因为给它提供了执行脚本,文件读写的能力,这时它就像一个脱缰的野马,很难控制;这也是为什么现在harness-engineering引擎爆火的原因,它就是用来控制智能体边界的。

通过这次测试发现,openclaw的理念是可以应用到具体的业务场景中的,并且它比之前的智能体要更灵活,更有灵魂,而不是之前那种workflow固定工作流的形式。


本文转载自​​AI探索时代​​ 作者:DFires

相关标签:

LangChain DeepAgents 检索增强

相关推荐