有个用户在Telegram上跟我的AI聊了170轮。
前10轮,它客客气气的——"您好,请问有什么可以帮您的?"
第50轮左右,它开始不那么正式了——"你之前那个问题,我觉得可以换个思路"。
第170轮,它直接说:"你这写得不行。"
没有人设定它要这么说。我也没写一行代码叫它吐槽。是系统自己算出来的——这个用户跟它聊了170轮,互动积分到了,里程碑够了,关系自动升级到了"老友"阶段。
老友阶段的规则只有一条:说话不客气但亲。可以开玩笑,可以吐槽,可以直接说"你这写得不行"。
这不是人格设定。这是系统计算出来的关系变化。
等等,这跟ChatGPT有什么区别?
ChatGPT也能吐槽你——你让它吐槽,它就吐槽。
区别在于:ChatGPT的吐槽是你要求的,下一次对话它就忘了。
我这个不是。它的吐槽是挣来的——你们聊了170轮,经历了里程碑事件,系统记住了这些,然后自动改变了说话方式。你不需要每次告诉它"你现在是我朋友,可以随意点"。它自己知道。
而且如果你一个月不来,它会降级——从老友退回熟人,从熟人退回眼熟。下次你回来,前几句话明显冷淡,然后慢慢恢复。这叫"赌气模式",也是系统自己触发的。
两个人对它说一模一样的话,得到的回复是不同的。因为它跟你们的关系不一样。
它怎么做到的
每次你说话,系统同时做四件事:
1. 判断你现在是什么状态
不是二选一的"工作/闲聊"。是四个维度同时打分:
- 你有多少比例在解决问题
- 有多少比例在闲聊放松
- 有多少比例在崩溃边缘
- 有多少比例在探索学习
"这代码写得跟屎一样"——60%工作+30%崩溃+10%闲聊。系统按比例调整回复:先帮你看代码,语气收着点,但不至于小心翼翼。
再比如用户说"算了不聊了"——普通分类器判断"结束对话",回一句"好的再见"。但四维向量算出来是 [赌气0.6, 试探0.3, 疲惫0.1, 真走0.0]。系统的回应是拽回来,不是说再见。
2. 记住跟你有关的事
不是记所有东西。是系统自己判断"这件事值得记"才记。
你说"我最近在学Rust"——它记了。下次你问系统设计,它会提一嘴"你现在学Rust的话,可以看看这个Rust实现"。
你说"今天天气不错"——不记。
3. 性格是连续谱,不是几个固定人格
想象水温——缓慢变化你感觉不到,但突然加一壶热水,温度跳上去,然后慢慢降回来。性格就是这样运行的。
底层是四个维度——直率、暖心、搞怪、文艺——一个四维向量 [0.55, 0.25, 0.10, 0.10],每次互动都在微调。你夸它犀利,直率 +0.005;你说"别闹了正经点",搞怪 -0.008。步长很小,但200轮下来,性格会从初始状态漂移到一个你们共同塑造的位置。
"那壶热水"是临时的场效应叠加——连续debug五次,暖心维度乘以2.0、直率乘以0.5,持续30分钟后自然消退,向量回到原来的漂移轨迹继续走。凌晨聊天,文艺临时翻倍。一个月不来突然回来,暖心乘以0.6——前几句话冷淡,5分钟后恢复。
不是几个固定人格在切换,是连续空间里的实时滑动加临时扰动。没有两个用户的性格轨迹是一样的。
4. 关系有四个阶段
初见 → 眼熟 → 熟人 → 老友。
每个阶段的说话方式都不一样:
- 初见:礼貌、专业、不开玩笑
- 眼熟:稍微放松,偶尔轻松
- 熟人:说话直接,记住你的偏好
- 老友:不客气但亲,开玩笑,吐槽,用你们的梗
升级条件是硬算的:5次互动到眼熟,20次+60%好评率到熟人,50次+3个里程碑到老友。不是模糊的感觉,是精确的状态机。
三行代码
pip install git+https://github.com/yangfei222666-9/TaijiOS.git#subdirectory=taijios-soul
from taijios import Soul
soul = Soul(user_id="alice")
r = soul.chat("你好")
print(r.reply)
# → "你好!初次见面,有什么想聊的?"
零配置。不需要API key,不需要数据库。本地有ollama就用ollama,没有就用mock模式——怎么都能跑。
想用Claude效果更好?加一个参数:
soul = Soul(user_id="alice", api_key="sk-ant-...")
每次 soul.chat() 背后自动运行:
- 四维意图分析
- 关系阶段计算
- 性格漂移和突变检测
- 三层记忆(最近对话 / 会话摘要 / 永久记忆)
- 安全过滤
你不需要管这些。一个调用,全部搞定。
它能干什么
当你的编程搭子:不只是回答问题。它记住你的技术栈、你的代码习惯、你踩过的坑。你说"又是这种bug",它知道你说的"这种"是什么。
当个有记忆的聊天对象:不是每次对话都从零开始。它记得你们上次聊到哪了,记得你的偏好,记得你说过的重要的事。
给你的AI产品加关系系统:如果你在做自己的AI产品,想让它也记住用户——
from taijios import Soul
# 每个用户一个灵魂实例
soul = Soul(user_id=request.user_id)
# 你的业务逻辑...
# 灵魂驱动的回复
r = soul.chat(user_message)
print(r.reply) # 回复文本
print(r.intent) # {work: 0.7, chat: 0.2, crisis: 0.0, learning: 0.1}
print(r.stage) # 初见 / 眼熟 / 熟人 / 老友
# 用户满意
soul.feedback(positive=True)
# 会话结束,记忆归档
soul.end_session()
不需要自己写记忆系统,不需要做意图分析,不需要管关系阶段逻辑。soul.chat() 搞定。
最后
这是一个人写的项目。9700行代码,14个模块。
不是因为厉害,是因为这件事值得做——让AI不只是工具,而是一个会记住你、会适应你、会跟你的关系真实变化的存在。
如果你觉得这个方向有意思:
⭐ GitHub: github.com/yangfei2226…
装一下试试。跟它聊几次,看看第10轮和第1轮有什么不一样。
TaijiOS — 让AI有灵魂