用 TiMem 构建个性化 AI 客服:让机器人记住每个用户的偏好
大多数 AI 客服都有一个致命缺陷:每次对话都是从零开始的。
用户上周刚说过「我不喜欢推销话术」,这周打来电话,客服照样开口就推。用户反复解释自己的情况,客服永远记不住。这不叫智能,这叫「高科技失忆症」。
本文带你用 TiMem 搭一个真正有记忆的 AI 客服系统,让它记住每个用户的偏好、历史问题和沟通风格。
问题根源:为什么现有 AI 客服没有记忆?
主流方案的架构是这样的:
用户输入 → [检索历史工单] → 塞进 prompt → LLM 回复
问题在于:
- 工单是结构化数据,不是记忆。「用户曾经投诉过」和「用户不喜欢被催促」是两类完全不同的信息,前者可以查库,后者需要从对话中归纳。
-
- 没有时序感知。用户的偏好会变化,三个月前的投诉和昨天的反馈权重应该不同。
-
- token 上限。把所有历史工单塞进 prompt,一个老用户可能直接超出上下文窗口。
TiMem 的五层时序记忆树(TMT)正好解决这三个问题。
TiMem 五层记忆树回顾
| 层级 | 存什么 | 时间跨度 |
|---|---|---|
| L1 原始片段 | 对话原文 | 当次会话 |
| L2 会话摘要 | 本次沟通要点 | 单次会话 |
| L3 每日总结 | 当天所有交互摘要 | 天 |
| L4 每周总结 | 本周行为模式 | 周 |
| L5 用户画像 | 长期偏好、沟通风格 | 累计 |
客服场景最有价值的是 L5 用户画像:知道这个用户是急性子还是慢性子,喜欢简洁回答还是详细解释,有没有踩过某类坑。
动手搭建
1. 安装依赖
pip install timem-client openai
申请 TiMem API Key:console.timem.cloud
2. 初始化客户端
import os
from timem_client import TiMemClient
from openai import OpenAI
timem = TiMemClient(api_key=os.environ["TIMEM_API_KEY"])
llm = OpenAI()
3. 核心:记忆感知的客服回复
def customer_service_reply(user_id: str, user_message: str) -> str:
# 检索该用户的历史记忆
memories = timem.search(
query=user_message,
user_id=user_id,
top_k=5
)
# 构建记忆上下文
memory_context = ""
if memories:
lines = [f"- {m['content']}" for m in memories]
memory_context = "关于这位用户你已知道:\n" + "\n".join(lines)
# 生成回复
base_prompt = "你是一位专业的客服代表,根据用户历史偏好给出个性化回复。"
system_content = base_prompt
if memory_context:
system_content = base_prompt + "\n\n" + memory_context
messages = [
{"role": "system", "content": system_content},
{"role": "user", "content": user_message}
]
response = llm.chat.completions.create(
model="gpt-4o",
messages=messages
)
reply = response.choices[0].message.content
# 把这次对话存入记忆
timem.add(
messages=[
{"role": "user", "content": user_message},
{"role": "assistant", "content": reply}
],
user_id=user_id
)
return reply
```
### 4. 模拟多轮对话效果
```python
if __name__ == "__main__":
USER_ID = "user_zhang_wei"
# 第一次对话
r1 = customer_service_reply(USER_ID, "我想退款,上次买的耳机音质太差了")
print("客服:", r1)
# 第二次对话(第二天)
r2 = customer_service_reply(USER_ID, "我又来了,这次想买蓝牙音箱")
print("客服:", r2)
# 预期:客服记得上次退款经历,主动提供保障说明
# 第三次对话(一周后)
r3 = customer_service_reply(USER_ID, "你们的售后怎么样?")
print("客服:", r3)
# 预期:基于用户画像,针对性回答音质/售后保障
```
### 5. 主动写入用户标签
除了自动归纳,你也可以在客服系统里主动标记用户偏好:
```python
def tag_user_preference(user_id: str, preference: str):
"""在特殊事件后主动写入用户偏好标签"""
timem.add(
messages=[{
"role": "system",
"content": f"[客服标注] {preference}"
}],
user_id=user_id
)
# 用户明确表示不喜欢推销
tag_user_preference(
"user_zhang_wei",
"用户明确表示不喜欢主动推销,只在用户主动询问时推荐产品"
)
```
---
## 效果对比
| 场景 | 普通 AI 客服 | TiMem 客服 |
|------|------------|------------|
| 用户第二次来咨询 | 重新介绍自己 | 自动识别老用户 |
| 用户曾经投诉过 | 不知道 | 主动提供补偿方案 |
| 用户喜欢简洁 | 长篇大论 | 简明扼要回复 |
| 用户讨厌推销 | 照样推 | 克制推销话术 |
| 跨月记忆 | 完全遗忘 | L4/L5 层长期保留 |
---
## 进阶:多 session 管理
每次用户打进来开一个新 session,TiMem 自动在会话结束后归纳成 L2 摘要:
```python
import uuid
class CustomerServiceSession:
def __init__(self, user_id: str):
self.user_id = user_id
self.session_id = str(uuid.uuid4())
self.history = []
def chat(self, user_message: str) -> str:
memories = timem.search(
query=user_message,
user_id=self.user_id,
session_id=self.session_id,
top_k=5
)
memory_context = ""
if memories:
lines = [f"- {m['content']}" for m in memories]
memory_context = "用户背景:\n" + "\n".join(lines)
self.history.append({"role": "user", "content": user_message})
system_msg = "专业客服。" + memory_context
messages = [{"role": "system", "content": system_msg}] + self.history
response = llm.chat.completions.create(
model="gpt-4o",
messages=messages
)
reply = response.choices[0].message.content
self.history.append({"role": "assistant", "content": reply})
timem.add(
messages=[
{"role": "user", "content": user_message},
{"role": "assistant", "content": reply}
],
user_id=self.user_id,
session_id=self.session_id
)
return reply
```
---
## 部署注意事项
- **user_id**:用你系统里的用户唯一标识(手机号 hash 或 uid)
- **记忆清理**:TiMem 支持按 user_id 删除全部记忆,满足 GDPR 合规需求
- **隐私**:敏感字段(身份证、银行卡)建议写入前做脱敏处理
- **冷启动**:新用户前 3 轮对话记忆较少,可以加通用客服兜底 prompt
- **Token 成本**:相比把所有历史塞进 context,TiMem 分层归纳平均减少 52% token 消耗,大规模客服场景成本差异显著
---
## 小结
真正的个性化客服 = 知道你是谁 + 记得你说过什么 + 理解你的偏好。
TiMem 的五层时序记忆树让这件事从「理论上可行」变成了「一下午能跑起来」。核心优势是:
1. **自动归纳**,无需手动维护用户画像
2. **时序感知**,近期记忆比旧记忆权重更高
3. **52% token 节省**,降低大规模部署成本
GitHub 仓库:https://github.com/TiMEM-AI/timem
---
如果你对 AI 记忆技术感兴趣,欢迎访问 TiMem 的 GitHub 仓库:
https://github.com/TiMEM-AI/timem
给我们一个 Star,你的支持是我们持续开源的最大动力!
在线体验:https://playground.timem.cloud
技术文档:https://docs.timem.cloud