AI Agent / 智能体观察笔记(下)
发布时间:2024年06月06日
第三部分:智能体产品笔记和思考
Key Takeaway:1)卓越的产品/想法是用新技术解决了新问题/新需求—哇,真的有需要!2)优秀的产品/想法是用新技术解决了一个老问题—确实解决的更好了;3)平庸的产品是用新技术把一个老问题,以更烂的体验从新解决了一遍。笔记的最后一部分我会具体解释一下哪些产品我觉得做的比较好,哪些一般般。
小目录:智能体产品笔记;Lilian Weng的智能体应用的工作原理Good Examples and seemingly bad
智能体产品笔记CAMEL AIGithut项目链接:GitHub - camel-ai/camel: 🐫 CAMEL:
Communicative Agents for “Mind” Exploration of Large Scale Language Model
Society
·产品描述:
CAMEL AI提供了一套让多个智能体(目前是两个)之间可以自主交流、自主合作的技术框架。CAMEL AI所解决的一个核心问题是目前用户使用大语言模型时,需要反复和AI对话(打磨提示词)才能引导生成一个比较理想的内容。因此,CAMEL AI提出了一个新颖的解决方案,既让两个智能体以角色扮演的方式自主沟通与协作去完成用户给到的目标。
·解决方案
CAMEL AI的解决方案涉及三个方面:1)智能助理(Assistant role);2)智能用户(User role);和3)任务指定器(Task
specifier)
Camel AI的解决方案技术框架
在使用CAMEL AI时,用户首先指定智能助理和智能用户的角色,然后给到一个初步要求(比如,帮我写十篇爆款文),点击运行。任务指定器会把用户的要求转换成一个具体、专业的提示词,然后两个智能体自主交流协作,最后把结果给到用户。
·使用案例
在体验过程中,我把智能助理的角色设定为程序员,智能用户设定为学生(”智能用户“就是代替人类用户反复和AI提问提需求的角色)。我的初始要求是“帮我开发一个玩手机时父母发现不了的软件”。
给Camel AI设定角色和任务CAMEL AI的任务制定器首先把我的要求转换成了一段专业得提示词“开发一个智能手机应用程序,该程序将流行的社交媒体应用伪装成教育工具。当家长检查学生的手机时,该应用将显示与学校科目相关的假内容,使其看起来像学生正在使用教育应用程序,而不是社交媒体。”然后我们能看到“学生”和“程序员”开始持续沟通对话去实现这个目标。首先,“学生”先让“程序员”开发一个智能手机的App界面;
第二步是在这个App上”实现一个功能,允许用户在伪装成教育工具的不同社交媒体应用之间切换。“
第三步是”开发一个为每个伪装的社交媒体应用生成假教育内容的功能。“
…真专业啊。BabyAGIGithub项目链接:babyagi/docs/README-cn.md at main · yoheinakajima/babyagi · GitHub
·产品描述
投资人yoheinakajima使用OpenAI和Pinecone向量数据库开发的智能体 / 任务管理系统,实现创建任务、对任务优先级排序和执行任务。方案的核心思路是通过基于先前任务的结果和预定义的目标创建新任务。方案利用GPT大语言模型去创建新任务,使用Pinecone存储和提取任务结果以提供上下文。
·使用方法
1.从任务列表中提取第一个任务.
2.将任务发送给执行智能体, 该智能体使用 GPT大语言模型根据上下文完成任务;
3.把任务结果存储在 Pinecone 中;
4.根据目标和前一个任务结果创建新任务,并对任务列表的优先级从新排序。
5.
Baby AGI使用方法
6.
·应用案例
虽然BabyAGI还没有为普通用户提供可以直接使用的交互界面,但是已经有不少项目都是基于BabyAGI开发的了。案例一:AgentGPTAgentGPT本身也是一个开源项目GitHub项目链接:GitHub - reworkd/AgentGPT: 🤖
Assemble, configure, and deploy autonomous AI Agents in your browser.在Demo站上,用户给AI设定一个目标,AgentGPT就会自动按照前述BabyAGI的工作原理去给用户执行任务了。为了提升产品的实用性,Demo站还融合了在执行任务过程中图片生成、搜索联网信息和代码开发的能力。
用户可以开启图片生成、联网搜索和代码能力
AgentGPT最新的能力还包括可以融合用户的个人数据,支持从Google Drive和Notion中导入数据。
还可以融合用户的私有数据当然,产品完整度这么高,自然是要收点钱的。我给AgentGPT设定了一个写Apple Vision Pro调研报告的任务,AI在五轮对话后给我了我一个半拉子结果,如果想要看更多——请给钱。
自动拆解写产品调研报告
半拉子结果,完整版要付费
案例二:TwitterGPTGitHub项目链接:GitHub - bigsky77/twitter-agent: Build AI-powered Agents for Twitter🐣TwitterGPT利用Twitter时间线在平台上进行各种互动,包括发布AI生成的推文,并与其他用户进行动态互动。产品特点:发推文:根据相关时间线的推文生成原创内容。✅ 🤖 转推:分享与用户设置策略相符的推文。✅ 回复@:与在推文中@用户的其他用户互动。✅ 🤖 回复评论:通过响应用户推文上的回复促进对话。✅ 🤖 点赞推文:智能体点赞其他用户推文表示赞赏或确认。✅
案例三:Do anything machine
一个催更的GPT。。。智能体可以帮助用户制定任务列表并给任务做优先级排序。
用户给GPT输入目标后,智能体会给用户整理一个任务清单。比较棒的一点是智能体可以嵌入到其他工具中,比如Google日历中,这样用户每天一打开电脑就可以看到智能体给自己催更的任务了。
此外,用户还可以给智能体提供自己的简介、所在公司的介绍、产品信息、联系人名单等私有数据,让智能体创建的任务清单更具针对性。
给公司的销售团队布置to-do清单
AUTOGPTGitHut项目链接:GitHub - Significant-Gravitas/Auto-GPT: An
experimental open-source attempt to make GPT-4 fully autonomous.和BabyAGI类似,用户设定好目标后,Auto-GPT可以自动化方式帮助用户实现目标。Auto-GPT的产品特点包括:
·自动联网搜索和收集信息
·能够管理长期和短期记忆
·访问热门网站和线上平台
·使用GPT-4生成文本内容
·使用GPT 3.5读取文件并生成摘要
·使用其他插件实现功能扩展(比如自动点Pizza)
用户Blake Werlinger使用AutoGPT做了一个任务。任务目标:“在GitHub上搜索AutoGPT的信息,对这个产品进行解读。” AutoGPT的执行过程:首先,AutoGPT先决定上Google搜索有关AutoGPT的信息;
布置任务
随后,AutoGPT发现了GitHub上对这个信息的项目介绍,然后自动打开网页开始分析项目内容;
用Google搜索AutoGPT,定位到Github上的项目链接AutoGPT对网页内容分析完毕后,把所分析的内容自动存储到了一个txt的文件中;
分析Github上AutoGPT的项目介绍,并存储到txt文件中最后,AutoGPT”思考“了一下,任务已经完成了,自己把自己给关了。
把自己给“关了”HyperWriteHyperwrite是一个基于Chrome浏览器插件的智能体,它非常谦虚,目前版本号是”Aplha
v0.01“。虽然如此,Hyperwrite的官网上号称它可以帮助你”自动“定机票、做深度信息调研、管理Gmail收件箱并回复邮件、点Pizza、以及在LinkedIn上锁定工程师候选人。
·自动发twitter
我首先尝试了它的自动发twitter功能,虽然不完美(内容不完整,遗漏了一大段内容),但确实自动发推了。
我设定了在twitter的目标,Hyperwrite自动登录了我的twitter账号、生成并发布了一条推文。
·自动买机票
买机票就没那么”自动“了,我设置了购买从北京飞往旧金山的目标,Hyperwrite同样打开Google开始搜索机票,使用的使用Google flight功能,在搜索过程中询问我往返时间,整个过程耗时颇长而且在检索机票的过程出了bug一直刷不出结果。
难为它了
·买pizza
最后我设置了超高级难度任务,让它在美团上给我买pizza,没有丝毫悬念,当美团要求做”真人认证“的时候,AI挂了。
无法通过美团的真人认证
·回邮件
最后一个相对复杂的任务是给我一个朋友回邮件,it just takes
forever…
一辈子的邮件。。。
·写调研报告
最后的最后,我让hyperwrite用百度去搜索和整理一个关于Apple Vision Pro的产品报告,同样bug了。
当然,确实是不排除网络环境的问题,不过确实离”用起来“还是任重道远。TARS-RPA-AgentTARS Agent是Hyperwrite的国产平替。在产品发布中,展示了如下几个功能:第一,读取电脑桌面上的Excel表格(销售人员业绩清单),按照从高到低排序,然后用钉钉发给老板;第二,用163邮箱给某个人发邮件;第三,到京东上去找畅销的笔记本电脑;hmm…TARS的工作原理包含了三个核心组件,分别是大语言模型,RPA(流程自动化操作),和ISSUT(只能屏幕语义理解)。第一步,用大语言模型做任务自动拆解,干什么-怎么干-实现目标,这是当下Agent借助大语言模型可以完成比较好的步骤;第二步,和外界交互并执行任务AI要能联网并理解外部环境,以买票为例,AI要知道今天是几号、用户在哪里。此外,AI要能基于外部环境信息执行任务。大语言模型没办法自己买机票,因此需要使用RPA技术让AI自己在电脑/浏览器上自动打开购票网站点点点——其实这一步骤如果互联网生态上的厂商可以广泛开放接口效果会好很多——但是没有也没关系,RPA技术可以模拟真人行为之间对电脑操作。但是RPA对软件页面内容识别不精准,因此还要用ISSUT解读操作页面,让RPA点好;第三步:及时更正错误AI在执行任务的每一个环节中都把过程和结果展示出来,如果用户发现AI犯了错误,可以及时要求AI修正。第四步:具备记忆能力自我迭代AI可以从经验中学习,目前比较常见的作法是把用户历史数据放到向量数据库中,在和用户互动过程中使用历史数据让AI理解上下文从而优化决策。AOMNIAOMNI是一个专门面向To B销售的AI客户经理助手(sidekick)。AOMNI可以帮助销售人员精准定义客户画像、判断线索有效性、制定针对每个B端客户的销售和维护方案,以及深度战略研究,从而让销售人员更专注于与客户建立客情和达成交易。AOMNI的产品特点:
·智能的客户管理方案
AOMNI会根据关键信息,为销售经理的每个客户定制智能化的销售和维护方案;
·判断精准客户画像
AOMNI会帮助销售经理判断聚焦精准客户画像,并形成高价值的销售提案;
·个性化销售助理
AOMNI会帮助销售经理定义客户画像、筛选高质量销售线索和深入的市场调查。产品体验第一步:创建AI销售助理
创建虚拟助理首先销售人员需要输入自己销售产品的名称和网站来创建自己的AI销售助理,让AI针对性了解销售人员的产品细节。这里我选择了一个相对小众BenQ的教育硬件产品”BenQ Board“教室触控大屏第二步:训练AI销售助理随后,AOMNI会提示销售经理输入更多的产品信息,如网页和产品文档。我这里由额外录入了更多的网址和提交了两个BenQ的产品文档(硬件和配套的软件)
输入数据,训练AI助理
整个训练的过程约为10分钟。第三步:调优(fine-tune)AI销售助理在这一步,AOMNI会进一步让销售人员输入和产品功能、价值相关的问题,让AI在运行过程中生成的答案更精准。
对模型问答风格进行调优调优部分AOMNI总共问了五个问题:
·BenQ
Board与市场上其他类似产品相比有哪些关键差异点?
·BenQ
Board如何确保数据安全,特别是考虑到它与各种云存储服务集成并处理用户凭证?
·BenQ提供哪种培训或支持,以确保教育工作者和IT管理员顺利采纳该产品?
·BenQ
Board如何满足有特殊需要或残疾的学生的需求?
·BenQ
Board的定价模型是什么,与市场上的其他产品相比如何?
最后,我要求AI在给我提案的时候要满足两个标准:首先,有深入的观点;其次,易于理解的例子和支持这些观点的详细信息。第四步:选定目标客户最后一步是选定目标客户,让AOMNI做销售和客户维护计划,这里我选了一个加州叫San Marino的学区。
针对目标客户开始做训练运行结果:先给结论——确实还不错,具备一个工作1~2年的销售经理水平。首先,客户调研报告给出了需求/商机的分析,并且按照高中低给了排序。商机侧很好融合了BenQ Board的产品特点和应用场景,回答了为什么客户应该买这个产品的问题。需求侧水一点,尝试回答客户为什么要买这个产品的动力——但是已经很好了。一个优秀和普通销售的差距核心在于能否挖掘/创造客户购买产品的深层次动力,这往往需要和客户反复沟通、刺激才能实现,所谓找到inside information。但是新销售刚刚入行,对客户了解有限,也就是从公开信息去挖掘,因此能够给出这样的分析已经做到很好。
符合销售经理的使用诉求
其次,AOMNI也给到了一些使用工具,比如针对不同商机和客户沟通的策略和话术,用户也可以使用附带的chabot让AI去做ppt等,这方面也做到了和产品的深度融合。
提供了一些实用性小工具最后,AOMNI还给出了几分调研报告,里面具体罗列了客户的最新进展和计划,其实从这份报告中就能看出客户当下没有和BenQ产品直接相关需求,比如学校今年重点工作有提高学生心理健康水平、加强毕业典礼安全保护(美国特色)、新学年开始招生等。
提供了几份针对客户和市场的调研报告
智能体应用的工作原理
Lilian Weng,OpenAI负责安全领域的科学家对基于大语言模型的智能体(Agent)在其博客上对其工作原理做了一个学术性概念解释,目前许多公司都直接借用了这个解释作为产品的底层基座。
Lilian Weng提出的智能体概念解释
Lilian认为,由大语言模型所驱动的智能体有三个核心模块:计划、记忆、工具使用,而这三个模块最终驱动智能体的决策和行动。
计划
子目标与分解:代理将大任务分解成较小、可管理的子目标,使得能够有效地处理复杂任务。
反思与完善:代理可以对过去的行为进行自我批评和反思,从错误中学习并为未来的步骤完善它们,从而提高最终结果的质量。
记忆
短期记忆:智能体对上下文学习(提示词工程)利用大模型的短期记忆进行学习。
长期记忆:为智能体提供了在长时间内保留和回忆(无限)信息的能力,通常是通过利用外部向量存储和快速检索。
工具使用
智能体能调用外部API以获得模型权重中缺失的外部信息(模型预训练后很难在融合这些信息),包括当前信息、代码执行能力、访问专有信息源等。
何为计划?
计划包含两个子模块,任务分解和反思。
·
任务分解层面Lilan提出了多个解决方案,包括:
·
Chain of thought:既让大模型以“逐步思考(step-by-step)的方式把一个困难任务分解成多个比较容易完成简单任务和步骤;Tree
of thought:既让大模型在分解任务的过程中在每一步都推理多个可能性,搜索最优的解决方案;LLM+P:依赖于外部经典规划器去做长期规划。这种方法使用规划领域定义语言(PDDL)作为中间接口来描述规划问题。在这个过程中,LLM(1)将问题翻译成“问题PDDL”,然后(2)请求一个经典规划器基于现有的“域PDDL”生成一个PDDL计划,最后(3)将PDDL计划翻译回自然语言。使用这种方法的前提是特定领域有PDDL和一个合适的规划器,因此把规划步骤外包给一个外部工具。
·自我反思。“反思”让智能体通过改进过去的行动决策和纠正以前的错误来迭代改进。Lilan介绍了几个解决方案:
ReAct:这一方案把推理和行动集成到LLM中,前者使LLM能够与环境互动(例如使用Wikipedia搜索API),而后者提示LLM用自然语言生成推理痕迹。Reflexion:为智能体提供动态记忆和自我反思能力,以提高推理技能。Chain of Hindsight(后见之明):这一方案让大模型通过具体呈现一系列过去的输出——每个输出都带有反馈——来改进自己的输出。
Algorithm Distillation(算法提炼):这一方案中算法被封装在一个长历史条件策略中。考虑到智能体与环境会多次互动,并且在每一次互动中智能体都会变得更好,方案把互动历史连接起来并将其输入到模型中,以这种方式让下一次互动比之前的互动表现得更好。
何为记忆
·
记忆的类型
·
记忆可以定义为获取、存储、保留和后来检索信息的过程。人类大脑中有几种类型的记忆。
感觉记忆: 这是记忆的最早阶段,它提供了在原始刺激结束后保留感觉信息(视觉、听觉等)的印象的能力。感觉记忆通常只持续几秒钟。子类别包括视觉记忆、回声记忆(听觉)和触觉记忆。
短时记忆(STM)或工作记忆: 它存储了我们当前意识到的信息,这些信息是执行复杂的认知任务所必需的,如学习和推理。短时记忆的容量据信为7个项目,持续20-30秒。
长时记忆 (LTM): 长时记忆可以存储信息非常长时间,从几天到几十年,存储容量基本上是无限的。LTM有两种子类型:
显式/声明性记忆: 这是事实和事件的记忆,指的是那些可以被有意识地回忆起来的记忆,包括情境记忆(事件和经历)和语义记忆(事实和概念)。
隐式/程序性记忆: 这种记忆是无意识的,涉及到自动执行的技能和例行程序,比如骑自行车或键盘打字。
Lilan把人脑记忆和AI中的记忆做了一个大致映射:
感觉记忆作为原始输入学习的嵌入,包括文本、图像或其他模态;
短时记忆作为上下文中的学习。它是短暂和有限的,因为它受到Transformer的有限上下文窗口长度的限制。
长时记忆作为外部向量数据库,智能体在查询时可以访问,通过快速检索。
·
最大内积搜索 (MIPS)
·
外部记忆可以缓解有限注意力范围的限制。一个标准的做法是将数据保存到一个向量数据库中,该数据库可以支持快速最大内积搜索 (MIPS)。为了优化检索速度,常用的选择是近似最近邻 (ANN) 算法,返回大约离k最近的结果,以牺牲一点准确性换取巨大的速度提升。
何为工具使用?
为大语言模型配备外部工具可以显著的扩展模型能力。
·
例子一:MRKL系统包含了一系列“专家”模块,把LLM作为一个路由器,查询路由到最合适的专家模块。这些模块可以是神经的(例如深度学习模型)或符号的(例如数学计算器、货币转换器、天气API)。比如用LLM调用计算器,来获得更准确的计算结果。
·
·
例子二:TALM和Toolformer,让模型学习使用外部工具的API,把是否新接入的API可以更好实现模型输出质量作为扩大数据库的标准。ChatGPT的插件功能和OpenAI的API功能都是大语言模型使用外部工具的案例
·
·
例子三:HuggingGPT:将ChatGPT用作任务规划器,根据对任务的描述在HuggingFace平台上选择合适的模型。这一方案包含四个步骤:
·
·
·
HuggingGPT的工作原理
·
1.
任务规划:LLM充当大脑,并将用户请求解析为多个任务。每个任务都有四个与之相关的属性:任务类型、ID、依赖关系和参数。他们使用少数示例指导LLM进行任务解析和规划。
2.
3.
模型选择:LLM将任务分发给专家模型,其中请求被确认为一个多选题。LLM被呈现为一个模型列表供其选择。由于上下文长度有限,需要基于任务类型进行过滤。
4.
5.
任务执行:专家模型在特定任务上执行并记录结果。
6.
7.
响应生成:LLM接收执行结果并为用户提供总结的结果。
8.
·
例子四:API-Bank,包含53个常用的API工具和一个完整的工具箱增强LLM工作流程,以及包含568个API调用的264个注释对话。API的选择非常多样,包括搜索引擎、计算器、日历查询、智能家居控制、日程管理、健康数据管理、帐户身份验证工作流等。因为有大量的API,LLM首先可以访问API搜索引擎来找到正确的API进行调用,然后使用相应的文档进行调用。在API-Bank工作流中,LLM需要做出几个决策,并在每一步都可以评估该决策的准确性。决策包括:1)是否需要进行API调用;2)识别要调用的正确API:如果不够好,LLM需要迭代修改API输入(例如,为搜索引擎API决定搜索关键字);3)基于API结果进行响应:如果结果不满意,模型可以选择进行精炼并再次调用。
·
·
最后,Lilan还介绍了几个案例,包括科研用途的ChemCrow,斯坦福的西部小镇,AutoGPT等。
·
·
Good Examples and seemingly bad大模型最早是被用于写小说、写诗、画画、聊天、做作业(包括作弊)等比较轻松的场景,比如Jasper和Hyperwrite(用于写作时)都表现出了惊人的性能,但随着GPT本身在处理这类问题时交互越来越好,让创业公司自然而然延展至把“所有事情都用大模型从新做一遍”的冲动当中。不过现阶段让大模型给用户订机票、订外卖、购物并不是什么好想法。首先,这类场景已经在移动互联网阶段被国内外互联网厂商在体验上解决的臻至化境,就算是用大模型做一些优化也应该是由他们来做。此外,除了在付款那一刻消费本身是一件快乐的事情,线上也好线下也罢,用户浏览商品是一件愉悦的事情。但使用大模型一方面把快乐的部分的移除了,只留下付款那一刻比较痛苦的环节,然后还让用户盯着大模型在网页/桌面间蹦来蹦去避免出错,除非用户是个电脑折磨狂实在想不到有什么价值。但是像AOMNI和TwitterGPT切实提供了很好的价值,一方面解决的是真实需求,做针对性的市场调研也好、发twitter也好(尤其是工作发推),都是用户需要花大量时间去做、学习思考,但是还未必能做好的工作,虽然用户可以使用多个AI工具来完成这些工作,但是仍然很花时间。而这类工具则一方面缓解了痛苦本身,并且通过交互提高了效率,实现了“把痛苦交给交给大模型,人类负责享受”的愿景,订机票还是留给用户自己来做吧!
出自:https://mp.weixin.qq.com/s/avUMdMOCkzUz30AAFsPfMw
一个在线的将文本转换为逼真的人类语音AI工具,拥有超过400种语音选项,您可以轻松创建逼真的音频内容。DupDub语音生成器可用于内容创作、无障碍性、语言学习、虚拟助理、游戏和动画。