大模型 活跃维护

robin

apurvsinghgautam/robin

人工智能驱动的暗网开源情报工具

7493
Stars 标星
1405
Forks 分支
101
Watchers 关注
0
Open Issues
Python
主要语言
MIT
开源协议
30.4 MB
仓库大小
7 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:apurvsinghgautam/robin
git clone https://github.com/apurvsinghgautam/robin.git
git clone git@github.com:apurvsinghgautam/robin.git
README.md main

机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。


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 安装所需的。还有两件事由您负责:

  1. 使用 --add-host=host.docker.internal:host-gateway 运行容器(README 中的命令已经包含此步骤)。
  2. 让 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。
  • 抓取的文本会返回在不受信任的数据分隔符内,首先会去掉控制字符、零宽字符和双向文本字符,所以你的模型将其解读为证据,而不是指令。

致谢

本站来源与版权声明
  • 本文标题:robin - 人工智能驱动的暗网开源情报工具
  • 本文链接:https://www.cn121.com/llm/apurvsinghgautam-robin.html
  • 原项目:apurvsinghgautam/robin 版权归原作者 apurvsinghgautam 及贡献者所有
  • 收录信息:本站于 2026-10-10 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 apurvsinghgautam/robin。
  • 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。