gensecaihq/Wazuh-Openclaw-Autopilot
GitHub: gensecaihq/Wazuh-Openclaw-Autopilot
为 Wazuh SIEM 增添 AI 驱动的自主 SOC 智能层,实现告警自动分类、事件关联分析和响应计划生成,并通过两级人工审批环确保操作安全可控。
Stars: 19 | Forks: 4
Wazuh OpenClaw Autopilot
使用 OpenClaw Agents 和 MCP 的 Wazuh 自主 SOC 层
自动分类告警 • 关联事件 • 生成响应计划 • 人工审批环
## 构建技术
## 概述
**Wazuh OpenClaw Autopilot** 为您的 Wazuh SIEM 增加了一个自主智能层。通过 [Model Context Protocol (MCP)](https://modelcontextprotocol.io) 连接的 [OpenClaw](https://openclaw.ai) AI 代理,它可以自动分类告警、关联相关事件并生成经过风险评估的响应计划——所有操作在执行前都必须经过人工批准。
### 核心能力
| 能力 | 描述 |
|------------|-------------|
| **自主分类** | AI 代理分析传入的告警,提取实体(IP、用户、主机)并分配严重性 |
| **告警分组** | 基于实体的关联将相关告警(共享 IP、用户)分组为统一案例 |
| **IP 丰富** | 自动查询 AbuseIPDB 获取公共 IP 信息,支持 TTL 缓存 |
| **事件关联** | 自动将相关告警链接为包含攻击时间线的统一案例 |
| **响应规划** | 生成经过风险评估的响应计划,推荐 Wazuh Active Response 操作 |
| **策略执行** | 内联执行操作白名单、审批人授权、置信度阈值、证据要求、时间窗口、速率限制和幂等性 |
| **人工参与环** | 两级审批工作流确保人工授权每一个响应动作 |
| **误报反馈** | 分析师提交判定(真/假阳性),优化未来的告警分组 |
| **Webhook 编排** | 通过即发即弃的 webhook 分发到 OpenClaw Gateway 实现状态驱动的代理交接 |
| **MCP JSON-RPC 协议** | 符合标准的 MCP 通信,支持 JWT 认证交换和自动重试 |
| **证据包** | 用于合规性和取证的结构化 JSON 证据包 |
| **Prometheus 指标** | 包含 SOC KPI(MTTD、MTTR、自动分类率)的完整可观测性 |
| **Slack 集成** | 通过 Socket Mode 实现实时告警和交互式审批按钮 |
## 架构
```
WAZUH OPENCLAW AUTOPILOT
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Wazuh │ │ MCP │ │ OpenClaw │ │
│ │ Manager │◀─────│ Server │ │ Gateway │ │
│ │ :55000 │ │ :3000 │ │ :18789 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ ▲ ▲ │ │
│ MCP calls Webhooks │ │
│ │ │ ▼ │
│ ┌─────┴────────┐ ┌─────┴──────────┐ │
│ │ Runtime │ │ 7 SOC Agents │ │
│ │ Service │◀─────│ (OpenClaw) │ │
│ │ :9090 │ │ │ │
│ └──────────────┘ └─────────────────┘ │
│ │ web_fetch ▲ │
│ │ │ │
│ ┌───────────────────────────┤ │ │
│ │ │ │ webhook dispatch │
│ ▼ ▼ ▼ │
│ Cases Response Prometheus Slack │
│ Evidence Plans Metrics Notifications │
│ Packs (policy- (/metrics) (Socket Mode) │
│ enforced) │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
Data Flow:
Agents ──web_fetch──▶ Runtime ──callMcpTool──▶ MCP Server ──▶ Wazuh API
Runtime ──webhook──▶ OpenClaw Gateway ──▶ Next Agent
```
### Agent Pipeline
代理通过 **webhook 分发** 进行编排——运行时会在案例状态改变时自动触发下一个代理:
```
Alert Ingestion ──▶ Triage ──▶ Correlation ──▶ Investigation
│ (auto) (auto) (auto)
│ status: status: status:
│ triaged correlated investigated
│ │
│ ┌─────────────────────────────────┘
│ ▼
│ Response Planner ──▶ Policy Guard ──▶ Human Approval ──▶ Responder
│ (auto) (auto) │
│ status: status: [Approve] [Execute]
│ planned approved evidence check
│ rate limits
│ Policy Enforcement (inline at each step):
│ action allowlist, time windows, approver auth,
│ evidence check, rate limits, idempotency
▼
Webhook ──▶ OpenClaw Gateway ──▶ Agent
```
## 代理
| 代理 | 功能 | 自主性 |
|-------|----------|----------|
| **Triage (分类)** | 分析告警,提取 IOC,创建案例 | 自动(webhook 触发) |
| **Correlation (关联)** | 链接相关告警,构建攻击时间线 | 自动(webhook 触发) |
| **Investigation (调查)** | 深度分析,进程树,威胁情报丰富 | 自动(webhook 触发) |
| **Response Planner (响应规划)** | 生成经过风险评估的响应计划 | 自动(webhook 触发) |
| **Policy Guard (策略守卫)** | 补充 LLM 分析(内联执行为主) | 顾问(webhook 触发) |
| **Responder (响应者)** | 执行 Wazuh Active Response 命令 | 人工控制 |
| **Reporting (报告)** | 生成 SOC 指标、KPI、轮班报告 | 自动(心跳) |
## 支持的 LLM 提供商
OpenClaw 与模型无关,支持 10 多个 LLM 提供商。在 `openclaw/openclaw.json` 中配置您首选的提供商:
| 提供商 | 模型 | 最适合 | API Key 环境变量 |
|----------|--------|----------|-------------|
| [OpenRouter](https://openrouter.ai/) | 300+ 模型 (Claude, GPT, Gemini 等) | **最安全的选择** — 计费代理,无封禁风险 | `OPENROUTER_API_KEY` |
| [Anthropic](https://console.anthropic.com/) | `claude-sonnet-4-5`, `claude-haiku-4-5` | 最佳 SOC 推理(仅 API Key) | `ANTHROPIC_API_KEY` |
| [OpenAI](https://platform.openai.com/) | `gpt-4o`, `gpt-4.5-preview`, `o3-mini` | 通用,embeddings | `OPENAI_API_KEY` |
| [Groq](https://console.groq.com/) | `llama-3.3-70b-versatile`, `mixtral-8x7b-32768` | **超快** 推理,无封禁问题 | `GROQ_API_KEY` |
| [Google](https://aistudio.google.com/) | `gemini-2.0-flash`, `gemini-2.0-pro` | 多模态(仅 API Key) | `GOOGLE_API_KEY` |
| [Mistral](https://console.mistral.ai/) | `mistral-large-latest`, `codestral-latest` | 欧洲提供商 | `MISTRAL_API_KEY` |
| [xAI](https://console.x.ai/) | `grok-2`, `grok-3` | 实时知识 | `XAI_API_KEY` |
| [Ollama](https://ollama.ai/) | `llama3.3`, `mistral`, `codellama` | **本地/免费** 推理 | N/A |
| [Together](https://together.xyz/) | 各种开源模型 | 开源托管 | `TOGETHER_API_KEY` |
| [Cerebras](https://cerebras.ai/) | Cerebras 模型 | 超快推理 | `CEREBRAS_API_KEY` |
### 模型配置
模型格式为 `"provider/model-name"`。示例 `openclaw.json` 片段:
```
{
"model": {
"primary": "anthropic/claude-sonnet-4-5",
"fallbacks": [
"openai/gpt-4o",
"groq/llama-3.3-70b-versatile"
]
}
}
```
### 提供商政策说明
截至 2026 年初,**Anthropic 和 Google 已禁止**在第三方工具中使用订阅计划的 OAuth 令牌:
- **Anthropic**:Claude Free、Pro 和 Max 订阅 OAuth 令牌在包括 OpenClaw 在内的所有第三方工具中均被屏蔽。从 [console.anthropic.com](https://console.anthropic.com/) 获取的按次付费 API Key 可正常使用。
- **Google**:通过 OAuth 经由 OpenClaw 路由的 Google AI Ultra 订阅用户已被暂停。从 [aistudio.google.com](https://aistudio.google.com/) 获取的按次付费 API Key 可正常使用。
- **OpenRouter**:充当计费代理——通过单个 API Key 路由到 Claude、GPT、Gemini 和 300 多个其他模型。**无封禁风险**,因为您是通过 OpenRouter 的计费按 Token 付费,而不是滥用固定费率订阅。
- **Groq, Mistral, xAI, Together, Cerebras**:未报告在代理工具中使用 API Key 有任何限制。
**建议**:使用 **OpenRouter** 作为您的主要提供商,以获得最大的安全性和灵活性。您可以通过单个 `OPENROUTER_API_KEY` 访问 Claude、GPT-4o、Gemini 和数百个其他模型,且无账户暂停风险。
### 成本优化
| 任务类型 | 推荐模型 | 原因 |
|-----------|-------------------|--------|
| 复杂调查 | `anthropic/claude-sonnet-4-5` | 最佳推理能力 |
| 高容量分类 | `groq/llama-3.3-70b-versatile` | 快速且具有成本效益 |
| 心跳/检查 | `anthropic/claude-haiku-4-5` | 低成本 |
| 离线部署 | `ollama/llama3.3` | 无外部 API 调用 |
| 最安全的云选项 | `openrouter/anthropic/claude-sonnet-4-5` | 通过 OpenRouter 无封禁风险 |
## 选择您的 LLM 部署方式
Wazuh Autopilot 根据您的环境和需求支持 **两种部署路径**。选择适合您用例的路径:
### 路径 A:云 LLM API(推荐)
使用托管 LLM 提供商以获得最高质量的推理,且设置最少。**我们推荐 OpenRouter** 作为最安全的单密钥选项——它路由到 Claude、GPT-4o、Gemini 和 300 多个模型,无提供商级账户封禁风险。来自 Anthropic、OpenAI、Groq 等的直接 API Key 也可用,但需要按次付费计费(而非订阅 OAuth)。
| | 详情 |
|---|---|
| **设置** | 在 `.env` 中设置您的 API Key,并使用 `"provider/model-name"` 格式配置 `openclaw.json` |
| **优点** | 最佳模型质量,最快推理(Groq),无硬件要求,多提供商回退 |
| **缺点** | 需要互联网访问,API 成本,数据离开您的网络 |
| **指南** | 下面的 [快速入门](#quick-start) → 配置 API Key → 启动服务 |
**选项 1:OpenRouter(推荐 — 最安全)**
```
# 在 /etc/wazuh-autopilot/.env 中:
# 访问 Claude、GPT-4o、Gemini 和 300+ 模型的单一密钥
OPENROUTER_API_KEY=sk-or-...
```
然后更新 `openclaw.json` 以使用 `openrouter/` 前缀:
```
{ "primary": "openrouter/anthropic/claude-sonnet-4-5", "fallbacks": ["openrouter/openai/gpt-4o"] }
```
**选项 2:直接提供商 API Key**
```
# 在 /etc/wazuh-autopilot/.env 中:
# Primary provider(必填 — 按次付费 API 密钥,非订阅 OAuth)
ANTHROPIC_API_KEY=sk-ant-...
# Fallback providers(可选 — 当 primary 不可用时使用)
OPENAI_API_KEY=sk-...
GROQ_API_KEY=gsk-...
```
### 路径 B:使用 Ollama 的本地 LLM(离线)
完全在本地 Ollama 模型上运行,**零外部网络调用**。适用于离线、涉密或断网环境。所有数据保留在您的服务器上。
| | 详情 |
|---|---|
| **设置** | 安装 Ollama,拉取模型,应用预加载超时修复,使用离线配置 |
| **优点** | 无需互联网,无 API 成本,完全数据主权,适用于涉密环境 |
| **缺点** | 需要大量 RAM(16–48+ GB),推理较慢,需要超时变通方案(见下文) |
| **指南** | [离线部署指南](docs/AIR_GAPPED_DEPLOYMENT.md) — 仔细遵循所有步骤 |
**已知限制(截至 OpenClaw v2026.3.1):**
- **需要超时变通方案**:OpenClaw 的内部 HTTP 库有一个硬编码的 5 分钟超时,会在长时间生成期间断开 Ollama 连接。需要一个 Node.js 预加载脚本来覆盖此设置。有关修复方法,请参阅 [离线部署指南](docs/AIR_GAPPED_DEPLOYMENT.md#fetch-failed-with-0-tokens-5-minute-timeout)。
- **流式传输被静默禁用**:OpenClaw 为工具调用模型禁用了流式传输,因此 Ollama 必须在发送任何响应之前完成全部生成——这加剧了超时问题。
- **必须手动设置上下文窗口**:Ollama 默认为 2048 个 token,但 OpenClaw 需要 16K+。您必须在 Ollama systemd 单元中配置 `OLLAMA_NUM_CTX=32768`。
- **需要原生 API**:必须使用 `"api": "ollama"`(而不是 `"openai-completions"`)工具调用才能工作。
- **错误后的提供商冷却**:如果发生超时,OpenClaw 可能会将 Ollama 置于指数退避状态。可能需要手动状态重置。
我们正在与社区积极合作解决这些上游问题。如果您遇到指南中未涵盖的问题,请[提交 issue](https://github.com/gensecaihq/Wazuh-Openclaw-Autopilot/issues)。
### 路径 C:混合(云 + 本地)
使用云 API 进行主要推理,使用 Ollama 作为本地回退,反之亦然。预加载脚本通过 `OPENCLAW_LLM_MODE` 环境变量支持这两种模式:
```
# 在 OpenClaw gateway systemd unit 中:
Environment="OPENCLAW_LLM_MODE=cloud" # Preserves proxy vars, sets NO_PROXY for localhost
```
有关支持这两种模式的预加载脚本,请参阅[离线部署指南](docs/AIR_GAPPED_DEPLOYMENT.md)。
## 人工审批环
每个响应动作都需要通过带有内联策略执行的两级工作流进行明确的人工授权:
```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ PROPOSED │ ───▶ │ APPROVED │ ───▶ │ EXECUTED │
│ │ │ │ │ │
│ AI generates │ │ Human clicks │ │ Human clicks │
│ response plan │ │ [Approve] │ │ [Execute] │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
Policy Check: Policy Check: Policy Check:
action allowlist approver authorized evidence sufficient
confidence threshold risk level permitted time window check
time window check rate limit check
idempotency check
```
**AI 代理无法自主执行动作。** 响应者能力默认禁用,需要显式启用加上每个动作的人工批准。策略执行在每个步骤内联应用——在生产模式下失败即关闭,在引导模式下失败即开放。
## 兼容性
### Wazuh 版本支持
通过 [Wazuh MCP Server](https://github.com/gensecaihq/Wazuh-MCP-Server) v4.0.6 测试:
| Wazuh 版本 | 支持级别 | 备注 |
|---------------|-------------|-------|
| **4.14.x** | 完全支持 | 推荐。所有 29 个 MCP 工具均可工作。 |
| 4.10.x – 4.13.x | 完全支持 | 所有功能可用 |
| 4.8.x – 4.9.x | 完全支持 | 漏洞工具的最低版本要求 |
| 4.0.0 – 4.7.x | 有限支持 | 3 个漏洞工具不可用(需要 Wazuh Indexer) |
### 平台支持
|台 | 状态 |
|----------|--------|
| Ubuntu 22.04 / 24.04 | 已测试 |
| Debian 11 / 12 | 已测试 |
| RHEL / Rocky / AlmaLinux 8/9 | 支持 |
| 离线 | 支持但需变通方案 — 见[离线部署指南](docs/AIR_GAPPED_DEPLOYMENT.md) |
## 快速入门
### 前置条件
| 要求 | 描述 |
|-------------|-------------|
| [Wazuh Manager](https://wazuh.com) | SIEM 平台(已安装并运行,4.8.0+) |
| [Wazuh MCP Server](https://github.com/gensecaihq/Wazuh-MCP-Server) | 用于 Wazuh API 访问的 MCP 桥接 |
| [OpenClaw](https://github.com/openclaw/openclaw) v2026.3.1+ | AI 代理框架([文档](https://openclaw.ai)) |
| Node.js 20+ | Autopilot 服务的运行时(OpenClaw 推荐 22+) |
| [Ollama](https://ollama.com) 0.17+(离线)或 LLM API Key | 本地模型或 Claude、GPT、Groq、Mistral 云 API |
### 安装
```
git clone https://github.com/gensecaihq/Wazuh-Openclaw-Autopilot.git
cd Wazuh-Openclaw-Autopilot
sudo ./install/install.sh
```
对于离线或引导环境(无 Tailscale):
```
sudo ./install/install.sh --skip-tailscale
# 或等效地:
sudo ./install/install.sh --mode bootstrap
```
对于仅 MCP 安装(跳过 OpenClaw Gateway、Runtime 和 Agent 设置):
```
sudo ./install/install.sh --mode mcp-only
```
安装程序将引导您完成:
1. Tailscale 设置(零信任网络 — 可使用 `--skip-tailscale` 或 `--mode bootstrap` 跳过)
2. MCP Server 安装
3. OpenClaw Gateway 配置(在 `mcp-only` 模式下跳过)
4. Agent 部署(在 `mcp-only` 模式下跳过)
5. Slack 集成(可选)
### 配置
首先选择您的 LLM 部署路径 — 见上面的[选择您的 LLM 部署方式](#choose-your-llm-deployment)。
**对于云 API(路径 A — 推荐):**
```
# 编辑配置
sudo nano /etc/wazuh-autopilot/.env
# 必填:Wazuh 连接
WAZUH_HOST=localhost
WAZUH_PORT=55000
WAZUH_USER=wazuh-wui
WAZUH_PASS=your-password
# 必填:至少一个 LLM provider
ANTHROPIC_API_KEY=sk-ant-... # Claude (recommended)
OPENAI_API_KEY=sk-... # GPT-4o (also used for embeddings)
# 可选:用于回退/成本优化的 Additional providers
GROQ_API_KEY=gsk-... # Fast inference
MISTRAL_API_KEY=... # European provider
XAI_API_KEY=... # Grok
GOOGLE_API_KEY=... # Gemini
# 可选:Slack 集成
SLACK_APP_TOKEN=xapp-...
SLACK_BOT_TOKEN=xoxb-...
```
**对于本地 Ollama(路径 B — 离线):**
请改为遵循完整的[离线部署指南](docs/AIR_GAPPED_DEPLOYMENT.md)。它涵盖了 Ollama 设置、模型配置、必要的超时修复以及所有已知限制。
### Docker 部署
```
# 使用 Docker Compose
docker-compose up -d
# 或手动构建
cd runtime/autopilot-service
docker build -t wazuh-autopilot .
docker run -d -p 127.0.0.1:9090:9090 --env-file .env wazuh-autopilot
```
### 验证安装
```
# 全栈健康检查
./scripts/health-check.sh
# 或检查单个端点(默认端口 9090,可通过 RUNTIME_PORT 配置)
curl http://localhost:9090/health
curl http://localhost:9090/metrics
```
## API 参考
### 案例
| 端点 | 方法 | 描述 |
|----------|--------|-------------|
| `/api/cases` | GET | 列出所有案例 |
| `/api/cases` | POST | 创建案例 |
| `/api/cases/:id` | GET | 获取案例详情 |
| `/api/cases/:id` | PUT | 更新案例 |
| `/api/alerts` | POST | 接收 Wazuh 告警(自动分类、丰富、分组) |
| `/api/cases/:id/feedback` | POST | 提交分析师判定(真/假阳性) |
### 响应计划
| 端点 | 方法 | 描述 |
|----------|--------|-------------|
| `/api/plans` | GET | 列出响应计划(过滤:`?state=`, `?case_id=`) |
| `/api/plans` | POST | 创建响应计划 |
| `/api/plans/:id` | GET | 获取计划详情 |
| `/api/plans/:id/approve` | POST | 第 1 级:批准计划 |
| `/api/plans/:id/execute` | POST | 第 2 级:执行计划 |
| `/api/plans/:id/reject` | POST | 拒绝计划 |
### 可观测性
| 端点 | 方法 | 描述 |
|----------|--------|-------------|
| `/health` | GET | 服务健康状态 |
| `/ready` | GET | Kubernetes 就绪探针 |
| `/version` | GET | 服务版本信息 |
| `/metrics` | GET | Prometheus 指标 |
| `/api/responder/status` | GET | Responder 能力状态 |
## 指标
`/metrics` 处可用的 Prometheus 指标:
```
# 案例
autopilot_cases_created_total
autopilot_cases_updated_total
autopilot_alerts_ingested_total
# 两级审批
autopilot_plans_created_total
autopilot_plans_approved_total
autopilot_plans_executed_total
autopilot_plans_rejected_total
autopilot_plans_expired_total
# 性能
autopilot_triage_latency_seconds
autopilot_mcp_tool_call_latency_seconds
# Responder
autopilot_executions_success_total
autopilot_executions_failed_total
autopilot_responder_disabled_blocks_total
# Webhook Dispatch
autopilot_webhook_dispatches_total
autopilot_webhook_dispatch_failures_total
# IP Enrichment
autopilot_enrichment_requests_total
autopilot_enrichment_cache_hits_total
autopilot_enrichment_errors_total
# 反馈
autopilot_false_positives_total
autopilot_feedback_submitted_total{verdict="..."}
# 策略
autopilot_policy_denies_total{reason="..."}
# reason 标签:ACTION_NOT_ALLOWED, APPROVER_NOT_AUTHORIZED,
# INSUFFICIENT_EVIDENCE, time_window_denied, action_rate_limited,
# global_rate_limited, duplicate_action
autopilot_errors_total{component="..."}
```
## 证据包
每个案例生成一个结构化的证据包:
```
{
"schema_version": "1.0",
"case_id": "CASE-20260217-abc123",
"created_at": "2026-02-17T10:30:00Z",
"severity": "high",
"entities": [
{"type": "ip", "value": "192.168.1.100", "role": "attacker",
"enrichment": {"source": "abuseipdb", "abuse_confidence_score": 87, "country_code": "CN"}},
{"type": "user", "value": "admin", "role": "target"}
],
"feedback": [
{"verdict": "true_positive", "reason": "Confirmed attack", "user_id": "analyst-1"}
],
"timeline": [...],
"mitre": [{"technique_id": "T1110", "tactic": "Credential Access"}],
"plans": [...],
"actions": [...]
}
```
## 安全
### 网络隔离
| 组件 | 绑定 | 访问权限 |
|-----------|---------|--------|
| OpenClaw Gateway | `127.0.0.1:18789` | 仅 Localhost |
| MCP Server | Tailscale IP | 仅 VPN |
| Runtime Service | `127.0.0.1:9090` | 仅 Localhost |
没有服务暴露在公共互联网上。
### 访问控制
- **配对模式**:设备必须经过明确批准
- **Tailscale**:所有组件间通信均经过加密
- **凭证**:隔离存储,权限为 600
- **人工批准**:所有响应动作均需批准
## Slack 集成
使用 Socket Mode(仅出站,无需 webhook):
```
┌─────────────────┐ ┌─────────────────┐
│ Runtime Service │ ══ OUTBOUND ══════▶│ Slack API │
│ (localhost) │◀══ messages ═══════│ (WebSocket) │
└─────────────────┘ └─────────────────┘
```
功能:
- 实时告警通知
- 交互式审批按钮
- 斜杠命令(`/wazuh status`, `/wazuh approve`, `/wazuh execute`)
- 无需入站端口
## 项目结构
```
├── .github/workflows/ # CI/CD pipeline
├── docker-compose.yml # Container orchestration
├── install/
│ ├── install.sh # Security-hardened installer
│ └── env.template # Environment template (port config)
├── scripts/
│ └── health-check.sh # Full-stack health check
├── openclaw/
│ ├── openclaw.json # Gateway & model configuration (multi-provider)
│ ├── openclaw-airgapped.json # Air-gapped config (Ollama only)
│ └── agents/ # 7 SOC agents + _shared/ (AGENTS.md, IDENTITY.md, TOOLS.md, HEARTBEAT.md, MEMORY.md)
├── runtime/autopilot-service/
│ ├── Dockerfile # Production container
│ ├── index.js # Main service (4300+ LOC)
│ ├── slack.js # Slack Socket Mode integration
│ └── *.test.js # Test suite (296 tests)
├── policies/
│ ├── policy.yaml # Security policies & approvers
│ └── toolmap.yaml # MCP tool mappings
├── playbooks/ # Incident response playbooks (7 playbooks)
└── docs/ # Documentation
```
## 部署选项
首先,[选择您的 LLM 部署路径](#choose-your-llm-deployment)(云 API vs 本地 Ollama vs 混合)。
| 方法 | 用例 | LLM 路径 | 命令 |
|--------|----------|----------|---------|
| **Docker Compose** | 生产(云 API) | 云 | `docker-compose up -d` |
| **Docker** | 单容器 | 云或混合 | `docker run -d wazuh-autopilot` |
| **Systemd** | 原生 Linux | 任意 | `sudo ./install/install.sh`(支持 `--mode bootstrap\|mcp-only`) |
| **Systemd (离线)** | 离线 / 涉密 | 本地 | `sudo ./install/install.sh --mode bootstrap` + [离线指南](docs/AIR_GAPPED_DEPLOYMENT.md) |
| **手动** | 开发 | 任意 | `cd runtime/autopilot-service && npm start` |
## 文档
| 文档 | 描述 |
|----------|-------------|
| [QUICKSTART.md](docs/QUICKSTART.md) | 安装指南 |
| [RUNTIME_API.md](docs/RUNTIME_API.md) | REST API 参考 |
| [POLICY_AND_APPROVALS.md](docs/POLICY_AND_APPROVALS.md) | 策略引擎和审批工作流 |
| [SLACK_SOCKET_MODE.md](docs/SLACK_SOCKET_MODE.md) | Slack Socket Mode 设置 |
| [EVIDENCE_PACK_SCHEMA.md](docs/EVIDENCE_PACK_SCHEMA.md) | 证据包 JSON 格式 |
| [AGENT_CONFIGURATION.md](docs/AGENT_CONFIGURATION.md) | Agent 文件结构和自定义 |
| [AIR_GAPPED_DEPLOYMENT.md](docs/AIR_GAPPED_DEPLOYMENT.md) | 使用 Ollama 的离线部署 |
| [MCP_INTEGRATION.md](docs/MCP_INTEGRATION.md) | MCP 服务器集成 |
| [CLI_REFERENCE.md](docs/CLI_REFERENCE.md) | 安装程序和 CLI 命令 |
| [OBSERVABILITY_EXPORT.md](docs/OBSERVABILITY_EXPORT.md) | Prometheus 指标和日志 |
| [SCENARIOS.md](docs/SCENARIOS.md) | 部署场景 |
| [TAILSCALE_MANDATORY.md](docs/TAILSCALE_MANDATORY.md) | Tailscale 零信任网络 |
| [TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md) | 故障排除指南 |
| [AGENT_COMMUNICATION.md](docs/AGENT_COMMUNICATION.md) | Agent 到 Runtime 的通信架构 |
| [CHANGELOG.md](CHANGELOG.md) | 版本历史 |
## 贡献
```
cd runtime/autopilot-service
npm install
npm test
# 全栈健康检查
./scripts/health-check.sh --quick
```
有关指南,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 社区
| 渠道 | 目的 |
|---------|---------|
| [GitHub Discussions](https://github.com/gensecaihq/Wazuh-Openclaw-Autopilot/discussions) | 问题、想法、部署帮助、社区聊天 |
| [GitHub Issues](https://github.com/gensecaihq/Wazuh-Openclaw-Autopilot/issues) | 错误报告和功能请求 |
- **问答**:[部署帮助与故障排除](https://github.com/gensecaihq/Wazuh-Openclaw-Autopilot/discussions/3)
- **想法**:[功能请求与集成想法](https://github.com/gensecaihq/Wazuh-Openclaw-Autopilot/discussions/4)
- **展示与分享**:[分享您的部署](https://github.com/gensecaihq/Wazuh-Openclaw-Autopilot/discussions/5)
## 相关项目
| 项目 | 描述 |
|---------|-------------|
| [OpenClaw](https://github.com/openclaw/openclaw) | 为 SOC 自动化代理提供支持的 AI 代理框架 |
| [Wazuh MCP Server](https://github.com/gensecaihq/Wazuh-MCP-Server) | 用于 Wazuh API 集成的 Model Context Protocol 服务器 |
| [OpenClaw.ai](https://openclaw.ai) | 官方 OpenClaw 文档和资源 |
## 许可证
MIT 许可证 - 详见 [LICENSE](LICENSE)
OpenClaw •
Wazuh MCP Server •
报告问题 •
请求功能
标签:AI安全运营, AI智能体, AI风险缓解, AMSI绕过, FOFA, MCP, MITM代理, OpenClaw, Prometheus监控, Slack集成, SOC自动化, Wazuh, 事件关联, 人机协同, 告警分类, 响应计划, 威胁检测, 安全运营中心, 网络安全, 网络映射, 自动分类, 自定义脚本, 自定义脚本, 自定义请求头, 证据包, 请求拦截, 隐私保护