avatar

Jacob Morrow

2023-09-04 10:25:25

9068 浏览, 5 min 阅读

近年来,人工智能(AI)技术的飞速发展引起了广泛的关注和讨论。而如今,我们正站在一个全新的时代门槛前,面对着 AI Agent 带来的的崭新未来。以LLM(大型语言模型)作为其核心控制器构建代理是一个很酷的概念。它模拟人类的工作流程,能够自主进行信息搜索、分析、利用,以完成目标。

OpenAI 联合创始人 Andrej Karpathy 在 Twitter 上用比喻描述了 AI Agent 的过程:每一次 GPT 的调用就像一次思考。通过将他们串联起来,就可以创建出可以感知、思考和行动的 Agent 系统。目前已经存在不少 AI Agent 系统的案例,例如 AutoGPT、BabyAGI、Camel、Jarvis、AgentGPT 等。


AI Agent 系统是如何工作的?

AI Agent 系统如此强大,那么他到底是如何工作的呢?
在 AI Agent 系统中,LLM 引擎充当其大脑,为其提供了强大的处理能力和智能思维。除此之外,还辅以几个关键组件:
● 任务规划:为 AI Agent 系统提供任务分解 (task decomposition) 和自我反思 (self reflection) 的能力。
● 记忆:为 AI Agent 系统提供长时间保存和回忆额外信息的能力。
● 工具使用:让 AI Agent 可以对外部做出动作,真实地影响现实世界。


任务规划

AI 机器人(AI-BOT)在任务分解阶段,通常是使用思维链 (CoT, Chain of Thoughts) 和思维树 (ToT, Tree of Thoughts) 等技术。
CoT :通过 “think step by step” (分步思考),将复杂任务逐步分解为更小、更简单的步骤。它将大任务拆分为多个可以实现的小任务,并阐明了 LLM 思考推理的过程。
ToT :则尝试同时考虑多个潜在的可行计划。它在每一步尝试探索更多可能性,首先将问题分解为多个思考步骤,并在每个步骤中生成多个思考,从而创建一个思维树。
而在自我反思阶段,AI Agent 回顾过去的行动和决策,并纠正以前的错误来迭代改进自身。自我反思目前常用的技术有 ReAct、Reflextion、Chain of Hindsight 等。
ReAct :通过追踪 LLM 的推理过程来让模型优化、跟踪和更新行动计划,并能处理异常情况。
Reflextion :则比 ReAct 更进一步,在 ReAct 的流程中加入推理评估来尝试改进推理结果。
Chain of Hindsight :则是通过大量的反馈结果中学习并优化推理结果。


记忆

人脑的记忆分为三种:感官记忆、短期记忆和长期记忆。
感官记忆是人的视觉、听觉、触觉等反馈而来的记忆,通常只有数秒;短期记忆是人当前正在执行的认知任务的相关记忆,通常会持续数十秒;长期记忆则是人过往的经历和回忆,通常会长达数十年,我们的大脑会在需要时自动从长期记忆中提取出对应的记忆来使用。
AI Agent 也模拟了人脑记忆的使用过程,对于较短的感官记忆和短期记忆,AI Agent 可以直接将其放入上下文中;而对于长期记忆,AI Agent 将其存储在外部,需要时再根据需要提取出相关的记忆来使用。
我们现在通常使用向量数据库来存储、搜索外部记忆,它使用最大内积搜索 (MIPS) 的技术来对记忆进行相关性搜索,目前常用的 MIPS 的算法有 LSH、ANNOY、HNSW、FAISS、ScaNN 等。


工具使用

工具的使用也是很重要的环节,任务规划、反思和记忆只是让 AI Agent 有了思考的能力,但是他还需要能使用工具才能做出具体的行动。给 AI Agent 装配上工具,相当于给予了他手足,让他能够通过利用各种工具和资源来完成任务。
目前的 ChatGPT Plugins 和 OpenAI API function calling 都是 LLM 使用工具的非常好的实践案例。除此之外,还有 MRKL、TALM、Toolformer、HuggingGPT 和 API Bank 等使用工具的方法。


AI Agent 的经典案例: Auto GPT

AutoGPT 是一个实验性的开源 AI Agent 程序,它利用 GPT-4 来自主管理任务,例如创建网站、撰写文章、生成 Logo 或推广产品等。它可以访问互联网,并收集、分析各种信息,从网络中学习并完成任务。
AutoGPT 的惊人之处在于它的自治性。他是完全独立运作的,不需要使用者的额外干预。他还拥有长期和短期记忆系统,这让他能记住过往做过的事情,从经验中学习,并根据过去的行动自行优化决策,这让它可以随着时间不断自我改进。


AI Agent 尚未解决的问题

AI Agent 的发展和应用在许多领域中都呈现出了巨大的潜力和前景。然而,就像任何其他技术一样,AI Agent 也有一些限制:
● 有限的上下文长度:受限的上下文容量限制了 AI Agent 系统的效果,尤其是任务规划和自我反思这样的机制。虽然向量存储和检索可以提供对外部信息的访问,但它们的表示能力不如完全关注那么强大。
● 长期规划和任务分解的挑战:虽然 AI Agent 在解决特定任务方面可能非常出色,但与人类相比,在长期规划和任务分解方面仍存在显著的差距。
● 自然语言接口的可靠性:当前的 AI Agent 系统依赖自然语言作为 LLM 与外部组件的接口。然而,大语言模型的输出并不是完全可靠的,因为他偶尔可能会出现格式错误,或表现出叛逆行为。
当然,随着 AI 技术的飞速演进,我们相信,这些限制都会在不久的将来得到解决。


如何实现AI Agent?

尽管当前技术发展阶段下AI Agent尚未足够成熟,不足以将任务完全托管,但我们依然能够通过一些有效的方式,在GPTBots(https://gptbots.ai/developer/)平台上,以更加务实和合理的中间方案,实现Agent能力。
Flow BOT —— 可视化地规划任务流程
任务规划是AI Agent的关键组件之一。GPTBots(https://gptbots.ai/developer/)平台则提供以可视化组件搭建任务流程创建AI-BOT的能力——Flow BOT。平台已将常见的、通用的AI-BOT开发模块抽象为了多个组件。开发者可以在界面上,通过简单的托拉拽方式,根据自身业务需求,将不同组件进行”规划“,拼接为一个“任务”,并定义为一个AI-BOT,以解决特定的问题。
Flow BOT不仅拥有灵活的任务流配置能力,在不同的开发模块内也提供了众多的可配置项,例如输入、输出、插件、知识库、条件判断等,可以帮助开发者灵活地应对各种业务场景。


插件 —— 让AI-BOT执行任意任务

AI Agent需要有工具才能执行各类任务,而GPTBots(https://gptbots.ai/developer/)平台提供的插件(Plugin)就是这么一款工具。
GPTBots平台官方提供了涵盖学术、商业、生活和工作等诸多领域的公共插件,供开发者加入AI-BOT内进行调用,让AI-BOT拥有了与外界沟通的能力,并执行对应任务。
同时,GPTBots平台也为开发者提供了“插件开发”能力,让开发者能够根据自身的要求开发插件,并接入AI-BOT调用,以满足自己的业务场景需求。


长短记忆 —— 用更充沛的信息来做决策

记忆设置是GPTBots(https://gptbots.ai/developer/)平台提供的另一项有利于实现Agent能力的功能。开发者可以通过对AI-BOT进行长记忆和短记忆的设置,来对AI-BOT的问题处理能力进行拓展。
在解决规模较大,信息量较多的问题时,长记忆的能力显得尤为关键。而在处理一般问题时,短记忆便已足够。在解决单轮问答问题时,甚至可以用不着长短记忆能力。
这也使得该功能拥有了另外一层价值:开发者能够应根据自身的需求,理性地定义AI-BOT的记忆设置,因为因为更长的记忆,就意味着更多的成本消耗。长短记忆功能,为开发者控制AI-BOT成本,提供了一种方向。


AI Agent 的未来

AI Agent 强大的能力,将让他成为我们未来的无处不在的助手,为我们的生活和工作提供协助和支持。无论是在家庭生活中,帮助我们管理日常事务和家务,还是在工作场所中,协助我们处理数据和决策,AI Agent 都将发挥重要作用。
在家庭生活中,AI Agent 可以成为一个智能家居管家,通过学习我们的喜好和习惯,自动调节室温、照明和音乐,提供个性化的生活体验。它们还可以帮助我们管理购物清单、日程安排和提醒事项,让我们的生活更加便捷高效。
在工作场所中,AI Agent成为我们的智能助手和数据分析师。它们可以快速处理大量的数据,提供准确的分析和预测,帮助我们做出更明智的决策。AI Agent 还可以自动化繁琐的任务,提高工作效率,并减轻人们的工作压力。
当然,作为一种新兴技术,AI Agent 也面临着一些挑战和风险。我们需要确保 AI Agent 助手的安全性和可靠性,避免出现意外事故和不良后果。同时,我们也需要制定相关的法规和行业规范,明确责任和监管机制,以保障 AI Agent 的合理使用和发展。
目前的 AI Agent 还在初始阶段,或许尚不完善,但如果这个方向保持和生成式 AI 相同的发展速度,那么我们可能很快就能看到商业化的 AI Agent 助手出现在我们身边。这一天也许很快就会到来。