面向复杂网页任务的智能浏览器代理框架,基于 LLM + Playwright MCP 执行浏览器操作,并结合上下文压缩、人工审批、文档检索与任务经验复用能力。
NexusSurf 通过 @playwright/mcp + LangChain/LangGraph 组合,实现可交互的 Web Agent。它不是只执行固定脚本的浏览器自动化工具,而是把浏览器操作、视觉分析、终端读写、文档检索和经验检索放入统一的 Agent 工具链中,由模型按任务目标动态编排。浏览器操作通过 MCP (Model Context Protocol) 以 snapshot-ref 模式驱动,并使用持久会话保持跨工具调用的页面状态。
- 支持自然语言驱动浏览器与辅助工具协同执行。
- 支持文档上传索引、文档检索和任务经验复用。
- 支持 CLI 模式和 FastAPI + 前端模式。
- 浏览器自动化:通过 @playwright/mcp 连接 CDP 端点,提供页面导航、元素快照交互、信息提取等能力。
- 模型推理编排:统一调度浏览器工具、视觉分析、终端工具与检索工具,支持多轮会话和可中断审批(HITL 中间件)。
- 上下文管理:长上下文压缩(旧消息摘要 + 字符硬阈值双触发)、归档和重放辅助。
- 检索与记忆:基于 PostgreSQL + PGVector 的文档检索与任务经验沉淀。
- Python 3.10+
- Node.js 16+(用于运行 @playwright/mcp)
- PostgreSQL 14+
- 已启用
vector扩展(PGVector)
推荐安装方式:
conda create -n langchainenv python=3.11 -y
conda activate langchainenv
pip install -r requirements.txt
playwright install还需安装 Node.js 依赖(Playwright MCP 服务通过 npx 启动):
npm install -g @playwright/mcpPowerShell:
Copy-Item .env.example .envBash:
cp .env.example .env请至少填写 .env 中以下配置:
DASHSCOPE_API_KEYDB_HOST、DB_PORT、DB_NAME、DB_USER、DB_PASSWORDBROWSER_PATH、USER_DATA_DIR、DEBUGGING_PORT
python run_server.py启动后:
- API 默认监听
http://localhost:8801 - 会自动打开
frontend/index.html
python main.py支持命令:
new/reset:新建会话exit/quit:退出
POST /chat:发送消息并流式返回执行结果GET /tools:列出可用工具POST /upload:上传文档并写入向量库
pytest示例:
pytest test/test_context_compression.py -v -sModuleNotFoundError:检查是否激活虚拟环境并已安装依赖。- 数据库报错
extension "vector" does not exist:在目标数据库执行CREATE EXTENSION IF NOT EXISTS vector;。 - MCP 连接失败 /
npx找不到:确认 Node.js 已安装且npx @playwright/mcp@latest可正常运行。 - 浏览器未启动 / CDP 连接被拒绝:检查
.env中BROWSER_PATH和DEBUGGING_PORT配置,确保浏览器以--remote-debugging-port启动。
README.md:面向人类开发者与使用者,负责上手与运行说明。AGENT.md:面向 AI coding agent,负责修改约束、边界和维护规则。