1. last30days-skill 是什么给 AI Agent 补上“最近 30 天”的社区感知大模型的知识有训练截止时间这个大家都知道。但真正让人头疼的不是“它不知道 2026 年发生了什么”而是它不知道“最近 30 天真实用户在讨论什么”。你问它某个 AI 工具好不好用它能给你背出官网的功能列表却不知道 Reddit 上有人吐槽安装脚本把 shell 配置写坏了也不知道 Hacker News 上高赞评论在争论它的许可证问题。last30days-skill 就是冲着这个缺口来的。它是一个面向 AI Agent 的“近 30 天社区研究技能”由 mvanhorn 维护当前版本 v3.0.2。它的核心逻辑是当你在 Claude Code、Codex、Cursor 这类宿主 Agent 里触发它时它不会直接让模型凭记忆回答而是先调度一组 Python 脚本去检索 Reddit、X、YouTube、Hacker News、Polymarket、GitHub 等平台最近 30 天的公开讨论把热度、评论、视频 transcript、PR 活动、市场赔率等信号综合成一份带来源的研究简报再交给宿主模型做归纳和再加工。它适合谁三类人最直接受益。第一类是技术内容创作者写文章前需要验证选题是不是社区真正在讨论的而不是自己拍脑袋想的。第二类是开发者做工具选型时想看到真实用户的踩坑反馈而不是只看 GitHub star 数。第三类是产品经理或独立开发者做需求调研时想快速抓到用户的原话和情绪。一句话概括last30days-skill 让 AI Agent 从“我知道什么”切换到“最近真实的人在说什么”。它不是搜索引擎的替代品而是一个前置调研层把人工打开几十个标签页的成本压下来。我试过用它做 Claude Code Skills 生态的选题调研输入/last30days Claude Code skills它返回的简报里把 Reddit 的安装体验吐槽、HN 的架构讨论、GitHub 的 release 活动分成了几个 cluster比我自己翻半天效率高不少。当然结果质量取决于数据源配置和宿主模型是否认真读了输出这个后面会细说。2. TaoToken 前置把 Agent 的模型通道统一到一套 Keylast30days-skill 本身不绑定特定模型供应商它依赖宿主 Agent 的模型能力来做意图解析和最终综合。问题在于Claude Code、Codex、Cursor 各自有自己的模型接入方式如果你同时用多个宿主Key 管理会变得很碎。这时候把 endpoint 统一到 TaoToken 的 API 通道能省掉不少切换成本。TaoToken 提供的是统一的 Key/API 通道官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基址是 https://taotoken.net/api 。它的作用是让你用一套 Key 去调用不同模型宿主 Agent 只需要改 Base URL 和 Model ID不用每个平台单独配一套凭证。具体到 last30days-skill 的场景你需要关注三个东西Base URL、API Key、Model ID。这三件套在 Claude Code 的 settings、Codex 的 auth.json、Cline 的 MCP 配置里都会出现。下面我按宿主分别给配置片段。先说 Claude Code。它的配置文件通常在~/.claude/settings.json或项目级.claude/settings.json。如果你要把模型通道指向 TaoToken配置大概长这样{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken密钥, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }注意这里的ANTHROPIC_BASE_URL不要带末尾斜杠ANTHROPIC_API_KEY填你在 TaoToken 控制台生成的 Key。Model ID 按你实际要用的模型填不同模型 ID 不一样去模型对话页面确认。再说 Codex。Codex 的凭证文件一般在~/.codex/auth.json格式是{ OPENAI_API_KEY: sk-你的TaoToken密钥, OPENAI_BASE_URL: https://taotoken.net/api }如果你用的是 Cline 并且走 MCP 方式接入配置会写在 Cline 的 MCP settings 里通常是这样的结构{ mcpServers: { taotoken: { command: npx, args: [-y, taotoken/mcp-server], env: { TAOTOKEN_API_KEY: sk-你的TaoToken密钥, TAOTOKEN_BASE_URL: https://taotoken.net/api } } } }这三件套的核心逻辑是一样的Base URL 指向 https://taotoken.net/api Key 用 TaoToken 生成的Model ID 按需选。配好之后last30days-skill 在调用宿主模型做综合时走的就是这条统一通道。这里有个坑要注意last30days-skill 自己的数据源配置Reddit、X、YouTube 的 API Key 或 cookie和模型通道是两回事。前者放在~/.config/last30days/.env或项目级.claude/last30days.env后者放在宿主 Agent 的配置里。别把两者混在一起否则排查问题时会很乱。3. 可复制配置last30days-skill 安装与数据源接入这一节给你可以直接复制的配置片段。先装 Skill再配数据源最后确认模型通道。Claude Code 用户走 plugin marketplace 方式/plugin marketplace add mvanhorn/last30days-skill /plugin install last30daysCodex、Cursor、Copilot、Gemini CLI 等支持 Agent Skills 的宿主用 npx 方式全局安装npx skills add mvanhorn/last30days-skill -g装完之后Skill 的核心文件在skills/last30days/SKILL.mdPython 引擎在scripts/last30days.py。SKILL.md 负责流程规范Python 脚本负责多平台检索和数据处理。接下来配数据源。全局配置放~/.config/last30days/.env项目级配置放.claude/last30days.env项目级优先级更高。一个典型的数据源配置片段# Reddit 数据源 REDDIT_CLIENT_IDyour_reddit_client_id REDDIT_CLIENT_SECRETyour_reddit_client_secret # X/Twitter 数据源 X_BEARER_TOKENyour_x_bearer_token # YouTube 数据源 YOUTUBE_API_KEYyour_youtube_api_key # GitHub 数据源 GITHUB_TOKENghp_your_github_token # 输出目录 LAST30DAYS_MEMORY_DIR/Users/yourname/Documents/Last30Days如果你不想配这么多数据源也可以先用--diagnose参数跑一次诊断看看哪些源可用、哪些源缺凭证python scripts/last30days.py --diagnose输出会告诉你每个平台的连通状态。缺凭证的源会标出来你可以按需补。模型通道这边如果你用 Claude Code确认~/.claude/settings.json里的ANTHROPIC_BASE_URL指向 https://taotoken.net/api Key 填 TaoToken 的。Codex 用户确认~/.codex/auth.json里的OPENAI_BASE_URL同样指向这个地址。Cline 用户确认 MCP 配置里的TAOTOKEN_BASE_URL一致。这里给一个完整的 Claude Code settings 片段把模型通道和 Skill 环境变量放在一起{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken密钥, ANTHROPIC_MODEL: claude-sonnet-4-20250514, LAST30DAYS_MEMORY_DIR: /Users/yourname/Documents/Last30Days } }注意LAST30DAYS_MEMORY_DIR是给 Skill 用的ANTHROPIC_*是给宿主模型用的两者互不干扰。配好之后Skill 检索到的原始数据会存到指定目录模型综合时走 TaoToken 通道。如果你用 Codexauth.json 里只放模型通道相关字段数据源配置还是走.env文件。别把 Reddit 的 client secret 写进 auth.json那样既不安全也不符合 Codex 的配置约定。4. 验证请求跑一次真实检索并比对结果配置写完得验证它真的能跑通。分两步先验证模型通道连通再验证 Skill 检索链路。模型通道验证用 curl 直接打 TaoToken 的 APIcurl -X POST https://taotoken.net/api/v1/messages \ -H Content-Type: application/json \ -H x-api-key: sk-你的TaoToken密钥 \ -H anthropic-version: 2023-06-01 \ -d { model: claude-sonnet-4-20250514, max_tokens: 100, messages: [{role: user, content: 回复 OK 两个字母}] }如果返回里有content字段且内容是 OK说明模型通道通了。如果返回 401说明 Key 有问题如果返回local proxy failed说明 Base URL 写错了或者网络不通。模型通道通了之后在 Claude Code 里跑一次 Skill/last30days Claude Code skills正常流程是Agent 先解析主题判断查询类型生成子查询决定搜索哪些平台然后调用scripts/last30days.py执行检索。检索完成后Agent 读取完整输出补充 WebSearch最后综合成简报。你可以观察几个点。第一输出目录~/Documents/Last30Days/下有没有生成新的 markdown 或 JSON 文件。第二简报里有没有带来源链接比如 Reddit 帖子 URL、HN 讨论 URL、GitHub PR 链接。第三不同来源的信号有没有被合并成 cluster而不是散成一堆重复链接。如果简报里只出现单一来源比如全是 Reddit 没有 HN 和 GitHub可能是主题太窄导致智能扩展没触发也可能是某些数据源凭证没配好。这时候用--diagnose再跑一次看哪些源是空的。结果比对方面你可以手动打开 Reddit 搜同一个关键词按“最近 30 天”排序看看 Skill 返回的帖子是不是真的在时间窗内。如果它返回了半年前的内容说明--days参数没生效或者数据源的时间过滤有问题。默认是 30 天你也可以显式传python scripts/last30days.py --days 30 --emit markdown --save-dir ./research--emit支持 raw markdown、HTML、JSON、SQLite store 等格式。如果你想把每次研究变成可追溯资产用 SQLite store 比较合适后续可以查询历史简报。验证通过的标准很简单模型通道返回正常Skill 输出有来源、有时间窗、有多源 cluster。三者都满足说明配置链路是通的。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth这一节对照真实报错来排查。我把常见症状、根因、定位方法、修复动作列成表你对着查。症状根因定位修复401 UnauthorizedAPI Key 无效或过期检查ANTHROPIC_API_KEY或OPENAI_API_KEY是否填对去 TaoToken 控制台重新生成 Key确认没有多余空格local proxy failedBase URL 写错或网络不通检查ANTHROPIC_BASE_URL是否为 https://taotoken.net/api去掉末尾斜杠确认没有拼写错误reading choices 报错模型返回格式不符合预期检查 Model ID 是否拼对去模型对话页面确认可用 Model IDOAuth 相关报错宿主 Agent 走了 OAuth 流程而非 API Key检查 Codex auth.json 是否同时有 OAuth 和 API Key 字段删掉 OAuth 字段只保留 API Key 和 Base URL/last30days返回 Unknown commandClaude Code v2.1.105 升级后 plugin.json 未声明 skills 目录运行/doctor看报错升级到 v3.0.2确认.claude-plugin/plugin.json包含skills: [skills]出现重复的 last30days-3last30days-skill用户作用域与项目作用域安装冲突/plugin list看是否有两条同名记录删除 user-scope 重复安装只保留 project-scope检索结果只显示单一来源主题太窄智能扩展未触发检查 SKILL.md 流程是否先做主题扩展在查询里补充人名、账号、repo、channel 等扩展词平台数据为空或频繁失败X/YouTube/TikTok 访问规则变化cookie 或 API Key 失效检查~/.config/last30days/.env更新 token或先用--diagnose确认哪些源可用总结与来源内容对不上宿主模型未认真读取 JSON 输出检查输出文件是否存在但模型跳读强化 SKILL.md 中“必须读取完整输出”的自检规则热门结论与事实不符社区热度不等于事实质量检查是否单源高赞贴至少要求 2 个独立来源交叉验证安装后脚本拒绝运行第三方 Skill 安全审计未通过检查脚本是否请求网络访问或读取浏览器会话安装前审计scripts/last30days.py的网络和文件访问行为输出保存到默认目录找不到未配置--save-dir或环境变量检查~/Documents/Last30Days路径是否存在设置LAST30DAYS_MEMORY_DIR或传--save-dir重点说几个高频的。401 和 local proxy failed 基本都出在模型通道配置上前者是 Key 问题后者是 URL 问题。这两个错误在 Claude Code、Codex、Cline 里都会出现排查方法一样先确认 Base URL 是 https://taotoken.net/api 再确认 Key 没有多余空格。OAuth 报错比较隐蔽。Codex 的 auth.json 如果同时存在 OAuth 字段和 API Key 字段它可能优先走 OAuth 流程导致你的 TaoToken Key 没被用上。解决办法是删掉 OAuth 相关字段只保留OPENAI_API_KEY和OPENAI_BASE_URL。reading choices 报错通常是 Model ID 拼错了。不同模型的 ID 不一样去模型对话页面复制准确的 ID别手打。Unknown command 和重复安装这两个是 Claude Code 特有的。v2.1.105 之后 plugin.json 的 skills 声明方式变了旧版本装的 Skill 可能不认。升级到 v3.0.2 能解决大部分问题。重复安装则是作用域冲突/plugin list一看就知道删掉 user-scope 那条就行。6. 语义一致 CTA按你的场景选入口排障和接入相关的问题去 API Keys 页面生成 Key再去接入文档看完整的 Base URL 和 Model ID 对照表。这两个入口能解决 401、local proxy failed、OAuth 这类配置问题。验证模型是否可用去模型对话页面直接试。输入一句话看返回是否正常比在宿主 Agent 里反复调试快得多。长期编码和 Agent 工作流看 Coding Plan。last30days-skill 这类多步骤研究任务会频繁调用模型用 Coding Plan 比按次计费更划算也适合把 Skill 检索纳入日常开发流程。具体入口API Keyshttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi_keys接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdoc模型对话https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentchatCoding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding_plan最后说一个实用技巧。last30days-skill 的输出默认存到~/Documents/Last30Days/你可以把这个目录纳入 git 管理每次研究生成一份 markdown时间久了就是一个可追溯的社区情报库。配合 SQLite store 输出还能写脚本做关键词趋势分析。这比每次重新搜一遍高效得多也是这个 Skill 从“单次调用”走向“可复用工作流”的关键一步。