返回市场
数据营-MCP多代理演示

数据营-MCP多代理演示

作者:mikikob-mongodb10 星标更新:2025-11-08

项目介绍

职位晋升顾问 — 多智能体系统与LangGraph + MongoDB Atlas

基于AI的职位晋升准备:定义您的目标角色,记录您的项目,生成影响分析,并发现类似的专业人士——所有这些都由LangGraph编排,数据存储在MongoDB Atlas中,并通过Gradio界面呈现。


🎯 功能概述

一个实用的AI工作流,帮助您准备职业晋升:

  • 🎯 目标角色构建器 → 定义您的晋升目标(例如,高级工程师资深产品经理AI副总裁
  • 📁 项目策展人 → 从自由文本中提取结构化的项目记录及其指标
  • 📊 影响分析器 → 生成带有优势、差距及建议的高管级报告
  • 👥 导师查找器 → 在LinkedIn上发现类似的专业人士(通过Tavily搜索)
  • ⬇️ 导出 → 下载完整的晋升资料包,格式为Markdown

🎬 实际演示

工作流程

📺 观看完整演示视频: 基于AI的职位晋升顾问 - 完整演示 (3分钟)

<details> <summary>📸 更多截图</summary>

初始界面

干净的用户界面

完整的工作流程

顶部面板

中部面板

底部面板

生成的影响报告

带有行业数据的影响报告

智能体执行跟踪

技术工作流程

</details>

🚀 快速开始

1. 克隆仓库

git clone https://github.com/mikikob-mongodb/datacamp-mcp-multiagent-demo.git
cd datacamp-mcp-multiagent-demo
git checkout v1_webinar_version

2. 设置环境变量

cp env.template .env

编辑.env并添加您的API密钥:

OPENAI_API_KEY=sk-your-key-here
MONGODB_URI=mongodb+srv://your-connection-string
TAVILY_API_KEY=tvly-your-key-here  # 可选

获取您的API密钥:

3. 安装依赖项

make setup

这将:

  • 终止占用7860端口的任何进程
  • 创建虚拟环境
  • 安装所有必需的包
  • 设置开发工具(检查器/格式化程序)

4. 运行应用程序

source .venv/bin/activate  # Windows: .venv\Scripts\activate
make run

在浏览器中打开:http://localhost:7860


📋 工作原理

  1. 启动 → 聊天界面询问:"您要瞄准哪个角色?"
  2. 定义角色 → AI解析您的目标并设定期望(关注领域、职责、成功指标)
  3. 添加项目 → 粘贴项目描述;AI提取上下文、行动、结果和指标
  4. 生成报告 → 获取高管级影响分析报告,包括:
    • 具有具体证据的优势
    • 需要解决的差距
    • 可操作的建议
    • 行业薪酬数据(如果启用了Tavily)
  5. 寻找导师 (可选) → 发现LinkedIn上具有相似角色的专业人士
  6. 下载 → 将完整的晋升资料包导出为Markdown

🛠️ 开发命令

可用的Make命令

make setup       # 创建虚拟环境并安装所有依赖项
make run         # 运行应用程序(先终止端口)
make lint        # 检查代码中的问题
make format      # 自动修复和格式化代码
make clean       # 删除缓存文件
make clean-all   # 删除缓存文件和虚拟环境
make kill-ports  # 终止占用7860端口的进程
make help        # 显示所有可用命令

完全重置脚本

为了完全重新开始(在开发或调试期间非常有用):

./reset.sh

reset.sh做了什么:

  1. 检查是否处于虚拟环境中并发出警告
  2. 在脚本上下文中停用虚拟环境
  3. 运行make clean-all以删除所有缓存和虚拟环境目录
  4. 运行make setup以创建新的环境并安装依赖项
  5. 提供明确的激活新环境的指令

运行reset.sh后,激活新环境:

source .venv/bin/activate && make run

注意: 脚本无法自动在终端中激活虚拟环境(这是基本的shell限制)。您的终端提示可能仍然显示(.venv),但旧环境已被移除,一个新的环境已创建。只需运行上述激活命令即可使用新环境。


📁 项目结构

promotion_tycoon/
  ├── main.py              # 应用程序入口点
  ├── config.py            # 环境配置
  ├── storage.py           # MongoDB操作及检查点
  ├── models.py            # Pydantic数据模型
  ├── prompts.py           # 系统提示
  ├── tracing.py           # 执行日志
  └── ui.py                # Gradio界面

├── env.template           # 环境变量模板
├── Makefile              # 构建和运行命令
├── reset.sh              # 开发重置脚本
└── README.md             # 此文件

🔧 配置

环境变量 (.env)

# 必需
OPENAI_API_KEY=sk-...
MONGODB_URI=mongodb+srv://...

# 可选
TAVILY_API_KEY=tvly-...           # 用于行业研究
DATABASE_NAME=promotion_advisor    # 默认数据库名称
GRADIO_SERVER_PORT=7860           # 默认端口

MongoDB Atlas 设置

  1. https://www.mongodb.com/cloud/atlas 创建一个免费的M0集群
  2. 创建一个具有读写权限的数据库用户
  3. 获取您的连接字符串(看起来像 mongodb+srv://username:password@cluster.mongodb.net/
  4. 在网络访问设置中白名单您的IP地址
  5. 添加到.env文件

备用行为: 如果MongoDB不可用,应用程序会自动切换到内存存储,并在日志中显示警告信息。


🎓 展示的关键概念

此项目展示了构建生产就绪AI应用的一些高级模式:

  • 多智能体编排 → LangGraph管理专用代理之间的路由
  • 中断/恢复模式 → 人类参与的工作流,具有检查点/恢复功能
  • 结构化数据提取 → Pydantic模型确保类型安全性和验证
  • 持久记忆 → MongoDB Atlas存储对话状态和检查点
  • 行业研究集成 → 使用Tavily的MCP(模型上下文协议)进行实时数据
  • 交互式UI → Gradio提供快速原型设计和生产就绪界面
  • 优雅降级 → 即使外部服务失败,应用程序仍能继续运行

🐛 故障排除

端口已被占用

如果您看到“无法找到空闲端口”错误:

make kill-ports
make run

或者在.env中指定不同的端口:

GRADIO_SERVER_PORT=7861

MongoDB连接失败

症状: 身份验证失败连接超时

解决方案:

  • 核实.env中的连接字符串是否正确
  • 检查数据库用户是否有适当的读写权限
  • 确保您的IP地址已在Atlas网络访问中白名单
  • 使用MongoDB Compass测试连接字符串

如果MongoDB不可用,应用程序会自动切换到内存存储。

依赖项未安装

确保您已安装Python 3.10+:

python3 --version

如果遇到依赖冲突:

./reset.sh  # 完全清理并重新安装

Tavily搜索不起作用

症状: 报告中没有行业研究或薪酬数据

解决方案:

  • 核实.env中的TAVILY_API_KEY是否设置正确
  • 检查您是否超过了免费层级的限制(每月1,000次搜索)
  • 在UI的执行跟踪面板中监控Tavily特定的错误

注意: 即使没有Tavily,应用程序也能正常工作,但不会在报告中包含行业研究。

虚拟环境问题

如果您看到(.venv)在提示符中但命令失败:

deactivate
./reset.sh
source .venv/bin/activate
make run

或者简单地打开一个新的终端窗口:

cd datacamp-mcp-multiagent-demo
source .venv/bin/activate
make run

💡 启发自

这个项目受到了Julia Evans关于**吹嘘文档**的概念启发——一种系统的方法来追踪您的成就,以便绩效评估和晋升。

Julia识别的问题:

“有一种想法是,如果你在工作中做得很好,人们会(或应该!)自动认识到你的工作并给予你晋升/增加工资作为奖励。实际上,情况往往比这复杂得多。”

我们的解决方案: 虽然Julia的吹嘘文档是一个手动过程,职位晋升顾问自动化了其中的困难部分

  • 结构化提取 → 将自由形式的项目描述转化为组织化的、基于指标的记录
  • 差距分析 → 将您的成就与目标角色的要求进行比较
  • 行业基准 → 包括薪酬数据和实际的角色期望
  • 导师发现 → 找到成功完成类似过渡的人
  • 高管级输出 → 生成经理们实际阅读的精美的报告

我们正在利用Julia的智慧结合AI工具,使其更容易维护您的专业叙述并有效地为自己争取权益。

阅读Julia的原始文章: 让您的工作得到认可:编写一份吹嘘文档


🎯 未来增强

计划的功能:

  • 向量与混合搜索 → MongoDB Atlas向量搜索用于语义项目/导师匹配
  • 文件上传 → 简历和职位描述解析
  • 嵌入与重新排序 → Voyage AI集成以提高搜索质量
  • PDF导出 → 专业的晋升资料文档
  • 团队协作 → 多用户审阅和评论功能
  • 高级导师筛选 → 按公司、地点、级别筛选
  • 监控与可观测性 → LLM成本跟踪、延迟指标、质量仪表板
  • 模型灵活性 → 支持其他LLM提供商和本地模型

📺 演示与教程

该项目是为了DataCamp多智能体系统研讨会而创建的。

涵盖的关键主题:

  • 使用LangGraph构建多智能体系统
  • 使用MongoDB Atlas实现持久记忆
  • 人类参与的AI工作流
  • 使用MCP进行实时数据丰富
  • 生产部署模式

🤝 贡献

欢迎提出问题和拉取请求!对于重大更改,请首先打开一个问题进行讨论。

开发工作流程:

  1. 分叉仓库
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 进行您的更改
  4. 运行检查器:make format && make lint
  5. 提交您的更改 (git commit -m '添加惊人的功能')
  6. 推送到分支 (git push origin feature/amazing-feature)
  7. 打开一个拉取请求

📄 许可证

如果这个演示激发了您的灵感,请查看Gen-AI展示,了解更多动手实例,如代理模式记忆架构以及基于MongoDB的AI应用。 👉 Gen-AI展示


🌟 更多探索

🔧 MongoDB AI资源

对使用MongoDB构建生产级AI应用感兴趣吗?

👉 MongoDB GenAI展示 - 生产级AI应用模式和示例集合

👉 LangChain + MongoDB集成 - 使用MongoDB Atlas与LangChain的官方文档

👉 MongoDB AI用例 - 基于MongoDB的真实世界AI应用

📚 核心技术

LangGraph & 多智能体系统:

模型上下文协议 (MCP):

UI & 部署:

📖 教程与灵感

MongoDB + MCP集成:

搜索与研究:

职业发展:

  • 吹嘘文档 由Julia Evans - 此工具自动化的手动过程

🎓 学习更多

想深入了解多智能体系统吗?

有问题或想贡献吗?