用户概述
用户是指 Agent/workflow 发起对话的终端用户,GPTBots 支持开发者为不同用户设置唯一身份标识ID,通过该用户IDuser_id可以在不同渠道之间进行用户 身份关联,实现跨渠道用户身份合并、 通过 Tools 实现业务业务查询、维护用户属性和聊天记录等。
用户 CDP 信息存储于 Agent/workflow 之下,同个用户在不同的 Agent/Workflow 下数据是相互隔离的。
用户体系示意图
flowchart LR
subgraph Col1["用户来源平台"]
LC["Livechat"]
IC["Intercom"]
WG[" Widget "]
TG["Telegram"]
end
subgraph Col2_5["来源平台子Channel"]
tgb01["TGBOT01"]
tgb02["TGBOT02"]
end
subgraph Col2["匿名 ID"]
a1["lc0001"]
a2["ic0001"]
a3["wg0001"]
tga1["tb0001"]
tga2["tg0001"]
end
subgraph Col3["UserId"]
U1["ABC123"]
U2["ABC456"]
end
subgraph Col4["ConversationId"]
c1["c001"]
c2["c002"]
c3["c003"]
c4["c004"]
c5["c005"]
end
subgraph Col5["Agent/Workflow"]
Bot["Agent
Workflow"]
end
LC -- 自动生成匿名ID --> a1
IC -- 自动生成匿名ID --> a2
WG -- 自动生成匿名ID --> a3
TG -- 用户来源于子channel --> tgb01 & tgb02
tgb01 -- 自动生成匿名ID --> tga1
tgb02 -- 自动生成匿名ID --> tga2
a1 -- 设置user_id --> U1
a2 -- 设置user_id --> U1
a3 -- 设置user_id --> U2
tga1 -- 设置user_id --> U2
tga2 -- 设置user_id --> U2
U1 -- 生成新对话ID --> c1
U1 -- 生成新对话ID --> c2
U2 -- 生成新对话ID --> c3
U2 -- 使用旧对话ID --> c4
c4 -- 若过期(>60分钟)
自动生成新对话ID --> c5
c1 --> Bot
c2 --> Bot
c3 --> Bot
c4 --> Bot
c5 --> Bot
LC:::redStyle
IC:::blueStyle
WG:::greenStyle
TG:::purpleStyle
tgb01:::purpleStyle
tgb02:::purpleStyle
a1:::redStyle
a2:::blueStyle
a3:::greenStyle
tga1:::purpleStyle
tga2:::purpleStyle
U1:::userGray
U2:::userGray
c1:::redStyle
c2:::blueStyle
c3:::greenStyle
c4:::purpleStyle
c5:::purpleStyle
classDef userGray fill:#f5f5f5,stroke:#e6e6e6,color:#222
classDef redStyle fill:#ffd6d6,stroke:#ffbdbd,color:#222
classDef blueStyle fill:#dff0ff,stroke:#cfeaff,color:#222
classDef greenStyle fill:#ecffd9,stroke:#d5ffb3,color:#222
classDef purpleStyle fill:#f1e0ff,stroke:#e1c7ff,color:#222
style Col1 stroke:#757575- 匿名ID(anonymous_id)由 GPTBots 系统服务根据用户来源平台自动生成。
- 设置user_id是可选的,开发者可以根据业务场景需要自定决定是否为用户设置
user_id,以实现在不同渠道之间进行用户身份关联和用户属性共用。
定义
用户
用户是指与 Agent 产生对话的终端用户。
用户ID(user_id)
由企业开发者为终端用户所赋予的身份唯一标识ID,通过 API 接口支持开发者为某个匿名ID设置UserId。UseId 的使用场景和高级用法请参考设置用户ID。
user_id级别高于anonymous_id- 多个
anonymous_id可以同时属于一个user_id。
匿名ID(anonymous_id)
用户在三方平台(如:Telegram、WhatsApp、LINE等)与 Agent 进行对话时,GPTBots 会使用该三方平台的用户惟一标识符作为anonymous_id。 匿名ID的生成逻辑请参考[匿名ID取值逻辑](## 匿名ID取值逻辑)。
三方平台
GPTBots 平台当前支持将 Agent 集成至众多三方平台,包含:intercom 、webchat、 livechat 、 telegram 、 WhatsApp 等
对话ID(conversation_id)
对话ID(conversation_id)由 Agent、对话类型和 user_id(anonymous_id)所共同生成的惟一标识ID,conversation_id是不同业务场景隔离的最小单位(通常包含多个消息ID)。
conversation_id的自动过期时间为 60分钟,但通过 API 渠道生成的conversation_id没有过期时间。- 三方平台和部件气泡等渠道所生成的
conversation_id在过期后会再次生成一个全新的conversation_id开启一轮新对话。
消息ID(message_id)
消息ID 即message_id用于标识 Agent 与用户的一次对话消息,是 Agent 与用户的一次对话的最小单位。
message_id是由 GPTBots 平台生成的,开发者无法自定义message_id。message_id归属于conversation_id,一个conversation_id通常包含多个message_id。
对话类型
对话类型(conversation_type)用于标识用户发起对话场景,如:工作空间-Workflow、WhatsApp、API、工作空间-Search 等。
对话ID(conversation_id)的生成原理
当用户通过三方平台与 Agent 发起对话时,系统会根据用户所在的三方平台,为用户生成的anonymous_id,并基于anonymous_id自动生成conversation_id用于承载用户与 Agent 的一轮对话。
- 开发者通过 API 方式使用时,必须先生成
conversation_id,方可发起与 Agent/Workflow 的对话。 - 非 API 的其他渠道平台,GPTBots 会自动生成
conversation_id
匿名ID 取值逻辑
| 匿名ID来源平台 | 匿名ID取值逻辑 | 说明 |
|---|---|---|
| Telegram | anonymous_id = tg_user_id | tg_user_id:Telegram平台用户的唯一标识符 |
| Telegram 群聊 | anonymous_id = tg_chat_id + tg_user_id | tg_chat_id:Telegram 群聊的唯一标识符,tg_user_id:Telegram平台用户的唯一标识符 |
| LINE | anonymous_id = line_user_id | LINE 用户的唯一标识符,用于识别平台内的个体用户 |
| LiveChat | anonymous_id = lc_thread_id | LiveChat 会话线程的唯一标识符,用于跟踪和管理用户对话线程 |
| Slack | anonymous_id = slack_user_id | Slack 用户的唯一标识符,用于识别平台内的个体用户 |
| Slack Public Channel | anonymous_id = slack_team_id + slack_channel_id + slack_user_id | Slack 团队标识符、公共频道标识符与用户标识符的组合,用于在公共频道中唯一标识用户 |
| Intercom | anonymous_id = intercom_user_id | Intercom 用户的唯一标识符,用于客户支持平台中的用户追踪和管理 |
| 钉钉 | anonymous_id = dd_user_id | 钉钉用户的唯一标识符,用于企业协作平台中的用户区分 |
| 钉钉群聊 | anonymous_id = dd_chat_id + dd_senderId | 钉钉分配给消息发送者的唯一标识符、群聊的唯一标识符,用于企业协作平台中的用户区分 |
| WhatsApp by meta | anonymous_id = wa_user_id | WhatsApp 用户的唯一标识符,通常基于用户的手机号码(例如,国际格式手机号码后缀@c.us) |
| WhatsApp by EngageLab | anonymous_id = wa_user_id | WhatsApp 用户的唯一标识符,通常基于用户的手机号码(例如,国际格式手机号码后缀@c.us) |
| Discord | anonymous_id = discord_user_id | Discord 用户的唯一数字标识符,用于游戏和社区平台中的用户识别 |
| anonymous_id = instagram_user_id | Instagram 分配给消息发送者(即 Instagram 用户)的唯一标识符 | |
| anonymous_id = facebook_user_id | Facebook 分配给消息发送者(即 Instagram 用户)的唯一标识符 | |
| sobot | anonymous_id = sobot_memberId | sobot 用户 ID |
| Sobot 群聊@用户 | anonymous_id = sobot_guildId + sobot_channelId + sobot_memberId | Sobot 群聊@用户的唯一标识符,用于在群聊环境中唯一标识用户互动 |
| Intercom | anonymous_id = intercom_user_id | Intercom 用户 ID |
| Zoho Sales IQ | anonymous_id = zoho_sales_iq_conversationId | Zoho Sales IQ 的对话惟一标识符 |
| 微信客服 | anonymous_id = wechat_customer_service_user_id | 微信客服 用户 ID |
GPTBots内置渠道匿名ID(anonymous_id)取值逻辑
| 集成渠道 | 匿名ID取值逻辑 | 说明 |
|---|---|---|
| API | 无匿名ID | 用户仅可使用user_id生成对话ID |
| 工作空间 | 匿名ID=浏览器指纹ID | 基于浏览器指纹生成随机ID,清除缓存或无痕模式下可能会生成新的ID |
| 分享 | 匿名ID=浏览器指纹ID | 基于浏览器指纹生成随机ID,清除缓存或无痕模式下可能会生成新的ID |
| Iframe | 匿名ID=浏览器指纹ID | 基于浏览器指纹生成随机ID,清除缓存或无痕模式下可能会生成新的ID |
| AI搜索 | 匿名ID=浏览器指纹ID | 基于浏览器指纹生成随机ID,清除缓存或无痕模式下可能会生成新的ID |
| AI搜索(iframe) | 匿名ID=浏览器指纹ID | 基于浏览器指纹生成随机ID,清除缓存或无痕模式下可能会生成新的ID |
| Widget | 匿名ID=浏览器指纹ID | 基于浏览器指纹生成随机ID,清除缓存或无痕模式下可能会生成新的ID |
当用户已登录 GPTBots 平台时,系统自动将其
GPTBots账户ID设置为user_id,并自动关联anonymous_id(浏览器指纹ID)。
对话类型与来源ID
对话类型(conversation_type)用于标识用户发起对话时所在的集成通道(如工作空间、API、Iframe、WhatsApp、LINE等)类型,通过conversation_type字段值可以分类型查询日志数据。
来源ID(source_id)用于标识用户发起对话的集成通道的子类型(如LINE平台下不同的Channel账号ID,Telegran平台下不同的BotID等),通过source_id字段值可以查询子类型的日志数据。
| 对话类型 | conversation_type | 备注 |
|---|---|---|
| 全部 | ALL | 集成-全部通道产生的对话ID |
| 工作空间-Search | C | 集成-工作空间-Agent产生的对话ID |
| 工作空间-Agent | CHAT | 集成-工作空间-Search产生的对话ID |
| 工作空间-Workflow | C_WORKFLOW | 集成-工作空间-Workflow产生的对话ID |
| 工作空间-Apps | C_APPS | 集成-工作空间-Market-AI应用产生的对话ID |
| API | API | 集成-API产生的对话ID |
| Iframe | EMBED | 集成-Iframe产生的对话ID |
| 部件气泡 | WIDGET | 集成-Widget产生的对话ID |
| AI搜索 | AI_SEARCH | 集成-AI搜索产生的对话ID |
| 分享 | SHARE | 集成-Share产生的对话ID |
| WhatsApp by Meta | WHATSAPP_META | 集成-WhatsApp by Meta产生的对话ID |
| WhatsApp by EngageLab | WHATSAPP_ENGAGELAB | 集成-WhatsApp by EngageLab产生的对话ID |
| 钉钉机器人 | DINGTALK | 集成-钉钉机器人产生的对话ID |
| Discord | DISCORD | 集成-Discord产生的对话ID |
| Slack | SLACK | 集成-Slack产生的对话ID |
| Zapier | ZAPIER | 集成-Zapier产生的对话ID |
| 微信客服 | WXKF | 集成-微信客服产生的对话ID |
| Telegram | TELEGRAM | 集成-Telegram产生的对话ID |
| LiveChat | LIVECHAT | 集成- LiveChat产生的对话ID |
| LINE | LINE | LINE产生的对话ID,若存在多个LINE Channel,则会有多个Channel选项 |
| Instagram产生的对话ID | ||
| Facebook产生的对话ID | ||
| Sobot | SO_BOT | Sobot产生的对话ID |
| Zoho Sales IQ | ZOHO_SALES_IQ | Zoho Sales IQ产生的对话ID |
| Intercom | INTERCOM | 集成-Intercom产生的对话ID |
| Livedesk | LIVEDESK | 集成-Livedesk产生的对话ID |
⚠️ 注意:表格中的字段值,可用于通过 API获取对话列表数据的筛选条件。
如 LINE、Telegram 等支持添加多个子通道的三方平台,「Agent-日志」进行筛选对话类型会支持 2 级类型。
