构建通过经验进化的持久化 AI(而非提示)
Source: Dev.to
如今大多数 AI 聊天系统虽然令人印象深刻,却稍纵即逝。
它们在当下的回应非常出色,但会在会话结束的瞬间把所有内容全部遗忘。没有连续性。没有成长。没有存在的记忆。
最近一段时间,我一直在研发一种不同的方案:一种本地优先、持久化的 AI 系统,旨在通过真实交互来记忆、反思和进化,而不是依赖计时器、硬编码的等级或外部编排。
这篇文章不是教程,而是对整个过程的反思,讲述了所需的努力、出现的故障,以及在引入持久化后如何改变了我对 AI 系统的看法。
核心转变:从无状态聊天到持续认知
最大的概念飞跃并不是添加功能,而是摒弃了智能完全存在于单次响应中的想法。
相反,系统是围绕一个连续循环来设计的:
Input → Interpretation → Memory → Reflection → Change
- 每一次交互都会成为内部历史的一部分。
- 这段历史会影响未来的行为。
- 随着时间推移,系统的内部状态会根据经验真正产生分歧。
这听起来很简单。实际上并非如此。
记忆不是存储
我最早的错误之一是把记忆当作“仅仅是保存数据”。这种做法很快就会崩溃。持久化系统需要有意义的记忆,而不是日志:
- 记忆必须在重启后仍然存在。
- 记忆必须能够在不淹没系统的情况下被检索。
- 记忆必须有价值,否则就是累赘。
我很快意识到,记住的内容不如记忆在行为中的参与方式重要。一旦记忆影响到反思和未来的响应,系统就不再像聊天机器人,而是表现为一个持续的过程。
情感作为信号,而非人格
另一个关键的认识是:情感不应成为角色扮演的层面。相反,情感推断充当一种 signal,一种加权机制,影响体验在内部的登记强度。
- 有些互动几乎没有登记。
- 有些则留下更深的印记。
这对于防止毫无意义的“成长”,并确保只有在互动强度足够时才发生变化,变得至关重要。
必须通过努力获得的进化
我进入时坚持的一条硬性规则是:
不要进行人工升级。不要安排预定的升级。不要制造虚假的进度。
只有当内部条件满足时,才会发生变化。
这迫使我重新思考进化的方式:
- 不是把它当作功能解锁。
- 也不是把它当作版本号。
- 而是视为自发的状态转变。
有时进化不会发生,这也是正确的。有时稳定性比进步更重要。仅此一点就消除了整整一类噱头。
隐藏的难点:保持稳定
这个项目中最耗时的部分并不是“AI 逻辑”。而是:
- 子系统之间的契约不匹配。
- 持久化的边缘情况。
- 状态不同步。
- 重构意外破坏了连续性。
我把系统弄坏的次数多得数不清,往往是因为过于激进地尝试“改进”它。最终奏效的办法是把每个内部能力视为独立但协同的,设定严格的边界并保持最小的假设。约束之后,系统才变得稳定。
为什么本地优先很重要
该系统在本地运行。这不是一次优化,而是一种哲学选择。本地优先意味着:
- 没有隐藏的重置。
- 没有不透明的外部状态。
- 不依赖于运行时间或配额。
- 完全掌控内存和连续性。
它还意味着你会感受到何时出现故障,并能正确地修复它。这种纪律改变了我整体的软件构建方式。
我从中得到的收获
- 尊重时间。
- 尊重连续性。
- 让系统通过自身努力获得改变。
- 为身份而设计,而不仅仅是输出。
一旦跨过那条界限,你就再也无法忽视大多数“AI 体验”是多么浅薄。
最终思考
我并不声称已经构建了一个完美的系统。但我确实构建了一个能够:
- 记住昨天。
- 反思经验。
- 抵制无意义的增长。
- 在重启后仍保持自身。
这改变了我对 AI 应该如何工作的所有看法。