前言¶
在 DSH 生态中,浏览器自动化通常受限于固定的工具列表。一旦遇到未预定义的操作,脚本往往难以继续。dsh-tmwebdriver 插件提供了一个突破性的方案:它不再限制于预设动作,而是允许智能体在已登录的真实浏览器 Tab 中执行任意 JavaScript。这意味着只要开发者能在 Chrome DevTools 中完成的工作,智能体就能通过 browser_execute_js 完成,无需更新插件代码。
插件介绍¶
dsh-tmwebdriver 是一个由 chen70456-lang 维护的 DSH 插件,隶属于联网工具类别。它通过集成 TMWebDriver 组件,实现了对真实 Chrome 浏览器的控制。其核心价值在于提供了一种“无限覆盖”的能力——通过 JavaScript 执行,让智能体能够处理任何 DevTools 级别的操作,包括读取页面、点击、输入、截图、管理 Cookies 以及驱动 CDP。
核心功能¶
该插件提供以下主要工具:
- browser_execute_js
这是核心工具。它允许在当前浏览器的真实上下文中执行任意 JavaScript 代码。功能覆盖读取、点击、输入、填写表单、导航、截图、读取 Cookies 以及驱动 Chrome DevTools Protocol (CDP)。 - browser_list_tabs
查看所有打开的标签页,返回每个标签页的 ID、URL 和标题。 - browser_snapshot
快速读取页面的文本内容。为了防止长页面被截断,该工具会保留头部和尾部的内容。 - browser_type
提供可靠的文本输入能力,兼容 React、Vue 等现代前端框架,并支持表单提交。
安装与启用¶
安装过程包含三个步骤:
- 安装插件
使用官方安装命令。该命令会获取插件包及其包含的 Python 依赖、Chrome 扩展和主程序。
dsh plugin --profile web add dsh-tmwebdriver
-
重启服务
安装完成后,必须重启dsh web进程才能加载新插件。 -
加载 Chrome 扩展
插件包内包含 Chrome 扩展组件。首次使用时,需要在浏览器中手动加载一次。插件会打印精确的路径。如果忘记路径,browser_list_tabs工具会提醒你具体的加载步骤。具体路径位于包内的
assets/tmwd_cdp_bridge/目录。
典型用法¶
该插件支持广泛的自动化场景,包括但不限于:
- 基础交互:读取页面内容、点击元素、输入文本、提交表单、导航至新页面。
- 高级操作:截图、读取 Cookies、执行任意 JavaScript 脚本。
- 真实场景演示:插件内置演示,会打开百度,输入天气查询,并读取结果组件。
配置参数¶
安装后,可通过配置文件调整以下参数:
| 参数名 | 默认值 | 描述 |
|---|---|---|
linkUrl |
http://127.0.0.1:18766/link |
TMWebDriver 的 HTTP 链接端点。 |
timeoutMs |
30000 |
单次调用的超时时间(毫秒)。 |
snapshotMaxChars |
8000 |
单次 browser_snapshot 返回的最大字符数。 |
适用场景与生态¶
该插件特别适合需要通过验证码、需要保持登录状态的网站,或者操作复杂 JS 应用的场景。由于使用真实浏览器指纹和原生 Cookies,它能有效绕过 Headless Chrome 常见的反爬策略(如 Baidu、Cloudflare)。
该插件集成了 GenericAgent 工具链的两个组件:
* TMWebDriver master (master/tmwebdriver_master.py)
* Chrome extension bridge (assets/tmwd_cdp_bridge/)
所有代码均基于 MIT 许可证发布。DSH 插件目录与 DeepSeek 或幻方无官方从属关系。