前言¶
DeepSeek Harness (DSH) 的 web_fetch 模块能够处理标准的 HTTP 请求,获取服务器返回的 HTML。对于纯文本或静态文档,这种方式足够且高效。但在面对需要 JavaScript 渲染的单页应用(SPA)、需要登录态的页面、或者需要截图保存的网页时,纯 HTTP 请求无法获取完整的页面内容。
dsh-moli 插件旨在解决这一问题。它将本地的 Moli 浏览器(一个为 AI 智能体设计的 Rust 无头浏览器)接入 DeepSeek Harness,让智能体能够像真实浏览器一样执行页面渲染、提取语义树、生成截图或 PDF。
插件介绍¶
dsh-moli 是 DeepSeek Harness 的一个联网工具类插件,由开发者 27painter 维护。它的核心功能是提供两个工具接口:moli_fetch 和 moli_probe。通过这两个接口,智能体可以驱动本地已安装的 Moli 引擎,处理那些必须由浏览器才能呈现的内容。
核心功能¶
该插件主要包含以下两个能力:
-
moli_fetch
- 渲染指定的 URL。
- 返回 Markdown、HTML、语义树或 JSON 格式的数据。
- 在页面上下文中评估 JavaScript 表达式。
- 生成 PNG 截图或 PDF 文档。
-
moli_probe
- 检查 Moli 引擎的安装状态、版本信息以及 HTTPS 可用性。
- 支持自动安装 Moli 引擎。
安装与启用¶
安装插件需要分两步:先安装插件代码,再确保 Moli 引擎已就绪。
1. 安装插件代码¶
插件代码通过 npm 发布,体积很小(约 26KB)。
dsh plugin --profile web add dsh-moli
2. 安装 Moli 引擎¶
npm 包仅包含插件代码,不包含 Moli 浏览器引擎(约 101MB)。如果本地没有安装引擎,需要单独安装。
方式一:通过插件自动安装
moli_probe action=install
方式二:使用官方安装器
Moli 引擎遵循 MIT 许可证,由 lexmount/moli 项目维护。可以执行官方提供的安装脚本:
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://github.com/lexmount/moli/releases/latest/download/moli-installer.ps1 | iex"
# Linux / macOS
curl --proto '=https' --tlsv1.2 -fsSL https://github.com/lexmount/moli/releases/latest/download/moli-installer.sh | sh
方式三:手动下载
从 GitHub Releases 下载对应架构的压缩包(如 moli-x86_64-pc-windows-msvc.zip),解压到指定目录。
如果 Moli 引擎安装路径不在默认位置,可以通过配置项指定:
config:
exePath: 'C:\path\to\moli.exe'
安装完成后,重启 DSH 并运行 moli_probe 确认版本正确。
典型用法¶
检查环境状态¶
确认 Moli 引擎是否已安装以及版本信息:
moli_probe
获取渲染后的 Markdown¶
请求一个需要 JS 渲染的页面,并直接输出 Markdown:
moli_fetch url=https://example.com dump=markdown
安装引擎¶
当提示引擎缺失时,使用以下命令触发安装流程:
moli_probe action=install
注意事项与适用场景¶
适用场景¶
- 单页应用(SPA):内容完全由 JavaScript 动态生成,HTTP 请求返回空壳的情况。
- 登录墙与 Session 管理:需要浏览器 Cookie 或登录态才能显示内容的页面。
- 视觉验证:需要获取网页的截图或 PDF,用于人工核对或归档。
- 深层数据提取:使用选择器提取页面中特定字段(如价格、数量)。
不适用场景¶
- 纯静态页面:如果
web_fetch已经能返回所需的文本内容,优先使用web_fetch,因为它更轻量、更快。
限制说明¶
- 不支持桌面配置文件:该插件不支持
dsh plugin --profile desktop安装命令。桌面配置文件属于 Electron 应用本身,插件应通过 Web 配置文件安装。 - 权限与安全:插件以当前 DSH 进程的权限运行。在使用前,建议检查源码及 MIT 许可证,确保符合安全合规要求。
结语¶
dsh-moli 为 DeepSeek Harness 提供了真实的浏览器渲染能力。通过将本地 Moli 浏览器集成到工作流中,智能体可以突破静态 HTTP 请求的限制,处理现代 Web 应用的复杂交互与数据提取需求。