跳到主要内容

从零构建AI机器人:Agent集成实践

本指南将介绍如何基于融云 IM 平台集成 AI 机器人,并通过Agent接入大模型服务

1. 工作流程

  1. AppServer

    • 客户应用服务器,用于管理机器人和 Agent。
  2. App

    • 用户的终端,发送用户消息,接收机器人响应。
  3. RongCloudServer

    • 消息转发:对接大模型服务,将用户发送的消息转发至具体选用的大模型。
    • 响应处理与会话管理
      • 流式:实时推送大模型增量内容。
      • 非流式:整合完整文本后发送。
      • 会话上下文:存储首次交互的会话 ID(conversation_id),有效期 24 小时,后续对话携带此 ID 确保多轮上下文。
  4. LLM

    • 大模型,可选择不同的模型提供商及具体的模型,可选列表详见模型可用列表

2. 快速开始

本部分将帮助你快速完成部署与接入配置,开始使用融云机器人提供的智能对话体验。

2.1 准备工作

在开始集成机器人之前,请确保以下准备工作已完成:

  • 已在 融云开发者控制台 创建应用,并获取有效的 App Key 和 App Secret。

2.2 接入步骤

  1. 选择模型:查看支持的模型列表,并选择合适的模型。
  2. 创建真实用户:在系统中创建一个用于与机器人交互的真实用户账号。
  3. 创建 Agent:调用融云接口创建 Agent。
  4. 创建机器人:创建机器人,并使用 Agent 集成方式。
  5. 验证接入效果:使用第二步创建的用户账号向机器人发送一条单聊消息,确认用户终端是否能收到来自大模型的对话响应。
  6. 验证连续对话效果:使用同一用户持续向同一机器人发送消息,验证对话上下文是否正确延续。

⚠️ 注意:调用融云服务需进行身份认证,认证信息需通过工具脚本生成,具体使用方法见下文。

步骤 1:选择模型

可选列表请见: 模型可用列表

步骤 2:创建真实用户

bash
curl -X POST "{HOST}/user/getToken.json" \
-H "App-Key: 填写您的App-Key" \
-H "Nonce: 填写您的 Nonce" \
-H "Timestamp: 填写您的 Timestamp" \
-H "Signature: 填写您的Signature" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "userId=xxxxxx"

步骤 3:创建 Agent

调用融云接口创建 Agent,接口地址: 创建 Agent

bash
curl -X POST "{HOST}/v3/agent/create.json" \
-H "App-Key: 填写您的App-Key" \
-H "Nonce: 填写您的 Nonce" \
-H "Timestamp: 填写您的 Timestamp" \
-H "Signature: 填写您的Signature" \
-H "Content-Type: application/json" \
-d '{
"agentId": "customer_service_v1",
"name": "智能客服助手",
"description": "专业的客服AI助手,能够处理各种客户咨询",
"type": "chat",
"agentConfig": {
"model": {
"name": "qwen-turbo",
"options": {
"temperature": 0.7,
"topP": 0.9,
"maxTokens": 2048,
"frequencyPenalty": 0.1,
"presencePenalty": 0.1
}
},
"prompt": {
"instructions": "你是一个专业的客服助手,请耐心、准确地回答用户的问题。"
},
"memory": {
"strategy": "sliding_window",
"maxMessages": 20
}
}
}'

步骤 4:创建机器人

调用融云接口创建机器人并绑定 Agent ID,详见创建机器人

bash
curl -X POST "{HOST}/v3/bot/create.json" \
-H "App-Key: 填写您的App-Key" \
-H "Nonce: 填写您的 Nonce" \
-H "Timestamp: 填写您的 Timestamp" \
-H "Signature: 填写您的Signature" \
-H "Content-Type: application/json" \
-d '{
"userId": "bot-1",
"name": "小助手",
"type": "AI",
"profileUrl": "https://example.com/profile.png",
"integrations": [
{
"enabled": true,
"type": "rc_agentchat",
"stream": true,
"handleResponse":true,
"agent": {
"agentId": "customer_service_v1"
}
}
],
"metadata": {
"creator": "运营团队",
"version": 1
}
}'

步骤 5:验证接入效果

使用第二步创建的用户账号向机器人发送一条单聊消息,确认用户终端是否能收到来自机器人的对话响应。

bash
curl -X POST "{HOST}/message/private/publish.json" \
-H "App-Key: 填写您的App-Key" \
-H "Nonce: 填写您的 Nonce" \
-H "Timestamp: 填写您的 Timestamp" \
-H "Signature: 填写您的Signature" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "fromUserId=XXXXX" \
--data-urlencode "toUserId=bot-1" \
--data-urlencode "objectName=RC:TxtMsg" \
--data-urlencode 'content={"content":"能给我几个 AI 应用场景的点子吗?","extra":""}'

以下是演示效果,截图来自融云 Sealtalk APP Demo

图示 图示

步骤 5:验证连续对话效果

使用同一用户持续向同一机器人发送消息,验证对话上下文是否正确延续。融云将自动维持与大模型的上下文会话,实现连续对话体验。

图示

3. 使用场景

3.1 消息助手:触发智能对话、任务执行、内容生成等功能

  • 用户向 AI 提问知识类问题,机器人通过知识库或大模型进行回答;
  • 发起内容生成请求,如"帮我写一封道歉邮件";
  • 发起内容翻译请求,如"将内容翻译为英文";
  • 发起指令请求,将消息分类同步到业务系统,如"创建工单";
  • FAQ 问答:解析用户意图并自动回复;

3.2 陪聊助手:打造具备情感陪伴与个性化交互能力的智能聊天机器人

  • 提供持续自然的闲聊体验,满足用户日常交流需求;
  • 模拟具有性格特征的角色(如朋友、心理咨询师、虚拟偶像等),提升互动趣味性与沉浸感;
  • 根据用户的情绪变化进行适当回应,实现基础的情绪识别与关怀;
  • 可与用户设定的虚拟人物设定结合,构建个性化陪伴场景(如"我的 AI 恋人"、"职场导师");

4. 工具脚本

4.1 生成融云 HTTP 请求签名

python
import hashlib
import time
import random


def generate_rongcloud_signature(app_secret, nonce=None, timestamp=None):
"""
生成融云 HTTP 请求签名

参数:
app_secret: 融云应用的App Secret
nonce: 随机字符串(可选),如果不提供将自动生成
timestamp: 时间戳(可选),如果不提供将使用当前时间

返回:
包含nonce, timestamp和signature的字典
"""
if nonce is None:
# 生成随机字符串(由数字和字母组成的6位字符串)
nonce = ''.join(random.choices('0123456789abcdefghijklmnopqrstuvwxyz', k=6))

if timestamp is None:
# 获取当前时间戳(秒)
timestamp = str(int(time.time()))

# 计算签名
signature_str = app_secret + nonce + timestamp
signature = hashlib.sha1(signature_str.encode('utf-8')).hexdigest()

return {
'nonce': nonce,
'timestamp': timestamp,
'signature': signature
}


if __name__ == '__main__':
# 替换为你自己的App Secret
app_secret = 'YOUR_APP_SECRET'

# 生成签名
signature_data = generate_rongcloud_signature(app_secret)

print("生成的融云签名信息:")
print(f"Nonce: {signature_data['nonce']}")
print(f"Timestamp: {signature_data['timestamp']}")
print(f"Signature: {signature_data['signature']}")

5. 结语

通过本指南,您已完成融云机器人与 Agent服务的基本集成。这一方案有效降低了 AI 应用的开发门槛,为您的产品提供了强大的智能对话能力。

如在开发中遇到任何问题,欢迎通过创建工单或联系我们的技术支持团队。