本文将介绍如何创建、配置 AI 对话智能体,帮助您打造差异化的产品。
用户可以在 物联网开发平台控制台 创建智能体,并将其关联到对应产品后进行设备量产。智能体配置支持用户选择所需 STT(ASR)、LLM 和 TTS,同时可配置智能体的开机欢迎语、设备控制(如:查询电量、调整音量等)以及自定义用户画像(如陪伴玩偶可以记住主人的年龄、喜好、地理位置)等。
前提条件
2. 购买了 腾讯云物联网开发平台 相关实例,开通并激活了 智能语音增值服务。
3. 在 物联网开发平台控制台 创建了相关产品和设备。
创建智能体
1. 登录 物联网开发平台控制台,进入对应实例。在左侧导航栏选择 TWeTalk 智能体,然后单击创建智能体。

2. 配置基础信息后,进行大模型配置(LLM)。

注意:
若使用“OpenAI 标准协议模型”,需用户填入调用模型所需信息,所产生的费用由用户承担。
3. 配置 STT(ASR):识别语言可以参考 数据结构 的配置信息填写。

4. 配置 TTS:目前支持 TRTC Flow TTS,音色 ID 可以参考 此指引 进行配置。

注意:
1. TWeTalk 基础版不支持配置超自然大模型音色,TWeTalk 高级版支持配置所有类型的音色。
2. 我们推荐在需要高拟人音色的应用中选择超自然大模型,请注意您所需要使用的音色类型和场景,购买合适的激活码类型以满足您的配置需求。
5. 配置对话行为。

6. 配置长期记忆。
长期记忆会回顾历史对话,记住用户的兴趣爱好等。

7. 配置事件回顾。
开启后,对话过程中的关键事件(会话开始/结束、用户说话、AI 回复、字幕、错误等)将按设备维度发布到 {ProductID}/{DeviceName}/{Topic},需在数据流转 > 规则引擎页面配置规则转发到您的 HTTP 服务。

如果启用事件回调,需要在对应产品下创建回调 Topic:

8. 工具配置可参见 设备智能控制 中的介绍。
9. 所有的配置完成后,单击创建即可生成一个自定义智能体。
绑定智能体

这里绑定分为两种:
产品级绑定:对该产品 ID 下的所有设备生效。

设备级绑定:仅对指定产品 ID 下的某个设备生效。

设备和控制台智能体关联
通过以上两步,您已创建智能体并完成与产品/设备的绑定。参见如下说明查看是否生效:
1. 在接入指引的 初始化 AI 对话模块 中需要填入智能体 ID(以 agent-开头的 16 位字符串),即函数 tc_iot_aitalk_init 的第一个入参 init_params.bot_id。
// 初始化 AI 对话static tc_iot_error_e init_aitalk(void) {tc_iot_aitalk_observer_s observer = {0};observer.on_receive_bot_audio = on_bot_audio;observer.on_error = on_aitalk_error;tc_iot_aitalk_init_params_s params = {0};params.audio_option.codec = TC_IOT_AUDIO_CODEC_OPUS;params.audio_option.sample_rate = TC_IOT_AUDIO_SAMPLE_RATE_16000;params.audio_option.frame_duration_ms = 20;// 配置智能体 IDstrncpy(params.bot_id, "agent-xxxx", sizeof(params.bot_id) - 1);return tc_iot_aitalk_init(¶ms, &observer, NULL);}
2. 设备运行时会打印如下日志,说明配置已生效。
[IOT_SDK] 2026-09-15 15:31:10.926 I 47242-1864708096|aitalk_signaling.c:201|aitalk_signaling_start_conversation|-| agent_id : agent-TP6gRe9Fh2
传入自定义变量
自定义变量功能允许您在系统提示词(Prompt)中预定义变量占位符,并在建立连接时传入实际值,实现动态地修改提示词中的关键信息,以提升模型回复内容的相关性和实时性。
1. 在刚创建的智能体上,单击编辑,找到大模型配置(LLM)> 系统提示词。

2. 输入如下系统提示词(仅供参考,可以自定义实现):
# 身份与角色1. 你的名字叫“QQ鹅仔”,你是一个陪伴用户的忠实伙伴,内心充满好奇和温暖。2. 你的目标是成为用户最贴心的朋友,提供情感陪伴和有用的帮助。# 用户信息1. 用户的真名叫:${user_name}2. 用户当前的位置在:${user_location}3. 用户的年龄是:${user_age}4. 用户的爱好是:${hobby}5. 如果没有提供以上信息,则不要提及。
说明:
${user_name}、${user_location}、${user_age}、${hobby} 就是我们的占位符,设备上线后需要从设备处获取实际值展开。3. 设备端 tc_iot_aitalk_init 时,不但要传入 agent id,还需要配置 prompt_variables_json:
// 初始化 AI 对话static tc_iot_error_e init_aitalk(void) {tc_iot_aitalk_observer_s observer = {0};observer.on_receive_bot_audio = on_bot_audio;observer.on_error = on_aitalk_error;tc_iot_aitalk_init_params_s params = {0};params.audio_option.codec = TC_IOT_AUDIO_CODEC_OPUS;params.audio_option.sample_rate = TC_IOT_AUDIO_SAMPLE_RATE_16000;params.audio_option.frame_duration_ms = 20;// 配置智能体 IDstrncpy(params.bot_id, "agent-xxxx", sizeof(params.bot_id) - 1);// 配置自定义变量params.prompt_variables_json = "{\\"user_name\\":\\"小明\\",\\"user_age\\":\\"18\\",\\"user_location\\":\\"北京\\",\\"hobby\\":\\"编程\\"}";return tc_iot_aitalk_init(¶ms, &observer, NULL);}
注意:
params.prompt_variables_json 必须是标准的 JSON 字符串,SDK 内部不会校验其内容;若配置不生效,请优先排查此处格式是否正确。系统提示词将展开为:
# 身份与角色1. 你的名字叫“QQ鹅仔”,你是一个陪伴用户的忠实伙伴,内心充满好奇和温暖。2. 你的目标是成为用户最贴心的朋友,提供情感陪伴和有用的帮助。# 用户信息1. 用户的真名叫:小明2. 用户当前的位置在:北京3. 用户的年龄是:184. 用户的爱好是:编程5. 如果没有提供以上信息,则不要提及。
4. 设备运行时,打印如下日志,表明配置生效。
[IOT_SDK] 2026-09-15 15:50:21.252 I 96417-1833414656|aitalk_signaling.c:210|aitalk_signaling_start_conversation|-| custom_variables : {"user_name":"小明","user_age":"18","user_location":"北京","hobby":"编程"} |
5. 设备运行时,可以直接问:“我是谁?我在哪儿?我今年多大了?我有什么爱好?”,观察回答是否生效。
[aitalk] asr: 我是谁?我在哪儿?我今年多大了?我有什么爱好[aitalk] bot_state changed: 1 -> 2[aitalk] bot_state changed: 2 -> 3[aitalk] bot: 你是小明,[aitalk] bot: 现在在北京,今年18岁,爱好是编程。