0Pricing
AI Agents · 课时

情节记忆(按会话记录)

按时间和会话 ID 索引每次对话中发生的事情。

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

本课时的部分内容尚未翻译,以英文显示。

三种记忆类型

受认知科学启发,代理记忆通常分为三类:

  • 情景记忆——发生过什么(本次对话、上周的会话)
  • 语义记忆——关于世界或用户的事实
  • 程序记忆——技能(成功的操作序列)

本课程介绍情景记忆。

什么是情景记忆

情景记忆存储带有时间戳和上下文的具体事件。对于代理来说,它就是每次会话的对话日志。

这是最基础、也最容易构建的记忆形式。

数据模型

每次交互或每次会话对应一行:

CREATE TABLE episodes (
    id BIGSERIAL PRIMARY KEY,
    user_id TEXT NOT NULL,
    session_id TEXT NOT NULL,
    role TEXT NOT NULL,        -- system/user/assistant/tool
    content TEXT NOT NULL,
    created_at TIMESTAMPTZ DEFAULT NOW(),
    metadata JSONB
);

Saving Each Turn

def save_turn(user_id, session_id, role, content, metadata=None):
    conn.execute('''
        INSERT INTO episodes (user_id, session_id, role, content, metadata)
        VALUES (%s, %s, %s, %s, %s::jsonb)
    ''', (user_id, session_id, role, content, json.dumps(metadata or {})))

Loading a Session

def load_session(session_id):
    rows = conn.execute('SELECT role, content FROM episodes WHERE session_id = %s ORDER BY id', (session_id,))
    return [{'role': r[0], 'content': r[1]} for r in rows]

多会话历史记录

有时您需要同一用户之前会话中的上下文,例如“爱丽丝昨天问了什么?”:

def recent_sessions(user_id, n=5):
    rows = conn.execute('''
        SELECT DISTINCT session_id, MIN(created_at) AS started
        FROM episodes WHERE user_id = %s
        GROUP BY session_id ORDER BY started DESC LIMIT %s
    ''', (user_id, n))
    return [r[0] for r in rows]

为过去的会话生成嵌入

为了按主题检索旧情景,请为每个会话摘要生成嵌入:

def index_session(session_id):
    summary = summarise(load_session(session_id))
    vec = embed(summary)
    save_to_vector_db(session_id, vec, summary)

检索情景记忆

当用户询问“我们上周讨论了什么定价问题?”时,请通过嵌入进行搜索:

def search_episodes(user_id, query):
    qvec = embed(query)
    candidates = vector_db.query(qvec, k=10, filter={'user_id': user_id})
    return [load_session(c.id) for c in candidates]

隐私与保留期限

情景日志中包含大量 PII。请应用以下措施:

  • 静态数据加密
  • 账户关闭时删除该用户的数据
  • N 天后自动清除
  • 在进行任何分析之前进行掩码处理或假名化

压缩旧情景

逐字保留最近的交互;将较早的交互压缩为摘要:

if session_age_days > 30:
    summary = summarise(load_session(sid))
    conn.execute('UPDATE episodes SET content = %s WHERE session_id = %s', (summary, sid))
    conn.execute('DELETE FROM episodes WHERE session_id = %s AND created_at < NOW() - INTERVAL \'1 day\'', (sid,))

情景记忆与短期上下文

短期上下文 = 当前消息列表(模型此刻看到的内容)。情景记忆 = 数据库中的记录,可搜索、持久化且容量更大。

将情景记忆连接到其他记忆

从一个情景中可以提取:

  • 语义事实(“用户偏好摄氏度”)
  • 程序技能(成功执行的一系列工具调用)

这些内容会输入另外两种记忆。

用于评估的重放

保存原始情景,以便重放。当您修改代理后,重新运行旧情景,并检查新的输出是否仍然良好。

什么是情景记忆

情景记忆存储什么?

回顾

情景记忆 = 带时间戳的会话日志,存储在数据库中。可以按用户、会话或嵌入进行搜索。压缩旧记录。将其输入语义记忆和程序记忆。

常见问题解答

「情节记忆(按会话记录)」课时是免费的吗?

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

「情节记忆(按会话记录)」这节课中我会学到什么?

按时间和会话 ID 索引每次对话中发生的事情。 你通过在浏览器中直接运行的动手代码来练习 AI Agents,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AI Agents 需要有经验吗?

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

「情节记忆(按会话记录)」课时需要多长时间?

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

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

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

此课程中的所有课时

  1. 情节记忆(按会话记录)
  2. 语义记忆(向量化事实)
  3. 程序记忆(技能库)
  4. 记忆衰减与垃圾回收
← 返回 AI Agents