农大门户(cau-portal):中国农业大学通知公告的 DSH 插件与数据管道

前言

DeepSeek Harness(DSH)支持插件化扩展,本插件针对中国农业大学(CAU)的通知公告场景,提供了一套开源的爬虫与 AI 加工管道。它将公开网页抓取、AI 摘要生成、分类与截止日期提取整合在一起,通过 DSH 侧边栏面板展示,并支持在对话中直接查询。

与市面上托管式的通知聚合服务不同,本项目只开源工具本身。数据由使用者自行收集、存储在自己掌控的私有仓库中,不作为工具服务的一部分。维护者:@ZBber-lab。

核心能力

插件主要解决“信息分散、阅读耗时”的问题,提供以下功能:

  1. 侧边栏面板:要求 DSH 版本 ≥ 0.1.5-rc.2。面板停靠在 DSH 官方右侧栏,包含今日要览、要闻、我的事项(截止提醒)、栏目频道、关注与归档、数据管理及文章阅读(支持原文 + AI 摘要 + 截止日期高亮 + 一键引用到对话)。
  2. 栏目频道管理:在设置中可开关首页显示来源(默认显示新来源,关闭仅不显示,数据照常抓取)。支持“添加新来源”,通过 tools/scraper/probe.mjs 探测站点结构并确认后写入配置。
  3. 多系统解析:内置博达(boda)、苏迪(sudy)及校新闻网自研(news-custom)三类解析器,通过 sites.json 驱动。probe.mjs 可探测目标站并生成配置片段,方便接入其他院校或院系栏目。
  4. AI 加工:利用 DeepSeek API 对文章进行摘要生成、分类(通知/新闻/讲座等)、重要度评估及截止日期提取。
  5. 对话查询(MCP):提供 6 个 MCP 工具(最新通知、关键词检索、截止事项、站点目录、用量统计、文章详情),AI 可在对话中直接回答查询。
  6. 数据自主:数据仓库完全由用户配置(owner/repo),令牌仅存储于本地。插件与 MCP 共享同一套凭据配置。

安装与启用

安装插件需在 DSH 环境中进行。

桌面版(推荐):
在 DSH 侧边栏点击“插件” → “添加插件”,输入以下地址并安装:

github:ZBber-lab/cau-portal-open

安装完成后,务必在插件列表中点击“立即启用”。侧边栏底部会出现“农大门户”入口,若未启用则入口置灰。

CLI / Web 环境:
若环境中有 dsh 命令,使用以下命令(注意区分 profile):

dsh plugin --profile desktop add "github:ZBber-lab/cau-portal-open"
# 或
dsh plugin --profile web add "github:ZBber-lab/cau-portal-open"

安装成功后需重新加载 DSH 才能生效。

数据管道与使用

本插件的数据流为:爬虫抓取公开网页 → AI 加工 → 产物提交到用户的私有数据仓库 → 插件与 MCP 读取展示。

本地运行抓取

工具代码位于 tools/scraper/ 目录。运行前需准备两个仓库:一个是本插件仓库(用于获取工具代码),另一个是你的数据仓库(用于存放抓取结果)。

  1. 抓取:
    node tools/scraper/crawl.mjs --data-dir ../<你的数据仓>/data --pages 2 --articles 8
  1. AI 加工:
    DEEPSEEK_API_KEY=sk-xxx node tools/scraper/enrich.mjs --data-dir ../<你的数据仓>/data --limit 8

产物将写入 <数据仓>/data/ 目录下的 index.json、feed/、articles/ 和 usage.jsonl。完成后需在数据仓库提交并推送,插件面板才会刷新。

定时自动抓取(可选)

为避免手动运行,可使用 GitHub Actions。将工具仓库的 .github/workflows/crawl.yml 复制到你的数据仓库。

由于 GitHub 免费私有仓库不支持原生 schedule 触发器,通常需要配合外部调度服务(如 cron-job.org)调用 Actions 的 workflow_dispatch 接口来实现每 2 小时自动抓取。

MCP 对话集成

要使 AI 能在对话中直接调用工具,需注册 MCP client。

  1. 安装依赖:
    cd tools/mcp && pnpm install
  1. 配置 cordis.patch.yml:
    在 DSH 对应 profile 的配置文件中添加(路径视环境而定,桌面版通常为 ~/.dsh/profiles/desktop/cordis.patch.yml):
    - id: mcp-cau
      name: '@deepseek-ai/dsh-mcp-client'
      serverName: cau
      transport: stdio
      command: node
      args: [<本仓库路径>\tools\mcp\index.mjs]
      cwd: <本仓库路径>\tools\mcp
*注意:数据仓配置不必在此文件中重复填写(v0.5.4 起),插件会自动读取面板设置页的配置。*
  1. 配置令牌:
    在 DSH 侧边栏“农大门户” → 设置 → 令牌管理中,粘贴你的 GitHub 数据仓细粒度令牌。

前置要求与注意事项

  1. 环境依赖:
    • DSH 官方桌面版(建议)或 Web/CLI 环境,版本需 ≥ 0.1.5-rc.2(面板停靠在右侧栏需此版本)。
    • Node.js 18+。
  2. 数据源:
    • 需要一个 GitHub 私有仓库作为数据仓。
    • 需要一个 DeepSeek API Key(用于管道 AI 加工)。
  3. 安全:
    • GitHub 令牌仅存本机,请勿泄露。
    • 调度用的 cron-job.org 令牌仅授予 Actions: Read & write 权限。
    • 校内数据版权归学校所有,公开页面信息仅作个人学习使用。

结语

农大门户插件将爬虫技术与 AI 能力封装为 DSH 生态的一部分,通过面板与 MCP 工具,让通知公告的检索与阅读变得高效且可控。所有数据由用户自行托管,工具代码开源透明。项目目录与 GitHub 仓库:zbber-lab/cau-portal-open。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜