本文介绍如何在多模态交互应用中接入百炼平台应用,以及在客户端调用。
在多模态交互开发套件中,我们预置了多种官方插件和 Agent。当官方能力不能满足您的特定需求时,您也可以将自己开发的百炼平台应用(如智能体应用、工作流应用等)接入到多模态平台,实现能力更丰富的多模态交互。
本文档以创建和接入一个【西游记大全】应用为例,介绍如何在多模态应用中接入百炼平台应用。
创建和配置百炼应用
创建百炼平台应用,参考应用类型介绍。
配置应用,调整模型、提示词和其他需要的能力。应用名修改为【西游记大全】。
测试并发布应用。

在多模交互应用中接入
在您的多模交互应用中导入上个步骤配置好的【西游记大全】。
在菜单Agent - 添加 - 我的应用 中选中【西游记大全】,点击确定导入。
发布应用。

应用测试和参数配置
应用测试
在多模应用中导入【西游记大全】后,我们可以在网页进行测试。
进入【西游记大全】应用的方式为语音说: 打开西游记大全,帮我查一下三清是谁。

参数配置
在【西游记大全】应用中,我们配置了一个名为${user_name}的参数。代表用户昵称,默认值为“小宝”。
通过 SDK 调用多模应用,我们可以在代码中配置${user_name}。
一级参数 | 二级参数 | 三级参数 | 四级参数 | 参数说明 |
biz_params | 多模请求参数中的biz_params | |||
user_defined_params | 透传用户自定义参数 | |||
user_defined_app_id | 导入的百炼应用 id | |||
user_prompt_params | 类型为 Object 对应百炼应用prompt 的自定义变量名和值。 |
格式化示例
{
"biz_params": {
"user_defined_params": {
"84***********************acc": {
"user_prompt_params": {
"user_name": "大米"
}
}
}
}
}客户端验证
以 Android SDK 为例。
在建联参数中设置变量值。
HashMap<String, Object> appParams = new HashMap<>();
appParams.put("user_name","大米");
HashMap<String, Object> userPromptParams = new HashMap<>();
userPromptParams.put("user_prompt_params",appParams);
HashMap<String, Object> userDefinedParams = new HashMap<>();
userDefinedParams.put("67f3ad7d6496475483db4a184c926e77",userPromptParams); //西游记大全的 appid
MultiModalRequestParam.BizParams bizParams = MultiModalRequestParam.BizParams
.builder()
.userDefinedParams(userDefinedParams)
.build();
运行 Demo 通过语音请求【西游记大全】 Agent。由于端侧设置了用户名为“大米”,可以看到 APP 回复的昵称为“大米”,验证链路测试通过。

由百炼平台应用主动退出接管模式
在多模态交互应用中,您可以为接入的百炼平台应用开启“对话接管”模式。开启后,当用户通过“触发指令”唤起该应用,后续的多轮对话将持续由其处理,直到用户说出“退出指令”,或由应用本身主动结束对话。

除了让用户说出“退出指令”外,百炼应用内部也可以根据自身的业务逻辑,主动判断并决定何时退出接管模式。这种方式更为灵活,能实现更智能的对话流程控制。
应用通过在返回内容的开头添加特定的“指令标记”来实现主动退出。目前支持以下两种退出场景:
场景1:应用完成任务并回复后退出
指应用判断当前对话可以结束,并已生成了本轮的最终回复。退出后,多模态平台将仅播报该应用返回的回复内容。
指令标记:
[#blmm-quit#]使用示例:应用返回
[#blmm-quit#]再见啦。用户将只会听到再见啦。随后对话将退出当前应用。
场景2:应用无法处理当前问题,交还控制权后退出
指应用判断自己无法处理用户的当前请求,需要退出并将问题交还给多模态交互主流程来处理。
指令标记:
[#blmm-rejected#]使用示例:应用仅返回
[#blmm-rejected#]。多模态平台会接管并根据用户的原始问题寻找其他方式来回复,而不会播报任何来自当前应用的内容。