如何免费让 AI 替你猎 Bug:拆解 Agentic-Bug-Hunter 大脑层的 LLM 自动选择机制
【免费下载链接】Agentic-Bug-HunterAI-powered bug bounty hunting toolkit that works with or without subscription.项目地址: https://gitcode.com/gh_mirrors/cl/Agentic-Bug-Hunter
Agentic-Bug-Hunter是一个 AI 驱动的漏洞赏金(Bug Bounty)狩猎工具包,它的核心 brain.py 是一个多供应商 LLM 推理层:能在 Ollama(本地免费)、Groq(免费额度)、DeepSeek(极低价)以及 Claude、OpenAI 等十几个 AI 服务之间自动检测、自动选择最合适的后端,让你无需订阅任何付费 AI 服务,也能跑完整的"侦察 → 狩猎 → 验证 → 报告"流程。
本文面向新手,拆解这个"大脑"是如何工作的:它怎么选供应商、怎么选模型,以及你该怎么配置它。
为什么需要"多供应商 LLM 层"
一个典型的 AI 猎 Bug 工具如果绑死在某个大模型 API 上,会有两个痛点:
- 贵:Claude、OpenAI 都是按量付费的重度消耗;
- 门槛高:本地没有显卡?没 API Key?工具直接跑不起来。
Agentic-Bug-Hunter 的解法是在 brain.py 中封装了一个统一的LLMClient类:
- 一个接口:所有供应商共用同一个
chat()方法,上层逻辑完全不用关心背后是谁在推理; - 14 个供应商:Ollama、Groq、DeepSeek、Claude、OpenAI、Grok、Gemini、Kimi、Mistral、Together、Cerebras、Perplexity、OpenRouter、OrcaRouter;
- 免费优先:本地零成本 > 云端免费额度 > 极低价 > 付费,按这个顺序排列。
对新手来说这意味着:装个 Ollama 就能完全离线、零成本使用;有免费 Key 的选 Groq 更快;追求更强推理能力再上 DeepSeek 或付费模型,全部自动切换。
供应商是如何被自动选择的
自动选择逻辑在 brain.py 的_auto_detect()方法中,规则只有三条:
- 显式指定优先:环境变量
BRAIN_PROVIDER(或通过bughunter setup保存的配置)指定了供应商,就直接用它,不再探测; - 持 Key 者排前面:如果检测到你设置了某些 API Key(比如
ANTHROPIC_API_KEY),对应供应商会被提前探测,避免你白等一次注定失败的本地 Ollama 连接; - 免费优先的顺序兜底:没有任何 Key 时,按内置优先级逐个探测——
Ollama → Groq → DeepSeek → Cerebras → Gemini → Kimi → Mistral → Together → … → Claude → OpenAI → Grok
每探测一个供应商,就检查"API Key 是否存在"或"本地 Ollama 服务是否在运行",第一个可用的胜出。全部失败时才回落到 Ollama 并给出明确提示(test_brain_auto_detect.py 里对这些探测顺序有完整的回归测试)。
每个供应商配了什么默认模型
选定供应商后,模型名也有默认值(定义在LLMClient.DEFAULT_MODELS中),新手不用做任何选择就能跑起来:
| 供应商 | 费用档位 | 默认模型 | 需要的 Key |
|---|---|---|---|
| Ollama | 免费 · 本地 | 动态选本地已装模型 | 无需 Key,本地运行即可 |
| Groq | 免费额度 | llama-3.3-70b-versatile | GROQ_API_KEY |
| DeepSeek | 极低价 | deepseek-v4-flash | DEEPSEEK_API_KEY |
| Claude | 付费 | claude-sonnet-4-6 | ANTHROPIC_API_KEY |
| OpenAI | 付费 | gpt-4o | OPENAI_API_KEY |
| Grok | 付费 | grok-4.5 | XAI_API_KEY |
一个贴心细节:如果厂商下线了旧模型(例如 DeepSeek 的 deepseek-chat),代码里内置了遗留别名映射(DEEPSEEK_LEGACY_ALIASES),你保存的旧配置不会突然失效,而是自动迁移到替代模型上。
本地 Ollama 的模型是怎么挑的
选了 Ollama 后,还有一层"模型择优"逻辑(_pick_model()):
- 查询本地已安装的全部模型;
- 按内置优先级列表
MODEL_PRIORITY从上往下找第一个已安装的(首选是 30B+ 级别的安全特化模型,兜底到 7B 小模型); - 显式指定的模型如果没安装,会明确报错而不是偷偷换别的模型,避免你以为在跑 A 实际跑了 B。
另外还有一个"分诊快模型"机制:TRIAGE_MODEL_PRIORITY优先选 8B 级别的小型安全微调模型(如 BaronLLM),专门用于快速 go/no-go 分诊——快任务用快模型,深度分析用大模型,进一步省钱省时间。
三步上手:从配置到跑起来
不需要读源码,三个命令搞定:
# 1. 交互式配置向导:选供应商、填 Key、测连通、挑模型,全部保存 bughunter setup # 2. 查看所有供应商与 Key 状态(谁激活了一目了然) bughunter providers # 3. 检查当前激活的供应商与模型 bughunter statussetup向导内部(engine.py 的cmd_setup)会真实发起一次对话请求做连通性测试,并把选择持久化到~/.bughunter/config.json,之后每次启动自动复用。也支持非交互模式一键指定:
bughunter setup --provider ollama --model qwen2.5:14b最省事的零成本路线:本地装好 Ollama 并ollama pull qwen2.5:14b后,直接bughunter setup选 Ollama 即可——全程离线、数据不出机器。
大脑到底在替谁干活
理解了供应商选择,就明白这个 LLM 层的价值:brain.py 里的Brain类把选好的模型接进整条狩猎流水线——
- 侦察解读
analyze_recon():读完子域名/URL 枚举结果,指出高价值攻击面; - 扫描研判
interpret_scan():区分"工具报的"和"真可复现的"; - 链式利用
build_chains():把低危点串成高危攻击链; - 分诊裁决
triage_finding():两分钟判断一个发现值不值得深挖; - 报告生成
write_report():直接产出可提交给 HackerOne / Bugcrowd 的报告草稿。
这些能力由 agents/ 下的 9 个专职 AI 代理(recon-agent、validator、report-writer 等)调用,方法论文档见 skills/bb-methodology/SKILL.md。
想深入源码?看这几个位置
| 想了解 | 去哪里看 |
|---|---|
| 供应商优先级与自动检测 | brain.py 中的LLMClient._auto_detect/PROVIDER_PRIORITY |
| 模型择优与分诊模型 | brain.py 中的MODEL_PRIORITY/TRIAGE_MODEL_PRIORITY |
| setup / providers / status 命令 | engine.py 中的cmd_setup/cmd_providers |
| 自动检测的回归测试 | tests/test_brain_auto_detect.py |
| 显式模型选择测试 | tests/test_model_selection.py |
| 完整使用教程 | docs/TUTORIAL.md |
小结
Agentic-Bug-Hunter 的 brain.py 用一个"免费优先、Key 探测、显式覆盖"的三层策略,把 14 个 LLM 供应商收敛成一个bughunter setup的选择界面:
- 有 Ollama → 本地免费离线,隐私满分;
- 有 Groq 免费 Key → 云端极速,零成本上云;
- 预算紧 → DeepSeek,几分钱跑完一轮狩猎。
对新手而言,这正是这类 AI 安全工具最实用的设计:你只管选一个顺手的 AI,剩下的自动探测、自动选模型、自动降级,全部交给大脑。
【免费下载链接】Agentic-Bug-HunterAI-powered bug bounty hunting toolkit that works with or without subscription.项目地址: https://gitcode.com/gh_mirrors/cl/Agentic-Bug-Hunter
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考