自决策多轮对话智能体的初步实现

随着大模型的发展,智能体也是越来越火。看到的很多例子是通过构建DAG的形式形成Agent链,和我需要的不太一样。周末有点时间也是改造了一下之前做的个人超级中心,以初步实现自决策多轮对话智能体。基于该智能体,可实现在多轮对话中实现多重智能体的智能选择。

本次改造涉及新组件引入,其中包括langchain4j、spring state machine以及antdesign prochat。

自决策多轮地话智能体

组件基本介绍

langchain4j

langchain4j可以算是langchain的java版本,不过迭代和功能没有python版本的langchain那么全。目前支持了主流的集成与用法,具体可参考官网:
https://docs.langchain4j.dev/

spring state machine

Spring State Machine是一个基于Spring Framework的状态机实现,它允许开发者以声明式的方式构建复杂的状态管理和流程控制逻辑。状态机是软件工程中一个常用的设计模式,用于管理系统在不同状态之间的转换,以及每个状态下应该执行的动作。具体可以参考官网:https://spring.io/projects/spring-statemachine/

ant design prochat

ProChat是基于ant design构建的用于快速构建 LLM 聊天界面的组件库。对于使用ant design框架的开发者来说简直就是福音。具体可参考官网:
https://pro-chat.antdigital.dev/

基本实现

基本逻辑

结构图

整体流程如上图所示,用户输入信息后,经过super agent根据用户输入的信息决定选择具体的执行智能体,当满足条件1时,选择智能体1,同样满足条件2时,选择智能体2。当选中智能体后,即使用该智能体回答用户问题。

super agent的决策思路

具体逻辑可参考文章:https://sultanov.dev/blog/langchain4j-multi-agent-system-using-state-machine/

基于状态机实现Agent决策,在状态机中定义四个步骤,分别为:

  1. 用户输入评估
  2. Agent选择
  3. Agent校验
  4. 重新选择Agent

在用户输入评估中,用于判断输入问题是否明确,如果不明确则需要进一步让用户提供相关信息;Agent选择是将Agent名称以及描述记录在markdown表示的表格中,根据用户输入一起提供给大模型进行判断选择,之后输出相应智能体;Agent校验是初步使用选择的Agent回答问题,看是否能够回答用户的最初问题;如果前面选择的Agent不能够回答用户的问题,那么会带着原始选择的智能体相关信息以及用户输入重新进入选择Agent阶段,如此往复。

多轮对话中记忆的使用

langchain4j提供了对话记忆的功能,可扩展ChatMemoryStore接口来实现存储功能。考虑到在一个对话框中的多轮对话,是有可能需要使用多个Agent的,所以我也在多个Agent之间实现记忆共享。

初步使用

目前内部集成了用于知识库检索的RAGAgent和用于普通对话的ChatAgent,我们看一个例子,从知识库中检索一些知识,然后再使用ChatAgent询问知识的正确性。

把如下内容存入知识库中:

## hbase性能测试结果

| 规格 | 顺序写 | 随机写 | 顺序读 |顺序读|
| - | - | - | -|-|
| 500m,8G | 40843 | 3631 | 6409|7055|
| 1000m,8G | 82940 | 6795 | 13279|15674|
| 2000m,8G | 148700 | 7505 | 23749| 21028|

使用自决策智能体查看hbase性能测试结果。

自决策多轮对话智能体的初步实现

我们还可以问一下这个结果的合理性。

自决策多轮对话智能体的初步实现

查看对话历史:

自决策多轮对话智能体的初步实现

在对话历史中,我们可以发现如果是RAGAgent回答了用户问题,其实是会将用户的问题以及检索出来的信息全部存入记忆中的,这也就为后续其他智能体的回答提供了非常好的背景知识。

总结

目前,这只是一个非常初步的自决策智能体的实现,我希望存入知识库的东西能够在日常使用中合理用起来。

下一步工作

当前内置的子智能体比较有限,后续规划集成更多的子智能体。

如果有更多时间,打算实现通过更便捷的方式实现子智能体的添加,比如python、纯java代码等。

0 0 投票数
文章评分

本文为从大数据到人工智能博主「xiaozhch5」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://lrting.top/uncategorized/14406/

(0)
上一篇 2023-12-10 23:46
下一篇 2021-11-11 21:08

相关推荐

订阅评论
提醒
guest

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x