构建智能体
智能体作为智能应用平台的一种应用类型,是一种独立运行的智能应用,能自主规划决策并执行任务。
智能体主要利用大模型的推理思考能力,借助丰富多样的工具(外加领域知识,这里主要是本体知识),帮助用户处理特定的任务,比如可以通过构造智能体来处理货期提拉的问题。
模型
用于选择智能体执行时使用的大模型(可选大模型,来自管理模块配置的用户大模型)及针对大模型的配置(在具体调用大模型时会将这些配置发送给大模型)。
当前支持的有多样性和最大回复长度,如下图:
- 多样性:控制模型输出的多样性(对应的大模型的配置参数temperature),数值越高输出内容的差异性越大,当前支持三种预设模式:
- 精确模式(对应的temperature为0.1)
- 平衡模式(对应的temperature为0.5)
- 创意模式(对应的temperature为1.0)
- 用户自定义模式(用户可自定义temperature的值,范围0~1)。
- 最大回复长度:控制模型生成的Token数上限(对应的大模型的配置参数max_tokens),默认为0时,表示不限制。输入Token和输出Token的总长度受模型的上下文长度的限制,模型的上下文长度限制参考具体的大模型。
系统提示词
系统提示词(System Prompt)是给大语言模型预设的指令,用于定义模型的角色、行为规则、约束条件等,引导模型生成特定的输出,提示词直接影响模型的输出,所以需要重点关注,提示词示例如下图:
另外,可通过在系统提示词里引用参数来参数化提示词(详见下文的参数配置),这样就可以在运行时通过参数来动态控制提示词的内容。
系统提示词最多支持10000个字符。
参数
用于配置智能体在执行时额外需要的数据,在智能体里,参数主要用于丰富系统提示词,即系统提示词可以通过引用参数来动态调整,具体引用方式为{param},参数示例如下图:
对话历史
- 对话历史开关用于控制智能体对话时是否携带历史对话消息,可视为智能体的短期记忆。开启该开关后,系统将当前对话中前几轮对话消息(轮数参考配置的对话消息数)作为上下文信息发送给大模型,供其推理时使用。
- 通常在一个对话中,若不关注前几轮对话内容,可不打开对话历史开关;若需关注,则需打开该开关。开启后,系统将对话历史消息发送给大模型,为其提供更多上下文信息。
- 对话历史消息最多支持当前对话中的最近10轮。
对话历史示例如下图:
技能
技能(也叫工具)在智能体中是大模型与外部世界交互的桥梁,有了工具就可以大幅延伸大模型的能力边界。
当前智能体节点支持四种类型的技能:
- 工具
由“工具”模块提供的工具,主要是系统或用户自定义的API。
- 工作流和智能体
可以将智能应用里用户开发的工作流和智能体作为工具来使用,通过用户开发的工作流和智能体来解决用户业务问题,必须是发布上线(即生产部署)的工作流或智能体。
- 本体
- 本体对象类型搜索:查询本体对象及对象关系的结构定义,支持查看对象名称、属性、属性类型等Schema元信息。
- 本体对象搜索:分页查询本体中的对象数据,支持检索目标对象实体,并可同时返回固定数量(100)的关联实体与关联对象实体的信息。
- 本体关系搜索:分页查询指定对象的关联关系实体,以及关联关系两端的对象实体信息。
- 本体数据查询:支持跨对象关联属性的分页查询,提供“汇总统计”与“明细列表”两种数据查询模式。
- 本体动作执行:将本体动作封装为专用工具提供给大模型,可以让大模型通过推理来自主执行本体动作,从而对特定的本体数据进行增删改的操作。
- 知识湖
知识湖检索:将知识湖文档检索作为工具提供给大模型,让大模型可以自主查询检索知识湖文档,前提是用户已经在知识湖上传解析后的文档。
开场白
开场白,是指对话时的道白,可以帮助或引导用户开始对话,主要是一些提示引导信息,用于帮助用户如何开始对话,比如“我是一个天气助手,请输入你要查询天气的城市”,示例如下图:
开场白最多支持1000个字符。
引导问题
引导问题,是指智能体开发人员配置好的智能体应用预设问题,当用户在开始新的对话时,就会看到这些预设问题,用户可以直接单击某个预设问题来直接开始对话,此时被单击的预设问题就会当做用户的问题发给智能体,比如“查询北京今天的天气”,示例如下图:
最多支持配置10个引导问题,每个引导问题最多支持1000个字符。
