大模型AI Agent 前沿调研

news2024/11/18 9:47:12

前言

大模型技术百花齐放,越来越多,同时大模型的落地也在紧锣密鼓的进行着,其中Agent智能体这个概念可谓是火的一滩糊涂。

今天就分享一些Agent相关的前沿研究(仅限基于大模型的AI Agent研究),包括一些论文或者框架,小伙伴可以根据自己的兴趣有选择的看一下~,其中角色扮演也可以看作Agent的一个较为火热的方向(具体的Agent就是一个具体角色),最后在文末从技术的角度整体总结一下agent的核心。

先给两个综述,大家可直接阅读,然后笔者挑一些有意思的总结一下。

温馨提示:全文较长,建议收藏,慢慢啃~

综述

A Survey on Large Language Model based Autonomous Agents

论文链接:https://arxiv.org/pdf/2308.11432.pdf

这是一篇关于agents的综述

Autonomous-Agent

github链接:https://github.com/lafmdp/Awesome-Papers-Autonomous-Agent

该git也在不断的收藏一些关于agent的前沿研究。

一些代表性的研究

(1) A Survey on Large Language Model based Autonomous Agents

论文链接:https://arxiv.org/pdf/2308.11432.pdf

本文为基于大模型agent的构建设计了一个统一框架并给出了三种学习策略。

具体的该框架由4个模块构成(如上图):配置模块、记忆模块、规划模块和执行模块。配置模块有3种方法来生成配置文件:手工制作法、LLM生成方法、数据集对齐方法;记忆模块分为3个方面:结构、格式和操作;记忆结构包括两种:统一内存(该结构没有短期和长期记忆的区别)和混合内存(有短期和长期记忆的区别);规划模块包括没有反馈的规划和带反馈的规划;动作模块即是最终真真响应的模块。

三种学习策略分别为从例子、人类反馈和环境反馈中学习。

本篇paper很好的抽象规划了整个框架,尤其是4个模块的设计,可以借鉴一下。

(2)Improving Language Model Negotiation with Self-Play and In-Context Learning from AI Feedback

论文链接:https://arxiv.org/pdf/2305.10142.pdf

论文中的两个agent分别模拟买卖双方进行一场交易,具体就是利用两个agent来彼此不断互相对话、不断博弈,买方最终目的就是要以尽可能低的价格达成交易,而卖房则相反。其中核心技术看点就是在对话中使用一个中间agent利用cot进行反馈,告诉当前agent如何更好的回复才对自己最有利。

(3)Exploring Large Language Models for Communication Games: An Empirical Study on Werewolf

论文地址:https://arxiv.org/pdf/2309.04658.pdf

该篇论文尝试了同时启用很多的agent来互相配合完成一个更复杂的任务,具体的是使用了7个agent来完成一个狼人杀游戏,每个agent都要牢记自己的角色扮演规则。其中核心技术看点就是每个agnet都会提前定义好自己的角色定位,该规则和描述的prompt都是非常详细和具体的,同时更关键的是这些agent之间的复杂交互也即调用逻辑,其中下面就是agent角色的定义:

(4) METAGPT: META PROGRAMMING FOR A MULTI-AGENT COLLABORATIVE RAMEWORK

论文链接:https://arxiv.org/pdf/2308.00352.pdf

github: https://github.com/geekan/MetaGPT

metagpt实现了一个多agent的框架,方便大家迅速落地自己的场景,目前github stars已经3w+,官方demo演示了如何自动开发一个代码需求,比如来了一个需求后,它的agent包括产品经理先分析需求,然后开发工程师开发,最后还有code review等等。同时也使用该框架实现了狼人杀。

metagpt核心技术看点就是封装好了很多agent的基础能力比如包括交互通信等等。

(5) CAMEL: Communicative Agents for “Mind” Exploration of Large Language Model Society

论文链接:https://arxiv.org/pdf/2303.17760.pdf

github: https://github.com/camel-ai/camel

camel提出的也是一种基于角色扮演来模拟多个agent交互的框架。具体的,camel重点研究任务导向的agent,其中一个是AI助手agent,另外一个是AI用户agent。

当camel收到一个具体需求和角色分配后,任务agent先提供详细描述以使这个需求更具体化,然后AI助手agent和AI用户agent会通过多轮对话一起合作来完成指定的任务。其中AI用户agent负责向AI助手agent提供指示并引导对话朝向任务完成方向进行,AI助手agent则理解AI用户agent的指示并提供具体的解决方案。

这里贴一下它的核心的agent prompt

论文中对prompt的每一条为啥要这样写都给出了理由,比如AI助手agent的prompt中有一条是“Always end your solution with: Next request”,这个是和AI用户agent要新一轮的指令,这样可以确保对话自动聊下去,这才是是非常关键的一点!!!是整个机制能自动run起来的关键。

另外作者为了自动获得对话数据,还借助大模型自动生成各种各样“AI助手agent&AI用户agent” 角色pair对,然后再为各个角色pair对生成多个相关话题,有了这些后就可以借助上面的机制进行多轮聊天。

这篇很好的实现完全自动化,无限挖掘;其中起了关键作用的就是上面这些prompt怎么写,论文都给出来了,大家感兴趣的可以去看原论文。

(6) AgentTuning: Enabling Generalized Agent Abilities for LLMs

论文地址:https://arxiv.org/abs/2310.12823

github链接:https://github.com/THUDM/AgentTuning

文中构建了一个包含高质量交互轨迹的微调数据集AgentInstruct,并且将其和通用能力的sft数据混合训练得到AgentLM。

其最大的亮点就是AgentInstruct数据集的构建,其主要依托的数据是来自AgentBench,其包含了6个来自真实世界的智能体任务。在构建好了基本的输入指令后,便以GPT-4作为智能体生成AgentInstruct。

(7) CHATANYTHING: FACETIME CHAT WITH LLM-ENHANCED PERSONAS

论文链接: https://arxiv.org/pdf/2311.06772.pdf

github链接: https://chatanything.github.io

本篇论文比较脑洞大,他是给定一张图片比如西瓜,然后会自动生成一个西瓜人agent回你对话。它主要涉及到三块,生成图像、tts以及人物性格生成;其中前两个分别是图像和语音技术这里我们不展开说了,感兴趣的小伙伴可以自己去读一下;人物性格生成这个主要也是借助LLM去自动生成贴切的性格,文章也给出了最核心的prompt:


(8) ROLELLM: BENCHMARKING, ELICITING, AND ENHANCING ROLE-PLAYING ABILITIES OF LARGE LANGUAGE MODELS

论文链接:https://arxiv.org/pdf/2310.00746.pdf

本文构建实现了一套角色扮演的方案,比如扮演孙悟空、哈利波特等等,每个角色都会有自己的说话风格并且都会有自己对应的角色背景,比如孙悟空自己的师傅是唐僧等等,在遇到有关唐僧的问题的时候,要注意结合师徒这个背景来回答。

文章主要的idea就是借助剧本来检索增强回复,同时作者基于llama训练了一个英文角色模型,基于glm训练了一个中文角色模型。

(9) Does Role-Playing Chatbots Capture the Character Personalities? Assessing Personality Traits for Role-Playing Chatbots

论文链接:https://arxiv.org/pdf/2310.17976.pdf

本文重点关注角色扮演agent领域,具体是研究如何评估大模型的角色扮演效果

论文中的方法是基于大五人格、MBTI等心理学的人格相关理论,对角色扮演AI进行了人格测试。具体的是提出了一套为角色扮演AI设计的面谈式人格测试框架,基于人格测试量表与角色扮演AI展开开放式问答来进行评估。

(10) AutoGPT、XAgent、LangChain

AutoGPT : https://news.agpt.co

XAgent: https://github.com/OpenBMB/XAgent

LangChain: https://www.langchain.com

类似Metagpt, AutoGPT、XAgent、LangChain都是一些基于大模型开源的agent框架,其中LangChain更是在业界大名鼎鼎。

总结

Agent概念很大,这里如果我们纯从技术角度来看的话(且是依靠大模型的AI Agent),它的核心壁垒在哪里呢?或者说其最值钱的那部分技术是啥呢?

笔者将其归纳为如下两个核心:

  • 拆分问题 & 调用逻辑

需要构思好怎么将当前的任务进行更好的拆分成一个个子任务,以确保这些子任务足够简单、完成的准确率足够高;当这些子任务都确保能被很好的完成,那么最终的任务就能很好的完成了。

所以拆分问题很关键,拆分的粒度如果太粗,子任务难度系数就高,就很容易失败;拆分的粒度如果太西,调用逻辑就很繁琐,整个链路就会很臃肿,所以对需求和业务的理解越深刻,拆解才会越相对合理。

同时拆分的是否合理还会影响另外一个关键问题:后期自研模型的开发。当我们想利用大模型开发Agent的时候,一般来说会先去使用GPT4去试一试(毕竟其目前是大模型的天花板),如果它都完成的不好,那要么自己当前Agent的设计框架需要进一步完善,要么就是这个事目前大模型还真的是很难完成。当GPT4完成的还不错后,出于安全和成本等考虑我们必定是想走自研模型这条路的,做到自主可控,那么我们就可以前期使用GPT4去积累数据,然后用这部分数据去蒸馏训练出自己的大模型。

那么如果你的任务拆分的粒度太细,假设有100个子任务(这里指要最终调用大模型能力),那么如何将这100个任务同时进行大模型训练,平衡住所有任务的能力,这是很难的(每个子任务训练一个大模型也太不现实了),当然如果拆分的粒度太粗,单个子任务本身就很难,那单训练好这个子任务可能都是问题,就更别提要融合所有子任务了;

  • prompt engineering

当我们把当前这个Agent需要完成的任务多步拆解后以及理顺子任务之间的联动调用链路后,那么完成这些子任务就需要调用大模型了(当然有时候是调用一些其他插件比如计算器、搜索引擎等等;即使是调用插件其实上一步也一般是需要调用大模型来分析出要调用哪个插件以及插件需要的参数)。

既然是调用大模型,那么如何写好prompt让大模型完全get到你的需求,这是非常关键的,如果没写好prompt,那么子任务就失败了,整个链路就run不起来。

这块工作也是最繁琐和最需要经验的,要不断的去试进而润色出一个很棒的prompt。甚至笔者觉得在某些场景下,当你要做一个agent项目时,prompt engineering是你第一步要去做的事情,先去试着写几个prompt看看大模型能完成的怎么样?自己感受感受摸个底,这样也才可以有更多灵感看看怎么将任务进行更好的拆解,通过多步调用大模型(也即上面说的第一个核心点)来合作完成。

关注

欢迎关注,下期再见啦~

知乎,csdn,github,微信公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1241999.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu 1.84.2Visual Studio Code 下载配置与vscode查看内存Hex Editor插件,简单易懂

目录 前言 一 首先我为啥要重装Vs Code呢? 二 下载1.84.2Visual Studio Code 三 配置Vscode终端字体 四 安装插件 前言 这是一篇将老版本的VsCode下载至最新版的博文,从下载到调试全篇 一 首先我为啥要重装Vs Code呢? 因为我想安装这个…

14.(vue3.x+vite)组件间通信方式之pinia

前端技术社区总目录(订阅之前请先查看该博客) 示例效果 Pinia简介 Pinia 是 Vue 的存储库,它允许您跨组件/页面共享状态。 Pinia与Vuex比较 (1)Vue2和Vue3都支持,这让我们同时使用Vue2和Vue3的小伙伴都能很快上手。 (2)pinia中只有state、getter、action,抛弃了Vu…

2023年全国大学生数学建模竞赛总结

2023年全国大学生数学建模竞赛总结 一.参赛经历二.组队建议赛前准备建模手所需要具备的知识 编程手需要具备的能力 论文手论文手需要学习的知识 比赛过程 全国大学生数学建模竞赛的比赛落下了帷幕,很荣幸我能够获得国家二等奖,这对于我们队伍来说是十分荣幸的,接下来让我进行我…

UniApp打包教程:使用HBuilder X和AppUploader完成原生App云打包和上架指南

UniApp打包教程:使用HBuilder X和AppUploader完成原生App云打包和上架指南" 目录 uniapp进行打包 使用上架工具appuplode进行发包 1.登录appuploder软件 2.登陆开发者App Store后台 uniapp进行打包 在HBuilder X编辑器中打开需要打包的项目,然后…

电脑自动删除文件怎么办?如何恢复?

在数字化时代,电脑已经成为人们不可或缺的工具之一。然而,由于各种原因,我们有时会遇到电脑自动删除文件的情况,这给我们的工作和生活带来了很多不便。那么,当电脑自动删除文件时,我们应该如何处理呢&#…

redis-cluster集群(目的:高可用)

1、特点 集群由多个node节点组成,redis数据分布在这些节点中,在集群中分为主节点和从节点,一个主对应一个从,所有组的主从形成一个集群,每组的数据是独立的,并且集群自带哨兵模式 2、工作原理 集群模式中…

Cookie、Session、CBV加装饰器的三种方法

【0】cookie、session和Token的发展史 【1】Cookie的形式 存储形式:k:v键值对存储位置:客户端缺点:不安全,信息可能会泄露 【2】session的形式 标识符,表示我是当前用户加密出来的数据对敏感信息进行加密…

element-plus的el-dropdown去除鼠标悬浮或点击时的黑边框

设置为outline:unset;或者outline:none;即可 :deep(.el-tooltip__trigger:focus-visible) {outline: unset;}

解决traefik/nginx-ingress-controller配置正确的情况访问域名仍然报错: Connection Refused的问题

最近碰到一个很奇怪的问题: traefik/nginx-ingress-controller配置正确,但是访问ingress配置的host域名就是死活报错: Connection Refused 这样怎么也找不到原因,然后一咬牙直接在其中一台节点yum安装nginx, 通过直接反向代理的方…

高通OTA升级非常规分区方法

高通OTA升级非常规分区方法 1. 高通LE OTA背景2. 高通LE OTA升级方案2.1 SDX12 OTA方案2.2 OTA升级TZ/RPM/Aboot OTA是一个通用述语,常见的解释为over the air。通过这一解释,OTA最开始的概念,是空中升级。后来,又衍生出了FOTA&am…

Git使用基础总结(从小白到新手版)

(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍快上🚘,一起学习,让我们成为一个强大的攻城狮&#xff0…

BUUCTF [HBNIS2018]excel破解 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 得到的 flag 请包上 flag{} 提交。来源: https://github.com/hebtuerror404/CTF_competition_warehouse_2018 密文: 下载附件,得到一个attachment.xls文件。 解题思路&#xff…

ABB机 器 人 操 作 培 训

目 录 1 培训手册介绍 ---------------------------------------------2 2 系统安全与环境保护 ---------------------------------------------3 3 机器人综述 ---------------------------------------------5 4 机器人示教 --------------------------------------------12…

.Net6 Api Swagger配置

1、定义个Swagger版本&#xff08;组&#xff09;的枚举 namespace WebApp.Enums {/// <summary>/// api版本枚举/// </summary>public enum ApiVersion{/// <summary>/// v1版本/// </summary>v1 1,/// <summary>/// v2版本/// </summary&…

Axios 拦截器 请求拦截器 响应拦截器

请求拦截器 相当于一个关卡&#xff0c;如果满足条件就放行请求&#xff0c;不满足就拦截 响应拦截器 在处理结果之前&#xff0c;先对结果进行预处理&#xff0c;比如&#xff1a;对数据进行一下格式化的处理 全局请求拦截器 axios.interceptors.request.use(config > { /…

电脑开机显示器没反应?5个方法轻松解决!

“各位朋友们&#xff0c;我想问问&#xff0c;电脑开机显示器没反应是为啥呢&#xff1f;有什么方法可以解决这个问题吗&#xff1f;感谢感谢&#xff01;” 在使用电脑时&#xff0c;用户可能会遇到各种各样的情况。电脑开机显示器没反应也是一个比较常见的电脑问题。遇到这种…

Springboot+vue的新冠病毒密接者跟踪系统(有报告)。Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的新冠病毒密接者跟踪系统(有报告)。Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的新冠病毒密接者跟踪系统&#xff0c;采用M&#xff08;model&#xff09;V&#xff08;v…

JSP EL表达式获取list/Map集合与java Bean对象

上文 JSP EL表达式基本使用 中 我们对EL表达式做了一个基本的了解 也做了基础的字符串数据使用 那么 我们可以来看一下我们的集合 首先 list 这个比较简单 我们直接这样写代码 <% page import"java.util.ArrayList" %> <% page import"java.util.Lis…

两种常见EMC整改流程!|深圳比创达电子EMC

如何定位EMC整改计划可以分为两点&#xff1a; 1、根据以往的整改经验来进行判断&#xff1b; 2、比较测试&#xff0c;测试结束后根据测试仪器提供的数据进行问题分析。 下面介绍两种常见的EMC整改流程。 1、RE超标整改流程 首先要测量超标(临界)点&#xff0c;作为参考值…

注册并实名认证华为开发者账号

首先 我们访问 https://www.harmonyos.com/ 访问鸿蒙官方网站 右上角 我们点击 登录 然后 我们选择注册 然后 注册方式 有邮箱和手机号的注册 这边 看大家需要 如果像我不怎么登邮箱这种 建议还是选择手机号注册 这里 居住地区 应该就是默认中国吧 然后 手机号 验证码 密码…