DeepSeek Harness Hub
← 返回列表

whaojie797-design/source-watch

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

为你的 Agent 所依赖的网页信源提供本地、确定性的变更监控。

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/7/30 · 已提供中文文档

为你的智能体所依赖的网页来源提供本地、确定性的变更监控。(初始化/检查 sources.yml;标记内容/标题/新增/消失的变更,命中监控关键词时标记为 HIGH。)

综合分
25.3
GitHub 分
25.3
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add whaojie797-design/source-watch
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/17(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

MIT
Python
Zero deps
CI

source-watch

为你的 Agent 所依赖的网页信源提供本地、确定性的变更监控。

本地的、确定性的「信源变更监控」工具:给 Agent 一份信源清单,init 建基线,check 精准报告「哪些信源变了、正文改了哪几段、是否命中你关心的关键词、哪些 404 了」。

demo

之前 / 之后

之前 —— 你的 Agent 引用了一个外部页面(库的更新日志、竞品定价、
API 文档、法规页面),却完全不知道它变了。它要么每次重新抓取整个嘈杂的页面
(慢,淹没在导航/广告/时间戳里),要么基于过时的上下文作答。

之后 —— 你维护一份 sources.yml。source-watch 会告诉 Agent 确切
变了什么,以它可解析的 diff 形式呈现,并把你关心的变更标记为 HIGH。
不用再猜页面是不是最新的了。

它能做什么

- init —— 为每个信源建立基线:降噪后的正文 + 标题 + 指纹。
- check —— 重新抓取,并将每个信源分类为 content / title / new / gone。
- 降噪 —— 剥离 script/style/nav/footer/header,可选 CSS selector,
默认取最长的文本块。
- 严重程度 —— 任何文本命中 watch 关键词/正则的变更都会被标记为 HIGH。
- 输出 —— WATCH_REPORT.md(给人看)+ watch-state.json(机器可读的基线和
最近一次报告,Agent 可以直接读取)。
- 对离线友好 —— 支持 file:// 信源和纯标准库的抓取器;零第三方
依赖。

安装

克隆到你的 Agent 的 skills 目录。无需 pip install。

Codex
git clone https://github.com/whaojie797-design/source-watch ~/.codex/skills/source-watch

Claude Code
git clone https://github.com/whaojie797-design/source-watch ~/.claude/skills/source-watch

Cursor
git clone https://github.com/whaojie797-design/source-watch ~/.cursor/skills/source-watch

快速开始

1. describe what to watch
cp sources.example.yml sources.yml
edit urls / selectors / watch keywords

2. baseline
python scripts/watch.py init --config sources.yml --store .watchstore

3. later: what changed?
python scripts/watch.py check --config sources.yml --store .watchstore

4. acknowledge the change and re-baseline
python scripts/watch.py check --config sources.yml --store .watchstore --update

sources.yml:
sources:
- name: next-changelog
url: https://nextjs.org/changelog
selector: "main article"
watch:
- "breaking"
- "deprecat"
- name: rival-pricing
url: https://example.com/pricing
watch: ["price", "plan"]

示例报告(真实)

$ python scripts/watch.py init --config sources.yml --store .ws
[BASE] next-changelog — 124 chars, fingerprint 2b299333df8099b6
[BASE] rival-pricing — 88 字符,指纹 7c1ae0b4f2c9d3e1
[BASE] acme-docs — 220 字符,指纹 9412af520f24141e
基线已保存:.ws/watch-state.json(3 个源)

$ python scripts/watch.py check --config sources.yml --store .ws
[HIGH] next-changelog — content — 匹配:breaking
[OK] rival-pricing — 未更改
[UNREACHABLE] acme-docs — 文件未找到:.../simple.html

已监视 3 个源 · 1 个已更改 · 1 个 HIGH · 1 个无法访问

WATCH_REPORT.md(摘录):
HIGH
next-changelog — content
- url: file:///.../changelog.html
- 匹配:breaking
- 差异:
@@
- 修复:改进了静态资源的缓存。
+ 破坏性变更:移除了旧版配置格式,升级前请先迁移。

工作原理

1. 获取每个 url(http(s) 使用 urllib,file:// 直接读取)。
2. 使用 html.parser 提取正文文本,丢弃噪声标签;可选的 selector
缩小范围,若未匹配到任何内容则静默回退到完整文档。
3. 对规范化后的正文进行哈希 → fingerprint。与基线比较。
4. 对差异进行分类,若命中 watch 模式,则将严重级别提升为 HIGH。
5. 写入 WATCH_REPORT.md + 更新 watch-state.json(基线 + 上次报告)。

一切均为确定性且可离线运行;测试套件完全
针对本地 file:// 测试夹具运行。

局限性

- 它比较的是已获取、可提取的文本。纯粹通过
JavaScript 渲染内容的页面(无服务器端 HTML)需要预渲染快照,或在
静态标记上使用 selector。
- file:// 源非常适合离线文档和测试,但无法看到实时网站。
- “最长文本块”启发式是一个合理的默认值,并非完整的阅读器;在
噪声较多的页面上使用 selector 以提高精确度。
- watch 仅匹配新的正文文本(而非差异)——请保持模式具体明确。

许可证

MIT © 2026 whaojie797-design

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群