🧠 LangGraph MCP测试代理(Gemini+剧作家)
这个项目是 模块化自动化代理 构建使用:
- 双子座 (谷歌生成人工智能)用于推理和步骤规划
- 剧作家MCP 实现真正的浏览器自动化
- LangGraph 用于规划和执行之间的协调
代理读取目标(如 *“登录Facebook”*),使用Gemini来计划浏览器操作,并通过 剧作家MCP服务器.
______________________________________________________________________
🚀 特性
✅ 使用Gemini进行LLM驱动的步骤规划\ ✅ 通过Playwright MCP实现真正的浏览器自动化\ ✅ 模块化项目结构(nodes, state, workflow, config, utils)\ ✅ 使用完全环境驱动的配置 .env\ ✅ 可与任何兼容MCP的自动化服务器配合使用
______________________________________________________________________
🏗️ 项目结构
AiFinalProject/
├── main.py
├── config.py
├── graph/
│ ├── nodes.py
│ ├── state.py
│ └── workflow.py
├── utils/
│ └── helper.py
├── .env
└── README.md______________________________________________________________________
⚙️ 先决条件
确保你有:
- Python 3.12和3.12+
- Node.js 18+
- 剧作家MCP 全局或本地安装
______________________________________________________________________
🧩 步骤1:克隆并运行Microsoft Playwright MCP
克隆并启动Playwright MCP服务器:
npx @playwright/mcp@latest --port 8931 --shared-browser-context📝 笔记:
- 您可以替换
8931您喜欢的任何其他港口。 - 保持此终端打开——Python代理通过该端口连接到此MCP服务器。
______________________________________________________________________
🔑 第二步:创建 .env 文件
在项目根目录中,创建 .env 文件并添加以下内容:
# Google Gemini API
GEMINI_API_KEY=YOUR_GEMINI_API_KEY
GEMINI_MODEL_NAME=gemini-2.5-flash
# MCP Server Configuration
MCP_PLAYWRIGHT_URL=http://localhost:8931/mcp
MCP_PLAYWRIGHT_TRANSPORT=streamable_http💡 *如果在其他端口上运行MCP,则可以更改端口。*
______________________________________________________________________
🐍 步骤3:安装Python依赖项
创建虚拟环境并安装依赖项:
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt如果你没有 requirements.txt,使用以下命令创建一个:
pip install langchain-google-genai langchain-core langchain-mcp-adapters langgraph python-dotenv
pip freeze > requirements.txt______________________________________________________________________
🧠 步骤4:运行代理
在MCP服务器运行的情况下,启动您的代理:
python3 main.py您应该看到类似于以下内容的输出:
🚀 Starting LangGraph MCP Test Agent...
🧠 LLM NEXT STEP RAW:
{
"tool": "browser_navigate",
"args": {"url": "https://www.facebook.com"},
"reason": "Navigating to Facebook...",
"done": false
}
⚙️ Executing: browser_navigate with args: {'url': 'https://www.facebook.com'}
✅ Tool 'browser_navigate' executed successfully.______________________________________________________________________
⚡ 运作原理
- 双子座 生成一个JSON计划,描述下一个操作:
{
"tool": "browser_fill_form",
"args": {
"fields": [
{"selector": "#user-name", "value": "standard_user"},
{"selector": "#password", "value": "secret_sauce"}
]
},
"reason": "Filling login fields.",
"done": false
}- LangGraph 将此步骤发送到 剧作家MCP 服务器。
- MCP执行浏览器操作,返回HTML,循环重复。
- 当双子座标记
"done": true,过程结束。
______________________________________________________________________
🧩 故障排除
| 问题 | 原因 | 修复 |
|---|---|---|
⚠️ No tool found, stopping execution. | 双子座回来了 "step" 而不是 "tool" | 确保修复后的最新提示 nodes.py |
❌ Missing GEMINI_API_KEY | .env 配置不正确 | 添加 GEMINI_API_KEY 在 .env |
MCP connection error | MCP未运行或端口错误 | 使用正确的端口运行MCP --port 或更新 .env |
______________________________________________________________________
🧪 示例目标
您可以在中更改目标 main.py:
goal = "Go to facebook.com and log/signin/signup in with standard_user/secret_sauce"尝试尝试其他目标,例如:
"Go to saucedemo.com and login as standard_user""Visit twitter.com and find the login button"
______________________________________________________________________
🧰 技术栈
| 组件 | 目的 |
|---|---|
| LangGraph | 基于状态的编排 |
| LangChain谷歌GenAI | Gemini API集成 |
| 剧作家MCP | 浏览器自动化 |
| Dotenv。 | 配置管理 |
______________________________________________________________________
🧤 许可证
该项目旨在使用LangGraph、Playwright MCP和Gemini学习和测试自动化框架。\ 负责任地使用并遵守所有API和网站的服务条款。
