自动回复是"无状态"的——每次回复不记得上次说了什么。但很多业务需要"有状态":记住用户是谁、上次进行到哪一步、有什么偏好。用户状态在业务中有3种用途,下面结合 Eyun 的接口说明。

一、个性化记忆用途

让机器人"记住"每个用户的特点。

用户说"我叫张三" → 存入用户画像 {name:张三, preferences:[喜欢简洁回复]} → 下次该用户再来 → 从画像取名字 → 回复"张三你好,又见面了"。Eyun Webhook回调的 fromUser 是用户标识键,画像按 fromUser 存取。Eyun 的消息记录接口可拉历史对话辅助构建画像。

大白话:机器人给每个用户建一张"档案卡"——名字、喜好、上次聊了什么,下次见面不用从头问。

二、流程推进用途

让机器人知道用户进行到流程哪一步。

以订票流程为例:

  • 进入流程:状态记 {stage:1_询问目的地}

  • 用户说"北京":更新 {stage:2_询问时间, dest:北京}

  • 用户说"明天3点":更新 {stage:3_执行查询, dest:北京, time:明天3点}

  • 每步用 fromUser 关联流程状态,流程完成后状态清空

Eyun 的 sendText 在每步发引导提示。按照 Eyun开发文档规范,sendText 需要传 wIdtoUsercontent 三个必填参数。

大白话:机器人记着"这个用户正在订票,已经到第2步了"——像超市结账分步操作,扫完一件商品知道还有几件要扫。

三、权限控制用途

根据用户身份决定能做什么操作。

用户状态含 role 字段(普通用户/管理员/VIP):

  • 普通用户只能查信息

  • 管理员可以批量推送

  • VIP可以走优先通道

每次操作前检查 fromUser 对应的 role,权限不符则 sendText 提示"无权限"。在 Eyun 平台管理的 wId 对应的用户状态可设权限。

大白话:机器人给不同用户不同的"钥匙"——普通用户只能看门面、管理员能进后台、VIP有专属通道。

四、三种用途对比

状态用途

存什么

存储方式

更新时机

Eyun接口

大白话

业务效果

个性化记忆

用户画像

持久化

用户主动告知

Webhook/sendText

建档案卡

体验被记住

流程推进

流程状态

临时存储

每步推进

sendText

记到第几步

多步引导

权限控制

角色权限

持久化

管理员分配

sendText

发不同钥匙

安全可控

五、代码框架

# 用户状态管理器
class UserStateManager:
    def __init__(self):
        self.profiles = {}   # 画像: {fromUser: {name, prefs}}
        self.flows = {}      # 流程: {fromUser: {stage, data}}
        self.roles = {}      # 权限: {fromUser: role}

    def handle(self, msg, w_id):
        fu = msg["fromUser"]
        # 用途3: 权限校验
        role = self.roles.get(fu, "user")
        if role == "user" and msg["content"].startswith("/push"):
            send_text(w_id, fu, "无权限")
            return
        # 用途2: 流程推进
        if fu in self.flows:
            self._advance_flow(fu, msg["content"], w_id)
            return
        # 用途1: 画像记忆
        self._update_profile(fu, msg["content"], w_id)

    def _advance_flow(self, fu, text, w_id):
        flow = self.flows[fu]
        flow["stage"] += 1
        send_text(w_id, fu, f"请提供下一步信息")  # 调 Eyun sendText
        if flow["stage"] >= 3:
            self.flows.pop(fu)  # 流程完成清空

六、结尾

3种用途让机器人从"无状态的复读机"变成"有状态的智能助手"——个性化记忆让用户体验"被记住"、流程推进让机器人能引导多步操作、权限控制让机器人安全可控。三种用途可以叠加:同一用户既有画像(个性化)又在流程中(推进)还有角色(权限)。

状态存储建议 Redis(热数据快存)+ MySQL(冷数据持久化)双写。状态过期策略:画像永久存、流程状态24小时过期、权限实时校验。更多资源可在 Eyun平台官网查看。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐