内容
# ProjectBrain
[](https://brain-production-3699.up.railway.app/)
[](https://github.com/topoteretes/cognee)
[](https://www.wemakedevs.org/hackathons/cognee)
[](https://brain-production-3699.up.railway.app/)
[](https://github.com/rushdarshan/brain)
> **ProjectBrain 不仅记住你的项目 — 它还会记录 *项目是如何构建的*。此存储库中的每个决定都存储在图谱中,包括构建 ProjectBrain 本身的决定。**
> *RAG 给你的 AI 一个图书馆借阅卡。Cognee 给它一个记忆。ProjectBrain 给它一个良知。*
**ProjectBrain** 是一个自我改进的项目记忆,记录其自身的创建过程。基于 [Cognee Cloud](https://github.com/topoteretes/cognee) 和 Model Context Protocol(MCP)构建,它通过记住架构决策、随着每个反馈循环改善回忆并在团队中强制执行规则来治愈“上下文腐烂”。
**在线演示:** [https://brain-production-3699.up.railway.app/](https://brain-production-3699.up.railway.app/)
<video src="https://github.com/user-attachments/assets/cdee4806-4571-4f5d-9655-e35e7a7577a8" autoplay muted loop playsinline width="100%"></video>
为 **WeMakeDevs × Cognee “Hangover Part AI” 黑客马拉松**(2026 年 6 月 29 日 - 7 月 5 日)构建。
**📊 跟踪:** 18 个决策 · 2 个被取代的模式 · 30+ 个关系 · 8 周的演化
## 评判标准
| 标准 | ProjectBrain 如何实现 |
|---|---|
| **潜在影响** | 消灭“上下文腐烂” — AI 辅助开发中最大的生产力杀手。每个 PR 都针对组织记忆进行检查,而不仅仅是某个开发人员的记忆。元叙事演示了工具记录其自身创建的过程。 |
| **创造力和创新** | 自我引用的记忆图,记录其构建过程。时间线滑块用于观察知识的演化。该工具通过使用改进自身的回忆。 |
| **技术卓越** | 三服务架构(FastAPI SSE 后端 + MCP 服务器 + Next.js 仪表盘)基于 Cognee Cloud。所有 4 个生命周期动词从单个浏览器选项卡中暴露。前后回忆精度指标。 |
| **最佳使用 Cognee Cloud** | 全生命周期集成:记住(摄入)、回忆(17 种搜索模式通过仪表盘 + MCP)、改进(通过单击加强记忆,可见的指标增量)、忘记(预览/确认工作流)。两数据集会话/永久记忆架构。 |
| **用户体验** | 从单个浏览器选项卡完成系统控制:添加决策、搜索、加强记忆、导航时间,所有操作无需离开仪表盘。强制有向图实时更新通过 SSE。 |
| **演示质量** | 此标准映射的 README。90 秒的演示视频。实时 Railway URL。元叙事演示脚本。 |
## 项目指标
| 指标 | 值 |
|---|---|
| **跟踪决策** | 18(8 周的演化) |
| **被取代的模式** | 2(MongoDB → Postgres,JWT → 会话身份验证) |
| **关系** | 30+(链接、取代、标签到文件) |
| **搜索模式** | 17(GRAPH_COMPLETION、GRAPH_COMPLETION_COT、KEYWORD、SIMILARITY 等) |
| **API 端点** | 14(REST API 接口) |
| **MCP 工具** | 6(记住、回忆、促进、改进、忘记、记忆化) |
| **服务** | 3(FastAPI + MCP + Next.js 仪表盘) |
| **部署** | 2(Railway 生产环境 + 本地开发) |
| **CI/CD 门控** | 1(基于内存的 PR 审查代理) |
| **Python 代码行** | ~1,200 |
| **Cognee 版本** | 1.2.2 |
### 评委诱饵 — 30 秒测试
```
# 在全新检出中:
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
export GROQ_API_KEY=gsk_... # 在 console.groq.com 上免费获取
python seed.py && python api.py
# 现在打开第二个终端并尝试 CI 审查者:
python reviewer_agent.py # → [REJECTED] — 尝试导入 MongoDB
python reviewer_agent.py good # → [APPROVED] — Postgres 导入通过
```
**刚刚发生了什么:** CI 审查者查询了知识图谱(`GRAPH_COMPLETION_COT`),发现 MongoDB 在第 3 周被 Postgres 取代,并阻止了 PR。在 30 秒内,您看到组织记忆强制执行架构决策。
### Cognee API 使用
| 动词 | 端点/工具 | 在 ProjectBrain 中的使用 |
|---|---|---|
| **记住** | `POST /api/webhook/remember` · MCP `remember_decision` · `promote_context` | 从仪表盘、IDE 或 API 将架构决策摄入知识图谱 |
| **回忆** | `GET /api/search?mode=<17_modes>` · MCP `recall_context` | 使用图补全、关键词、COT、相似性等 14 种模式查询记忆 |
| **改进** | `POST /api/improve` · MCP `memify_feedback` | 加强回忆精度 — 仪表盘上可见的 `+X.Xpp` 增量徽章 |
| **忘记** | `POST /api/forget/preview` + `/confirm` · MCP `forget` | 两步安全流程:预览影响,在 60 秒内确认,环境变量杀死开关 |
## 架构
```
┌──────────────────┐ SSE /api/stream ┌──────────────────┐
│ api.py │◄────────────────────────►│ Next.js │
│ FastAPI + SSE │ HTTP /api/graph,/search │ 仪表盘 │
│ 端口 8000 │ │ 端口 3000 │
└─────┬────────────┘ └──────────────────┘
│ HTTP /api/notify (SSE 推流触发器)
│
┌─────▼────────────┐
│ server.py │ MCP 服务器(FastMCP)
│ 端口 N/A(stdio)│ 工具:remember_decision, recall_context,
│ │ promote_context, memify_feedback, forget
└────────┬─────────┘
│
▼
┌─────────────────────────────────────────────┐
│ Cognee (1.2.2) │
│ ├─ Kuzu(嵌入式图数据库) │
│ ├─ LanceDB(嵌入式向量存储) │
│ └─ Groq LLM(llama-3.3-70b-versatile) │
│ + fastembed(BAAI/bge-small-en-v1.5) │
└─────────────────────────────────────────────┘
```
**两个数据集:** `paylink`(永久知识)和 `paylink-session`(会话上下文,在重启时清除)。会话项目可以通过 MCP 工具或 API 提升为永久项目。
## 快速入门
```bash
# 1. 设置你的 Groq API 密钥
$env:GROQ_API_KEY = "gsk_..."
# 2. 用示例数据初始化知识图谱
cd projectbrain
python seed.py
# 3. 启动后端(SSE + REST API)
python api.py
# 4. 启动仪表盘(独立终端)
cd dashboard
npm run dev
```
**环境变量:**
| 变量 | 默认值 | 描述 |
|---|---|---|
| `GROQ_API_KEY` | — | 必需。在 console.groq.com 上获取 |
| `COGNEE_DATASET` | `paylink` | 永久知识数据集名称 |
| `ENABLE_BACKEND_ACCESS_CONTROL` | `false` | 必须为单用户模式设置为 false |
## 功能
### 仪表盘(`railway.app`)
- **强制有向图** — 通过 SSE 实现知识节点和关系的实时可视化
- **时间线滑块** — 拖动以观察项目从第 1 周到第 8 周的演化,查看决策的制定和取代
- **17 种搜索模式** — 下拉选择器适用于所有 Cognee `SearchType` 模式(GRAPH_COMPLETION、GRAPH_COMPLETION_COT、KEYWORD、SIMILARITY 等)
- **搜索面板** — 查询知识图谱,结果显示在图下方
- **内联记忆控制** — “添加决策”表单、“加强记忆”按钮、“最近活动”日志,均来自仪表盘侧边栏
- **前后指标** — 快照历史记录显示每次加强循环后的回忆改进
- **指标栏** — 节点/边计数、记忆组成、搜索延迟、回忆精度,带有增量徽章
- **SSE 自动重新连接** — 断开连接时显示过期数据警告横幅
### MCP 服务器(stdio)
连接到任何兼容 MCP 的 IDE:
- `remember_decision` — 将决策摄入永久记忆
- `recall_context(scope: "all"|"permanent")` — 使用数据集范围搜索记忆
- `promote_context` — 将会话上下文提升为永久
- `memify_feedback` — 加强/确认决策
- `forget` — 删除节点
### IDE 兼容性
| IDE / 工具 | MCP 支持 | 状态 |
|---|---|---|
| **Cursor** | 原生代理 MCP | 已验证 ✓ |
| **Claude Code** | stdio MCP | 已验证 ✓ |
| **VS Code(vscode-mcp)** | 扩展 | 已验证 ✓ |
| **Windsurf** | 原生 MCP | 已验证 ✓ |
| **Continue.dev** | 原生 MCP | 兼容 |
| **Claude Desktop** | 基于文件的 MCP | 兼容 |
| **GitHub Copilot** | MCP 代理模式 | 兼容 |
| **JetBrains(Big Code)** | MCP 插件 | 兼容 |
### REST API(`railway.app`)
- `GET /api/graph?week=N` — 当前知识图谱(可选周筛选用于时间线)
- `GET /api/graph/weeks` — 时间线滑块的可用周范围
- `GET /api/stream` — 图更新的 SSE 流
- `GET /api/search?q=...&mode=...` — 使用 17 种模式之一搜索
- `GET /api/search/modes` — 列出可用搜索模式
- `GET /api/metrics` — 实时指标(节点/边计数、组成、延迟、回忆精度)
- `GET /api/metrics/history` — 改进()调用后的指标快照历史
- `POST /api/improve` — 触发 Cognee improve()以加强回忆
- `POST /api/remember/session` — 添加到会话记忆
- `POST /api/remember/promote` — 将会话提升为永久
### CI/CD 审查代理
`reviewer_agent.py` 在每个 PR 上作为 GitHub Action 运行。它使用 `GRAPH_COMPLETION_COT` 查询 Cognee 记忆图谱,并拒绝重新引入被取代的模式(例如,MongoDB,JWT)的 PR。退出代码 0 = 已批准,1 = 已拒绝。

## 技术栈
- **Cognee 1.2.2** — 图向量记忆,17 种搜索模式,Kuzu + LanceDB 嵌入式
- **FastAPI** — SSE 流式后端
- **MCP(FastMCP)** — IDE 工具集成
- **Next.js 16** — 实时强制有向图仪表盘
- **React Force Graph 2D** — D3 力模拟可视化
- **Groq(llama-3.3-70b-versatile)** — 图补全搜索的 LLM
- **GitHub Actions** — CI/CD 审查代理
## 提交演示
[🎥 观看演练视频](https://youtu.be/OdNlKLtUs8o)
### 演示脚本
1. **元框架** — “这是 ProjectBrain。一个自我改进的项目记忆,记录其自身的创建过程。” 图表显示 18 个相互连接的节点。
2. **时间线滑块** — 从第 8 周拖动到第 1 周。观察架构的演化:MongoDB → Postgres 迁移,JWT → 会话身份验证,v1 → v2 API。
3. **搜索** — 在 GRAPH_COMPLETION 模式下输入“Postgres”。结果显示 Postgres 迁移决策的完整图谱上下文。
4. **添加决策** — 切换到“添加”选项卡。输入“我们使用 Redis 进行缓存”并提供理由。提交。图谱实时更新通过 SSE。
5. **加强记忆** — 点击“加强记忆”。观察回忆精度增量徽章出现(例如,“+5.2pp”)。
6. **历史指标** — 切换到“指标”选项卡。查看随时间变化的回忆改进快照历史。
7. **关闭** — “而图谱记得构建自身。每个 PR、每个决策、每个被取代的模式都在这里。ProjectBrain 不仅仅是记住 — 它改进。”
## 许可证
MIT