概览

项目地址:https://github.com/fluviusmagnus/Seelenmaschine

升级时间范围: 从 commit 8a6d65bfe4db49

本次升级是破坏兼容性的全面升级。请关注以下事项,并按提示进行数据迁移。


主要架构变更

1. 界面框架重构

  • 移除: Flask Web UI (完整的 Web 界面和 CLI 模式)
  • 新增: 纯 Telegram Bot 模式

    • 不再支持 Web 界面
    • 专注于 Telegram 交互体验

2. 向量数据库迁移

  • 移除: LanceDB 向量数据库
  • 新增: SQLite + sqlite-vec(内置向量扩展)

    • 无需外部向量数据库
    • 简化部署和维护

核心功能增强

1. 记忆系统重构

  • 新增完整三层记忆架构

    • 短期记忆: Context Window 管理 + 自动总结
    • 中期记忆: Embedding + Rerank 智能检索
    • 长期记忆: JSON 结构化人格与用户档案
  • 检索系统增强:

    • 二阶检索(摘要 → 对话)
    • Rerank 模型重排序
    • 时间感知的上下文注入
    • 新增 FTS5 全文搜索(支持布尔运算符)
    • 新增自我查询工具(LLM 主动搜索记忆)

2. MCP 支持增强

  • 支持多种传输方式(stdio、HTTP、SSE)
  • 工具缓存机制
  • 更好的错误处理

3. 新增定时任务系统

  • 支持一次性任务和间隔任务
  • LLM 接口管理任务
  • 数据库存储持久化

4. 新增 Profile 配置系统

  • 多环境配置支持
  • 独立数据目录(data/<profile>/
  • 启动命令:python src/main_telegram.py <profile>

代码结构重构

新增核心模块

src/
├── core/               # 核心模块
│   ├── database.py     # SQLite + sqlite-vec
│   ├── memory.py       # 记忆系统
│   ├── context.py      # Context Window 管理
│   ├── retriever.py    # 记忆检索
│   └── scheduler.py    # 定时任务
├── llm/
│   ├── client.py       # LLM 客户端
│   ├── embedding.py    # Embedding 客户端
│   └── reranker.py     # Rerank 客户端
├── tools/
│   ├── mcp_client.py
│   ├── memory_search.py
│   └── scheduled_task_tool.py
└── prompts/
    ├── system.py
    ├── summary.py
    └── memory_update.py

移除/合并模块

  • main.pymain_telegram.py
  • chatbot.py (重构整合到各模块)
  • llm.py (拆分为 llm/ 目录)
  • prompts.py (拆分到 prompts/ 目录)
  • flask_webui.py 和 templates/ 目录 (移除)
  • database_maintenance.py (移除)

配置变更

新增配置项

# Context Window
CONTEXT_WINDOW_KEEP_MIN=12
CONTEXT_WINDOW_TRIGGER_SUMMARY=24
RECENT_SUMMARIES_MAX=3

# 记忆检索
RECALL_SUMMARY_PER_QUERY=3
RECALL_CONV_PER_SUMMARY=4
RERANK_TOP_SUMMARIES=3
RERANK_TOP_CONVS=6

# MCP
ENABLE_MCP=false
MCP_CONFIG_PATH=mcp_servers.json

# 时区
TIMEZONE=Asia/Shanghai

移除的配置项

# 旧记忆系统
MAX_CONV_NUM=20
REFRESH_EVERY_CONV_NUM=10
RECALL_SESSION_NUM=2
RECALL_CONV_NUM=4

数据库结构变更

新数据库表结构 (SQLite)

-- 会话表
sessions (id, start_time, end_time, status)

-- 对话表
conversations (id, session_id, role, content, timestamp)

-- 摘要表
summaries (id, session_id, summary_text, timestamp)

-- 向量表 (sqlite-vec)
texts (text_id, text_type, text_content, vec_embedding)

-- 定时任务表
scheduled_tasks (id, task_type, trigger_time, interval_seconds, ...)

移除的存储

  • LanceDB 向量数据库
  • persona_memory.txt / user_profile.txt (合并为 seele.json)

启动方式变更

新的启动方式

# Telegram Bot
python src/main_telegram.py <profile>
./start-telegram.sh <profile>      # Linux/macOS
start-telegram.bat <profile>        # Windows

移除的启动方式

# CLI 模式
python src/main.py <profile>

# Flask Web UI
python src/main.py <profile> --flask
start-flask-webui.sh <profile>

文档更新

新增文档

  • docs/SCHEDULED_TASKS.md - 定时任务指南
  • docs/SEARCH_EXAMPLES.md - 搜索功能示例
  • migration/README.md - 数据迁移指南
  • AGENTS.md - AI 辅助开发指南

移除文档

  • MCP_USAGE.md (内容整合到 README)
  • DATABASE_MAINTENANCE_README.md

测试框架

新增测试

pytest tests/
pytest tests/test_database.py
pytest tests/test_memory.py
pytest tests/test_retriever.py
pytest tests/test_llm.py

总结

这次升级是一次重大架构重构,主要变化包括:

  1. 简化架构: 从 Flask Web UI 切换到纯 Telegram Bot
  2. 一体化存储: 从 LanceDB + SQLite 统一到 SQLite + sqlite-vec
  3. 增强的记忆系统: 完整的三层记忆架构、FTS5 全文搜索、自我查询
  4. 新增功能: 定时任务、Profile 配置系统、改进的 MCP 支持
  5. 代码质量: 模块化设计、完善的测试、详细的文档

这些变化使 Seelenmaschine 更加专注于核心功能——作为具有持久记忆和人格的 AI 助手,同时简化了部署和维护。

标签: none

赞 (0)

添加新评论