2025-11-30 18:22:17 +08:00
2025-11-30 18:22:17 +08:00
2025-11-30 18:22:17 +08:00
2025-11-30 18:22:17 +08:00
2025-11-30 18:22:17 +08:00
2025-11-30 18:22:17 +08:00
2025-11-30 18:22:17 +08:00
2025-11-30 18:22:17 +08:00
2025-11-30 18:22:17 +08:00
2025-11-30 18:22:17 +08:00
2025-11-30 18:22:17 +08:00
2025-11-30 18:22:17 +08:00

MemoryBear

项目简介

MemoryBear 是一个面向智能体的记忆系统与知识管理服务。它支持从对话与文档中萃取结构化知识、生成嵌入向量、构建图谱,提供关键词与语义的混合搜索,并内置遗忘机制与自我反思流程,以维持长期记忆的有效性与可用性。

核心特性

  • 知识萃取:陈述句、三元组、时间信息与摘要生成
  • 图谱存储:对接 Neo4j 管理实体与关系
  • 混合搜索:关键词检索 + 语义向量检索
  • 遗忘机制:按记忆强度与时效做逐步衰减
  • 自我反思:定期回顾并优化已有记忆
  • FastAPI 服务:统一暴露管理端与服务端 API

架构总览

  • 萃取引擎Extraction Engine预处理、去重、结构化提取
  • 遗忘引擎Forgetting Engine记忆强度模型与衰减策略
  • 自我反思引擎Reflection Engine评价与重写记忆
  • 检索服务:关键词、语义与混合检索
  • Agent 与 MCP提供多工具协作的智能体能力

快速开始

环境要求

  • Python 3.12
  • PostgreSQL 13+
  • Neo4j 4.4+
  • Redis 6.0+

安装依赖

python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# 方式一:基于 pyproject 安装
pip install .

# 方式二:使用 requirements.txt
pip install -r requirements.txt

配置环境变量

创建 .env 文件(示例):

# Postgres
DB_HOST=127.0.0.1
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=your-password
DB_NAME=redbear-mem
DB_AUTO_UPGRADE=false

# Neo4j
NEO4J_URI=bolt://localhost:7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=your-password

# Redis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_DB=1

# LLM / API Keys按需
OPENAI_API_KEY=your-openai-key
DASHSCOPE_API_KEY=your-dashscope-key

# 其他
WEB_URL=http://localhost:3000
LOG_LEVEL=INFO

初始化与启动

# 如需自动迁移数据库:设置 DB_AUTO_UPGRADE=true 或手动执行
alembic upgrade head

# 启动开发服务
uvicorn app.main:app --reload --port 8000

# 打开交互文档
# http://localhost:8000/docs

项目结构

app/
├── main.py                  # FastAPI 入口
├── controllers/             # 控制器与路由
├── core/                    # 核心:配置、异常、日志等
│   └── memory/              # 记忆模块
│       ├── storage_services/  # 萃取/遗忘/反思/检索
│       ├── agent/             # Agent + MCP 服务
│       ├── utils/             # 工具与提示词
│       └── models/            # 领域模型
└── rag/                     # RAG 能力与文档解析

logs/                        # 日志与输出
LICENSE                      # 许可协议Apache-2.0
README.md                    # 项目说明

API 与路由

  • 管理端:/apiJWT 认证)
  • 服务端:/v1API Key 认证)
  • 根路由健康检查:GET / 返回运行状态
  • Swagger 文档:/docs

部署建议

  • 使用 gunicorn + uvicorn.workers.UvicornWorker 作为生产入口
  • 配置 LOG_LEVEL=WARNING 并启用文件日志
  • 数据库与缓存请使用托管服务或独立实例

示例:

gunicorn app.main:app -w 4 -k uvicorn.workers.UvicornWorker

许可证

本项目采用 Apache License 2.0 开源协议,详情见 LICENSE

致谢与交流

  • 问题反馈与讨论:请提交 Issue 到代码仓库
  • 欢迎贡献:提交 PR 前请先创建功能分支并遵循常规提交信息格式
Description
MemoryBear Equip AI with human-like memory capability
Readme Apache-2.0 87 MiB
Languages
Python 70.8%
TypeScript 26.6%
Jinja 2%
CSS 0.3%
JavaScript 0.1%