# ThreatHunter 快速開始指南 > **版本**:v1.0 > **日期**:2026-04-06 > **適用對象**:所有團隊成員 --- ## 1. 環境設定 ### 1.1 安裝依賴 ```bash pip install -r requirements.txt ``` ### 1.2 設定 API Key ```bash # 複製範例檔案 cp .env.example .env # 編輯 .env,填入你的 API Key ``` **必要 API Key:** | 變數 | 用途 | 取得方式 | |---|---|---| | `OPENROUTER_API_KEY` | LLM 推理(推薦) | https://openrouter.ai/ | | `NVD_API_KEY` | NVD 漏洞查詢 | https://nvd.nist.gov/developers/request-an-api-key | | `OTX_API_KEY` | OTX 威脅情報 | https://otx.alienvault.com/ | **選用 API Key:** | 變數 | 用途 | |---|---| | `OPENAI_API_KEY` | LLM 備案(gpt-4o-mini) | | `GITHUB_TOKEN` | Exploit 搜尋 | | `VLLM_BASE_URL` | 比賽用 vLLM 端點 | ### 1.3 驗證設定 ```bash python -c "from config import validate_api_keys; validate_api_keys()" ``` --- ## 2. 第一次執行 ### 2.1 基本掃描 ```bash python main.py "Django 4.2, Redis 7.0" ``` ### 2.2 指定技術堆疊 ```bash python main.py "nginx 1.24, postgresql 16, flask 3.0" ``` ### 2.3 預設掃描 ```bash python main.py # 等同於:python main.py "Django 4.2, Redis 7.0, PostgreSQL 16" ``` --- ## 3. 功能開關 ### 3.1 開啟 Critic 辯論 ```bash # Windows PowerShell $env:ENABLE_CRITIC="true"; python main.py "Django 4.2" # Linux/Mac ENABLE_CRITIC=true python main.py "Django 4.2" ``` ### 3.2 切換 LLM 供應商 ```bash # 使用 OpenAI(備案) $env:LLM_PROVIDER="openai"; python main.py "Django 4.2" # 使用 vLLM(比賽用) $env:LLM_PROVIDER="vllm"; $env:VLLM_BASE_URL="http://your-vllm-endpoint:8000"; python main.py "Django 4.2" ``` --- ## 4. 運行測試 ```bash # 全套測試 python -m pytest tests/ -v # 單一模組測試 python -m pytest tests/test_nvd_tool.py -v python -m pytest tests/test_pipeline_integration.py -v # Harness 架構驗證 python harness/constraints/arch_linter.py python harness/entropy/entropy_scanner.py ``` --- ## 5. 輸出格式 執行成功後,終端機會輸出完整 JSON: ```json { "executive_summary": "1 actively exploited chain detected...", "actions": { "urgent": [{"cve_id": "...", "action": "...", "command": "..."}], "important": [...], "resolved": [] }, "risk_score": 85, "risk_trend": "+10", "pipeline_meta": { "pipeline_version": "3.0", "stages_completed": 4, "stages_detail": { "scout": {"status": "SUCCESS", "vuln_count": 9}, "analyst": {"status": "SUCCESS", "risk_score": 85}, "critic": {"status": "SUCCESS", "verdict": "MAINTAIN"}, "advisor": {"status": "SUCCESS", "urgent_count": 2} }, "critic_verdict": "MAINTAIN", "critic_score": 80.5, "duration_seconds": 45.2, "degradation": {"level": 1, "label": "⚡ 全速運行"} } } ``` --- ## 6. 常見問題 ### Q1: 出現 "未配置任何 LLM 供應商" **解法**:在 `.env` 中設定 `OPENROUTER_API_KEY`。 ### Q2: Scout 回傳 0 個漏洞 **可能原因**: - NVD API Key 未設定或無效 - 套件名稱不正確(使用 `package_map.json` 對照) - 網路連線問題 **解法**:檢查 `data/nvd_cache/` 是否有離線快取。 ### Q3: LLM 回應太慢 **解法**: - 檢查 `LLM_RPM` 設定(預設 20) - 確認使用的是 `:free` 模型還是付費模型 - 考慮切換到 `gpt-4o-mini` 備案 ### Q4: 記憶檔案遺失 **解法**:建立空的 JSON 檔案: ```bash echo {} > memory/scout_memory.json echo {} > memory/analyst_memory.json echo {} > memory/advisor_memory.json ``` --- ## 7. 架構一覽 ``` main.py (Pipeline 控制器) ├── Stage 1: Scout → agents/scout.py → NVD + OTX 查詢 ├── Stage 2: Analyst → agents/analyst.py → KEV + Exploit + Chain 分析 ├── Stage 3: Critic → agents/critic.py → 對抗式辯論(可插拔) └── Stage 4: Advisor → agents/advisor.py → 行動報告生成 ``` 每個 Stage 內部使用 CrewAI Crew 執行,Stage 之間由 Python 程式碼串接,確保: - 錯誤隔離(一個 Stage 失敗不影響其他) - Graceful Degradation(降級路徑) - 原子步驟日誌(StepLogger) --- *更多細節請參考 `docs/pipeline_guide.md`*