Skip to content

kangningyuan/web_agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Web Agent - 智能网页操作与内容处理代理

📋 项目概述

基于Google ADK框架构建的智能web agent,集成了Chrome DevTools MCP工具,支持多种LLM模型(DeepSeek、Kimi、Qwen等),能够通过自然语言指令控制浏览器进行网页操作、内容提取和数据处理。

🚀 快速开始

环境要求

  • Python: 3.10+
  • Node.js: 20.19+
  • Chrome浏览器: 最新稳定版
  • npm: 用于运行MCP服务器

安装步骤

1. 克隆项目

git clone https://github.com/kangningyuan/web_agent
cd web_agent

2. 安装Python依赖

pip install -r requirements.txt

3. 安装Node.js依赖

项目使用Chrome DevTools MCP,将通过npx自动下载,无需手动安装。

4. 配置环境变量

复制示例环境文件并配置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=9222

🛠️ 项目结构

web_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提供商切换

项目支持多种LLM提供商,通过环境变量ACTIVE_LLM切换(以下是三个Openai兼容LLM的示例):

  • deepseek: 使用DeepSeek API
  • kimi: 使用月之暗面Kimi API
  • qwen: 使用阿里通义千问API
  • ...

Chrome配置

项目针对不同操作系统自动适配Chrome启动方式:

Windows环境

  • 使用窗口启动的Chrome实例
  • 通过--browser-url连接到指定调试端口
  • 可以手动或通过脚本启动Chrome调试模式

Linux环境

  • 自动启动无头Chrome实例
  • 支持在服务器/Docker中运行
  • 自动处理Chrome生命周期

🖥️ 测试运行

启动ADK Web界面

根据Google ADK对ADK Web运行的要求,你需要保证adk web命令运行/my_agent同级文件夹下

# 确保你在/my_agent的同级目录下
adk web

这将启动一个Web界面,您可以通过浏览器访问并与智能体交互。

手动启动Chrome(可选)

虽然我们在代码中已经实现了自动启动,但在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氪快讯页面并提取最新新闻标题
帮我搜一下小米和特斯拉的股价,转换成人民币单位并展示结果

🐛 故障排除

常见问题

  1. Chrome无法启动

    • Windows: 确保Chrome已安装且路径正确
    • Linux: 确保安装了Chrome或Chromium
    • 检查端口9222是否被占用
  2. MCP连接失败

    • 确保Node.js版本≥20.19
    • 检查网络连接,确保可以访问npm仓库
    • 尝试增加init_timeout_in_seconds(在mcp_manager.py中)
  3. LLM API错误

    • 检查.env文件中的API密钥是否正确
    • 确保API服务可用且有足够额度
    • 检查网络代理设置

调试模式

如需查看详细日志,可以修改agent.py中的日志级别:

import logging
logging.basicConfig(level=logging.DEBUG)

🔄 进一步扩展开发

你可以进一步拓展我们的项目,一方面你可以添加新的MCP工具;另一方面也可以把我们的agent作为模块集成到您的项目中

添加新的MCP工具

  1. tools/目录下创建新的工具管理器
  2. mcp_manager.py中集成新的MCP服务器
  3. agent.pyAGENT_INSTRUCTION中更新工具说明

📄 许可证

本项目基于MIT许可证开源。


About

Web Agent - 智能网页操作与内容处理代理

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages