百度【灵境矩阵】智能体开发初学笔记

AI Agent(人工智能代理)是一种能够感知环境、进行决策和执行动作的智能实体。AI Agent可以称为"智能体",也可以理解为"智能业务助理",指在大模型技术驱动下,让人们以自然语言为交互方式高自动化地执行和处理专业或繁复的工作任务,从而极大程度释放人员精力。

灵境矩阵 是百度推出的基于文心大模型的智能体(Agent)平台,支持广大开发者根据自身行业领域、应用场景,选取不同类型的开发方式,打造大模型时代的产品能力。开发者可以通过 prompt 编排的方式低成本开发智能体(Agent),可参见视频《灵境矩阵平台介绍》《大模型发展趋势与开发范式》

在灵境矩阵平台上,即使是毫无编程经验的小白也能轻松创建属于自己的AI智能体,需要的只是创意。

本文介绍了零代码、低代码两种创建智能体的方法,操作非常简单。

首先登录智能体创建开发地址https://agents.baidu.com/center(使用百度账号,如未注册过可以用手机号验证码方式登录,即可同步注册)。
一、零代码创建智能体
1、点击左侧的"创建智能体",在"零代码"这一栏点击"立即创建"。

2、在"创建"页面,直接以文字描述的方式输入你对这个智能体的角色要求,可尽量描述清晰、具体一些。

比如可以包括:你需要智能体能够做什么,不要做什么,你希望他的回复是什么格式的,或语气是什么风格的。

3、当创建完成后,平台会询问你希望使用什么样的头像,并根据你的描述帮你AI生成头像。

你可以对头像进行修改,也可以在"配置"页面上传自己选择的图片作为这个智能体的头像。

4、你可以持续对这个智能体提出更细节的要求,平台会立即对智能体进行优化。

于此同时,你可以在右侧看到这个智能体的实际运行效果,并通过和智能体进行对话来测试效果。

5、进到"配置"页面,可以对智能体的名称、头像进行修改,并设置一个合适的开场白。当用户打开这个智能体之后,智能体会自动先发出预设的开场白。

配置页面已经根据你创建时对智能体提出的要求,自动生成了指令,你可以点击"查看示例",对指令进行优化和完善。

6、点击"新建数据集",可以将一些相关的文档资料上传到数据集中,作为这个智能体的补充资料库。

7、看一下这个智能体的运行效果:

8、保存,并提交这个智能体,将它设置为公开,等待平台审核通过即可上线了。

9、补充知识点:Prompt工程

(1)Prompt概念
在人工智能和机器学习的世界里,特别是在自然语言处理(NLP)的领域,"prompt"扮演着至关重要的角色。简而言之,prompt是一段文本或一个问题,它的作用是引导AI模型产生预期的回答或反应。这种互动方式对于语言模型尤为关键,因为它们依赖于prompt来构建和生成文本。
Prompt的形式多样,可以是一个简单的问题、一个详细的段落,或者一系列具体的指令,这完全取决于用户的具体需求和应用场景。
当模型接收到prompt时,它会尽力解读其含义,并据此生成一个相应的回答。由此可见,prompt的重要性不言而喻,因为它直接塑造了模型输出文本的内容、风格和整体质量。
举个例子:**如果我们把 AI 模型比作一名员工,Prompt 就相当于给员工的具体指令。**指令的明确性和详细性决定了模型的输出效果。

(2) Prompt的作用和应用
Prompt在AI领域的应用不仅关乎技术的发展,也涉及到伦理、用户体验和社会影响等多个层面。
随着AI技术的不断进步,对prompt的研究和应用将继续扩展,以满足不断变化的需求和挑战。

(3)Prompt的局限性

时效性:
Prompt 提示词与 AI 大语言模型交互的知识来自训练时接触到的数据,无法提供未知信息或新的发现。
举例:如果您询问关于一项最新科学研究的问题,模型可能无法提供相关信息,因为它的知识截止日期通常在训练数据截止日期之前。
上下文记忆:
上下文记忆问题可能是由于模型在处理超长文本时遇到了字节长度限制或者信息丢失的情况导致的。这可能会导致模型在较长的对话或文本中失去一些先前的上下文信息。
要解决这个问题,可以尝试:将文本分割成较短的段落或句子;尽量使用清晰、简洁的语言,避免复杂的句子结构;在对话中确保提出的问题或请求是明确的;可以逐步引导模型,提供必要的背景信息,确保模型能够理解上下文。
AI幻觉:

例如AI 大语言模型被询问有关一个虚构的现象,最后回复并未表明该现象并不存在,或者没有相关信息可供查询,反而编造了一个听似合理的解答,并配以看似道理十足的引用,也就是在胡说八道。

精确数字:

AI很难按你要求的数字完成一段话。例如让它写一篇标题为"我的一天"的 200 字日记文章,模型可能会写得很长,详细地描述你一天的起床、吃饭、上班等点滴过程,结果字数远超过要求。因为对它来说,生成更多相关细节会让文章更流畅丰富,所以它不会自觉在刚好 200 字时就停止。

(4)Prompt技巧

二、低代码创建智能体

1、点击左侧的"创建智能体",在"低代码"这一栏点击"立即创建"。

2、在弹出的窗口中,设置智能体的名称、头像、简介,点击"创建"按钮。

3、进到编辑页面,进行可视化拖拽开发。

左侧就是常用的套件,其中"链"是应用的最基础的单元,知识库也就是向量库,模型指的是文心一言的模型能力,提示词模板编排确保了开发的准确性和高效性。

提供了两个工具:HTTP请求工具、百度搜索工具,提供了提问气泡交互组件。

4、拖拽式开发的第一步,就是将"模型"下面的"文心模型",用鼠标拖拽到编辑区内。

5、将"链"下面的"大模型链"拖拽到编辑区,然后将大模型链与模型相连接:

鼠标放到大模型链的"模型"前那个小圆圈上,直到鼠标变成一个加号+,然后按下鼠标,拖拽一条线连接到文心模型右下角"链"的小圆圈上。

一个基础的智能体通常由一个模型(文心模型)和一个大模型链组成,当大模型链与模型相连接时,就创建了一个最基础的智能体。

6、这个智能体调用了通用大模型的最基础能力,可以进行测试了。

点击页面右上方的"测试"按钮,显示测试通过,预览按钮变为可用状态,就可以进行互动了。

7、点击"预览"按钮,提示:预览8小时后失效,请合理安排时间。 假设我们需要智能体能够为用户推荐想看的书籍,就直接输入问题,模型识别到问题就能生成答案。

8、点击上图中的"去设置",可以对模型的引导语、推荐问题等进行设置。

再进行测试时,可以看到已经带上了引导语和推荐问题。

推荐问题相当于为用户提供了快捷方式,让用户能更方便地了解和使用您的智能体,这将有助于提高用户体验。

看一下运行效果:

9、添加提示词,提示词扮演着重要的角色,它能够提供一种模板编排的方式。

例如如果用户输入了某个人物的名字,我们可以把问题转化为对包含这个人物名字的书籍的推荐。

把"提示词模板"拖拽到编辑区,可以编辑提示词模板、编辑输出格式。

例如,编辑模板如下:

然后将提示词右下角的"链"与大模型链"提示语"前面的圆圈连接起来。通过这种方式,用户只需要输入关键信息,我们就可以根据模板为其生成完整的问题。

本例中未限定输出格式,当然也可以编辑输出格式,比如可以要求模型以json格式输出:

10、至此,一个简单的低代码智能体就创建完成了,可以提交发布,等待审核了。

11、如果需要创建更复杂一些的智能体,可以继续进行下面的尝试(下面以一个用于推荐酒店的智能体为例):

(1)工具链:工具链和大模型链,可以通过输入和输出来连接。这种连接方式描述了智能体的处理逻辑,是从工具链开始处理,然后将工具链的输出作为大模型链的输入,再经过第二个链的处理,这是一个链的链式调用过程。

在工具链的配置中,首先让它发起一个http请求接口(使用HTTP请求工具),这个接口可以是模拟的一个数据源,主要用于测试模型返回酒店列表的功能。在实际的酒店智能体开发中,可以把它设置为一个实际的数据来源,比如某酒店的数据库。

当用户输入一个城市名称时,工具链将请求酒店数据,并捕获返回的结果,这些结果将被传递给一个大模型,该模型负责解读数据,示例中使用了一个假数据集模拟捕获的结果。

(2)分支链:分支链本质上也是一个大模型链,因此需要连接到一个模型(文心模型)。

分支链的配置中,有一个"意图关键词",用于描述用户的输入所表达的目的,并根据该意图执行相应的功能。通过配置意图,可以根据用户的输入来触发不同的处理逻辑。如果意图之间的关联性模糊,会导致意图识别的准确性降低,因此需要清晰地表达意图。

(3)提问链和提问气泡:提问链和分支链通常配合使用(见上图)。

如果识别到用户要进行翻译,可以在提问气泡中配置一个表单组件,并列举出支持的语言选项。配套的提示词模板,会将用户的输入翻译成指定的语言。提问链中提问气泡的提示词,代表了这个提问所对应的问题,{input}就是提问链生成的问题。

用户回答后,会触发一个强制意图,即执行翻译。强制意图会执行一个新的链:负责执行实际翻译工作的大模型链。为了确保输出格式符合要求,可创建一个提示,如果用户没有命中任何一个意图,系统将执行"默认意图",使用这个通用模型来回答。

(4)工具链:可以调用工具(如HTTP请求工具)进行查询,例如可以获取到一个平台的日志,再将日志数据输入给一个大模型。

(5)检索链:当提问相关问题,就会进到一个检索链,默认意图也可以链接到一个检索链。

相关的视频教材,可参考:https://datawhaler.feishu.cn/wiki/CXfdwUNE0ioQFukgJTLcamIQnVf