0Pricing
AI Agents · 课时

简单记忆存储(键值)

将用户提到的事实(姓名、偏好)持久化到键值存储中,并在每轮对话时注入系统提示词。

简单记忆存储(键值) 是 CoddyKit 上的免费 AI Agents 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Agents 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Agents 课程共包含 4 节课。

最便宜的长期记忆

在向量数据库和嵌入出现之前,还有一种朴素的键值存储。对于存储用户特定的事实(姓名、偏好、设置),它已经足够了。

存储什么

适合存入 KV 记忆的内容:

  • 用户姓名和语言
  • 偏好(单位、时区、语气)
  • 固定上下文(当前项目、当前主题)
  • 最近使用的工具凭据 / 接口令牌

一个微型内存存储

对于单进程原型:

memory = {
    'user_name': 'Alice',
    'units': 'celsius',
    'language': 'tr'
}

def remember(key, value):
    memory[key] = value

def recall(key, default=None):
    return memory.get(key, default)

remember('city', 'Istanbul')
print("Recalled user_name:", recall('user_name'))
print("Recalled city:", recall('city'))
print("Recalled missing key:", recall('country', 'unknown'))

注入系统提示词

在每一轮中,将 KV 存储渲染到系统提示词中:

def build_system_prompt(user_id):
    facts = load_facts(user_id)
    rendered = '\n'.join(f'- {k}: {v}' for k, v in facts.items())
    return f'''
You are AssistantBot.

Known facts about this user:
{rendered}

Use these to personalise replies.
'''

为多用户场景使用 Redis

对于生产智能体,请使用 Redis:

import redis
r = redis.Redis()

def remember(user_id, key, value):
    r.hset(f'mem:{user_id}', key, json.dumps(value))

def recall_all(user_id):
    raw = r.hgetall(f'mem:{user_id}')
    return {k.decode(): json.loads(v) for k, v in raw.items()}

或者直接使用 Postgres

Postgres 也可以——为每个用户设置一个 JSON 列:

CREATE TABLE user_memory (
    user_id TEXT PRIMARY KEY,
    facts JSONB NOT NULL DEFAULT '{}'
);

-- Update one field:
UPDATE user_memory SET facts = facts || '{"units": "celsius"}' WHERE user_id = $1;

将记忆作为工具

将记忆操作公开为工具,让智能体自行写入记忆:

tools = [
    {'name': 'remember', 'description': 'Save a fact about the user', 'parameters': {...}},
    {'name': 'forget', 'description': 'Remove a stored fact', 'parameters': {...}}
]

# The agent can call remember('user_name', 'Alice') itself.
for t in tools:
    print(f"{t['name']}: {t['description']}")

防止记忆膨胀

请限制每个用户存储的键数量(50 或 100 个)。否则系统提示词会无限增长。

生存时间与衰减

有些记忆的有效期很短。请使用 Redis 的过期机制:

r.hset(f'mem:{user_id}', 'last_topic', 'pricing')
r.expire(f'mem:{user_id}', 3600)  # 1 hour

用户可编辑的记忆

让用户查看和编辑智能体对他们的记忆——ChatGPT 的记忆功能就是这样工作的。这样可以建立信任,并避免令人不适的错误。

隐私:谨慎处理 PII

存储的事实通常包含 PII。请在静态存储时加密敏感字段,使用每个用户独立的加密密钥,并在账户关闭时删除数据。

从 KV 到向量

KV 非常适合存储结构化事实。对于非结构化事实(“用户偏好轻松的语气、喜欢动漫引用、讨厌表情符号”),向量存储更合适。我们将在下一门课程中介绍这一点。

何时使用 KV 记忆

对于哪一种记忆,普通键值存储最合适?

回顾

对于 90% 的个人助理使用场景,Redis 或 Postgres KV 存储加上将内容渲染到系统提示词中,就足以提供所需的记忆能力。

常见问题解答

「简单记忆存储(键值)」课时是免费的吗?

是的 — 「简单记忆存储(键值)」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Agents 课程的其余内容,请升级到 CoddyKit PRO。 AI Agents 课程共包含 4 节课。

「简单记忆存储(键值)」这节课中我会学到什么?

将用户提到的事实(姓名、偏好)持久化到键值存储中,并在每轮对话时注入系统提示词。 你通过在浏览器中直接运行的动手代码来练习 AI Agents,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AI Agents 需要有经验吗?

无需任何先前经验。CoddyKit 上的 AI Agents 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「简单记忆存储(键值)」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 AI Agents 课中编写并运行代码吗?

能。每节 AI Agents 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 上下文窗口中的短期记忆
  2. 长上下文为何无法扩展
  3. 将摘要作为压缩方式
  4. 简单记忆存储(键值)
← 返回 AI Agents