{/* This page is auto-generated from the skill's SKILL.md by website/scripts/generate-skill-docs.py. Edit the source SKILL.md, not this page. */}

Reddit Reading

读 Reddit:subreddit、搜索、帖子串、用户。无需浏览器。

Skill 元数据

来源可选——使用 hermes skills install official/social-media/reddit-reading 安装
路径optional-skills/social-media/reddit-reading
版本1.0.0
作者Teknium (teknium1), Hermes Agent
许可证MIT
平台linux, macos, windows
标签Reddit, Social Media, Research, Discussions, Community
相关 skillrss-feeds、grounded-citations、blocked-page-recovery、xurl

参考:完整 SKILL.md

INFO

以下是 Hermes 在触发此 skill 时加载的完整 skill 定义。这是 skill 激活时 agent 所看到的指令内容。

Reddit Reading Skill

从服务器或无头机器上读取 Reddit 内容——subreddit 列表、全站或 subreddit 搜索、带评论的完整帖子串、以及用户活动——在常规路由都失效的地方。它不发帖、不投票、不以用户身份登录。灵感来自 Agent Reach 中按平台划分的后端路由。

使用时机

  • "r/LocalLLaMA 在说 X 什么"、"找关于 Y 的 Reddit 帖"、"总结这个 Reddit 帖"、"u/someone 最近发了什么"。
  • 用户分享的任何 reddit.com URL。web_extract、browser_navigate 和 .json 端点在服务器 IP 上全部失败(403 或"证明你是人类"墙);本 skill 是可用的路径。
  • 不用于发帖、投票、私信或任何需要用户登录的事。

前提条件

无。 不需要 Reddit 账户、登录、cookie 或 API key。默认后端是 Reddit 的公开 Atom feed(.rss 端点),这是 Reddit 仍对非住宅 IP 提供的唯一未认证路由。它限流到每 IP 约每分钟一次请求,返回的数据较薄(无分数、仅顶层评论),几次调用没问题。

可选升级(应用凭据,仍不需要用户登录): 要持续使用或拿全量数据,在 https://www.reddit.com/prefs/apps 注册一个免费的"script"类型应用,把它的两个值放进 ~/.hermes/.env:

REDDIT_CLIENT_ID=...
REDDIT_CLIENT_SECRET=...

这是应用注册,不是登录:脚本只用应用专属的 client_credentials 授权,从不使用用户名、密码或浏览器 cookie,也从不以用户身份行动。两个值都设好后它自动切到 OAuth API(约每分钟 100 次请求、分数、嵌套评论、num_comments);如果缺失或被拒,回退到匿名 feed 并在 stderr 说明。

匿名 feed(默认)OAuth 应用凭据
配置无1 分钟应用注册,两个 .env 值
限流~每分钟每 IP 1 次~每分钟 100 次
帖子数据帖子 + 顶层评论,无分数嵌套评论、分数、评论数
以用户身份行动否否

运行方式

每个命令通过 terminal 用 skill 相对脚本路径运行:

python3 scripts/reddit.py doctor                                  # 哪个后端、当前限流窗口
python3 scripts/reddit.py sub LocalLLaMA --sort hot --limit 15
python3 scripts/reddit.py search "hermes agent" --sub LocalLLaMA --sort new
python3 scripts/reddit.py thread https://www.reddit.com/r/x/comments/abc123/slug/ --limit 40
python3 scripts/reddit.py user spez --limit 10
python3 scripts/reddit.py --json search "topic"                  # 机器可读

快速参考

每个命令在两种后端上都能用;脚本自己选后端,你永远不用传标志。

需求命令匿名OAuth
Subreddit 首页sub NAME --sort hot\|new\|top\|rising [--time week]✔✔
搜全站 Redditsearch "q" --sort relevance\|new\|top\|comments✔✔
搜单个 subredditsearch "q" --sub NAME✔✔
帖子串 + 评论thread URL --limit N✔ 仅顶层,无分数✔ 嵌套、分数
用户发帖/评论user NAME✔✔
后端 + 限流doctor✔✔

流程

① 每个任务先跑一次 doctor(如果本会话还没跑过)——它告诉你哪个后端在工作、匿名窗口还剩多少秒。

② 行动前先规划调用。匿名 Reddit 大约每分钟每 IP 一次请求;脚本在 429 时会睡到窗口重置并重试一次,所以一个五次计划约花五分钟。优先用一次 search --sub 而非多次 sub 列表,读一个帖子串而非整个列表。

③ 对于"社区在说什么"的问题,读帖子正文(thread)而不是停在标题;列表只带每个帖子的前约 300 字符。

④ 当结果要进报告时,引用 permalink(url 字段),而不是列表页。grounded-citations 像注册任何其他源一样注册这些 URL。

⑤ 如果用户需要持续访问 Reddit(监控、超过约 10 次调用),停下让他们注册应用凭据(前提条件),而不是硬扛限流。明明白白告诉他们:这是免费的应用注册,不是把 Hermes 登录进他们的账户。永远不要索要 Reddit 密码或浏览器 cookie。

常见陷阱

  • www.reddit.com/…/.json、api.reddit.com 和 old.reddit.com 对数据中心 IP 返回 403 或一个空的"Welcome to Reddit"壳。不要回退到它们;不要伪造浏览器 User-Agent(也是 403)。
  • r.jina.ai 和 browser_navigate 工具撞到同一道墙("blocked by network security"/人机验证)。blocked-page-recovery 的 Wayback 路由仍能恢复一个已存档的旧帖子串;取不到新的。
  • 匿名帖子串 feed 只含帖子加顶层评论(Reddit 把 feed 限制在少量条目);分数和回复嵌套仅 OAuth 可用。
  • Reddit feed 上的 limit 是建议性的——无论你要多少,都预期 5–25 条。
  • 永远不要把 REDDIT_CLIENT_SECRET 粘进聊天或日志;脚本只从环境变量读它。
  • 不要通过循环重试或加代理来"修"429;限流是按 IP 的,脚本已经等过一次窗口。连续出现一个以上 429 意味着任务需要应用凭据。

验证

python3 scripts/reddit.py doctor 打印 anonymous_feed: ok 和一个 x-ratelimit-reset 值;sub announcements --limit 1 返回一条带 reddit.com/r/announcements/comments/ URL 的条目。设了凭据后,doctor 打印 active_backend: oauth,thread … 输出显示数字分数。