DeepSeek Harness Hub
← 返回列表

tyx6661234/dsh-community-listening

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

面向 DeepSeek Harness DSH 的社交评论研究插件

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

面向 DeepSeek Harness (DSH) 的社交评论研究插件

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

README

dsh-community-listening

面向 DeepSeek Harness (DSH) 的社交评论研究插件。它提供平台内容发现、公开评论采集、语料管理、情感分析、近似去重、主题聚类和 Markdown 报告导出能力。

dsh-community-listening 是一个标准 DSH bundle:只注入官方 tools service,可运行在普通 DSH profile 与 DSH Desktop profile 中。它不依赖 Electron、Desktop 私有 service、launcher bootstrap 或内部 shim。

功能

- 覆盖知乎、B 站、小红书、微博、抖音、快手、牛客和百度贴吧的评论采集。
- 为 B 站、小红书、微博、抖音、快手提供内容发现工具;抖音还支持读取用户近期作品。
- 将搜索结果和评论按主题保存为 JSONL 语料,并按 URL 与内容去重。
- 提供语料统计、词典/LLM 情感分析、SimHash 近似去重、embedding 或关键词主题聚类、报告导出。
- 对各平台维护独立的节流、冷却和通道健康状态;主通道失败时会在可用范围内自动降级。

支持范围

| 平台 | 内容发现 | 评论采集 | 浏览器与登录要求 |
| --- | --- | --- | --- |
| 知乎 | - | 问题页 | 浏览器;公开页面通常可读 |
| B 站 | 视频搜索 | 视频页 | 可匿名;可选 Cookie 改善 API 可用性 |
| 小红书 | 笔记搜索 | 笔记页 | 需要用户自己的登录态和有效 xsec_token |
| 微博 | 帖子搜索 | 详情页 | 浏览器;可用性取决于页面和平台状态 |
| 抖音 | 视频搜索、用户作品 | 视频页 | 浏览器;可用性取决于页面和平台状态 |
| 快手 | 视频搜索 | 视频页 | 浏览器;公开页面通常可读 |
| 牛客 | - | 讨论帖 | 浏览器;公开页面通常可读 |
| 百度贴吧 | - | 帖子页 | 浏览器;公开页面通常可读 |

对于其他网页,collect_comments 会尝试通过浏览器提取已加载的评论内容,但不保证适配效果。

前置条件

- Node.js >= 20。
- 可用的 DSH 或 DSH Desktop 环境。
- 已安装并可从 PATH 调用的 BrowserSkill CLI(bsk)。浏览器型采集依赖它连接用户的浏览器会话。

插件可在无浏览器连接时尝试拉起本机 Chrome;也可以关闭此行为,或指定浏览器可执行文件和 profile。使用需要登录的平台时,请只使用自己有权使用的浏览器 profile。

安装

一键安装(公开发布后)

dsh plugin --profile  add dsh-community-listening

将  替换为目标 DSH 或 DSH Desktop profile 的名称。安装后重启该 profile 即可加载插件。

源码部署

克隆仓库、构建 bundle,再从本地目录安装:

git clone https://github.com/tyx6661234/dsh-community-listening.git
cd dsh-community-listening
pnpm install --frozen-lockfile
pnpm build
dsh plugin --profile  add .

同一 bundle 可以安装到普通 DSH profile 或 DSH Desktop profile,不需要维护两套插件包。

本地开发

pnpm install
pnpm build

开发依赖仅用于构建和验证;发布包会保留 DSH 运行时所需的 peer dependencies,而不会把宿主运行时打进 bundle。

快速开始

在进行连续采集前,先查看平台状态:

crawler_status()

搜索内容时传入 topic 会将发现结果写入该主题的语料目录:

collect_bilibili_search({
keyword: "机械键盘",
topic: "mechanical-keyboards"
})

对搜索结果中的 URL 采集评论:

collect_comments({
url: "",
topic: "mechanical-keyboards"
})

之后可以统计、分析并导出报告:

corpus_stats({ topic: "mechanical-keyboards" })
mine_sentiment({ topic: "mechanical-keyboards" })
dedupe_similar({ topic: "mechanical-keyboards" })
cluster_topics({ topic: "mechanical-keyboards" })
export_report({ topic: "mechanical-keyboards", report: "# Research report\n..." })

cluster_topics 读取主题下的 article 和 page 语料;评论情感分析则读取 comment 语料。也可以直接通过各工具的 items 参数分析未落盘的文本。

工具

采集与状态

| 工具 | 用途 |
| --- | --- |
| crawler_status(platform?) | 只读查看通道、最近结果、降级状态、冷却时间和历史趋势。 |
| collect_comments(url, max_expand?, topic?) | 按 URL 路由至平台适配器并采集评论;支持 topic 自动落盘。 |
| collect_bilibili_search(keyword, topic?, limit?) | 发现 B 站视频。 |
| collect_xhs_search(keyword, topic?, limit?) | 发现小红书笔记,并尽力提供可用 token 信息。 |
| collect_weibo_search(keyword, topic?, limit?) | 发现微博帖子。 |
| collect_douyin_search(keyword, topic?, limit?, sort_type?, publish_time?) | 发现抖音视频。 |
| collect_douyin_user(userUrl, topic?, limit?) | 读取一个抖音用户的近期作品。 |
| collect_kuaishou_search(keyword, topic?, limit?) | 发现快手视频。 |

采集结果会带上 backend、fallbacks 和 degraded 等字段。degraded: true 表示插件已从首选通道切换到兜底通道,不必然表示没有拿到结果。

语料与分析

| 工具 | 用途 |
| --- | --- |
| save_corpus(topic, items, kind?) | 手动追加文本到主题语料。 |
| corpus_stats(topic) | 统计语料数量、类型、来源策略和最近采集时间。 |
| corpus_read(topic, kind?, limit?, offset?) | 分页读取语料原文。 |
| mine_sentiment(topic?, items?) | 评论情感分桶与证据摘要;可选 LLM 校准。 |
| dedupe_similar(topic?, items?, threshold?) | 通过 SimHash 识别近似重复文本。 |
| cluster_topics(topic?, items?, k?) | 使用 embedding 或关键词聚类整理主题。 |
| export_report(topic, report, overwrite?) | 导出 Markdown 报告。 |

配置

在目标 profile 的插件配置中为 dsh-community-listening 添加 config。以下示例使用默认值;空字符串表示由环境、自动探测或会话目录决定。

- id: dsh-community-listening
name: dsh-community-listening
config:
bskPath: bsk
bskTimeoutMs: 120000
maxCollectConcurrency: 3
envPath: ""
autoLaunchChrome: true
chromePath: ""
chromeProfileDir: ""
corpusDir: ""
pacingStateFile: ""
bilibiliCookie: ""
siliconflowKey: ""
siliconflowBaseUrl: ""
embeddingModel: ""
bypassProxyHosts: []
zhihuMaxAnswers: 50
zhihuMaxAnswerComments: 10
bilibiliMaxComments: 100
bilibiliMaxReplyComments: 20

| 字段 | 默认值与边界 | 说明 |
| --- | --- | --- |
| bskPath | bsk | BrowserSkill CLI 路径。 |
| bskTimeoutMs | 120000,1000-600000 | 单次 BrowserSkill 命令超时,单位毫秒。 |
| maxCollectConcurrency | 3,1-5 | 浏览器型采集的全局并发上限。 |
| envPath | 空 | 可选 .env 文件;空值时只读取进程环境变量。 |
| autoLaunchChrome | true | 无连接时是否尝试启动本机浏览器。 |
| chromePath / chromeProfileDir | 空 | 覆盖自动探测的浏览器路径或 profile。 |
| corpusDir | 空 | 语料根目录;也可用 DSH_INSIGHT_CORPUS_DIR 设置。 |
| pacingStateFile | 空 | 节流状态文件;也可用 DSH_INSIGHT_PACING_STATE 设置。 |
| bilibiliCookie | 空 | 可选 B 站 Cookie;也可用 BILIBILI_COOKIE 设置。不要提交到仓库。 |
| siliconflowKey / siliconflowBaseUrl / embeddingModel | 空 | 可选 embedding 覆盖;未设置时读取环境或 envPath。 |
| bypassProxyHosts | [] | 需要直连的额外域名后缀。 |
| zhihuMaxAnswers | 50,1-200 | 知乎问题页最多处理的回答数。 |
| zhihuMaxAnswerComments | 10,0-100 | 读取评论的知乎回答数量。 |
| bilibiliMaxComments | 100,1-500 | B 站主评论与回复的合计上限。 |
| bilibiliMaxReplyComments | 20,0-100 | 尝试读取楼中楼的主评论数量。 |

可选的 LLM 与 embedding 配置支持显式插件配置、进程环境变量和 envPath 中的变量。常用变量包括:

OPENCODE_API_BASE_URL
OPENCODE_API_KEY
OPENCODE_FREE_MODELS
LLM_BASE_URL
OPENAI_API_KEYS
LLM_MODEL_LITE
SILICONFLOW_API_KEY
SILICONFLOW_BASE_URL
EMBEDDING_MODEL

LLM 或 embedding 不可用时,插件会使用规则或关键词路径降级,并在结果中标记相关状态。凭据只应存储在本机受保护的配置或环境中,绝不能提交到 Git、issue 或日志。

运行行为与限制

- 插件只处理公开可读内容,且只复用用户自己的浏览器登录态。
- 不破解验证码、不绕过登录墙、不伪造设备身份,也不提供规避平台访问限制的功能。
- 遇到登录墙、验证码、限流或浏览器不可用时,工具会停止、返回错误或进入冷却;请勿在冷却期间反复重试同一平台。
- 小红书需要登录态和 xsec_token。搜索结果中没有有效 token 或平台不返回公开内容时,评论采集可能为空或失败。
- 平台页面、接口、登录策略和访问限制可能随时变化,公开页面可访问不等于持续可采集。
- 自动降级优先保证任务可观测性:请通过 crawler_status、返回的 backend 和 degraded 判断当前通道状态。
使用本插件前,请确认你的用途符合目标平台规则、适用法律以及所在组织的数据处理要求。

数据文件

默认情况下,主题数据保存到当前 DSH 会话工作目录下;可通过 corpusDir 指定语料根目录。一个主题的典型结构如下:

/insight-workspace//
corpus.jsonl     # 搜索结果、页面与评论语料
analysis.json    # 最近一次分析快照
report.md        # export_report 导出的报告

节流状态和通道健康状态分别存放在 .pacing.json 与 .crawler-health.json。这些是本地运行状态,不应提交或发布。

根目录中的 agent-skill.json 是供本地 Agent 检索使用的元数据,不是 DSH Desktop manifest,也不替代 package.json 与 cordis.patch.yml 的 bundle 声明。

开发与验证

pnpm install --frozen-lockfile
pnpm typecheck
pnpm test
pnpm build
pnpm plugin:check
pnpm pack --dry-run

plugin:check 会验证 bundle 入口、类型入口、patch manifest、发布文件和归档排除规则。提交前还应分别在普通 DSH profile 与 DSH Desktop profile 中完成一次加载和重启 smoke test。

发布

发布前请更新严格的 SemVer 版本号,并确认上述验证全部通过:

pnpm version patch
pnpm install --frozen-lockfile
pnpm typecheck
pnpm test
pnpm build
pnpm plugin:check
pnpm pack --dry-run

确认包内容无误后,再按组织的 npm 发布流程执行公开发布。

贡献

欢迎提交 issue 和 pull request。新增或修改平台适配器时,请:

- 保持采集逻辑在公开内容和用户授权的浏览器会话范围内。
- 为 URL 路由、解析、错误与降级行为补充单元测试。
- 不提交 Cookie、API key、语料、状态文件、浏览器 profile 或本机绝对路径。
- 在修改发布相关文件后运行 pnpm plugin:check 与 pnpm pack --dry-run。

许可证

MIT。目标平台内容及其使用仍受各平台规则和适用法律约束。

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

💬 加入 DPharness 群聊

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

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