Skill: midboss1028-beep/claw-deep-research (version 1.0.1)

--- name: claw-deep-research description: "Claw Deep Research — 自动迭代深度研究。Turn your AI agent into a real research assistant with multi-phase iterative search, contradiction mining, cross-verification, and structured reports. Zero extra API keys. 触发词：/deep、深度研究、深挖。" metadata: { openclaw: { emoji: "🔬", os: ["darwin", "linux", "win32"], tags: ["research", "deep-research", "analysis", "report", "search"], categories: ["research", "productivity"], }, } --- # Open Deep Research > 拒绝表面文章。用迭代搜索 + 递归深挖，像人类研究者一样层层深入，产出真正有深度的分析报告。 ## 这是什么 一个给 AI Agent 用的**深度研究工作流**。 灵感源自 [dzhng/deep-research](https://github.com/dzhng/deep-research)（17.8k ⭐）的广度×深度算法，并结合了 [MiroMind/MiroThinker](https://dr.miromind.ai)（GAIA 80.8%/BrowseComp 88.2 的 SOTA 深度研究模型）的架构思路——**多轮多阶段迭代 + 交叉验证 + 矛盾驱动深挖**。 与纯算法驱动的研究模型不同，本 Skill： - **不需要额外的 API Key** — 复用 OpenClaw 已有的 `web_search` + `web_fetch` - **不需要额外部署** — 一份 SKILL.md，放到 skills 目录就能用 - **模型无关** — 你用什么 LLM 就跑什么模型，当前对话的模型就是引擎 ## 前置条件 任何正常运行且配置了 `web_search` 提供商的 OpenClaw 实例： - `web_search` — 已配置（MiniMax / Tavily / Brave / Perplexity / Google 均可） - `web_fetch` — 可用（默认开启） - 以上，没有其他依赖。 **不挑搜索提供商，不挑 LLM，不挑操作系统。** --- ## 核心算法：多阶段迭代研究 **核心思想：不是"搜几次"的问题，而是"搜完之后怎么用"的问题。** MiroMind 的研究模型（MiroThinker-1.7，235B 参数）有三大核心特征： 1. **交互式扩展** — 把"工具交互深度"作为独立于模型规模和上下文长度的第三维度 2. **步进可验证推理** — 每一步生成的中间结果都经过验证，确认后再进入下一步 3. **长链工具调用** — 单次任务支持最多 **300-400 次**工具调用 我们虽然不能匹配模型级别的优化，但可以通过**结构化的工作流**来逼近同样的效果。 ### 五阶段流水线 ``` 阶段1: 全景扫描 ──→ 阶段2: 矛盾识别 ──→ 阶段3: 定向深挖 ──→ 阶段4: 交叉验证 ──→ 阶段5: 综合报告 (3-5条宽搜索) (找矛盾/盲区) (6-10条精准搜索) (验证关键数据) (完整报告) ``` 不同于传统的 breadth×depth 树形递归，这是**流水线式多轮迭代**——每轮结束后暂停、反思、规划下一轮，而非机械地递归。 --- ## 执行模式 提供两种执行模式，根据环境和用户偏好选择： ### 模式 A：内联执行（默认，首次使用建议） 在当前会话中逐步执行各阶段，用户实时看到进展。 - **优点**：透明，可随时打断追问 - **缺点**：会话时间长，深度研究时可能被其他消息中断 - **适用场景**：话题明确、范围中等、首次体验 skill ### 模式 B：子 Agent 执行（推荐，有并发模型能力时） 使用 `sessions_spawn` 创建专用的研究子 Agent，让研究在后台异步执行。 **什么时候用：** - 当前 OpenClaw 实例有可用的子 Agent 并发能力 - 研究深度为「深入」或「极致」（即预计研究时间较长） - 用户没有要求实时查看进展 **执行流程：** ``` 当前会话 子 Agent（后台研究） │ │ ├─ sessions_spawn ───────→ │ │ 任务：完整研究流程 │ │ 上下文：研究计划 │ │ 标签：deep-research-xxx │ │ ├─ 阶段1：全景扫描 │ ├─ 阶段2：矛盾识别 │ ├─ 阶段3：定向深挖 │ ├─ 阶段4：交叉验证 │ ├─ 阶段5：综合报告 │ │ │ 子 Agent 自动返回结果 │ │←─────────────────────────┤ │ 收到报告，呈现给用户 │ │ │ ``` **子 Agent 的任务指令模板：** ```markdown ## 深度研究任务 研究主题：[用户问题] 研究深度：[深入/极致] 请严格按照 `claw-deep-research` 工作流执行： 1. 阶段1：全景扫描 — 先做3-5条宽搜索 2. 阶段2：矛盾识别 — 找矛盾点和盲区 3. 阶段3：定向深挖 — 针对矛盾精准搜索 4. 阶段4：交叉验证 — 关键数据多源验证 5. 阶段5：输出结构化报告 注意每轮搜索后必须暂停反思，不要机械重复。 完成后将完整报告返回。 ``` **子 Agent 执行的关键规则：** 1. `sessions_spawn` 时 `context` 设为 `"isolated"`（独立上下文，不继承父会话的对话历史） 2. 给子 Agent 设置 `label` 为 `deep-research-<话题英文缩写>`，方便后续追踪 3. 子 Agent 的任务描述要把本 SKILL.md 的工作流完整传过去（或引用 skill 名称，由子 Agent 自己加载） 4. 子 Agent 完成任务后会自动返回结果到父会话 5. 用户可通过 `subagents list` 查看研究进度 **优点：** - 当前会话不阻塞，用户可以继续做其他事 - 长时间的研究不会被其他消息打断 - 可以同时运行多个研究任务 --- ## 执行模式选择逻辑 ``` if 用户明确要求「先看结果」或「后台研究」: 按用户要求选择 elif 子 Agent 并发可用 AND 研究深度 >= "深入": 自动选择 模式B（子 Agent 执行） 通知用户：「🔬 研究将在后台进行，完成后通知你」 else: 选择 模式A（内联执行） ``` --- ## 完整工作流 ### 阶段 0：解析输入 用户触发后，提取： - **主题** — 研究的核心对象 - **范围** — 关注的维度（技术/商业/政策/历史/竞品/学术……） - **格式偏好** — 报告/对比/时间线/列表/问答……（默认结构化报告） - **研究深度** — 标准/深入/极致（影响轮次数量，默认"深入"） | 深度级别 | 总搜索次数 | 说明 | |----------|-----------|------| | 标准 | ~5-8 次 | 1-2 轮，适合话题范围明确 | | 深入 | ~12-20 次 | 3 轮（全景→深挖→验证），默认 | | 极致 | ~25-40 次 | 4-5 轮，适合复杂跨界主题 | **输出：** 研究计划（大纲 + 深度级别） ### 阶段 1：全景扫描 目标：快速覆盖话题的各个维度，建立全局认知地图。 1. 根据主题生成 **3-5 条独立搜索方向**，覆盖不同维度 2. 每条调用 `web_search(query, count=5)` 3. 对有价值的结果条目用 `web_fetch(url)` 获取详细信息 4. 从所有结果中提炼： **认知卡片（Research Cards）** — 每条卡片包含： ``` - 方向：[命题/维度名称] - 发现：关键信息（含具体实体、数字、日期） - 来源：URL - 置信度：高/中/低（数据质量评估） - 矛盾点/异常：与该方向内其他发现不一致的地方 ``` 5. 同时记录**未覆盖维度**和**初步矛盾** 6. **外化研究状态** — 为防止长流程中上下文滚动丢失信息，将研究状态写为临时文件： - 路径：`~/.openclaw/workspace/.deep-research-cache/[topic-hash]-learnings.json` - 内容：全部认知卡片（JSON 数组） - 每完成一轮搜索后更新该文件 - 下一轮开始时优先从文件恢复已有认知，避免重复搜索 - 研究完成后清理缓存文件 ### 阶段 2：矛盾识别与分析 这是区别于普通"搜索+总结"的关键步骤。 在完成全景扫描后，**不要立刻继续搜索**。先对已有材料做三件事： **① 找矛盾（Contradiction Mining）** - 同一话题的不同来源给出了不同结论？ - 数据和宣传不一致？ - 时间线上的变化？ **② 找盲区（Gap Detection）** - 哪些维度完全没有覆盖到？ - 哪些数据只有单一来源？ - 哪些环节逻辑链不完整？ **③ 定优先级（Priority Ranking）** - 哪些矛盾/盲区对理解话题最重要？ - 哪些方向可能只需要一次搜索就能澄清？ - 哪些方向需要多轮深挖？ **输出：** 一张清晰的"剩余问题清单"，每条标注优先级 ### 阶段 3：定向深挖 基于阶段 2 的剩余问题清单，精准打击。 **特点与阶段 1 不同：** - 搜索方向更窄、更具体（不再是大维度，而是具体问题） - 搜索词更精准（包含矛盾的关键词、实体名、排除词） - 对低置信度的认知做针对性求证 - 每条搜索后有明晰的判断：是解决了问题？还是发现了新的矛盾？ **为什么比简单的"递归减半"更好？** 原版算法：breadth/2, depth-1，机械地降低宽度进入子层。 改进后：不按固定比例减半，而是根据实际发现的矛盾点数量和质量决定下一轮搜索数量和方向。 ### 阶段 4：交叉验证 在报告初稿之前，对关键数据进行来源交叉验证。 验证规则： - **关键数据/数字**：至少两个独立来源支持（不同媒体、不同立场） - **趋势判断**：需要时序数据支撑（不仅说"增长"，还要说"从X到Y"） - **争议性结论**：需要正反双方的观点 - **单一来源的认知**：标记为"待确认"，在报告中注明局限性 验证工具： - `web_search(query, count=3)` 带上原文关键词+补充关键词搜索 - 如果多个来源一致 → 提升置信度 - 如果来源矛盾 → 记录为争议点，报告中呈现双方观点 - 如果找不到第二个来源 → 报告中标注"仅单一来源" ### 阶段 5：生成报告 基于全部认知卡片，生成结构化报告： ```markdown # [主题] — 深度研究报告 ## 摘要 300-500 字综述，涵盖所有关键发现和结论 ## 研究范围与方法 - 搜索轮次、搜索量、覆盖维度说明 - 置信度说明（哪些数据经过交叉验证，哪些仅单一来源） ## 核心发现 ### 子主题一（置信度：高） 发现 + 数据 + 分析 + 来源标注 ### 子主题二（置信度：中） 发现 + 数据 + 分析 + 来源标注 ... ## 矛盾与争议 呈现研究过程中发现的数据矛盾或观点分歧 ## 综合洞察 跨维度的趋势判断、矛盾点分析、独特见解 ## 局限性 - 研究范围的限制 - 未充分覆盖的维度 - 不确定性较高的结论 ## 来源 - [标题](url) - [标题](url) ... ``` **报告产出格式：** Markdown --- ## 研究记忆 如果用户对**同一个话题**再次发起深度研究，自动检查上次的研究成果： 1. 使用 `memory_search` 搜索当前话题相关的历史记录 2. 如果找到之前同一话题的研究报告，在开始时提示用户： 「📂 发现该话题的历史研究报告（[日期]），需要在此基础上继续深挖，还是重新开始？」 3. 如果用户选择继续深挖，把上次的研究认知卡片作为阶段1的输入起点 4. 标记新增和更新的发现，最终报告中标注「本次新增 vs 上次已有」 --- ## 自适应参数 不再使用固定的 breadth 和 depth 数值，而是根据话题特征动态调整： | 话题特征 | 阶段1扫描 | 阶段3深挖 | 总搜索量 | |----------|-----------|-----------|---------| | 窄话题：如「某公司季度营收」 | 3条（覆盖业绩/对比/原因） | 3-5条（验证关键数字） | ~8次 | | 中等话题：如「新能源汽车竞争」 | 4条（技术/市场/政策/玩家） | 6-8条（深挖矛盾/争议） | ~15次 | | 宽话题：如「Token出海生态」 | 5条（多维度覆盖） | 8-12条（多个矛盾点深挖） | ~20次 | | 学术/争议性话题 | 4条（不同立场） | 10-15条（多角度验证） | ~20次 | --- ## 交互反馈 根据执行模式，呈现方式不同： ### 模式A（内联执行）— 实时进展 1. **起步** → 「🔬 开始深度研究：[主题]，覆盖 5 个维度，预计搜索 15-20 次」 2. **阶段1完成** → 「📊 全景扫描完成，获取 N 条认知，发现 M 处矛盾/盲区」 3. **阶段2完成** → 「🎯 矛盾分析完成，锁定 P 个关键问题需深挖」 4. **阶段3完成** → 「⛏ 定向深挖完成，补充获取 Q 条新认知」 5. **阶段4完成** → 「✅ 交叉验证完成，R 个关键数据已验证，S 个标记为单一来源」 6. **完成** → 交付报告（见下方「交付规则」） ### 模式B（子Agent执行）— 一次性交付 1. **启动** → 「🔬 已启动后台深度研究：[主题]，预计研究时间 3-5 分钟，完成后自动通知你」 2. **完成** → 子 Agent 返回完整报告 3. **交付** → 按下方「交付规则」处理 4. 用户可通过 `subagents list` 查看活跃的研究任务 --- ## 交付规则 **总原则：聊天窗口只给摘要，完整报告存到文件。** 对话场景（尤其是微信、Telegram 等 IM 渠道）的长文本阅读体验差，因此无论哪种执行模式，报告交付方式统一如下： ### 第一步：发送简短摘要 在聊天窗口中仅发送： ``` 🔬 [主题] — 深度研究报告 📊 覆盖 N 个维度，搜索 M 次，获取 X 条认知 核心发现： • 要点一 • 要点二 • 要点三 关键结论：一句话总结 📁 完整报告已保存至：[文件路径] ``` 摘要要点： - 研究覆盖范围（几个维度、几次搜索） - 3-5 个最重要的发现 - 一个关键结论 - 文件保存位置 - 不超过 15 行（适配手机屏幕） ### 第二步：保存完整报告 完整报告写入本地文件。 **保存规则（含降级）：** 1. 优先保存到用户桌面。Agent 自动根据运行平台选择正确路径： - macOS / Linux → `~/Desktop/` - Windows → `%USERPROFILE%\Desktop` 2. 如果桌面路径不可写（权限不足/不存在）→ 降级到 `~/.openclaw/workspace/` 3. 如果工作区也不可写 → 降级到系统临时目录 `/tmp/` 4. 如果全都不可写 → 报告摘要中直接附上完整报告内容 - 如果用户此前指定过路径，用上次的路径 - 文件名不超过 50 字符，去除特殊符号 ### 第三步：主动告知位置 摘要末尾标注文件路径，用户知道去哪打开。 ### 特殊场景 - 渠道字符限制极短（如短信）→ 仅发「🔬 [主题] 研究完成，报告已存桌面」 - 无法写文件（如云端 sandbox）→ 摘要中附带完整报告 --- ## 触发规则 ### 显式触发 - ` /deep <topic>` - ` /deep research <topic>` ### 隐式触发 - 「帮我深度研究一下 X」 - 「深度调研 X」 - 「深挖一下 X」 - 「出一份关于 X 的研究报告」 - 「做个关于 X 的深度分析」 ### 不触发场景 - 随手查事实：「帮我查一下 X」 - 简单问答：「X 是什么」 - 单次搜索请求：「搜一下 X」 --- ## 无障碍适配 - 中文用户 → 中文搜索词、中文报告 - 英文用户 → 英文搜索词、英文报告 - 混合输入 → 按用户输入语言自动适配 --- ## 常见反模式 | ❌ 反模式 | ✅ 正确做法 | |----------|------------| | 一次性搜很多方向但不反思 | 每轮结束必须做矛盾/盲区分析 | | 忽略矛盾数据 | 矛盾是最有价值的研究方向 | | 报告只列点没有分析 | 每个子主题必须有「洞察」段落 | | 不验证关键数据 | 核心数字至少两个来源交叉验证 | | 隐瞒不确定性 | 在报告中明确标注置信度 | | 机械递归 breadth/2 | 根据实际发现的矛盾数量决定下一轮搜索量 | | 遇到失败直接停掉整个流程 | 跳过失败分支，其他分支继续执行 | | 觉得搜够了就开始写报告 | 完成所有阶段后再动笔 | --- ## 研究质量检查清单 最终交付前自检： - [ ] 每个维度是否有至少两个独立来源？ - [ ] 关键数字是否标注了来源？ - [ ] 矛盾/争议是否在报告中呈现？ - [ ] 不确定性是否已标注置信度？ - [ ] 研究范围和方法是否有说明？ - [ ] 是否有"综合洞察"而非简单罗列？ - [ ] 无明显的事实性错误 - [ ] 来源列表完整可追溯


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)