mcpField
R
res-deep

res-deep

github.com/molechowski生产力35 次安装
代码仓库

关于 res-deep

res-deep 是一款多轮研究技能,可检索网络、社交、开发者及金融媒体来源。它面向需要整理研究结果的用户,按比较、全景、深度分析或决策框架组织发现,并支持 xAI 搜索及仅网络搜索模式。

主要功能

  1. 01跨多类来源进行多轮搜索
  2. 02分析信息缺口并定向追查
  3. 03深度模式下核验主张
  4. 04合并并去重多源结果
  5. 05按结构化框架组织研究输出

适用场景

  1. 01比较产品或方案
  2. 02梳理市场或生态
  3. 03深入调查某个主题
  4. 04评估决策选项

安装

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

$npx skills add https://github.com/molechowski/claude-skills --skill res-deep

安装后在 Claude Code 中输入/res-deep确认已加载。

包含的文件

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

references/
iterative-research.md
output-frameworks.md
search-patterns.md
scripts/
xai_search.py

详细介绍

深度研究

围绕 Web、Reddit、X/Twitter、GitHub、Hacker News、Substack、财经媒体、LinkedIn 等开展多轮迭代研究,并使用结构化输出框架(比较、全景分析、深入研究、决策)。

架构

来源工具成本
WebClaude Code WebSearch + xAI web_search免费 + $0.005/次调用
RedditClaude Code WebSearch (site:reddit.com) + xAI web_search免费 + $0.005/次调用
X/Twitter仅使用 xAI x_search$0.005/次调用
GitHubClaude Code WebSearch (site:github.com) + xAI web_search免费 + $0.005/次调用
Hacker NewsClaude Code WebSearch (site:news.ycombinator.com) + xAI web_search免费 + $0.005/次调用
SubstackClaude Code WebSearch (site:substack.com) + xAI web_search免费 + $0.005/次调用
财经媒体Claude Code WebSearch (site-specific) + xAI web_search免费 + $0.005/次调用
Wall Street OasisClaude Code WebSearch (site:wallstreetoasis.com)免费
LinkedInClaude Code WebSearch (site:linkedin.com) + xAI web_search免费 + $0.005/次调用
CrunchbaseClaude Code WebSearch (site:crunchbase.com)免费
YouTubeClaude Code WebSearch (site:youtube.com)免费
科技博客Claude Code WebSearch (site-specific)免费

来自多个来源的结果会合并并去重,以实现全面覆盖。

先决条件

必需工具
工具用途安装
uvPython 包管理器(处理依赖项)curl -LsSf https://astral.sh/uv/install.sh | sh
可选工具
工具用途安装
scrapling无头浏览器备用方案,用于访问屏蔽 WebFetch 的网站(403、验证码、空响应)uv tool install 'scrapling[all]'
API 密钥
服务用途必需获取密钥
xAIX/Twitter 搜索 + 补充 Web/GitHub/HN 搜索建议使用https://console.x.ai

注意: 不配置 xAI 密钥也可以使用此技能(通过 Claude Code 进入仅 Web 模式),但 X/Twitter 数据和更广泛的覆盖范围需要 xAI。

钥匙串设置(一次性,用于 xAI)
# 1. Create a dedicated keychain
security create-keychain -p 'YourPassword' ~/Library/Keychains/claude-keys.keychain-db

# 2. Add keychain to search list
security list-keychains -s ~/Library/Keychains/claude-keys.keychain-db ~/Library/Keychains/login.keychain-db /Library/Keychains/System.keychain

# 3. Store your xAI API key
echo -n "Enter xAI API key: " && read -s key && security add-generic-password -s "xai-api" -a "$USER" -w "$key" ~/Library/Keychains/claude-keys.keychain-db && unset key && echo

使用前运行:security unlock-keychain ~/Library/Keychains/claude-keys.keychain-db

工作流概览

步骤操作目的
0检测 xAI 密钥确定完整模式还是仅 Web 模式
1解析查询提取 TOPIC、FRAMEWORK、DEPTH
2第 1 轮:广泛搜索发现实体、主题和初步结果
3差距分析找出缺失的观点和未经核实的主张
4第 2 轮:针对性跟进弥补差距、核实主张、深入覆盖
5第 3 轮:核实(深度模式)核实一手来源
6综合整理将研究结果整理到框架模板中
7专家模式根据缓存结果回答后续问题

步骤 0:检测 xAI 密钥

必须在每次研究开始前运行。

security find-generic-password -s "xai-api" -w ~/Library/Keychains/claude-keys.keychain-db 2>/dev/null && echo "XAI_AVAILABLE=true" || echo "XAI_AVAILABLE=false"
  • XAI_AVAILABLE=true:使用完整模式——并行运行 Claude WebSearch 和 xAI 脚本。
  • XAI_AVAILABLE=false:使用仅 Web 模式——仅运行 Claude WebSearch。附加一条建议配置 xAI 的说明。

此步骤不可省略。开始研究前务必先检查。

步骤 1:解析查询

从用户输入中提取:

1a. TOPIC

正在研究的主题。移除框架标识和深度修饰词。

1b. 框架

根据查询模式判断输出框架:

框架判断模式示例
COMPARISON“X vs Y”、“compare X and Y”、“X or Y”、“which is better”“面向企业应用的 React vs Vue”
LANDSCAPE“landscape”、“ecosystem”、“market”、“what's out there”、“overview of”“AI Agent 框架概览”
DEEP_DIVE“deep dive”、“how does X work”、“explain”、“tell me about”、“what is”“深入了解 WebAssembly”
DECISION“should I/we”、“evaluate”、“which should we use”、“recommend”“我们应该使用 Kafka 还是 RabbitMQ?”

显式覆盖:用户可在查询中的任意位置使用 [comparison]、[landscape]、[deep-dive] 或 [decision] 强制指定框架。

默认值:如果未检测到框架,则使用 DEEP_DIVE。

1c. 深度
深度触发词轮数目标来源数
quick“quick”、“brief”、“overview”110-15
default(无)225-40
deep“deep”、“comprehensive”、“thorough”360-90

第 2 步:第 1 轮——广泛搜索

生成查询

生成 6-9 个查询,涵盖主题的不同角度:

  1. 直接查询:"{TOPIC}" —— 按原样表述的主题
  2. 时间查询:"{TOPIC} 2026" 或 "{TOPIC} latest"
  3. Reddit 查询:site:reddit.com "{TOPIC}"
  4. GitHub 查询:site:github.com "{TOPIC}"
  5. HN 查询:site:news.ycombinator.com "{TOPIC}"
  6. 特定框架的查询:
    • COMPARISON:"{Alt A} vs {Alt B}"
    • LANDSCAPE:"{TOPIC} ecosystem" OR "{TOPIC} landscape"
    • DEEP_DIVE:"how {TOPIC} works" OR "{TOPIC} explained"
    • DECISION:"{TOPIC}" experience OR recommendation
  7. Substack 查询:site:substack.com "{TOPIC}"
  8. 财经媒体查询:site:tradingview.com OR site:benzinga.com OR site:seekingalpha.com "{TOPIC}"(适用于金融/经济类主题)
  9. LinkedIn 查询:site:linkedin.com "{TOPIC}"(主题涉及个人或公司时)
并行执行

同时运行搜索:

Claude Code(免费):

  • WebSearch:直接查询
  • WebSearch:时间查询
  • WebSearch:针对 Reddit 的查询
  • WebSearch:针对 GitHub 的查询
  • WebSearch:针对 HN 的查询
  • WebSearch:针对 Substack 的查询
  • WebSearch:针对财经媒体的查询(适用于金融/经济类主题)
  • WebSearch:针对 LinkedIn 的查询(主题涉及个人/公司时)
  • WebSearch:针对 YouTube 的查询
  • WebSearch:针对 WSO 的查询(适用于金融主题)
  • WebSearch:针对 Crunchbase 的查询(适用于公司/初创公司主题)

xAI 脚本(如果可用,以后台 Bash 任务运行):

uv run scripts/xai_search.py web "{TOPIC}" --json &
uv run scripts/xai_search.py reddit "{TOPIC}" --json &
uv run scripts/xai_search.py x "{TOPIC}" --json &
uv run scripts/xai_search.py github "{TOPIC}" --json &
uv run scripts/xai_search.py hn "{TOPIC}" --json &
uv run scripts/xai_search.py substack "{TOPIC}" --json &
uv run scripts/xai_search.py finance "{TOPIC}" --json &
uv run scripts/xai_search.py linkedin "{TOPIC}" --json &
合并与去重
MERGED_WEB = dedupe(claude_web + xai_web)
MERGED_REDDIT = dedupe(claude_reddit + xai_reddit)
MERGED_GITHUB = dedupe(claude_github + xai_github)
MERGED_HN = dedupe(claude_hn + xai_hn)
MERGED_SUBSTACK = dedupe(claude_substack + xai_substack)
MERGED_FINANCE = dedupe(claude_finance + xai_finance)
MERGED_LINKEDIN = dedupe(claude_linkedin + xai_linkedin)
X_RESULTS = xai_x_results  (no Claude equivalent)
WSO_RESULTS = claude_wso  (WebSearch only)
CRUNCHBASE_RESULTS = claude_crunchbase  (WebSearch only)
YOUTUBE_RESULTS = claude_youtube  (WebSearch only)

按 URL 去重,保留元数据更丰富的条目。

第 1 轮内部笔记

记录(仅供内部使用,不输出):

KEY_ENTITIES: [specific tools, companies, people discovered]
THEMES: [recurring themes across sources]
GAPS: [what's missing — feed into Step 3]
CONTRADICTIONS: [conflicting claims]
LEADS: [URLs worth deep-reading via WebFetch (or scrapling fallback) in Round 2]

第 3 步:差距分析

第 1 轮结束后,进行差距分析。完整检查清单见 references/iterative-research.md。

差距类别
差距检查项操作
缺少视角是否涵盖开发者、运营人员和业务方的观点?针对缺失的视角搜索
未经验证的说法是否有仅由 1 个来源支持的说法?寻求佐证
覆盖较浅是否提到了某个实体,却未作解释?对该实体进行深入搜索
数据过时关键事实是否超过 12 个月?搜索近期更新
缺少来源类型是否缺少 Reddit / GitHub / HN / X / 博客?针对该平台搜索
缺少金融/业务背景是否缺少 Substack / 财经媒体 / LinkedIn / Crunchbase?针对该平台搜索
规划第 2 轮

选出最重要的 4-6 个差距,并为每个差距生成有针对性的查询。多轮优化模式见 references/search-patterns.md。

如果深度为 quick(仅进行一轮),则跳至第 6 步。

第 4 步:第 2 轮——针对性后续搜索

查询规则
  1. 绝不重复第 1 轮的查询
  2. 针对特定实体的查询——以第 1 轮发现的目标名称/工具为目标
  3. 针对特定来源类型的查询——以第 1 轮中代表性不足的平台为目标
  4. 针对框架调整查询——参见 references/iterative-research.md 中的目标选择表
执行

采用与第 1 轮相同的并行模式,但使用有针对性的查询。

此外,对第 1 轮发现的高价值 URL 使用 WebFetch:

  • 官方文档页面
  • 基准测试结果页面
  • 工程博客文章
  • 附有方法说明的比较文章

第 2 轮最多调用 4-6 次 WebFetch。

Scrapling 回退方案:如果 WebFetch 返回 403、空内容、验证码页面或被拦截的响应,则使用 cli-web-scrape 中的自动升级协议重试:

  1. scrapling extract get "URL" /tmp/scrapling-fallback.md → 读取 → 验证内容
  2. 如果内容较少(仅含 JS 外壳、没有数据或大多是导航链接)→ scrapling extract fetch "URL" /tmp/scrapling-fallback.md --network-idle --disable-resources → 读取 → 验证
  3. 如果仍被拦截 → scrapling extract stealthy-fetch "URL" /tmp/scrapling-fallback.md --solve-cloudflare
  4. 所有层级均失败 → 跳过该 URL,并注明“scrapling blocked”
置信度更新

第 2 轮结束后,重新评估所有论断:

之前新证据之后
[LOW]找到第二个来源[MEDIUM]
[MEDIUM]找到第三个来源[HIGH]
任意出现矛盾注明冲突,并呈现双方观点

如果深度为 default,则跳至第 6 步。

第 5 步:第 3 轮——验证(仅限深度模式)

第 3 轮仅用于验证,不进行新的发现。

预算

最多进行 6-10 次 WebFetch 查找,目标如下:

目标用途最多调用次数
关键论断的第一手来源验证准确性3-4
独立基准测试网站验证性能论断1-2
矛盾双方解决冲突1-2
版本/日期的官方网站确认时效性1-2

**Scrapling 回退方案:**与第 2 轮采用相同的自动升级协议——尝试 HTTP 层级并验证内容;若内容较少或遭到拦截,则升级到 Dynamic/Stealthy。

规则
  1. 验证,而非发现——不探索新主题
  2. 针对影响最大的论断——即可能改变建议的论断
  3. 检查第一手来源——查阅原始来源,而非摘要
  4. 更新置信度——根据调查结果提高或降低置信度
  5. 优先相信第一手来源——若第一手来源与第二手来源矛盾,则注明

第 6 步:综合分析

框架选择

加载 references/output-frameworks.md,并选择与检测到的 FRAMEWORK 匹配的模板。

填写模板
  1. 标题区块——框架类型、主题、深度、来源数量、日期
  2. 核心内容——根据研究发现填写框架各部分
  3. 置信度指标——为每项论断标注 [HIGH]、[MEDIUM] 或 [LOW]
  4. 社区观点——综合 Reddit/X/HN/GitHub 上的情绪倾向
  5. 统计信息页脚——来源数量和互动指标
  6. 来源部分——按平台整理,并附上 URL 和指标
按互动量加权综合

根据来源的信号强度进行加权。完整的加权表请参见 references/iterative-research.md。

信号阈值权重
Reddit 赞成票100+高
X 互动量50+ 个赞高
GitHub 星标1000+高
HN 积分100+高
Substack 赞50+高
多平台一致3+ 个来源高
双引擎匹配Claude + xAI高
Seeking Alpha 评论20+中
WSO 赞成票10+中
YouTube 观看次数10K+中
近期(< 7 天)任意中
仅有单一来源任意低
统计信息页脚格式
Research Statistics
├─ Reddit: {n} threads │ {upvotes} upvotes
├─ X: {n} posts │ {likes} likes │ {reposts} reposts
├─ GitHub: {n} repos │ {stars} total stars
├─ HN: {n} threads │ {points} total points
├─ Substack: {n} articles │ {likes} likes
├─ Financial: {n} articles │ {sources}
├─ LinkedIn: {n} profiles/articles
├─ YouTube: {n} videos
├─ WSO: {n} threads
├─ Crunchbase: {n} profiles
├─ Web: {n} pages │ {domains}
├─ Merged: {n} from Claude + {n} from xAI
└─ Top voices: r/{sub1} │ @{handle1} │ {blog1}

仅限网页模式的页脚:

Research Statistics
├─ Reddit: {n} threads (via Claude WebSearch)
├─ GitHub: {n} repos (via Claude WebSearch)
├─ HN: {n} threads (via Claude WebSearch)
├─ Substack: {n} articles (via Claude WebSearch)
├─ Financial: {n} articles (via Claude WebSearch)
├─ LinkedIn: {n} profiles/articles (via Claude WebSearch)
├─ YouTube: {n} videos (via Claude WebSearch)
├─ Web: {n} pages
└─ Top sources: {site1}, {site2}

Add X/Twitter + broader coverage: Set up xAI API key (see Prerequisites)

步骤 7:专家模式

交付研究结果后,进入专家模式:

  • 根据缓存的结果回答后续问题
  • 除非明确要求,否则不进行新的搜索
  • 交叉比对不同来源

触发新搜索(退出专家模式):

  • “再次搜索……”
  • “查找更多关于……的信息”
  • “更新研究……”
  • “深入调查……”

运行模式

模式来源适用情况
完整Claude WebSearch + xAI(web + X + Reddit + GitHub + HN + Substack + Finance + LinkedIn)步骤 0 返回 XAI_AVAILABLE=true
仅 Web仅 Claude WebSearch步骤 0 返回 XAI_AVAILABLE=false

模式由步骤 0 决定——绝不能跳过或在未检查的情况下假设使用仅 Web 模式。

深度控制

深度轮次来源xAI 调用次数(完整模式)用例
quick110-158快速概览、时效性内容
default225-4013均衡研究
deep360-9018 + 6-10 WebFetch全面分析、重要决策

成本说明

操作成本
Claude Code WebSearch免费(订阅内)
xAI 搜索调用(任意类型)$0.005/次
WebFetch(内置)免费
scrapling 后备方案(可选)免费

每次研究会话的预估成本:

深度完整模式仅 Web
quick~$0.04(8 次 xAI 调用)免费
default~$0.065(13 次 xAI 调用)免费
deep~$0.09(18 次 xAI 调用)免费

节省成本的策略:

  • Claude WebSearch 可满足大多数需求(免费)
  • xAI 可搜索 X/Twitter(独特价值),并扩大各平台的覆盖范围
  • 使用 WebFetch 深入阅读特定 URL(免费);遇到网站拦截时使用 scrapling 后备方案

关键约束

应做事项:

  • 每次研究会话前都运行步骤 0(检测 xAI 密钥)
  • 如果存在 xAI 密钥:并行运行 Claude WebSearch 和 xAI 脚本(完整模式)
  • 如果缺少 xAI 密钥:仅使用 Claude WebSearch(仅 Web 模式)
  • 在各轮之间进行差距分析——绝不能跳过
  • 合并结果并按 URL 去重
  • 从结果中排除已归档的 GitHub 仓库——这些仓库无人维护且为只读
  • 为每项主张标注置信度:[HIGH]、[MEDIUM] 或 [LOW]
  • 让综合结论以实际研究为依据,而非既有知识
  • 引用带 URL 的具体来源
  • 调用 xAI 脚本时使用 --json 标志,以便进行程序化解析
  • 从 references/output-frameworks.md 加载框架模板

不应做事项:

  • 不要跳过 Claude Code WebSearch(它是免费的)
  • 可以并行时,不要按顺序执行搜索
  • 不要展示来自不同搜索引擎的重复结果
  • 引用任一来源时,不要摘录超过 125 个字符
  • 不要在多轮搜索中重复查询——每轮都应针对上一轮发现的差距
  • 对于 quick 或 default 深度,不要添加第 3 轮——仅 deep 深度需要
  • 不要在第 3 轮发现新主题——仅进行验证

故障排除

未找到 xAI 密钥:

security find-generic-password -s "xai-api" ~/Library/Keychains/claude-keys.keychain-db

如果未找到,请运行上文中的钥匙串设置步骤。

钥匙串已锁定:

security unlock-keychain ~/Library/Keychains/claude-keys.keychain-db

没有 X/Twitter 结果: 需要有效的 xAI API 密钥。请在 https://console.x.ai 查看。

WebFetch 被拦截(403/验证码/内容为空): 安装 scrapling,并遵循 cli-web-scrape 的自动升级协议(HTTP → 验证 → Dynamic → Stealthy):

uv tool install 'scrapling[all]'
scrapling install  # one-time: install browser engines for Dynamic/Stealthy tiers

脚本错误: 确保已安装 uv:which uv。如果缺少,请运行:curl -LsSf https://astral.sh/uv/install.sh | sh

参考资料

  • references/output-frameworks.md — 框架模板(比较、概览、深入分析、决策)
  • references/search-patterns.md — 搜索运算符和多轮查询模式
  • references/iterative-research.md — 差距分析、轮次流程、交叉比对方法

评论

支持 Markdown