# 📥 Gmail分类程序
###使用MCP、LangGraph、SQLite内存和Ollama的人工智能电子邮件分类和调度代理
#
GmailClassificator是一个智能电子邮件分类代理,可以自动:
#
✔ 通过\*\*MCP Gmail服务器获取未读Gmail邮件\*\*
✔ 将电子邮件存储在\*\*SQLite内存中\*\*
✔ 使用\*\*Ollama(Qwen2.5-0.5B)对每封电子邮件进行分类\*\*
✔ 应用智能标签规则(紧急/时事通讯/周末阅读/忽略)
✔ 更新Gmail内的标签
✔ 创建日历块(今天的紧急任务;周六的阅读任务)
✔ 通过第二次LLM考试验证类别正确性
✔ 将完整审核日志写入 agent.log
#
此项目专为本地使用或部署在带有\*\*BlueRock secure MCP服务器\*\*的安全EC2实例上而设计。
#
---
#
# 🚀 特性
#
### ✅ Gmail集成(通过MCP Gmail服务器)
-列出未读电子邮件
-获取完整的电子邮件内容
-添加/删除标签
-通过MCP工具完全安全
#
### ✅ AI分类代理
使用\*\*Ollama+Qwen2.5:0.5b\*\*进行快速、局部推理:
- urgent\_action
- newsletter
- weekend\_reading
- ignore
#
### ✅ 智能分类逻辑
-从不将促销电子邮件视为紧急邮件
-文本规范化以提取类别,即使模型以口头方式回复
-回退到 weekend\_reading 安全分类
#
### ✅ 日历调度代理
-紧急电子邮件→ 在接下来的2小时内创建一个30分钟的区块
-周末阅读→ 周六上午10点的日程安排
#
### ✅ 验证代理
使用第二个LLM提示:
-确保标签正确
-修复错误分类
-记录更改原因
#
### ✅ SQLite内存存储(memory.db)
商店:
-gmail_id
-从,到
-主题、片段、正文
-标签(JSON)
-指定类别
-信心
-时间戳
#
### ✅ 强观察性
-完整日志位于 agent.log
-每封电子邮件记录的错误
-记录SQL更改
#
---
#
# 🏗️ 建筑
#
\\\`
┌──────────────────┐
│ MCP Gmail服务器│
│ (蓝岩/当地)│
└─────────┬────────┘
│
list_unread_emails()
│
▼
┌───────────────────────────────────────────────────────┐
│ Gmail分类程序│
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌────────┐ │
│ │ 阅读电子邮件│────▶│ 分类│────▶│组织│ │
│ └─────────────┘ └──────────────┘ └────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ SQLite内存LLM(Ollama)Gmail标签API│
│ │
│ ┌──────────────┐ │
│ │ 日程│──── 创建块──┤
│ └──────────────┘ │
│ │
│ ┌──────────────┐ │
│ │ 验证器│──── 重新标记───────┤
│ └──────────────┘ │
└───────────────────────────────────────────────────────┘
\\\`
#
---
#
# 📁 项目结构
#
\\\`
Gmail分类程序/
│
├── app/
│ ├── graph.py#LangGraph管道
│ ├── state.py#状态模式
│ ├── 工具/
│ │ ├── mcp_client.py#mcp帮助程序
│ │ └── gmail_calendar_tools.py
│ └── \_\_init\_\_.py
│
├── main.py#命令行界面入口点
├── memory.db#SQLite电子邮件存储器
├── agent.log#日志
└── README.md
\\\`
#
---
#
# ⚙️ 需求
#
###当地要求
-Python 3.10+
-Ollama已安装(qwen2.5:0.5b型号已拔出)
-MCP Gmail服务器正在运行(本地或远程)
-SQLite(内置于Python中)
#
###Python包
\\\`
pip安装langgraph语言链ollama fastmcp httpx
\\\`
#
---
#
# 🔧 设置
#
1.️⃣ 安装并运行Olama
\\\`
胶原拉力qwen2.5:0.5b
奥拉玛发球
\\\`
#
2.️⃣ 启动MCP Gmail服务器
本地或远程(BlueRock AMI版本也适用):
#
\\\`
python mcpserver.py
\\\`
#
确保端点位于 gmail\_calendar\_tools.py 匹配您的MCP URL:
python
transport=HttpClient传输(“http://127.0.0.1:8001/mcp")
\\\`
#
3.️⃣ 初始化数据库
通过自动运行 ensure\_db().
#
---
#
# ▶️ 运行电子邮件代理
#
###完整的分流流程:
\\\`
python main.py分类——模式已满
\\\`
#
这将执行:
#
1. read\_emails
2. categorize
3. organize
4. schedule
5. validate
#
###预检查(只需阅读并分类)
\\\`
python main.py分类——模式分类
\\\`
#
---
#
# 🗃️ SQLite架构
#
\\\`sql
创建表格电子邮件(
gmail_id文本主键,
thread_id文本,
从_地址文本,
to_addr文本,
主题文本,
文本片段,
正文文本,
在文本处接收,
标签TEXT,
文本类别,
类别_信心真实,
last_updated_at文本
);
\\\`
#
---
#
# 📝 日志
#
在以下位置捕获的所有日志:
#
\\\`
agent.log
\\\`
#
记录的示例:
-原始电子邮件获取
-LLM分类输出
-SQL写入
-MCP Gmail标签故障
-验证程序更正
#
---
#
# 🧪 测试
#
###列出未读电子邮件
\\\`
python main.py分类——模式读取
\\\`
#
###验证SQLite存储
使用VS Code SQLite扩展或CLI打开:
#
\\\`
sqlite3内存.db
从电子邮件中选择gmail_id、主题、类别;
\\\`
#
---
#
# 🔐 安全说明
#
-代码中未存储凭据
-身份验证通过MCP进行
-BlueRock安全AMI提供:
-系统调用阻塞
-出站防火墙
-集装箱漂移检测
-防倒壳
-指令注入检测
#
---
#
# 📌 未来改进
-高级类别(金融、旅游、学校、收据)
-使用OpenAI兼容的托管LLM
-添加附件提取
-添加情绪评分
-添加多帐户支持
#
