机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。
Robin:AI驱动的暗网OSINT工具
Robin是一款用于进行暗网OSINT调查的AI驱动工具。它利用大型语言模型(LLM)优化查询、过滤暗网搜索引擎的搜索结果,并提供调查摘要。
安装 • Robin 作为 MCP • 故障排除 • 贡献 • 致谢架构
功能
- 🤖 多模型支持 – 支持 OpenAI、Claude、Gemini、Mistral、OpenRouter、Ollama 或任何兼容 OpenAI 的 API(LM Studio、llama.cpp、Groq 等)。
- 🌐 网页界面 – 基于 Streamlit 的界面,用于交互式调查。
- 🔌 MCP 支持 – 可通过任何支持 MCP 的代理运行 Robin,使用该代理自己的模型。详见 Robin 作为 MCP。
- 💬 对话式跟进 – 针对调查提出有根据的后续问题,无需重新运行搜索,从该调查自身的数据中获取答案。
- 🔀 一键切换 – 根据调查结果推荐的后续查询;点击即可启动新的调查。
- 🐳 Docker 就绪 – 推荐使用 Docker 部署,实现干净、隔离的使用环境。
⚠️ 免责声明
此工具仅用于教育和合法的调查目的。根据您的司法管辖区,访问或与某些暗网内容互动可能是非法的。作者不对任何滥用此工具或使用其收集的数据负责。
请负责任地使用并自行承担风险。在进行开源情报调查之前,确保您遵守所有相关法律和机构政策。
此外,Robin 利用第三方 API(包括大语言模型)。在发送可能包含敏感信息的查询时要小心,并查看你使用的任何 API 或模型提供商的服务条款。
安装
该工具需要 Tor 才能进行搜索。你可以在 Linux/Windows(WSL) 上使用 apt install tor 安装 Tor,或在 Mac 上使用 brew install tor 安装。一旦安装完成,确认 Tor 是否在后台运行。
[!TIP]
通过 .env 文件(复制 .env.example)或环境变量提供你的 API 密钥。一个密钥就够了:Robin 会列出它找到的提供商的模型。支持的密钥有 OPENAI_API_KEY、ANTHROPIC_API_KEY、GOOGLE_API_KEY、MISTRAL_API_KEY 和 OPENROUTER_API_KEY。
对于 Ollama,您的 .env 中什么也不会放入。Robin 默认为 http://host.docker.internal:11434,这正是推荐的 Docker 安装所需的。还有两件事由您负责:
- 使用
--add-host=host.docker.internal:host-gateway运行容器(README 中的命令已经包含此步骤)。 - 让 Ollama 监听所有接口,因为它默认绑定到
127.0.0.1,而容器无法访问该接口。如果你自己启动它,OLLAMA_HOST=0.0.0.0 ollama serve &。如果它在 systemd 下运行,sudo systemctl edit ollama.service,添加[Service]和Environment="OLLAMA_HOST=0.0.0.0",然后sudo systemctl daemon-reload && sudo systemctl restart ollama。
如果它仍然没有出现,请参阅 TROUBLESHOOTING.md。
对于任何其他兼容 OpenAI 的提供商(LM Studio、llama.cpp、Groq 等),请在侧边栏使用 🔌 自定义 API 提供商 扩展器——无需进行 .env 更改。输入基础 URL、可选的 API 密钥,如果提供商未公开 /v1/models 用于自动发现,也可选择输入模型名称。
Docker [推荐]
-
拉取最新的 Robin Docker 镜像
docker pull apurvsg/robin:latest -
在你运行的文件夹中创建一个
.env文件,并在其中放入你的 API 密钥(参见.env.example)。请在第一次运行前创建它:如果它不存在,Docker 会挂载一个空文件夹,而 Robin 会在没有密钥的情况下启动。touch .env # then add your API key to it -
运行 Docker 镜像为:
docker run --rm \ -v "$(pwd)/.env:/app/.env" \ --add-host=host.docker.internal:host-gateway \ -p 8501:8501 \ apurvsg/robin:latest
要在 Docker 重启后保持已保存的调查,请在 /app/investigations 挂载一个命名卷或本地目录。
命名卷在每个操作系统上工作方式相同,并且不需要主机路径。它也是代理在 Robin as MCP 挂载中命令的卷,因此 UI 显示的报告与您的代理保存的报告相同:
docker run --rm \
-v "$(pwd)/.env:/app/.env" \
-v robin-investigations:/app/investigations \
--add-host=host.docker.internal:host-gateway \
-p 8501:8501 \ apurvsg/robin:latest
或者挂载本地目录,如果你希望 JSON 文件保存在自己的磁盘上:
Docker 运行 --rm \
-v "$(pwd)/.env:/app/.env" \
-v "$(pwd)/investigations:/app/investigations" \
--add-host=host.docker.internal:host-gateway \
-p 8501:8501 \ apurvsg/robin:latest
调查已保存到工作目录中的 investigations/ 文件夹,并可以从侧边栏的 过去调查 面板中加载。
请先自己创建文件夹(mkdir -p investigations),以避免 Docker 以 root 身份创建它。容器以 UID 1000 运行,而在 Linux 上由其他人拥有的文件夹对其来说是只读的——Robin 会打印一个警告,并且保存会失败,尽管调查仍会运行。如果你遇到这个问题,或者你的 UID 不是 1000,请使用上面提到的命名卷,或者参见 在 Linux 上保存调查因权限被拒绝而失败。
- 打开浏览器并导航到
http://localhost:8501。
自行构建
如果要运行自己的构建而不是发布的镜像,请克隆仓库并进行构建:
docker build -t robin .
然后使用相同的运行命令,将 apurvsg/robin:latest 替换为 robin:
docker run --rm \
-v "$(pwd)/.env:/app/.env" \
--add-host=host.docker.internal:host-gateway \
-p 8501:8501 \
robin
docker run --rm \
-v "$(pwd)/.env:/app/.env" \
-v "$(pwd)/investigations:/app/investigations" \
--add-host=host.docker.internal:host-gateway \
-p 8501:8501 \
robin
- 打开你的浏览器并访问
http://localhost:8501
罗宾作为 MCP
任何能够使用MCP的LLM服务都可以运行它,使用其自身的模型。下面的部分是面向常见主机的工作示例;未列出的主机也以相同方式工作,使用其为“添加MCP服务器”所使用的任何措辞。
Claude 代码
claude mcp add robin -- docker run -i --rm -v robin-investigations:/app/investigations apurvsg/robin mcp
或者将其签入 .mcp.json 项目。Tor 调查只需几分钟,所以提高每个服务器的超时时间:
{
"mcpServers": {
"robin": {
"command": "docker",
"args": ["run", "-i", "--rm", "-v", "robin-investigations:/app/investigations", "apurvsg/robin", "mcp"],
"timeout": 600000
}
}
}
法典
codex mcp add robin -- docker run -i --rm -v robin-investigations:/app/investigations apurvsg/robin mcp
ChatGPT 桌面应用程序共享此主机:在 设置 → MCP 服务器 下添加 Robin,会写入相同的配置,并且其工具会出现在 Codex 会话中,而不是普通的 ChatGPT 聊天中。
Tor 搜索通常需要几分钟,这可能会超过 Codex 默认的 MCP 工具超时,因此请在 ~/.codex/config.toml 中提高限制:
[mcp_servers.robin]
command = "docker"
args = ["run", "-i", "--rm", "-v", "robin-investigations:/app/investigations", "apurvsg/robin", "mcp"]
tool_timeout_sec = 600
startup_timeout_sec = 60
# Only for non-interactive runs (`codex exec`): Codex declines MCP tool calls
# that would need approval, so pre-approve Robin's read-only tools.
default_tools_approval_mode = "approve"
先拉取镜像(docker pull apurvsg/robin:latest),这样第一次启动就不会同时下载。
Claude 桌面版
将此添加到 claude_desktop_config.json 并重启应用:
{
"mcpServers": {
"robin": {
"command": "docker",
"args": ["run", "-i", "--rm", "-v", "robin-investigations:/app/investigations", "apurvsg/robin", "mcp"]
}
}
}
赫尔墨斯
In ~/.hermes/config.yaml:
mcp_servers:
robin:
command: docker
args: [run, -i, --rm, -v, "robin-investigations:/app/investigations", apurvsg/robin, mcp]
timeout: 600
开爪
openclaw mcp add robin --command docker --arg run --arg -i --arg --rm --arg -v --arg robin-investigations:/app/investigations --arg apurvsg/robin --arg mcp
或者在配置中,在 mcp.servers 下:
{
"mcp": {
"servers": {
"robin": {
"transport": "stdio",
"command": "docker",
"args": ["run", "-i", "--rm", "-v", "robin-investigations:/app/investigations", "apurvsg/robin", "mcp"],
"requestTimeoutMs": 600000
}
}
}
}
ChatGPT
桌面应用的 设置 → MCP 服务器 配置了应用、Codex CLI 和 IDE 扩展共享的 Codex 主机,所以在这里添加 Robin 后,它会出现在 Codex 会话中:参见 Codex。普通的 ChatGPT 聊天无法运行它,因为聊天通过在 OpenAI 基础设施上运行的连接器访问 MCP 服务器,而不是在你的机器上。
安全性
- 没有任何内容会发送、执行或运行 shell。唯一会写入的是保存的报告,保存到
investigations/下由 Robin 选择的文件名;代理从不自行命名路径。 - 搜索、网页抓取和搜索引擎健康检查通过 Tor 进行,因此你使用的应用不会自己获取暗网页面。模型提供商调用和模型列表刷新是直接进行的,不通过 Tor。
- 抓取的文本会返回在不受信任的数据分隔符内,首先会去掉控制字符、零宽字符和双向文本字符,所以你的模型将其解读为证据,而不是指令。
致谢
- 灵感来源于 Thomas Roccia 以及他关于 暗网困惑度 的演示。
- 工具灵感来自我在 暗网的 OSINT 工具 仓库。
- LLM 提示灵感来自 OSINT-Assistant 仓库。
- 标志设计由我的朋友 Tanishq Rupaal 完成
- 本文标题:robin - 人工智能驱动的暗网开源情报工具
- 本文链接:https://cn121.com/llm/apurvsinghgautam-robin.html
- 原项目:apurvsinghgautam/robin 版权归原作者 apurvsinghgautam 及贡献者所有
- 收录信息:本站于 2026-10-10 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 apurvsinghgautam/robin。
- 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。