AI Agent 深入浅出——以 ERNIE SDK 和多工具智能编排为例
在过去一年里,通用大语言模型(LLM)的飞速发展引起了全球的关注。百度等科技巨头推出了各自的大模型,不断提高语言模型性能的上限。然而,业界对 LLM 所设定的目标不再局限于基本的问答功能,而是寻求利用大模型来执行更复杂、多样的任务。这就是 Agent(智能体)概念的诞生背景。
Agent,可以理解为一个能够自主规划决策、综合运用多种工具以完成复杂任务的系统。在这个系统中,大语言模型充当着“核心调度器”的角色。该调度器负责解读用户的自然语言输入,规划出一连串可执行的动作,并依托记忆模块等其他组件和外部工具,逐步完成这些任务。
2024 年,人工智能行业的焦点从通用大模型转向 AI 原生应用。这一技术变革,离不开 AI Agent 的深度参与。AI Agent 的核心价值在于适应多变的环境和需求,以及做出有效决策及可靠操作,这预示着我们正在步入 AGI(人工通用智能)时代。正如比尔·盖茨预言:“在未来五年内,这一切都将彻底改变。你无需针对不同任务切换应用,只需用日常语言与你的设备沟通,软件便能根据你分享的信息提供个性化反馈,因为它对你的生活有了更深入的了解。”
ERNIE SDK
ERNIE SDK 近日新增了一项强大的功能——Agent 开发,标志着 LLM 开发进入了新的阶段。基于强大的文心大模型及其 Function Calling(函数调用)功能,它为 LLM 应用开发提供了一个全新的视角。这一框架不仅解决了 LLM 应用开发中面临的核心挑战,而且通过文心大模型 4.0 展示了其卓越性能。ERNIE SDK 针对几个关键问题提供了有效的解决方案:
1.Token 输入数量限制: 传统的大模型分析总结大型文档时会受限于 token 输入数量的限制,ERNIE SDK 提供了本地知识库检索的方式,使得处理大型文档问答任务更加方便。
2.业务 API 工具的融合: ERNIE SDK 使集成现有业务 API 工具成为可能,拓宽了 LLM 应用的功能性和适应性。
3.数据源连接: ERNIE SDK 能够通过定制工具查询如 SQL 数据库,连接多种数据源,为大模型提供更多的信息。其作为一个高效的开发框架,大幅提升了开发者的工作效率。依托飞桨星河社区的丰富预制组件,开发者可以直接利用现有资源,或者根据特定业务需求进行定制,为 LLM 应用的整个开发生命周期提供全面支持。
基于 ERNIE SDK 的 Agent 架构分析
Agent
在一些复杂的场景下,我们需要根据用户输入灵活调用 LLM 及一系列所需工具,Agent 为这样应用程序的实现提供了可能性。ERNIE SDK 提供基于文心大模型的 Function Calling 能力驱动的 Agent 开发,开发者可以直接使用预置 Agent,通过 Chat Model、Tool 和 Memory 进行实例化,也可以通过继承 erniebot_agent.agents.Agent 基类定制自己的 Agent。
Chat Model(Agent 的大脑)
ERNIE SDK 中的 Chat Model 模块是进行思考决策的核心调度器,也就是百度研发的知识增强大语言模型:文心大模型。
Message(Agent 输入输出信息封装)
开发者通过封装后的 Message 与 Chat Model 进行交互,能够让大语言模型理解输入的信息来源。
此模块使得用户输入与文心大模型的消息回馈更加规范,以便在后续的 Memory 模块中进行存储。
Memory(Agent 的记忆)
大语言模型本身是没有记忆的,所以构建大模型应用很重要的一点就是给予 Agent 记忆功能。ERNIE SDK 提供快速的记忆功能,能够将多轮对话当中的信息存入到一个 List 当中,然后传输到 Chat Model 的上下文窗口当中。不过,这种记忆模式也受限于文心大模型的输入 Token。同时,ERNIE SDK 也允许开发者构建更复杂的记忆模块,可参考的处理方法有:
Vector store-backed memory;每一轮对话的 Message 将会在 embedding 处理后存储至向量数据库当中,在后续的对话环境,根据用户输入的自然语言输入,进行语义向量近似检索找出最符合输入语义的记忆片段。这样的方式能够实现长期记忆,不再受限于文心大模型的上下文窗口限制。
Conversation summary memory;这种处理方法是在每轮对话后将对话信息调用 Chat Model 进行一次总结,并存储总结后的简短内容,从而减轻存储内容的压力。
LangChain/LlamaIndex;实现自定义记忆模块 ERNIE SDK 允许开发者自由集成 LlamaIndex 等框架,可以实现更复杂的记忆模块,利用 LlamaIndex 优秀的文档检索能力,能够做到更长期的记忆。
Tools(Agent 的工具)
让 Agent 自主组合并使用复杂的外部工具来解决更复杂的问题,是未来 AI 应用大规模普及的关键;ERNIE SDK 允许开发者使用飞桨星河社区已上线的 30 余个工具,快速构建复杂应用,也能够根据自己的业务需求定制本地工具。
Retrieval(Agent 的知识库)
虽然通用大模型在训练过程中吸收了广泛的知识,但它们对特定领域或用户专有的业务知识了解有限。使用特定领域数据对大模型进行微调的成本过高,因此引入 RAG(Retrieval Augmented Generation)技术,这一技术的核心是能迅速将外部知识库整合到大模型中,从而深入理解特定领域的专业知识。Retrieval 模块的关键功能包括:
数据源加载,覆盖多种数据类型:
结构化数据,如 SQL 和 Excel
非结构化数据,如 PDF 和 PPT 文档
半结构化数据,如 Notion 文档
数据的分块转化。
数据的向量化 embedding 处理。
将处理后的数据存储到向量数据库中。
通过近似向量检索,快速定位相关信息。ERNIE SDK 的 Retrieval 模块不仅支持百度的文心百中搜索,还与 LangChain 和 LlamaIndex 的 Retrieval 组件兼容,大幅提升了数据处理的效率和准确性。
基于 ERNIE SDK 的 Agent 快速开发体验
现在,让我们一起快速了解如何开发一个 Agent——文稿审核助手。这个 Agent 的主要功能是帮助我们审核各大平台上发布的文稿是否符合规范。
第一步,登录飞桨星河社区,并创建一个新的个人项目。使用社区提供的免费算力配置就足够了。
第二步,登录飞桨星河社区后,点击本人的头像,在控制台中获取自己的访问令牌,飞桨为每个新注册的用户提供 100 万额度的免费 Token。
为了安全管理您的敏感令牌信息,我们建议使用 Dotenv。先安装 Dotenv,随后将您的令牌保存在一个新建的.env 文件中。注意,此文件默认在文件目录下是不可见的,若需查看,需要更改设置。
示例.env 文件内容:
第三步,验证您的访问令牌是否可以正常使用:
如果一切正常,它会打印出您的访问令牌。新建一个文本文件文稿.txt,其中需包含自己要进行合规审核的文本内容。
第四步,构建基础的 Agent(使用飞桨星河社区工具中心提供的预制工具)。
运行这段代码,您将看到 Agent 使用了[text-moderation/v1.2/text_moderation]工具来审核文稿内容,并输出审核结果。这样一来,一个简单的文稿审核助手的 Agent 开发就完成了。我们一同体验了基于 ERNIE SDK 的 Agent 的快速开发流程及其实用性。
多工具智能编排
继深度探索 ERNIE SDK 后,我们再来看看飞桨星河社区的多工具智能编排功能。飞桨星河社区不仅提供了细粒度的 SDK,以支持技术开发者的详细需求,还引入了多工具智能编排功能。这意味着开发者可以基于强大的文心大模型,轻松整合各种外部工具,打造个性化的 AI 应用。相比起单纯使用 ERNIE SDK,这种方法更快速、便捷,大大简化了开发过程。我们将使用多工具智能编排复现文稿审核助手。
首先,使用低代码开发创建应用后,选择智能编排。
其次,在侧边栏工具挂载中点击挂载“文本审核工具”,这是飞桨星河社区工具中心提供的 30 多个预制工具之一,你也可以创建自己的工具。
随后,在基础设定中对文稿助手进行角色身份设定。接着点击应用所有设置,就可以在侧边栏进行体验了。
值得一提的是,飞桨星河社区多工具智能编排对于非技术背景的团队成员极为友好。即使没有深入的编程知识,团队成员也能快速上手,轻松构建自己的 AI 应用。如上述文稿助手的创建只需要几分钟,这不仅加快了产品的迭代速度,还促进了团队内部的协作和创新。
目前,百度飞桨已经开放申请,访问飞桨星河社区邀测报名了解更多详情和申请使用。
随着通用大语言模型的发展和智能 Agent 技术的兴起,我们正迎来 AI 应用开发的新时代。从 ERNIE SDK 的深入探索,到飞桨星河社区多工具智能编排的应用,我们看到像百度飞桨 ERNIE SDK 这样的 AI 技术框架如何突破传统边界,为开发者提供了前所未有的便利和巨大的发展可能性。无论是有深厚技术背景的开发者还是非技术人员,都能在这个新时代中找到属于自己的空间,共同推动 AI 技术的进步及 AI 应用的普及。AI 的未来,充满无限潜力。AI 应用的广阔天地,等着我们去探索和创造。
评论