mcpField
S
sampling-bluesky-zeitgeist

sampling-bluesky-zeitgeist

github.com/oaustegard数据与数据库15745 次安装1 天前更新
代码仓库

关于 sampling-bluesky-zeitgeist

sampling-bluesky-zeitgeist 是一项已弃用的技能,用于分时段采样并分析 Bluesky firehose 帖子。其文档已整合到 browsing-bluesky 技能中。

主要功能

  1. 01采样多个时段的 Bluesky firehose
  2. 02汇总帖子与短语数量
  3. 03识别主题集群和趋势
  4. 04根据模板生成 HTML 报告

适用场景

  1. 01概述采样帖子的热门主题
  2. 02比较各采样时段的活跃度
  3. 03监测某主题的帖子数量和趋势

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/oaustegard/claude-skills --skill sampling-bluesky-zeitgeist

安装后在 Claude Code 中输入/sampling-bluesky-zeitgeist确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CHANGELOG.md
README.md
assets/
zeitgeist-template.html
references/
artifact-template.md
scripts/
zeitgeist-sample.js

详细介绍

采样 Bluesky 热点

⚠️ 已弃用:此技能已整合至 browsing-bluesky 技能。

通过 sample_firehose() 函数使用 browsing-bluesky 进行 Firehose 采样。


旧版文档

捕获并分析多个时间段的 Bluesky Firehose 数据,识别内容集群,并展示各个采样时间段及整体趋势。

工作流

1. 设置

安装依赖项:

cd /home/claude && npm install ws https-proxy-agent 2>/dev/null
2. 运行多个采样时间段

连续执行 3 次、每次 10 秒的采样:

node /mnt/skills/user/sampling-bluesky-zeitgeist/scripts/zeitgeist-sample.js --duration 10 > /home/claude/sample1.json 2>/dev/null
node /mnt/skills/user/sampling-bluesky-zeitgeist/scripts/zeitgeist-sample.js --duration 10 > /home/claude/sample2.json 2>/dev/null
node /mnt/skills/user/sampling-bluesky-zeitgeist/scripts/zeitgeist-sample.js --duration 10 > /home/claude/sample3.json 2>/dev/null
3. 分析并构建 DATA 对象

解析每个 JSON 文件并汇总:

  • 将 totalPosts 相加,计算 avgPostsPerSecond
  • 合并各时间段的 topWords、topPhrases 和 entities
  • 计算每分钟速率:(count / totalDurationSec) * 60
  • 通过比较各时间段的数量来检测趋势
4. 识别内容集群

将相关术语归入主题集群。每个集群包含:

  • name:描述性标签
  • emoji:视觉标识
  • terms:属于此集群的关键词
  • searchQuery:用于 Bsky 搜索的 OR 连接术语(例如,"trump OR republican OR congress")
  • totalMentions:所有时间段的提及总数
  • mentionsPerMin:(totalMentions / totalDurationSec) * 60
  • trend:如果最后一个时间段比第一个高出 30%,则为 "up";如果低于 30%,则为 "down";否则为 "stable"
  • samples:2-3 条与此集群匹配的示例帖子
5. 使用模板创建 Artifact

复制模板并填入 DATA:

cp /mnt/skills/user/sampling-bluesky-zeitgeist/assets/zeitgeist-template.html /mnt/user-data/outputs/zeitgeist.html

然后使用 str_replace 注入 DATA 对象:

old_str: const DATA = {"aggregate":{"totalPosts":0,"totalDurationSec":30,"avgPostsPerSecond":0,"timestamp":""},"windows":[],"clusters":[],"entities":[],"phrases":[],"languages":{}};
new_str: const DATA = {YOUR_ACTUAL_DATA_OBJECT};

完整的 DATA 架构请参见 references/artifact-template.md。

输出格式

先提供 artifact 链接,然后用简短文字总结:

  • 当前讨论的主导内容(排名前 1-2 的集群)
  • 值得注意的速率峰值
  • 有趣的模式(例如,“围绕 [topic] 的日语帖子激增”)

总结应简短——artifact 才是主要交付内容。

刷新工作流

用户要求刷新、更新或再次采样时:

  1. 运行新的采样时间段(采用相同的 3 次、每次 10 秒模式)
  2. 使用新结果更新 DATA 对象
  3. 使用 str_replace 替换现有 artifact 中的 DATA 行
  4. 报告变化:“Trump 的提及量较上次采样增加了 20%,关于 M23 的讨论正在减少”

进行比较时,跟踪之前的汇总总数并显示差值:

Previous: trump 50/min → Current: trump 62/min (+24%)

主题监测工作流

用户指定要监测的主题时(例如,“追踪湖人队的比赛”,“无人机目击事件有什么新进展”):

方案 A:筛选采样

使用 --filter 标志运行采样,仅捕获匹配的帖子:

node zeitgeist-sample.js --duration 15 --filter "lakers" > /home/claude/topic1.json 2>/dev/null

这能更深入地分析特定主题,但会错过更广泛的背景信息。

方案 B:常规采样 + 主题速率(推荐)

运行常规采样,然后:

  1. 根据结果计算特定主题的速率
  2. 在顶部添加专门的“监测主题”集群
  3. 纳入与主题匹配的示例帖子

在 DATA 对象中添加 monitoredTopic 字段:

{
  "monitoredTopic": {
    "query": "lakers",
    "totalMentions": 45,
    "mentionsPerMin": 90.0,
    "trend": "up",
    "windowCounts": [12, 15, 18],
    "samples": ["Lakers up by 10 in the 4th!", "LeBron with another triple double"]
  }
}
回复主题请求

对话开始时:

  • “无人机目击事件有什么新进展?”→ 运行常规采样,并将无人机相关内容作为监测主题重点展示
  • “追踪 Claude AI 的提及”→ 采用相同方法,重点关注该术语

对话进行中:

  • “能重点关注 M23 冲突吗?”→ 重新运行采样,将 M23 添加为监测主题
  • “日语内容有什么情况?”→ 按 lang:ja 筛选,或突出显示现有的日语集群

后续请求模式: 用户:“刷新,但重点关注比赛” → 运行新采样,保留监测主题并更新所有数据

错误处理

如果 WebSocket 连接失败:

  • 检查 *.bsky.network 是否在允许的域名中
  • 使用较短时长(5s)重试一次
  • 如果仍然失败,报告错误并建议用户检查网络设置

如果采样结果为零条帖子:

  • 可能是网络或代理问题
  • 报告问题,不要创建 artifact

自定义选项

用户可以请求:

  • 更长的样本:增加每个时间窗口的时长或添加更多窗口
  • 聚焦主题:初始样本之后,针对特定集群运行筛选后的样本
  • 对比:在不同时间运行样本并进行比较

评论

支持 Markdown