- Accueil
- Plugins
- Outils et capacités
- dsh-journal-monitor
dsh-journal-monitor
simon-world/dsh-journal-monitor
Economics-first journal/working-paper monitor for DeepSeek Harness: NBER RSS + arXiv econ (4 categories) + Chinese econ journals (Shi Jie Jing Ji via Magtech, Zhong Guo Nong Cun Guan Cha, Cai Mao Jing Ji, Zhong Guo Ren Kou Ke Xue, Jing Ji Guan Li via ajcass) fetch, keyword filter, dry-run/Webhook push, dedup persistence, and schedule_create-compatible briefing.
Installer
dsh plugin --profile web add github:simon-world/dsh-journal-monitorREADME
dsh-journal-monitor — 经管期刊/工作论文监控推送插件
让 DeepSeek Harness (dsh) 帮你盯着 NBER / arXiv 经济学的新论文:抓取 → 关键词过滤 → 推送(Bark/飞书/Dry-run)→ 去重持久化 → 定时简报。
⚠️ 状态(诚实声明):v1.1.0 = 可用原型。已实现并实测:多源抓取(NBER 42 条 ✓ + arXiv 三类目各 10 条 ✓ + 5 个中文经管期刊源 123 条 ✓)、关键词过滤(✓ 单测)、工具注册(7 工具 ✓)、推送链路端到端(✓ 本地 mock 服务器 5 集成测试)、去重持久化(✓)、定时简报 schedule_create 协议端到端(✓ 真实 dsh-schedule API 6 用例)、插件树加载探针(✓ 真实 dsh-tools API)、运行时自定义源(✓ journal_add_source/journal_list_sources)。未实现:真实 Bark/飞书推送(代码+链路已验证,需真实 webhook 最终确认)、Web/UI 端到端验收、定时调度会话内执行(协议已验证,执行需 API key 会话)。
为什么是真插件,不是 skill
| Skill | 本插件 | |
|---|---|---|
| 抓取 RSS | ❌ 只能教你怎么抓 | ✅ 真代码 journal_scan 直接抓 |
| 定时推送 | ❌ 做不到 | ✅ 计划接 dsh-schedule(every/at) |
| 去重持久化 | ❌ 做不到 | ✅ 状态文件 JSONL 去重 |
| 关键词过滤 | 文本建议 | ✅ journal_filter 真过滤 |
安装
# 方式一:装进现有 profile
dsh plugin --profile web add git+https://github.com/SIMON-WORLD/dsh-journal-monitor.git
# 方式二:headless
dsh plugin --profile headless add git+https://github.com/SIMON-WORLD/dsh-journal-monitor.git
重启 dsh 后,模型自动获得 4 个工具:journal_scan / journal_filter / journal_push / journal_status。
快速使用
对话里直接说人话:
- 抓:
journal_scan(默认全部经济源:NBER + arXiv econ.GN/EM/TH + q-fin.GN + 世界经济×2 + 中国农村观察 + 财贸经济 + 中国人口科学;可传source指定单个源,或sourceUrl抓任意 RSS) - 筛:
journal_filter(关键词如["china","trade","labor","did"],标题+摘要子串匹配,大小写不敏感) - 推:
journal_push(默认 dry-run 只记录;配 webhook 后真实推送) - 查:
journal_status(已推送记录 + 去重依据) - 定时:
journal_briefing(生成schedule_create参数 + 监控提示词,配合内置 dsh-schedule 每日/每周自动跑) - 自定义源:
journal_add_source(会话内注册 RSS/arXiv/CN 源)+journal_list_sources(查看全部源)
用 journal_scan 抓最新 NBER 论文,用 journal_filter 筛出含 "china" 或 "trade" 的,
再用 journal_push 推送(dry-run),最后 journal_status 看看记录。
想每天自动跑:journal_briefing(topic="中国贸易", interval_days=1) 然后用返回的 every_seconds 建 schedule_create。
想监控其他期刊:journal_add_source(id="my-journal", url="https://example.com/feed.xml", kind="rss")
真实推送配置
| 环境变量 | 说明 |
|---|---|
DSH_BARK_URL | Bark 推送 URL(例 https://api.day.app/TOKEN/),设置即启用 |
DSH_FEISHU_URL | 飞书机器人 webhook,设置即启用 |
DSH_JOURNAL_STATE | 状态文件路径(默认 <workspace>/.dsh-journal-monitor/state.jsonl) |
DSH_WORKSPACE | 工作区根(dsh 自动注入) |
工具说明
journal_scan
- 内置源:NBER Working Papers(RSS)、arXiv 经济类目(API:econ.GN / econ.EM / econ.TH / q-fin.GN)、《世界经济》online_first(中文经管)+ 当期目录(含作者/卷期/摘要)
- 参数:
source(指定单个源)、sourceUrl(自定义 RSS/Atom)、limit(默认 20) - 输出:title/link/summary/date 列表
journal_filter
- 参数:
items(scan 结果)、keywords(字符串数组,子串匹配) - 空关键词返回原样
journal_push
- 参数:
items、dryRun(强制 dry-run) - 无 webhook 时自动 dry-run(只写状态、不发消息),不会误发
journal_status
- 参数:
limit(最近 N 条,默认 10) - 输出:已记录总数、最近记录、状态文件路径
journal_briefing(v0.2.0 新增)
- 参数:
topic(简报主题)、interval_days(间隔天数,默认 1) - 输出:
every_seconds+schedule_prompt,可直接传给内置schedule_create建立定时监控
journal_add_source(v1.0.0 新增)
- 参数:
id(源唯一 id)、url(RSS/CN 平台 URL)、kind(rss/arxiv/cn-toc/ajcass)、label(显示名) - 会话内有效(重启失效);重复 id / 非法 id / 缺 url 会校验拒绝
journal_list_sources(v1.0.0 新增)
- 列出全部监控源(内置 + 自定义),含 id/类型/URL
最小闭环(scan → plan → apply → verify)
scan(抓 RSS/API/CN 目录)→ filter(plan:关键词筛选)→ push(apply:推送)→ status(verify:查状态)→ 状态文件(rollback:删除行即可回滚)→ briefing(schedule_create 定时)→ add_source(自定义源扩展)
开发与验证(门禁)
npm install # devDeps: typescript + @deepseek-ai/* 类型
npm run check # typecheck(erasable-only TS)
npm run build # tsc 构建到 lib/
npm test # 单测(parseFeed/filterItems/itemId,6 用例)
门禁清单(达到才可发版):
- typecheck 通过(erasableSyntaxOnly)
- 单测 + 集成测试 29/29 通过(含推送链路 mock + registerSource 校验 + 路径式 href)
- 真实抓取验证:NBER RSS 42 条、arXiv econ.GN/EM/q-fin.GN 各 10 条、5 中文经管源 123 条(世界经济 15 / 农村观察 41 / 财贸 10 / 人口科学 42 / 经济管理 15)
- 插件契约:name/inject/apply + cordis.patch.yml + dsh.bundle 完整
- 工具注册:7 工具注册成功(真实 dsh-tools API)
- 插件树加载探针:scripts/probe-embed.mjs(真实 dsh-tools 端到端,已入 CI)
- 推送链路端到端:Bark GET / 飞书 POST / dry-run / 去重(本地 mock 服务器)
- 定时调度协议端到端:scripts/probe-schedule.mjs(真实 dsh-schedule API,6 用例,已入 CI)
- 运行时自定义源:journal_add_source/journal_list_sources(端到端实测)
- 真实 Bark/飞书推送最终确认(需真实 webhook)
- CI 全绿(仓库已建,CI 自动跑)
- Web/UI 端到端验收
- 定时调度会话内实际执行(需 API key + dsh 会话实测)
路线图(不铺开,逐个门禁)
- v0.1.0:抓取/过滤/推送/去重闭环原型
- v0.2.0:arXiv 多类目 API + 定时简报参数生成(并入 schedule-briefing 能力)
- v0.3.0:中文经管期刊源(《世界经济》online_first)——经济学垂直差异化
- v0.4.0:插件树加载探针(真实 dsh-tools API,入 CI)
- v0.5.0:《世界经济》当期目录源(含作者/卷期/摘要全文解析)
- v0.6.0:《中国农村观察》(ajcass 平台)
- v0.7.0:推送链路端到端验证(本地 mock 服务器)
- v0.8.0:定时调度协议端到端(真实 dsh-schedule API)
- v0.9.0:《财贸经济》《中国人口科学》(ajcass v2 版式 + 截断标题去重)
- v1.0.0:运行时自定义源(journal_add_source/list_sources,7 工具)
- v1.1.0:《经济管理》(ajcass 路径式 href)——5 中文经管源 123 条
- v1.2.0:真实 webhook 最终确认 + 定时调度会话内执行
- v1.3.0:更多中文经管期刊(管理世界/经济研究——经 CNKI 平台需登录态,评估可行性)+ 引用核验联动
文档
- 10-sources.md — 期刊/数据源清单与扩展方法
- 20-cn-journals.md — 中文经管期刊接入规划(进行中)
- 30-push-verification.md — 推送链路端到端验证记录(mock 服务器,含 dry-run bug 修复说明)
贡献
- 每个 PR 对应一个真实痛点或已验证功能;写明「验证结果」。
- 遵守 DSH 插件规范(cordis.patch.yml + defineTool + erasable TS)。
- 本仓库与
SIMON-WORLD/dsh-toolkit是姊妹仓库:toolkit 做通用好用化,本仓做经济学垂直。
License
MIT
Plugins associés
WeKnora (dsh-weknora)
tencent/weknora
weknora
tencent/weknora
archify (deepseek-harness)
tt-a1i/archify
BrowserSkill (dsh-plugin-browserskill)
tencent/browserskill