Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dsh-plugin-web-access

纯本地的智能体按需网页访问技能 — 一个 DeepSeek Harness (DSH) 动态 Cordis 插件。

让运行在 DSH 里的智能体(Agent)获得按需访问互联网的能力:命令行抓取 + 无头浏览器控制双通道,全部在本地运行,免费、无需任何 API Key

📌 插件已添加 dsh-plugin 主题标签,欢迎在 GitHub Discussions 反馈问题。

✨ 功能

工具 通道 说明
web_fetch 命令行(Node fetch) 抓取网页 HTML / API JSON / 文本,支持 GET/POST/自定义头,快且轻量
browser_open 无头 Chrome 打开网址,返回真实渲染后的标题与正文(适合 JS 动态网页),可截图
browser_snapshot 无头 Chrome 列出页面上的链接、按钮、输入框等可交互元素,了解页面结构
browser_eval 无头 Chrome 在页面中执行任意 JavaScript(点击、填表、滚动、提取 DOM)
browser_screenshot 无头 Chrome 保存页面截图到本地,可配合视觉模型查看
web fetch provider 注册进 DSH 的 ctx.web,让 web.fetch 也可用
web-access 技能 自动注册进智能体的技能目录,指导工具的选择顺序

双通道互补:命令行抓取快而轻,浏览器通道能渲染 JS、绕过直连限制(实测 curl 直连 GitHub 超时但浏览器可正常访问)、并支持页面交互。

🏗️ 架构

DSH 智能体 (Agent)
   │  调用动态工具
   ▼
Cordis 插件 (plugin/index.js, Host 端)
   │  subprocess.spawn(node)
   ▼
Node 桥接脚本 (webtools/*.js)
   ├── fetch_bridge.js    → Node 内置 fetch(命令行抓取)
   └── browser_bridge.js  → playwright-core 驱动本机 Chrome/Edge(浏览器控制)

插件运行在 DSH Host 进程内,桥接脚本以子进程方式执行,互不阻塞;所有依赖(Node、Chrome/Edge、playwright-core)都在本机。

📋 依赖

依赖 用途 必选
DeepSeek Harness(运行环境) 插件载体
Node.js 18+ 桥接脚本运行时
Chrome / Edge(本机已装即可) 浏览器控制 仅浏览器功能
playwright-core(npm 包,几十 MB) 驱动浏览器 仅浏览器功能

web_fetch(命令行通道)零额外依赖,装好就能用;浏览器通道需要 Chrome/Edge + playwright-core

🚀 快速开始

1. 获取代码与依赖

git clone https://github.com/junhongchashui/dsh-plugin-web-access.git
cd dsh-plugin-web-access
npm install          # 安装 playwright-core(仅浏览器功能需要)

2. 安装插件(二选一)

方式 A:DSH Web 界面动态插件(推荐,无需重启)

  1. 打开 DSH Web(默认 http://127.0.0.1:3080),使用带 Cordis 能力的会话(如 cordis 预设);
  2. 打开 plugin/index.js,把开头的 CONFIG.bridgeDir 改成你 clone 下来的 webtools 目录绝对路径;
  3. 将文件内容作为 code.host,用 cordis_define 创建动态插件,再 cordis_run 运行;
  4. 成功后智能体的工具列表里会出现 web_fetch / browser_open / browser_snapshot / browser_eval / browser_screenshot,技能目录出现 web-access

方式 B:挂载为 agent preset

把本仓库复制(或 symlink)进 DSH 的 agent-presets 目录,在 cordis.yml 中作为一行插件引用;桥接脚本路径同样通过 CONFIG.bridgeDir 配置。

3. 验证

问智能体:请抓取 https://example.com 的内容

应该返回 HTTP 200 与页面正文;再试一个 JS 渲染页面,智能体会自动切换到浏览器通道。

🛠️ 配置

plugin/index.js 顶部:

配置项 说明 默认
CONFIG.bridgeDir 桥接脚本(webtools/)的绝对路径 必改
CONFIG.nodePath Node 可执行文件,'node' 自动从 PATH 解析 'node'
CONFIG.screenshotDir 截图保存目录 bridgeDir

webtools/browser_bridge.js 还支持环境变量:

环境变量 说明
PLAYWRIGHT_CORE_PATH playwright-core 所在目录(默认自动查找仓库内 node_modules)
CHROME_PATH Chrome/Edge 可执行文件路径(默认自动探测常见安装位置,跨 Windows/Linux)

💡 使用示例

# 抓取 API(命令行通道)
web_fetch("https://api.github.com/repos/deepseek-ai/deepseek-harness")

# 打开 JS 渲染页面(浏览器通道)
browser_open("https://example.com", wait_ms: 2000, screenshot: true)

# 列出页面可交互元素
browser_snapshot("https://example.com")

# 在页面里执行 JS:点击、提取数据
browser_eval(url: "https://example.com", js: "() => ({ title: document.title, links: document.querySelectorAll('a').length })")

# 截图并交给视觉模型分析
browser_screenshot("https://example.com", path: "C:/tmp/page.png")

🧪 兼容性

说明
DSH 版本 0.1.x(动态 Cordis 插件机制,cordis_define / code.host
Node.js 18+(桥接脚本运行时)
已验证环境 Windows 11 + Node v24 + DSH 0.1.0-rc.6(2026-08-14 实测)
浏览器通道 需要本机 Chrome / Edge + playwright-core

⚠️ 注意:本插件的 web_fetch 工具与官方 @deepseek-ai/dsh-tool-web 在启用 fetchEnabled 时注册的 web_fetch 同名,二者不要同时启用(二选一)。web_search 等其他官方工具不受影响。

📄 许可

MIT

🤝 社区

About

纯本地的 DSH 按需网页访问插件:web_fetch 命令行抓取 + 无头浏览器(open/snapshot/eval/screenshot)双通道,免费、无需 API Key | Local-first web access plugin for DeepSeek Harness

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages