前言¶
DeepSeek Harness(DSH)智能体可以搜索并拿到链接与摘要,但要把某个 URL 读成干净、可直接推理的正文,仍需要专门的读取步骤。官方 tool-web 的 web_fetch 会把整页 HTML 转成 Markdown,导航、广告、侧栏一并保留,默认上限 200,000 字符,容易占满上下文。社区里也有若干网页抓取插件,但在正文清洗、中文编码、默认输出长度等方面各有取舍。
下面介绍 dsh-read-url(维护者 2672243194,GitHub 14 stars,分类:联网工具)。它面向 DSH 的 URL 读取场景:抓取网页、JSON API、RSS/Atom,自动识别编码,提取主内容,并以紧凑纯文本或 Markdown 返回,默认 6,000 字符上限,附带缓存与 offset 续读。
这是什么¶
dsh-read-url 是 DeepSeek Harness 的 URL reader 插件,零运行时依赖(Node 20+ 内置 fetch/解码/提取),无需 API Key,无需自建服务端。安装到 DSH 后,智能体可通过 read_url 等工具把任意 http(s) 链接读成清洗后的正文,而不是整页 HTML 堆砌。
插件遵循 DSH 官方能力接缝设计:网络请求优先走 ctx.web.fetch(),会话缓存在 ctx.effect 下注册并在卸载时清理,工具超时通过 timeoutMs 与 exec.signal 协作,模型侧输出为紧凑纯文本,无需再解析 JSON。
核心功能¶
正文提取与 Token 控制¶
插件从 HTML 中定位文章/主内容容器,剥离导航、页脚等噪声,默认最多返回 6,000 字符,并支持按段落对齐截断。长文可用 offset 从缓存续读,避免重复发送已读段落。同一会话内 5 分钟 TTL 缓存,重复读取同一 URL 会标注 (cached)。
多格式 URL¶
除普通网页外,插件原生处理 JSON API(紧凑渲染,长值裁剪)与 RSS/Atom(条目列表 + feedCount)。分页文章(小说、新闻、论坛等)默认自动拼接最多 3 页。
中文与多语言编码¶
自动检测并规范化 UTF-16 BOM、GBK/GB2312、UTF-8、Big5、Shift-JIS 等编码,含 mojibake 回退。相较部分同类插件,README 中标注其对 GB2312 与中文站点的处理更完整。
页面元数据与跳转¶
正文之外,插件按 meta → schema.org JSON-LD → byline 三级回退采集 published、author 等字段(v1.3.0 起 JSON-LD 可补全新闻站发布时间)。遇到 <meta http-equiv="refresh"> 壳页、反盗链跳转或无 JS SPA 入口时,自动跟随真实页面(最多 3 跳,防循环);声明 <base href> 的页面会据此解析相对链接。
并行与批量¶
自 v1.1.0 起,四个工具均声明 isConcurrencySafe,智能体可并行发起多次 read_url。read_url_batch 一次读取 1–10 个 URL,并发 4,单页失败不影响其余结果。
网络层¶
请求优先经 ctx.web 能力接缝;接缝不可用时回退全局 fetch。配置代理时,直连与代理 curl 竞速,先完成者胜出。README 实测提到:使用完整浏览器 UA 时,部分站点(如百度)可拿到完整静态内容,而官方 web_fetch 在相同环境下可能因 TLS/UA 特征拿到降级页。
安装与启用¶
从 GitHub 安装(README 推荐,便于更新):
npx @deepseek-ai/dsh plugin --profile web add github:2672243194/dsh-read-url
本地开发时可指向目录:
npx @deepseek-ai/dsh plugin --profile web add ./dsh-read-url
安装后重启 DSH(Web 或 TUI),在 Settings → Plugins 中确认 dsh-read-url 已启用。当前 package.json 版本为 1.3.1,许可证 MIT,要求 Node >= 20。
典型用法¶
安装完成后,直接用自然语言让智能体读 URL 即可,例如:
Read https://example.com/article and summarize the key points
Read https://docs.example.org/guide in markdown mode
Read these URLs together and compare their viewpoints: <url1> <url2> <url3>
单页读取 read_url¶
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
url |
string | 必填 | http(s) URL |
maxChars |
number | 6000 | 正文最大字符数(500–20000) |
offset |
number | 0 | 从该字符偏移续读(走缓存,不重复前文) |
mode |
string | text |
text 纯文本;markdown 结构化 |
includeLinks |
boolean | false |
是否额外返回最多 20 条页内链接 |
输出示例(README 实测):
title: 新闻中心首页_新浪网
charset utf-8
(chars 800/12398 — 截断,offset 续读)
批量读取 read_url_batch¶
一次传入 1–10 个 URL,并行清洗,合并为一份紧凑报告。失败 URL 单独标注,例如:
读取 2/4 页成功,2 页失败
--- 阮一峰的网络日志 (491 字符) ---
--- Example Domain (127 字符) ---
[失败] https://zh.wikipedia.org/... — Fetch failed: HTTP 403 ...
长文续读¶
对超过 maxChars 的文章,先用默认参数读首段,再增大 offset 继续读后续片段;缓存命中时不会重复抓取。
适用场景与注意¶
适合: 需要把网页、API 响应或 RSS 条目读入上下文做摘要、对比、调研的 DSH 智能体场景;中文站、老编码页面、分页长文;希望控制 Token 消耗、避免整页 Markdown 的场景。
注意:
- 插件以当前 DSH 进程权限发起网络请求,安装前请阅读 GitHub 源码 与 MIT 许可证,确认符合你的安全策略。
- 反爬、403、超时等失败会如实返回,批量读取时单 URL 失败不阻断其余 URL。
- 社区目录 SkillHub 插件页 为独立社区站点,与 DeepSeek / 幻方无官方从属关系;插件列表与星标等信息以 GitHub 为准。
小结¶
dsh-read-url 补上了 DSH 智能体「把链接读成干净正文」这一步:零依赖、无 API Key,默认 6,000 字符紧凑输出,支持编码检测、分页拼接、缓存续读与批量并行。若你已在用 DSH 做联网调研,可按上文命令安装试用。
- 社区目录:https://www.skillhub.cn/plugins/2672243194/dsh-read-url
- GitHub:https://github.com/2672243194/dsh-read-url