跳到主要内容

记忆系统

CountBot 使用单文件存储长期记忆,文件位于工作空间中,用户可以直接查看和编辑。

存储位置

workspace/memory/MEMORY.md

每行一条记录,格式: 日期|来源|内容

2026-02-15|web-chat|用户询问天气API方案;决定使用OpenWeatherMap
2026-02-15|telegram|用户要求每天早上9点发送日报

来源包括: web-chat, telegram, dingtalk, feishu, cron, auto-overflow 等。

MemoryStore

位置: backend/modules/agent/memory.py

from backend.modules.agent.memory import MemoryStore

memory = MemoryStore(Path("/workspace/memory"))

memory.append_entry("web-chat", "用户偏好使用Python") # 追加
memory.search(["天气", "API"], max_results=10) # 搜索
memory.read_lines(1, 10) # 按行读取
memory.get_recent(5) # 最近5条
memory.get_stats() # 统计信息

记忆工具

通过 memory 工具对模型暴露,支持 action 参数:

  • write - 追加记忆
  • search - 关键词搜索
  • read - 按行读取

模型不需要直接操作文件,通过工具调用即可。

自动总结

当会话历史超出窗口限制时,系统会:

  1. 找出超出窗口的旧消息
  2. 生成摘要
  3. auto-overflow 来源写入记忆

这样会话窗口保持轻量,重要信息不会丢失。

API

backend/api/memory.py 提供:

  • 查看统计信息
  • 获取最近记忆
  • 关键词搜索

使用建议

  • 把稳定事实写入记忆,不要塞一次性上下文
  • 内容尽量结构化,方便搜索
  • 用户偏好、项目约定、周期性任务特别适合用记忆

相关文件

文件说明
backend/modules/agent/memory.pyMemoryStore 实现
backend/modules/tools/memory_tool.py记忆工具
backend/modules/session/manager.py自动总结与沉淀
backend/api/memory.py记忆 API