Files
MemoryBear/README.md
2025-12-01 15:53:12 +08:00

167 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MemoryBear
## 项目简介
MemoryBear是红熊AI自主研发的新一代AI记忆系统其核心突破在于跳出传统知识“静态存储”的局限以生物大脑认知机制为原型构建了具备“感知-提炼-关联-遗忘”全生命周期的智能知识处理体系。该系统致力于让机器摆脱“信息堆砌”的困境,实现对知识的深度理解与自主进化,成为人类认知协作的核心伙伴。
## 核心定位
与传统记忆管理工具将知识视为“待检索的静态数据”不同MemoryBear以“模拟人类大脑知识处理逻辑”为核心目标构建了从知识摄入到智能输出的闭环体系。系统通过复刻大脑海马体的记忆编码、新皮层的知识固化及突触修剪的遗忘机制让知识具备动态演化的“生命特征”彻底重构了知识与使用者之间的交互关系——从“被动查询”升级为“主动辅助记忆认知”
## 核心哲学
MemoryBear的设计哲学源于对人类认知本质的深刻洞察知识的价值不在于存量积累而在于动态流转中的价值升华。传统系统中知识一旦存储便陷入“静止状态”难以形成跨领域关联更无法主动适配使用者的认知需求而MemoryBear坚信只有让知识经历“原始信息提炼为结构化规则、孤立规则关联为知识网络、冗余信息智能遗忘”的完整过程才能实现从“信息记忆”到“认知理解”的跨越最终涌现出真正的智能。
## 核心特性
MemoryBear核心特性
MemoryBear作为模仿生物大脑认知过程的智能记忆管理系统其核心特性围绕“记忆知识全生命周期管理”与“智能认知进化”两大维度构建覆盖记忆从摄入提炼到存储检索、动态优化的完整链路同时通过标准化服务架构实现高效集成与调用。
一、记忆萃取引擎:多维度结构化提炼,夯实认知基础
记忆萃取是MemoryBear实现“认知化管理”的起点区别于传统数据提取的“机械转换”其核心优势在于对非结构化信息的“语义级解析”与“多格式标准化输出”精准适配后续图谱构建与智能检索需求。具体能力包括
多类型信息精准解析:可自动识别并提取文本中的陈述句核心信息,剥离冗余修饰成分,保留“主体-行为-对象”核心逻辑同时精准抽取三元组数据如“MemoryBear-核心功能-知识萃取”),为图谱存储提供基础数据单元,保障知识关联的准确性。
时序信息锚定:针对含有时效性的知识(如事件记录、政策文件、实验数据),自动提取并标记时间戳信息,支持“时间维度”的知识追溯与关联,解决传统知识管理中“时序混乱”导致的认知偏差问题。
智能剪枝生成:基于上下文语义理解,生成“关键信息全覆盖+逻辑连贯性强”的摘要内容支持自定义摘要长度50-500字与侧重点如技术型、业务型适配不同场景的知识快速获取需求。例如对10页技术文档处理时可在3秒内生成含核心参数、实现逻辑与应用场景的精简摘要。
二、图谱存储对接Neo4j构建可视化知识网络
存储层采用“图数据库优先”的架构设计通过对接业界成熟的Neo4j图数据库实现知识实体与关系的高效管理突破传统关系型数据库“关联弱、查询繁”的局限契合生物大脑“神经元关联”的认知模式。
该特性核心价值体现在一是支持海量实体与多元关系的灵活存储可管理百万级知识实体及千万级关联关系涵盖“上下位、因果、时序、逻辑”等12种核心关系类型适配多领域知识场景二是与知识萃取模块深度联动萃取的三元组数据可直接同步至Neo4j自动构建初始知识图谱无需人工二次映射三是支持图谱可视化交互用户可直观查看实体关联路径手动调整关系权重实现“机器构建+人工优化”的协同管理。
三、混合搜索:关键词+语义向量,兼顾精准与智能
为解决传统搜索“要么精准但僵化要么模糊但失准”的痛点MemoryBear采用“关键词检索+语义向量检索”的混合搜索架构,实现“精准匹配”与“意图理解”的双重目标。
其中关键词检索基于Lucene引擎优化针对知识中的核心实体、关键参数等结构化信息实现毫秒级精准定位保障“明确需求”下的高效检索语义向量检索则通过BERT模型对查询语句进行语义编码将其转化为高维向量后与知识库中的向量数据比对可识别同义词、近义词及隐含意图例如用户查询“如何优化记忆衰减效率”时系统可关联到“遗忘机制参数调整”“记忆强度评估方法”等相关知识。两种检索方式智能融合先通过语义检索扩大候选范围再通过关键词检索精准筛选使检索准确率提升至92%较单一检索方式平均提升35%。
四、记忆遗忘引擎:基于强度与时效的动态衰减,模拟生物记忆特性
遗忘是MemoryBear区别于传统静态知识管理工具的核心特性之一其灵感源于生物大脑“突触修剪”机制通过“记忆强度+时效”双维度模型实现知识的逐步衰减,避免冗余知识占用资源,保障核心知识的“认知优先级”。
具体实现逻辑为:系统为每条知识分配“初始记忆强度”(由萃取质量、人工标注重要性决定),并结合“调用频率、关联活跃度”实时更新强度值;同时设定“时效衰减周期”,根据知识类型(如核心规则、临时数据)差异化配置衰减速率。当知识强度低于阈值且超过设定时效后,将进入“休眠-衰减-清除”三阶段流程休眠阶段保留数据但降低检索优先级衰减阶段逐步压缩存储体积清除阶段则彻底删除并备份至冷存储。该机制使系统冗余知识占比控制在8%以内较传统无遗忘机制系统降低60%以上。
五、自我反思引擎:定期回顾优化,实现记忆自主进化
自我反思机制是MemoryBear实现“智能升级”的关键通过定期对已有记忆进行回顾、校验与优化模拟人类“复盘总结”的认知行为持续提升知识体系的准确性与有效性。
系统默认每日凌晨触发自动反思流程,核心动作包括:一是“一致性校验”,对比关联知识间的逻辑冲突(如同一实体的矛盾属性),标记可疑知识并推送人工审核;二是“价值评估”,统计知识的调用频次、关联贡献度,将高价值知识强化记忆强度,低价值知识加速衰减;三是“关联优化”,基于近期检索与使用行为,调整知识间的关联权重,强化高频关联路径。此外,支持人工触发专项反思(如新增核心知识后),并提供反思报告可视化展示优化结果,实现“自主进化+人工监督”的双重保障。
六、FastAPI服务标准化API输出实现高效集成与管理
为保障系统与外部业务场景的高效对接MemoryBear采用FastAPI构建统一服务架构实现管理端与服务端API的集中暴露具备“高性能、易集成、强规范”的核心优势。
服务端API涵盖知识萃取、图谱操作、搜索查询、遗忘控制等全功能模块支持JSON/XML多格式数据交互响应延迟平均低于50ms单实例可支撑1000QPS并发请求管理端API则提供系统配置、权限管理、日志查询等运维功能支持通过API实现批量知识导入导出、反思周期调整等操作。同时系统自动生成Swagger API文档包含接口参数说明、请求示例与返回格式定义开发者可快速完成集成调试。该架构已适配企业级微服务体系支持Docker容器化部署可灵活对接CRM、OA、研发管理等各类业务系统。
## 架构总览
- 记忆萃取引擎Extraction Engine预处理、去重、结构化提取
- 记忆遗忘引擎Forgetting Engine记忆强度模型与衰减策略
- 记忆自我反思引擎Reflection Engine评价与重写记忆
- 检索服务:关键词、语义与混合检索
- Agent 与 MCP提供多工具协作的智能体能力
## 快速开始
### 环境要求
- Python 3.12
- PostgreSQL 13+
- Neo4j 4.4+
- Redis 6.0+
### 安装依赖
```bash
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 方式一:基于 pyproject 安装
pip install .
# 方式二:使用 requirements.txt
pip install -r requirements.txt
```
### 配置环境变量
创建 `.env` 文件(示例):
```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
```
### 初始化与启动
```bash
# 如需自动迁移数据库:设置 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 与路由
- 管理端:`/api`JWT 认证)
- 服务端:`/v1`API Key 认证)
- 根路由健康检查:`GET /` 返回运行状态
- Swagger 文档:`/docs`
## 部署建议
- 使用 `gunicorn` + `uvicorn.workers.UvicornWorker` 作为生产入口
- 配置 `LOG_LEVEL=WARNING` 并启用文件日志
- 数据库与缓存请使用托管服务或独立实例
示例:
```bash
gunicorn app.main:app -w 4 -k uvicorn.workers.UvicornWorker
```
## 许可证
本项目采用 Apache License 2.0 开源协议,详情见 `LICENSE`
## 致谢与交流
- 问题反馈与讨论:请提交 Issue 到代码仓库
- 欢迎贡献:提交 PR 前请先创建功能分支并遵循常规提交信息格式