关于 sampling-bluesky-zeitgeist
sampling-bluesky-zeitgeist 是一项已弃用的技能,用于分时段采样并分析 Bluesky firehose 帖子。其文档已整合到 browsing-bluesky 技能中。
主要功能
- 01采样多个时段的 Bluesky firehose
- 02汇总帖子与短语数量
- 03识别主题集群和趋势
- 04根据模板生成 HTML 报告
适用场景
- 01概述采样帖子的热门主题
- 02比较各采样时段的活跃度
- 03监测某主题的帖子数量和趋势
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ oaustegard/ claude-skills --skill sampling-bluesky-zeitgeist安装后在 Claude Code 中输入/sampling-bluesky-zeitgeist确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CHANGELOG.mdREADME.mdassets/zeitgeist-template.htmlreferences/artifact-template.mdscripts/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 才是主要交付内容。
刷新工作流
用户要求刷新、更新或再次采样时:
- 运行新的采样时间段(采用相同的 3 次、每次 10 秒模式)
- 使用新结果更新 DATA 对象
- 使用 str_replace 替换现有 artifact 中的 DATA 行
- 报告变化:“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:常规采样 + 主题速率(推荐)
运行常规采样,然后:
- 根据结果计算特定主题的速率
- 在顶部添加专门的“监测主题”集群
- 纳入与主题匹配的示例帖子
在 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
自定义选项
用户可以请求:
- 更长的样本:增加每个时间窗口的时长或添加更多窗口
- 聚焦主题:初始样本之后,针对特定集群运行筛选后的样本
- 对比:在不同时间运行样本并进行比较