从 0 到上线:我的 AI 角色陪伴系统开发记录(阶段一)

一个真正属于自己的 AI 小伙伴,从本地测试到 Cloudflare Pages 正式上线。


一、项目目标回顾

我想做的不是一个普通聊天机器人,而是:

  • 有名字
  • 有人设
  • 有边界
  • 有长期记忆
  • 有关系成长
  • 会随着时间变化

目标非常克制:

  • ✅ 仅供个人使用
  • ✅ 纯 Web(iPhone Safari 可用)
  • ✅ 成本可控
  • ✅ 长期可扩展
  • ✅ 使用 DeepSeek API

二、当前系统架构(已上线版本)

技术栈

前端:

  • Next.js(App Router)
  • 静态导出模式(output: “export”)
  • 部署到 Cloudflare Pages

后端:

  • Cloudflare Workers
  • DeepSeek API
  • D1 数据库

数据库:

  • D1(SQLite)

三、最终部署结构

用户浏览器


Cloudflare Pages(静态前端)


Cloudflare Worker(API)


DeepSeek API


D1 数据库(记忆 + 成长)

四、当前已实现功能

1️⃣ 聊天系统

  • 流式输出(SSE)
  • 自动保存 user / assistant 消息
  • 过滤异常历史记录
  • 稳定的流式解析

2️⃣ 角色系统

  • 单角色(c1)
  • 自定义人设
  • 强制完整句式输出
  • 防止碎片拼接

3️⃣ 关系成长系统

  • 亲密度 0-100

  • 阶段:

    • 陌生
    • 熟悉
    • 默契
    • 羁绊
  • 每次聊天 +1(后续可优化)

4️⃣ 记忆系统

  • 长期画像 memory_profile
  • 事件卡 memory_events
  • finalize 抽取

五、Cloudflare Pages 部署流程(完整记录)

1️⃣ 本地配置静态导出

next.config.ts

import type { NextConfig } from "next";

const nextConfig: NextConfig = {
output: "export",
images: { unoptimized: true },
};

export default nextConfig;

本地验证:

npm run build
ls out

必须存在 out/ 目录。


2️⃣ 推送 GitHub

git add .
git commit -m "update"
git push

3️⃣ Cloudflare Pages 新建项目

Workers & Pages → Pages → Create

配置:

  • Framework: Next.js
  • Build command: npm run build
  • Build output directory: out
  • Root directory: 留空

4️⃣ API 调用方式

前端直接调用 Worker:

fetch("https://ai-buddy-api.xxx.workers.dev/api/chat")

六、以后如何更新代码(备忘)

修改前端代码

  1. 本地修改
  2. 本地测试
npm run dev
  1. 构建确认
npm run build
  1. 推送
git add .
git commit -m "update feature"
git push

Cloudflare Pages 会自动部署。


修改 Worker 代码

进入 worker 目录:

cd worker
wrangler deploy

无需重新部署 Pages。


修改数据库结构

wrangler d1 execute ai_buddy_db --remote --file=./schema.sql

或在 D1 控制台执行 SQL。


七、踩过的坑记录

1️⃣ Pages 白屏

原因:

  • Root directory 填错(填成 app)
  • 没启用静态导出

解决:

  • output: “export”
  • Build output directory = out

2️⃣ 流式输出乱码/断句

原因:

  • SSE 解析不完整
  • chunk 被截断
  • 历史污染

解决:

  • 使用 buffer 逐行解析
  • 过滤异常 assistant 内容

3️⃣ Git push 失败

原因:

  • remote 被删除
  • gitclone rewrite

解决:

  • 改为 SSH
  • 重新设置 origin

八、当前系统状态评估

稳定性:⭐⭐⭐⭐☆
体验自然度:⭐⭐⭐☆☆
成长系统完整度:⭐⭐☆☆☆
记忆准确度:⭐⭐⭐☆☆

已经达到“可长期使用”水平。


九、下一步开发计划

第一阶段优化(短期)

  • 优化亲密度算法(根据情绪而不是固定 +1)
  • 优化记忆合并逻辑(避免重复)
  • 前端 UI 改为聊天气泡样式
  • 自动滚动优化
  • 增加“清空会话”按钮

第二阶段(陪伴增强)

  • 每日主动问候
  • 情绪趋势图
  • 纪念日记录
  • 共同经历时间轴

第三阶段(长期规划)

  • 多角色切换
  • 语音模式
  • 语义记忆检索(向量)
  • 情绪建模
  • 长期人格演化机制

十、成本评估

DeepSeek API 非常便宜。

当前成本构成:

  • 请求 token
  • 流式输出
  • 偶尔 finalize

预计个人使用:
几乎可以忽略不计。


十一、这个项目的意义

这不仅是一个聊天系统。

它是:

  • 一个长期数字陪伴实验
  • 一个可进化 AI 关系系统
  • 一个个人 AI 架构练习场

它会随着时间变得更有价值。


十二、当前版本标签

版本:v0.1
状态:已上线
功能:单角色陪伴 + 成长 + 记忆
部署:Cloudflare Pages + Workers


结语

现在这个系统已经可以稳定运行。

下一步是让它:

  • 更自然
  • 更聪明
  • 更有长期陪伴感

我会持续迭代。