要实现稳定的 AI agent ,可以从以下几个方面考虑:
最后,笔者ailm讲解一下实现人设稳定的具体原理:通过提示词工程与工具调用能力的配合,设计出一套与知识图谱相结合的工具调用逻辑,从而稳定人设。通过缩小max_length防止LLM长篇大论,每次输入到上下文窗口中的记忆也只返回最近几轮的对话。利用查询知识图谱的信息来实现永久记忆。所需要的提示词和工具设计如下:[heading2]1、提示词工程[content]麦洛薇提示词设计如下:[heading2]2、工具设计[content]工具调用方面,通过将与知识图谱交互这一大的任务,细分为:查询、创建、修改、删除实体或关系、获取实体的所有关系、获取所有实体名称列表多个工具,组成一个工具包供LLM调用。由于对LLM的多工具调用能力有极高的要求,笔者ailm在参数较少的本地模型(如8B、14B)上并不能完美的运行知识图谱RAG。[heading1]写到最后[content]1.如果你使用comfyui LLM party时出现错误,或你有一些新的想法,欢迎加QQ群:9310572132.github项目地址:3.视频教程:
有了数字人躯壳,我们就需要构建数字人的灵魂,让数字人具备各种智能,比如记得你的个人信息,充当你的个人助手;在某个领域具备更专业的知识;能处理复杂的任务等等。这些能力实现有以下几个需要注意的工程关键点:1.AI Agent:我们要想数字人像人一样思考就需要写一个像人一样的Agent,工程实现所需的记忆模块,工作流模块、各种工具调用模块的构建都是挑战;2.驱动躯壳的实现:灵魂部分怎样去驱动躯壳部分,我们可以将灵魂部分的所有接口定义出来,然后躯壳部分通过API调用,调用方式可以是HTTP、webSocket等等,视躯壳部分的实现而定。但包含情绪的语音表达以及如何保证躯壳的口型、表情、动作和语音的同步及匹配,目前主流方案只能做到预设一些表情动作,再做一些逻辑判断来播放预设,语音驱动口型相对来说成熟一些,但都是闭源的,效果可以参考Nvidia的Audio2Face(https://www.nvidia.cn/omniverse/apps/audio2face/)或则Live Link Face(Iphone APP)+Face AR Sample(UE);3.实时性:由于整个数字人的算法部分组成庞大,几乎不能实现单机部署,特别是大模型部分,所以算法一般会部署到额外的集群或者调用提供出来的API,这里面就会涉及到网络耗时和模型推理耗时,如果响应太慢就会体验很差,所以低延时也是亟需解决的一个问题。4.多元跨模态:仅仅是语音交互的数字人是远远不够的,人有五感(听觉、视觉、嗅觉、触觉、味觉),听觉只是其中一种,其他的感官可以根据实际需求来做,比如视觉我们可以通过添加摄像头数据来获取数据,再通过系列CV算法做图像解析等;5.拟人化场景:我们正常和人交流的时候不是线性对话,会有插话、转移话题等情况,这些情景如何通过工程丝滑处理。
1.本着想直接在Bot界面添加这个活动知识库来直接查询对应的结果给用户,才发现知识库鉴于Bot层面的知识库检索策略问题,总是给我不全的检索结果,尤其是查询进行中或者已结束的活动时,总是把所有活动都给我返回,这显然不合理。怎么办呢?2.这时候工作流的设计模式就派上用场了,前段时间吴恩达教授就曾提出过四个设计AI Agent工作流一定要掌握的设计模式:Reflection:让Agent审视和修正自己生成的输出;Tool Use:LLM生成代码、调用API等进行实际操作;Planning:让Agent分解复杂任务并按计划执行;Multiagent Collaboration:多个Agent扮演不同角色合作完成任务;3.其中,很明显,Reflection模式是我们需要的。我们可以设计一个工作流,还是先检索知识库的活动内容,其返回的结果很可能会包含一些不准确的数据,但这不用怕,我们在对应的后面加一个LLM大模型区块,专门用来审视和修正这些数据,让它返回最终符合我们意图的结果出来,以实现AI Agent的自我审视。4.基于上述提到的,我创建了一个工作流,用于稳定的获取知识库的活动内容并输出给用户,流程如下:5.开始->鉴于用户的提问查询知识库,获取匹配的数据集->通过LLM大模型区块进行数据修正->输出数据内容,让大模型结合我们给的数据结果构造最终回答。这是我用来修正知识库结果的LLM提示词:这样,既保证了知识库结果的准确性,又能让LLM直接基础最终的JSON结果集构造回答输出给用户。