基于Google ADK框架构建的智能web agent,集成了Chrome DevTools MCP工具,支持多种LLM模型(DeepSeek、Kimi、Qwen等),能够通过自然语言指令控制浏览器进行网页操作、内容提取和数据处理。
- Python: 3.10+
- Node.js: 20.19+
- Chrome浏览器: 最新稳定版
- npm: 用于运行MCP服务器
git clone https://github.com/kangningyuan/web_agent
cd web_agentpip install -r requirements.txt项目使用Chrome DevTools MCP,将通过npx自动下载,无需手动安装。
复制示例环境文件并配置API密钥:
cp .env.example .env编辑.env文件,设置以下配置:
# 选择激活的LLM提供商: deepseek, kimi, qwen
ACTIVE_LLM=deepseek
# DeepSeek API配置
DEEPSEEK_API_KEY=your_deepseek_api_key_here
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
# Kimi API配置
KIMI_API_KEY=your_kimi_api_key_here
KIMI_BASE_URL=https://api.moonshot.cn/v1
# Qwen API配置
QWEN_API_KEY=your_qwen_api_key_here
QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
# Chrome调试端口配置
CHROME_PORT=9222web_agent/
├── requirements.txt # Python依赖
└── my_agent/ # Agent核心代码
├── .env # 环境变量配置
├── __init__.py # 包初始化
├── agent.py # 智能体定义
├── config.py # 全局配置
├── llm/ # LLM适配层
│ ├── __init__.py # LLM工厂
│ ├── base_llm.py # 抽象基类
│ ├── deepseek_llm.py # DeepSeek适配
│ ├── kimi_llm.py # Kimi适配
│ └── qwen_llm.py # Qwen适配
└── tools/ # 工具扩展
├── __init__.py
└── mcp_manager.py # Chrome MCP管理
项目支持多种LLM提供商,通过环境变量ACTIVE_LLM切换(以下是三个Openai兼容LLM的示例):
deepseek: 使用DeepSeek APIkimi: 使用月之暗面Kimi APIqwen: 使用阿里通义千问API- ...
项目针对不同操作系统自动适配Chrome启动方式:
- 使用窗口启动的Chrome实例
- 通过
--browser-url连接到指定调试端口 - 可以手动或通过脚本启动Chrome调试模式
- 自动启动无头Chrome实例
- 支持在服务器/Docker中运行
- 自动处理Chrome生命周期
根据Google ADK对ADK Web运行的要求,你需要保证adk web命令运行/my_agent同级文件夹下
# 确保你在/my_agent的同级目录下
adk web这将启动一个Web界面,您可以通过浏览器访问并与智能体交互。
虽然我们在代码中已经实现了自动启动,但在Windows环境下,某些时刻你可能会需要手动启动Chrome调试模式:
# 方法1:使用项目中的自动检测功能
# 项目会自动检测并启动Chrome
# 若项目中的自动启动失效
# 方法2:手动启动Chrome调试模式
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="C:\temp\chrome_debug"启动ADK Web界面后,您可以向智能体发送自然语言指令,例如:
访问36氪快讯页面并提取最新新闻标题
帮我搜一下小米和特斯拉的股价,转换成人民币单位并展示结果
-
Chrome无法启动
- Windows: 确保Chrome已安装且路径正确
- Linux: 确保安装了Chrome或Chromium
- 检查端口9222是否被占用
-
MCP连接失败
- 确保Node.js版本≥20.19
- 检查网络连接,确保可以访问npm仓库
- 尝试增加
init_timeout_in_seconds(在mcp_manager.py中)
-
LLM API错误
- 检查
.env文件中的API密钥是否正确 - 确保API服务可用且有足够额度
- 检查网络代理设置
- 检查
如需查看详细日志,可以修改agent.py中的日志级别:
import logging
logging.basicConfig(level=logging.DEBUG)你可以进一步拓展我们的项目,一方面你可以添加新的MCP工具;另一方面也可以把我们的agent作为模块集成到您的项目中
- 在
tools/目录下创建新的工具管理器 - 在
mcp_manager.py中集成新的MCP服务器 - 在
agent.py的AGENT_INSTRUCTION中更新工具说明
本项目基于MIT许可证开源。
