BeardedInfoSec/t1agentics
GitHub: BeardedInfoSec/t1agentics
一个自托管的多租户 SOC 平台,结合 AI 辅助告警分诊、700+ 连接器和 200+ 响应 Playbook,帮助安全团队高效完成告警调查与事件响应。
Stars: 1 | Forks: 0
# T1 Agentics
[](LICENSE)
[](#)
[](https://github.com/BeardedInfoSec/t1agentics)
## 系统要求
- **8 GB RAM** 最低要求(针对多租户工作负载建议 16 GB)
- **~120 GB 磁盘** 最低要求(事件历史、原始警报 payload 和 KB 索引会随着时间增长)
- **Docker 20.10+** 和 **Docker Compose v2**
- 运行在 **Linux** 上的 Docker 宿主机(推荐用于生产环境;经过测试的基准是 Ubuntu 22.04 LTS+)、macOS (Docker Desktop) 或 Windows (Docker Desktop + WSL2;请在 WSL2 shell 内运行安装)
- 域名已通过 DNS 指向您的宿主机(自动 TLS 必需)
- 可选:AI 提供商 — 云端密钥(Anthropic / OpenAI)或本地 OpenAI 兼容服务器(Ollama / vLLM / LM Studio)。**NVIDIA GPU** 为可选项,但可加速本地模型。在配置完成前,AI 功能将保持关闭。
安装程序会强制执行 RAM 和磁盘检查,如果您的宿主机资源配置不足,会打印清晰的错误信息。
## 在不使用 Docker 的情况下运行(实验性)
不想运行 Docker?这里有一个单进程原生模式,它会启动一个内嵌的 PostgreSQL(以 pip wheel 形式提供 — 无需系统级 Postgres,无需管理员权限),并在一个端口上提供整个应用(UI + API + WebSocket)的服务。需要 **Python 3.11 或 3.12** 以及 Node(用于一次性构建前端)。
```
git clone https://github.com/BeardedInfoSec/t1agentics
cd t1agentics
./run-native.sh # Linux / macOS
# .\run-native.ps1 # Windows PowerShell
```
它会创建一个 virtualenv,安装依赖项,构建前端,在 `./.native/` 下启动本地 Postgres,并打开 `http://localhost:8000`。在此模式下,Redis 和 ClickHouse 处于关闭状态(应用会平滑降级)。这是在笔记本电脑上进行尝试的最简单方法 — 无需 Docker Desktop,无需 WSL2。对于具有自动 TLS 功能的生产级多租户部署,Docker Compose 仍然是首选路径。
## 您将获得什么
- **从第一天起就支持多租户。** 在数据库层强制执行 Row-level security。每次获取连接时都会设置租户上下文;跨租户泄漏需要同时绕过应用层的身份验证检查和数据库策略。
- **700+ 预置 connector**,涵盖 SIEM、EDR、防火墙、云、工单系统、邮件安全、欺骗技术和威胁情报类别。
- **200 个 playbook 模板**,覆盖 13 个 SOC 领域。基于 node-graph 画布的可视化编辑器。支持针对多种旧版 SOAR 格式的导入/导出转换器。
- **349 篇知识库文章**,支持全文搜索和可选的语义搜索 (pgvector)。
- **AI 辅助的分类筛选**,可读取警报,关联实体,对结论进行评分,并根据您实际安装的 connector 建议具体的措施。支持自带 LLM 提供商的 API 密钥。
- **调查工作台**,支持内联分类(处置方式、优先级、严重程度、指派人)、统一队列和可自定义的仪表板列。
- **暂停并收集的 playbook 表单**,供分析师在流程中输入,并为外部参与者提供 HMAC 签名的公开 URL。
- **RBAC、RLS、审计日志。** 记录每一项特权操作。对每一个受租户范围限制的查询进行拦截控制。
- **全部整合于 Docker Compose 中。** 一个文件,一个 stack,无需 Kubernetes。
## 内置内容
安装程序会初始化两个内容库,以便应用在首次登录时就预填充好数据:
- **Playbook 市场** — 包含覆盖 13 个 SOC 领域的 200 个内置 playbook 模板。
- **知识库** — 约 349 篇文章(少数使用了 schema 尚不支持的 content type 并被跳过,因此大约会加载 300 篇)。
初始化是幂等的 — playbook 加载器会执行 upsert,而 KB 加载器会按标题跳过已存在的文章,因此重新运行是安全的。如果您运行的是手动 `docker compose up -d` 安装而不是 `install.sh`,或者您想重新初始化,请运行:
```
# 内置内容位于 repo 根目录;backend image 是从
# ./backend 构建的,因此请先将 seed 脚本和内容复制到 container 中。
docker compose cp scripts/load-playbook-catalog.py backend:/app/scripts/load-playbook-catalog.py
docker compose cp scripts/load-kb-direct.py backend:/app/scripts/load-kb-direct.py
docker compose cp playbook-store-output backend:/app/playbook-store-output
docker compose cp kb-content-output backend:/app/kb-content-output
# Seed
docker compose exec -T backend python scripts/load-playbook-catalog.py
docker compose exec -T backend python scripts/load-kb-direct.py kb-content-output/articles
```
**接收表单模板**(共 20 个)内置在后端并由 API 实时提供服务 — 它们不需要初始化。在租户实例化表单之前,`intake_forms` 表将保持为空。
## 架构
```
Caddy (TLS, reverse proxy)
|
+-------------------+--------------------+
| |
Frontend Backend
(React, nginx) (FastAPI, Python 3.11)
|
+-------------+----------+-------------+
| | | |
PostgreSQL Redis ClickHouse Connectors
(primary) (sessions, (telemetry, (outbound to
queue) event volume) your stack)
```
- **后端** — 运行于 Python 3.11 的 FastAPI,全面采用 asyncpg、asyncio。启动时自动应用数据库迁移;无需单独的迁移步骤。
- **前端** — 由 nginx 提供服务的 React 18 单页应用。基于 node-graph 画布构建的可视化 playbook 编辑器。
- **数据库** — PostgreSQL 15(主库,带 RLS),Redis 7(会话、限流、队列),ClickHouse(UX 遥测、高吞吐量事件摄取)。
- **TLS** — Caddy 位于 stack 最前端,当您的域名 DNS 解析到宿主机时,会自动获取 Let's Encrypt 证书。
- **一切尽在 Docker Compose。** 一个 stack 文件,一次 `up -d`。
如需更深入的了解,请参阅 [OVERVIEW.md](OVERVIEW.md) 以及 [docs/](docs/) 下的工程文档。
## 配置
应用由位于仓库根目录下的单一文件 **`t1.config.yaml`** 进行配置,后端会在每次启动时读取该文件,并将其幂等地应用到数据库中。密钥保留在 `.env` 中并使用 `${ENV_VAR}` 进行引用;管理员密码来自 `ADMIN_PASSWORD`。安装程序会为您写入这两个文件。
最小可用配置 — 为您的组织命名,并将 AI 指向本地的 Ollama:
```
org:
name: "Acme Security"
slug: "acme-security"
license:
tier: "platform" # unlimited; self-host recommended
ai:
chat:
provider: "self_hosted" # self_hosted | anthropic | openai
api_style: "openai"
base_url: "http://host.docker.internal:11434"
model: "qwen2.5:7b-instruct"
api_key: "${AI_CHAT_API_KEY}"
```
编辑后,应用更改:`docker compose up -d backend`。完整的参考文档(每一部分的介绍,以及 Anthropic / Ollama / vLLM 的实用示例)在 **[CONFIGURATION.md](CONFIGURATION.md)** 中。
## 故障排除
以下是一些最常见的问题 — 完整指南请见 **[TROUBLESHOOTING.md](TROUBLESHOOTING.md)**。
- **"No AI provider configured or available."** AI 功能默认关闭。请在 `t1.config.yaml` 中(或通过 **Settings → AI**)设置 `ai.chat`,然后运行 `docker compose up -d backend`。
- **混合内容错误 / 代理后重定向到 `http://`。** 您的代理必须发送 `X-Forwarded-Proto`;在后端保留 `FORWARDED_ALLOW_IPS=*`(自带的 compose 文件已经进行了设置)。
- **市场 / 知识库为空。** 内容未初始化 — `install.sh` 会对其进行初始化,或者您可以运行初始化脚本(参见 [INSTALL.md](INSTALL.md#seeding-built-in-content))。
- **深度分析 / 推荐操作缺失。** 属于高级功能 — 请设置有效的付费 `license.tier` 并确认 AI 提供商可用。
- **登录时要求输入 "Organization"。** 请输入您的租户 slug(即安装时设置的 `org.slug`)。
使用 `docker compose logs -f backend`(或 `./bin/t1 logs backend`)获取日志。
## 升级
```
t1 upgrade
```
`t1` 辅助脚本会拉取最新镜像,应用任何待处理的迁移,并在零数据丢失的情况下重启 stack。如果您想先查看会有哪些更改,请先运行 `t1 upgrade --dry-run`。
如果您更喜欢直接驱动 Docker Compose:
```
docker compose pull
docker compose up -d
```
## 备份
```
t1 backup
```
生成带有时间戳的归档文件,其中包含 Postgres 转储、ClickHouse 数据目录、凭据保管库和配置文件。使用 `t1 restore ` 进行恢复。
对于异地备份,请通过 cron 定期运行 `t1 backup --output /mnt/your-mount/`。
## 许可证
Apache License 2.0。详见 [LICENSE](LICENSE)。
您可以将 T1 Agentics 用于任何目的、修改它并重新分发。我们要求您保留原有的归属声明和许可证头。
## 贡献
我们接受错误修复、connector 添加、playbook 模板、知识库文章、文档改进以及范围明确的功能开发。工作流程请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。

![]() Unified triage queue — every alert and investigation in one place, with severity heat-strips and SLA tracking. |
![]() Triage at a glance — an alert's verdict, key findings, and IOCs surface in the queue drawer before you open the case. |
![]() Playbook marketplace — 200+ ready-to-run response playbooks across phishing, malware, identity, cloud, and more. |
![]() Knowledge base — 340+ built-in SOC runbooks and reference articles, searchable in-product. |
标签:AI辅助, Docker, SOC平台, 告警分诊, 安全运营, 安全防御评估, 扫描框架, 版权保护, 自动化响应



