前言¶
DeepSeek Harness(DSH)插件生态中,针对特定网络资源的访问需求,dsh-nga-reader 提供了一个基于 Cordis 的持久化 Host/Client bundle。它不仅解决了直接在浏览器中阅读 NGA 论坛的体验问题,还通过独立的 Electron 窗口和 Agent 工具,将论坛内容与 AI 对话场景连接起来。
核心能力¶
- 论坛浏览与发现:支持版块发现与过滤、主题列表、搜索、分页阅读,以及头像和图片展示。
- 登录与凭证管理:支持扫码登录(NGA App 扫码授权)、账号密码登录和手动输入 access_uid/token 作为备选。账号密码不会被存储,凭证持久化存储在本地 YAML 文件中。
- 独立阅读窗口:侧边栏启动器会将
GET /nga-reader推送到独立的 Electron 应用窗口。无桌面 IPC 父进程时窗口保持关闭。 - AI 交互集成:支持文本选择后右键选择“解释”或“总结”,在独立窗口打开 canonical Session。提供 Agent 工具用于论坛发现、主题阅读和获取 UI 上下文。
- MNGA 功能对等:支持每日签到、通知(回复/提及/投票/私信)、短消息(对话、阅读、回复)、收藏(版块/文件夹/话题)、热门话题(日/周/月)、用户资料、关注列表、投票等功能。
安装与配置¶
在 DeepDeck 中打开 设置 → Apps,在 Install an App plugin 处粘贴安装源:
https://github.com/jo32/dsh-nga-reader.git
选择 Inspect source 检查包信息,确认后选择 Confirm install。安装完成后重启 DeepDeck,从侧边栏打开 Apps → NGA Reader。
本地开发时,克隆仓库并构建:
git clone https://github.com/jo32/dsh-nga-reader.git
cd dsh-nga-reader
npm install
npm run typecheck && npm test
dsh plugin --profile web add "$PWD"
最后一条命令用于挂载 Cordis bundle,需在由 DeepDeck 管理的 profile 中运行,以确保 App runtime 存在。
使用示例¶
- 基础阅读:打开论坛版面,选择主题,在聚焦的阅读器中翻阅分页帖子。
- 文本分析:在阅读器中选中一段文本或右键点击帖子,选择“解释”或“总结”,插件会在
~/DeepDeck/Apps/nga-reader打开对应的会话。 - Agent 调用:向 DeepDeck Agent 提示词,例如“列出 NGA 当前热门主题,并按版面分组”或“阅读这个帖子,提炼主要共识、争议点和有用链接”。
- 账号联动:仅在需要收藏、通知、私信、签到、投票或回复时才连接账号。Agent 触发的发布操作仍需审批。
技术细节与限制¶
- 运行环境:插件挂载时需要 DeepDeck App runtime service。
- 认证机制:支持访客浏览,仅在执行个人操作时需要认证。凭证存储在
$DSH_HOME/.credentials.yaml(默认~/.dsh/.credentials.yaml)。 - 依赖:需要 Node.js >= 22,无需 Python。
- 通信:阅读器窗口与主窗口通过 BroadcastChannel 进行 IPC 通信。