更新记录
1.0.0(2026-05-27) 下载此版本
基于 百度 RTC AI Agent Android SDK 封装
平台兼容性
uni-app(5.07)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | - | - | - | - | - | - | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uts-baidu-rtc-agent
百度 BRTCAgent AI 大模型实时互动 UTS 插件,在 uni-app 中实现 AI 智能体实时语音/文字互动。 基于 百度 RTC AI Agent Android SDK 封装,在 uni-app 中实现 AI 大模型实时语音/文字聊天。
安装
- 将
uts-baidu-rtc-agent目录放入 uni-app 项目的uni_modules/下。 - 在 HBuilderX 中「制作自定义调试基座」(或云打包)。
- 在页面中通过 ES 模块语法引入:
import * as plugin from "@/uni_modules/uts-baidu-rtc-agent";
注意:UTS 插件不能使用
uni.requireNativePlugin()加载,必须使用import语法。
权限
插件需要麦克风权限,在 AndroidManifest.xml 中需声明:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
首次连接时需在代码中动态申请权限:
plus.android.requestPermissions(
['android.permission.RECORD_AUDIO'],
function(res) {
if (res.granted.length > 0) {
// 开始连接
}
},
function() {
uni.showToast({ title: '请授权麦克风权限', icon: 'none' })
}
)
快速开始
import * as plugin from "@/uni_modules/uts-baidu-rtc-agent";
export default {
data() {
return {
sdkVersion: ''
}
},
mounted() {
// 获取 SDK 版本(无需初始化)
this.sdkVersion = plugin.getSDKVersion()
},
methods: {
// 一键连接 AI 智能体
connect() {
// 1. 先注册事件回调
plugin.setEventCallback((eventName, jsonData) => {
const data = JSON.parse(jsonData)
switch (eventName) {
case 'onCallStateChange':
// data.state: 1=通话开始, 2=通话结束
break
case 'onAIAgentSubtitle':
// data.text, data.isFinal — AI 流式回复文字
break
case 'onError':
console.error(data.error, data.msg)
break
}
})
// 2. 一键启动(自动创建 Agent + 初始化 SDK + 发起通话)
plugin.quickStart(
'your_app_id', // appId
'', // userId(可选)
'', // licenseKey(可选)
JSON.stringify({ // Agent 配置
lang: 'zh',
role: '智能助手',
tts_sayhi: '你好,有什么可以帮你?',
host: 'https://ai.agent.kaywang.cn'
})
)
},
// 发送文字
sendText(text) {
plugin.sendText(text)
},
// 挂断
hangup() {
plugin.stopAgent('your_app_id', '', 'https://ai.agent.kaywang.cn', '')
plugin.hangup()
plugin.destroy()
}
}
}
API 参考
基础 API
| 方法 | 说明 |
|---|---|
getSDKVersion() |
返回 SDK 版本号,无需初始化即可调用 |
setEventCallback(callback) |
注册事件回调(必须最先调用) |
initAgent(appId, contextJson, userId, licenseKey, verbose) |
初始化 Agent |
callAgent(token, instanceId) |
发起通话 |
hangup() |
挂断通话 |
destroy() |
销毁引擎,释放所有资源 |
交互 API
| 方法 | 说明 |
|---|---|
sendText(text) |
发送文本消息给大模型 |
sendTextAndInterrupt(text) |
发送文本并立即打断当前播报 |
interrupt() |
打断当前 AI 播报 |
sendFunctionCallResult(id, result) |
返回 Function Call 执行结果 |
sendCommand(cmd) |
发送自定义命令(如 [PAUSE]、[RESUME]) |
音频控制 API
| 方法 | 说明 |
|---|---|
muteMic(isMute) |
麦克风静音 / 取消静音 |
mutePlayback(isMute) |
扬声器静音 / 取消静音 |
switchToSpeaker(speaker) |
切换听筒 / 扬声器播放 |
高级 API
| 方法 | 说明 |
|---|---|
updateSystemPrompt(modelType, prompt) |
更新 System Prompt |
uploadFile(scenario, path, expire) |
上传文件(图片等),scenario: 0=视觉理解, 1=图片编辑 |
startAgent(appId, userId, licenseKey, configJson, host, startPath) |
HTTP 创建 Agent + 初始化 + 发起通话 |
stopAgent(appId, instanceId, host, stopPath) |
HTTP 停止 Agent 实例 |
quickStart(appId, userId, licenseKey, configJson) |
一键启动(最简方式) |
getSDKVersion()
const ver = plugin.getSDKVersion() // 如 "3.5.0.4a"
setEventCallback(callback)
注册全局事件回调,必须在调用 initAgent 或 quickStart 之前调用。
plugin.setEventCallback((eventName, jsonData) => {
const data = JSON.parse(jsonData)
// 处理各事件
})
回调参数:
eventName: string— 事件名称jsonData: string— JSON 字符串,需JSON.parse解析
initAgent(appId, contextJson, userId, licenseKey, verbose)
初始化 Agent SDK。contextJson 需从后端获取。
plugin.initAgent(
'your_app_id', // appId
'{"cid":1,"token":"xxx"}', // contextJson(后端返回)
'user_001', // userId(可选,传 "")
'', // licenseKey(可选,传 "")
true // verbose 调试日志
)
callAgent(token, instanceId)
发起通话前需先调用 initAgent。
plugin.callAgent('your_token', '1')
quickStart(appId, userId, licenseKey, configJson)
一键启动:自动完成 HTTP 创建 Agent → 初始化 SDK → 发起通话。
plugin.quickStart(
'your_app_id',
'',
'',
JSON.stringify({
lang: 'zh', // 语言
role: '智能助手', // 角色描述
tts_sayhi: '你好!', // 首次问候语
sense: '', // 场景角色(可选)
llm: '', // 大模型(可选)
audiocodec: '', // 音频编码(可选)
host: 'https://ai.agent.kaywang.cn' // 后端地址(可选)
})
)
configJson 支持的字段:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
lang |
string | 否 | 语种,如 "zh" |
role |
string | 否 | 角色描述,如 "智能助手" |
tts_sayhi |
string | 否 | 首次通话的问候语 |
sense |
string | 否 | 场景角色 |
llm |
string | 否 | 指定大模型 |
audiocodec |
string | 否 | 音频编码格式 |
host |
string | 否 | 后端 API 地址,默认 "https://ai.agent.kaywang.cn" |
其他 API
// 发送文字
plugin.sendText('[T]:你好')
// 发送文字并打断当前播报
plugin.sendTextAndInterrupt('停下来')
// 打断 AI 播报
plugin.interrupt()
// 麦克风静音
plugin.muteMic(true) // 静音
plugin.muteMic(false) // 取消静音
// 扬声器静音
plugin.mutePlayback(true)
plugin.mutePlayback(false)
// 切换听筒 / 扬声器
plugin.switchToSpeaker(true) // 扬声器
plugin.switchToSpeaker(false) // 听筒
// 返回 Function Call 结果
plugin.sendFunctionCallResult('call_id', '{"result":"ok"}')
// 发送自定义命令
plugin.sendCommand('[PAUSE]')
plugin.sendCommand('[RESUME]')
// 更新 System Prompt
plugin.updateSystemPrompt(0, '你现在是一个数学老师')
// 上传文件
plugin.uploadFile(0, '/sdcard/photo.jpg', 180)
// HTTP 停止 Agent
plugin.stopAgent('your_app_id', '1', 'https://ai.agent.kaywang.cn', '')
// 释放所有资源
plugin.hangup()
plugin.destroy()
事件回调参考
回调函数会收到两个参数:eventName(事件名)和 jsonData(JSON 字符串)。需要 JSON.parse(jsonData) 后使用。
| 事件 | 数据字段 | 说明 |
|---|---|---|
onCallStateChange |
state: number |
1=通话开始, 2=通话结束 |
onConnectionStateChange |
state: number |
1=连接中, 2=已连接, 3=重连中, 4=断开 |
onError |
error: number, msg: string |
错误回调 |
onUserAsrSubtitle |
text, isFinal, speakerName?, similarity?, emotion? |
用户语音识别结果(流式) |
onAIAgentSubtitle |
text, isFinal |
AI 回复文本(流式) |
onAIAgentAudioStateChange |
state: number |
AI 语音状态变化 |
onUserAudioStateChange |
state: number |
用户语音状态变化 |
onAIAgentAudioLevel |
level: number |
AI 音量级别(100ms 回调,频率高) |
onUserAudioLevel |
level: number |
用户音量级别(100ms 回调,频率高) |
onFunctionCall |
id, funcName, params |
大模型触发 Function Call |
onUploadFileStatus |
code, msg |
文件上传结果 |
onLicenseStatus |
code, msg |
鉴权结果(0=成功) |
onAgentIntent |
type: string |
意图回调 |
onMediaGenerateStart |
taskId, query |
媒体生成开始 |
onMediaGenerateCompleted |
taskId, type, error, resList, msgRes |
媒体生成完成 |
onRecvTagMessage |
msg, isFinal |
标签消息 |
onAgentCreated |
token, instanceId, context |
Agent 实例创建成功 |
完整示例
参见 pages/chat/chat.vue。
License
百度 BRTCAgent SDK,需要有效的 License Key。请联系百度获取授权。

收藏人数:
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 0
赞赏 0
下载 12063302
赞赏 1917
赞赏
京公网安备:11010802035340号