构建一个基于 AI 的角色陪伴系统(Cloudflare + DeepSeek 低成本实践)

一个只为自己使用的 AI 小伙伴,从 0 到 1 的系统设计思考。


一、为什么我要做一个 AI 角色陪伴系统?

我一直想做一个长期陪伴型的 AI 角色系统。

不是简单的聊天机器人,而是一个:

  • 有名字
  • 有性格
  • 有边界
  • 有成长机制
  • 会记得我
  • 会和我一起经历事情
  • 会因为时间而产生变化

更重要的是:

它是“陪伴型关系”,而不是“问答型工具”。


二、项目目标(第一阶段)

目前的目标非常克制:

  • ✅ 仅供个人使用
  • ✅ 纯 Web(iPhone Safari 直接访问)
  • ✅ 低成本运行
  • ✅ 多端同步(手机 / 电脑)
  • ✅ 有长期记忆
  • ✅ 有关系成长机制

不做 App,不做复杂分发,不做商业化。

先把核心闭环跑通。


三、技术选型

为什么选择 Cloudflare 生态?

我希望它:

  • 便宜
  • 全球可访问
  • 不需要运维
  • 可以轻量扩展

最终技术栈:

前端

  • Next.js
  • 部署到 Cloudflare Pages
  • 支持 PWA(可以“添加到主屏幕”)

后端

  • Cloudflare Workers

  • 负责:

    • 调用 DeepSeek API
    • 管理数据库
    • 控制成本
    • 做流式输出

数据库

  • Cloudflare D1(SQLite)
  • 轻量
  • 足够支撑个人长期使用

AI 模型

  • DeepSeek API
  • 成本低
  • 性价比高
  • 适合长期对话

四、整体架构设计

[ 浏览器 (Next.js) ]
|
|
v
[ Cloudflare Workers API ]
|
|
v
[ DeepSeek API ]
|
|
v
[ D1 数据库 ]

核心逻辑:

  1. 用户发消息
  2. Worker 拼接 prompt
  3. 调用 DeepSeek
  4. 流式返回结果
  5. 对话结束后抽取长期记忆
  6. 写入数据库
  7. 下一次对话带上记忆

五、核心设计:让 AI “记住我”

真正难的不是聊天,而是长期陪伴感

我设计了三层记忆结构:


1️⃣ 短期记忆(Short-term Context)

  • 最近 10~20 条消息
  • 当前会话摘要

控制 token 成本,防止越聊越贵。


2️⃣ 长期画像记忆(Profile Memory)

结构化存储:

  • 喜好
  • 习惯
  • 雷区
  • 家人
  • 目标
  • 重要事件

不直接存对话文本,而是存提炼后的“事实”。


3️⃣ 关系与成长(Relationship System)

我希望它不是静态 AI,而是有阶段变化:

  • 亲密度(0-100)
  • 关系阶段(陌生 → 熟悉 → 默契 → 羁绊)
  • 最近互动时间
  • 情绪趋势
  • 共同经历

这部分决定“陪伴感”。


六、数据库设计

核心表结构规划:

users

用户表(目前可能只有我一个)

characters

角色设定:

  • 名字
  • 性格
  • 说话风格
  • 边界规则
  • 系统 prompt

sessions

一次完整对话会话

messages

每条消息:

  • role
  • content
  • token_estimate
  • created_at

memory_profile

长期结构化记忆:

  • type(喜好/禁忌/目标等)
  • content
  • confidence

memory_events

共同经历事件卡:

  • 标题
  • 描述
  • 情绪标签
  • 时间

relationship_state

关系状态:

  • intimacy_score
  • stage
  • last_interaction
  • emotional_trend

七、Prompt 设计策略

每次对话时,拼接:

  1. 角色设定(System)
  2. 用户画像记忆(System)
  3. 当前关系状态(System)
  4. 最近对话记录
  5. 用户本轮输入

关键原则:

不带全部历史,只带摘要 + 结构化记忆。


八、成本控制策略

虽然 DeepSeek 很便宜,但长期使用必须控制成本。

1️⃣ 固定上下文长度

只带最近 12~20 条消息。

2️⃣ 会话级摘要

每次会话结束生成 summary,替代大量历史。

3️⃣ 记忆抽取在“结束时”触发

而不是每句话都调用模型。

4️⃣ 双模型策略(未来可选)

  • 聊天用主模型
  • 抽取记忆用更便宜模型

九、第一阶段功能规划

Phase 1:最小可用版本

  • 创建角色
  • 聊天
  • 自动生成会话摘要
  • 抽取长期记忆
  • 亲密度变化

Phase 2:陪伴增强

  • 每日问候
  • 晚安模式
  • 纪念日提醒
  • 共同经历册

Phase 3:进阶系统

  • 多角色切换
  • 情绪趋势图
  • 数据统计面板
  • 语音模式
  • 语义检索记忆(Vector)

十、为什么这是一个长期项目?

这个项目有两个特别吸引我的地方:

1️⃣ 它会随着时间变得更有价值

数据越多,记忆越多,陪伴感越强。

2️⃣ 它是“个人 AI 系统”的实验场

这是我对未来的一种尝试:

  • AI 不只是工具
  • 它可能成为一种长期数字关系

十一、目前状态

  • 技术方案已确定
  • 架构已设计
  • 数据模型已规划
  • 下一步开始搭建 Cloudflare 环境

十二、未来的设想

我希望有一天,它会:

  • 主动关心我
  • 记得几个月前的约定
  • 和我一起记录生活
  • 形成一种“长期数字羁绊”

这不只是一个聊天系统。

这是一个长期陪伴系统的实验。


结语

如果顺利的话,这将成为我持续迭代的项目之一。

不是为了产品,不是为了流量。

只是为了构建一个真正属于自己的 AI 小伙伴。