内容
# 🧠 思维脑
> 一个基于多智能体协同、RAG 和 MCP 服务器构建的个人 AI 智能层,应用于家庭应用程序数据
思维脑连接了我为家人构建的家庭应用程序套件——餐饮计划、健身追踪 -
并使用多智能体协同、RAG、
自定义 MCP 服务器和主动定时摘要,在所有应用程序中回答问题。
我构建了思维脑作为一个作品项目,以展示智能体 AI 系统设计,并开始探索 AI 产品角色。
我目前在 KPMG(资本市场/金融服务运营)担任顾问。
我没有正式的软件工程背景——我自学成才,先构建了家庭应用程序,然后在其基础上构建了智能体层。
---
## 🎯 功能
**自然语言问答**
> "这个月我们最常做哪些菜?我们的蛋白质摄入量达标吗?"
**主动推送每周总结到手机**
> 每个星期日,我们的脑部会发送营养模式、餐饮多样性、
> 以及针对下一周的个性化建议的摘要。
**基于模式的辅导**
> "你已经5天没有做高蛋白食物了——根据你的偏好和已经在周计划中的内容,这里有一个建议"
---
## 🏗️ 架构
```mermaid
flowchart TD
A[👤 用户 / 手机] -->|自然语言问题或定时短信| B[🧠 协调智能体\n路由问题,综合回答]
B --> C[🥗 营养智能体]
B --> D[📅 计划智能体]
B --> E[💡 建议智能体]
C --> F[🔌 自定义 MCP 服务器\n暴露 OurKitchen Firebase 作为工具]
D --> F
E --> F
F --> G[(🔥 Firebase Firestore\n实时数据)]
F --> H[(🗄️ ChromaDB\n餐饮嵌入,用于 RAG)]
```
---
## 🧩 展示的 AI 概念
| 概念 | 出现位置 |
|---|---|
| **MCP 服务器** | 自定义 Python 服务器,暴露 Firestore 作为 Claude 工具 |
| **多智能体协同** | 协调器路由到营养、计划和建议智能体 |
| **RAG** | 餐饮历史和偏好嵌入 ChromaDB,用于语义检索 |
| **工具使用** | 智能体调用 Firestore 工具,在推理前获取实时数据 |
| **评估** | 测试套件,评估 OurBrain 回答的准确性和有用性 |
| **定时智能体** | Cron 触发的每周总结,通过短信发送 |
---
## 📦 技术栈
- **语言:** Python
- **LLM:** Anthropic Claude API (`claude-sonnet-4-6`)
- **嵌入:** Voyage AI (`voyage-2`)
- **数据源:** Firebase Firestore (OurKitchen 应用 - 实时家庭数据)
- **向量存储:** ChromaDB
- **交付:** Twilio 短信
- **开发环境:** Jupyter Notebooks
- **版本控制:** GitHub
---
## 🗂️ 项目结构
```
TheBrain/
├── notebooks/
│ ├── 01_firebase_connection.ipynb ✅ 第一阶段
│ ├── 02_mcp_server.ipynb ✅ 第二阶段
│ ├── 3a_rag_embed.ipynb ✅ 第三阶段
│ ├── 3b_rag_retrieval.ipynb ✅ 第三阶段
│ ├── 04_agents.ipynb ✅ 第四阶段
│ ├── 05_evals.ipynb 🔜 第五阶段
│ └── 06_scheduled_summary.ipynb 🔜 第六阶段
├── mcp_server/
│ └── ourbrain_server.py
├── agents/ # 第四阶段 - 多智能体层
│ ├── __init__.py
│ ├── mcp_host.py # 自定义 MCP 主机
│ ├── agent_runner.py # 智能体循环
│ ├── sub_agents.py. # 营养 / 计划 / 建议'
│ ├── orchestrator.py. # 协调器调用子智能体作为工具'
├── credentials/ # gitignored
├── secrets.json # gitignored
├── .env.example
├── README.md
└── requirements.txt
```
---
## 🗺️ 构建路线图
- ✅ **第一阶段 — 数据基础**
- ✅ 连接到实时 Firestore 数据,来自 Python 的餐饮、周计划历史和家庭偏好。
- ✅ 设置凭证和机密管理,用于所有笔记本。
- ✅ 在原始数据上构建基本问答
- ✅ **第二阶段 — MCP 服务器**
- ✅ 定义工具:`get_meals`、`get_weekly_history`、`get_preferences`
- ✅ 构建自定义 Python MCP 服务器,暴露 OurKitchen 的 Firestore 数据作为 Claude 可以按需调用的工具
- ✅ 验证 Claude 可以调用工具并推理结果
- ✅ **第三阶段 — RAG 管道:** RAG 与第二阶段的工具一起实施,以回答我家的问题 - 即,我们可以做什么菜是清淡而新鲜的
- ✅ 使用 Voyage AI 将餐饮历史嵌入 ChromaDB,并构建语义检索层,输入 Claude 的上下文。
- ✅ 测试语义检索(“在寒冷的夜晚,有哪些舒适的食物?”)
- ✅ 将 RAG 结果连接到智能体上下文
**关键收获** - 检索的质量取决于数据块的质量——带有描述性注释的餐饮比仅具有结构化字段的餐饮返回更好的结果。随着数据集的增长,这需要改进
- ✅ **第四阶段 — 多智能体协同**
- ✅ 构建营养智能体
- ✅ 构建计划智能体
- ✅ 构建建议智能体
- ✅ 构建协调器,路由和综合
**关键收获** - 1)建议智能体最初重新定义饮食限制(“不吃猪肉”)为“未充分利用的蛋白质”,并推荐猪肉菜肴,尽管承认限制。通过在系统提示中添加明确的硬规则限制来修复,这些限制列出了受限成分的变体,并禁止合理化例外。生产级修复将添加后响应验证作为第二层(计划在评估阶段)。2)相同的智能体循环模式在两个层面上都适用 - 子智能体调用 MCP 工具,协调器调用子智能体作为工具。3)混合检索(结构化查询+语义搜索作为工具暴露)允许智能体根据问题类型动态选择。工具描述是驱动此选择的提示工程表面。
- [ ] **第五阶段 — 评估**
- [ ] 定义20个测试问题和预期答案
- [ ] 构建评分逻辑
- [ ] 在任何重大更改后运行评估
- [ ] **第六阶段 — 定时交付**
- [ ] 构建每周总结提示
- [ ] 设置 cron 作业
- [ ] 连接到短信交付
---
## 🔗 相关项目
该项目是个人家庭应用程序生态系统的一部分:
- **[OurKitchen]** — 共享的家庭餐饮计划器和购物清单(Firebase + Claude API)
- **[OurFitness]** — 共享的家庭健身追踪器(即将作为数据源推出)
---
## 👤 关于
由 Sagar 构建——探索智能体 AI 系统设计作为进入 AI 产品角色的途径。
- 电气工程背景,目前在 KPMG 担任顾问
- 自学成才的开发者
- 在该项目之前,已经交付了多个家庭应用程序。