乐于分享
好东西不私藏

暗网情报调查太原始?这个 AI 工具把流程串成了流水线

暗网情报调查太原始?这个 AI 工具把流程串成了流水线

暗网情报调查太原始?这个 AI 工具把流程串成了流水线

深度拆解 GitHub 优质开源项目

处理一批暗网 OSINT 调查时,研究人员通常要面对这样的循环:在 Ahmia、Haystak 这类暗网搜索引擎里手动输入关键词、翻看几十条结果链接、点开一个一个看、复制粘贴可疑内容到笔记里、再回头整理线索。这个过程枯燥、易遗漏,而且信息量一大基本没法穷尽。GitHub 上有个叫 Robin 的项目,思路是把这条链路搬进 LLM,让 AI 帮忙优化查询、过滤结果、生成摘要。它目前有 5.9k Star,24 个 Releases,最新版本 v2.7。

它做了什么

Robin 是一个 AI 驱动的暗网 OSINT 调查工具,由 apurvsinghgautam 开发。核心思路是用 LLM 增强传统暗网情报收集的三个环节:搜索查询优化、搜索结果过滤、以及调查摘要生成。它用 Streamlit 搭建 Web 界面,推荐用 Docker 部署,整个工具是 Python 写的,语言占比 98.4%。

项目灵感来自 Thomas Roccia(@fr0gger_)的 "Perplexity of the Dark Web" 演示以及作者自己的 "OSINT Tools for the Dark Web" 仓库。Robin 的 MIT 许可证允许自由使用、修改和分发。

核心功能拆解

模块化架构。Robin 把搜索、抓取、LLM 工作流拆成清晰独立的模块。从源码看,`search.py` 负责搜索引擎交互,`scrape.py` 处理暗网页面抓取,`llm.py` 和 `llm_utils.py` 共同实现 LLM 查询优化与结果分析,`config.py` 管理全局配置,`ui.py` 是 Streamlit 界面的入口,`health.py` 提供健康检查能力,`entrypoint.sh` 是 Docker 启动脚本。

多模型支持。工具同时支持 OpenAI、Anthropic Claude、Google Gemini、Ollama 本地模型,以及任何 OpenAI 兼容 API,包括 LM Studio、llama.cpp、Groq 等。这种设计让研究人员可以根据调查的保密要求选择模型:敏感调查可以用本地 Ollama 模型避免数据外泄;一般性调查可以用商业 API 获得更强的推理能力。

可扩展性。项目把搜索引擎、模型、输出格式都设计成可插拔的。研究人员要接入新的暗网搜索引擎,或者改用其他 LLM 提供商,不需要改主流程。

历史调查管理。工具支持把调查输出保存到文件,可以加载过去的调查记录继续分析。Docker 部署时通过 `-v` 挂载本地目录实现持久化,避免容器重启后数据丢失。

技术架构解析

从代码组织看,Robin 的设计哲学是"小而清晰"。项目根目录只有 11 个核心 Python 文件加 Dockerfile 和配置文件,没有复杂的包结构,每个文件职责单一。

LLM 工作流层 是整个工具的技术核心。`llm.py` 和 `llm_utils.py` 共同处理三件事:第一,把用户的调查意图转成更精确的暗网搜索查询(query optimization);第二,对搜索引擎返回的多个结果做相关性过滤(result filtering);第三,把抓取到的暗网页面内容压缩成可读的调查摘要(summarization)。这三步串起来形成完整的智能化调查链。

搜索引擎抽象层 在 `search.py` 中实现。暗网搜索引擎 API 各有差异,通过统一抽象可以让 LLM 优化后的查询适配不同的搜索引擎底层调用。

抓取层 在 `scrape.py` 中,需要注意的是它走的是 Tor 网络。这层负责把搜索引擎返回的 .onion 链接实际抓下来变成可分析的内容。

Web 界面层 用 Streamlit 搭建。Streamlit 是 Python 数据应用的常用框架,适合快速搭建内部工具,缺点是定制化 UI 能力有限。

部署与使用流程

Docker 是官方推荐的部署方式。典型命令如下:

# 拉取镜像 docker pull apurvsg/robin:latest  # 运行(带持久化和 Ollama 连接) docker run --rm \    -v "$(pwd)/.env:/app/.env" \    -v "$(pwd)/investigations:/app/investigations" \    --add-host=host.docker.internal:host-gateway \    -p 8501:8501 \    apurvsg/robin:latest 

`-v` 挂载本地目录这一步不可省略,否则 Docker 容器重启后调查记录会清空。`--add-host=host.docker.internal:host-gateway` 是为了让容器内的 Robin 访问宿主机的 Ollama 服务(如果使用本地模型)。

Python 开发模式更轻量:

pip install -r requirements.txt streamlit run ui.py 

使用流程分四步:第一步配置 `.env` 文件,填入要用的 LLM 提供商和 API Key;第二步确保 Tor 服务在后台运行(Linux/WSL 用 `apt install tor`,Mac 用 `brew install tor`);第三步访问 `http://localhost:8501` 进入 Web 界面;第四步在界面输入调查意图,AI 自动完成查询优化、搜索、过滤、摘要全流程。

法律与合规边界

这是 Robin 项目最需要强调的部分。README 明确警告:该工具仅供教育和合法调查用途,访问或交互某些暗网内容在不同司法管辖区可能是非法的。作者不对工具的任何误用或收集的数据负责。

这意味着几件事:

第一,使用前必须确保符合当地法律法规和所在机构的合规政策。不同国家、地区对"访问暗网"的定义差异很大。第二,如果涉及敏感调查,强烈建议使用本地 Ollama 模型而非商业 API,因为查询和抓取内容会经过 LLM 提供商的服务器。第三,调查产出的内容涉及潜在敏感信息,存储和分享时需要按数据保护规范处理。

适用场景

Robin 适合的典型用户包括:安全研究机构对暗网上的威胁情报做持续监控;企业安全团队定期排查与公司相关的泄露数据;OSINT 教学和培训中的演示场景;新闻调查记者对暗网线索的初步筛选。

Robin 不适合的场景同样需要明确:它不是匿名工具,使用时需要单独配置 Tor 但不能保证研究人员自身的匿名性;它不是实时威胁情报平台,没有告警和自动化响应能力;它也不是数据持久化方案,Docker 部署需要手动挂载目录才能保存调查历史。

项目当前状态

项目目前在 GitHub 上有 5.9k Star、1.1k Fork,158 次提交,24 个 Releases,最新版本 v2.7 发布于 2026 年 6 月。开放 Issues 8 个,开放 PR 9 个,社区维护活跃度属于中等偏上水平。MIT 许可证允许商业使用,但法律合规问题需要使用者自行评估。

项目地址:https://github.com/apurvsinghgautam/robin

---

如果这篇文章对你有帮助,可以关注一下我的公众号「编码者视角」,我会不定期分享类似的开源工具发现。

关注编码者视角

持续拆解 GitHub 最热开源项目

开源项目深度解读