{/* 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 |
| 相关 skill | rss-feeds、grounded-citations、blocked-page-recovery、xurl |
参考:完整 SKILL.md
以下是 Hermes 在触发此 skill 时加载的完整 skill 定义。这是 skill 激活时 agent 所看到的指令内容。
Reddit Reading Skill
从服务器或无头机器上读取 Reddit 内容——subreddit 列表、全站或 subreddit 搜索、带评论的完整帖子串、以及用户活动——在常规路由都失效的地方。它不发帖、不投票、不以用户身份登录。灵感来自 Agent Reach 中按平台划分的后端路由。
使用时机
- "r/LocalLLaMA 在说 X 什么"、"找关于 Y 的 Reddit 帖"、"总结这个 Reddit 帖"、"u/someone 最近发了什么"。
- 用户分享的任何
reddit.comURL。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] | ✔ | ✔ |
| 搜全站 Reddit | search "q" --sort relevance\|new\|top\|comments | ✔ | ✔ |
| 搜单个 subreddit | search "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 … 输出显示数字分数。