Flocks 使用手册
本手册提炼自 Flocks 完整在线文档,面向在不方便查阅 docs 站点时的用户,提供一份可离线阅读的引导文档。
安装启动与首次配置不再重复展开,统一放在 Quick Start,本页保留可离线导航与核心场景回执。
目录
- 产品概览
- 快速开始(安装 / 启动 / 首次配置)
- 主模块使用指引
- 模型配置
- 通信与远程部署
- 通道配置(飞书 / 企微 / 微信 / 钉钉 / Telegram)
- 运维与排障
- 升级方式
- 安全与规范
- 场景演示
- 10.1 告警研判
- 10.2 主机巡检与应急取证
- 10.3 内网安全产品接入
- 10.4 浏览器自动化与网页登录
- 10.5 威胁情报与 IOC 研判
- 10.6 互联网资产测绘
- CLI 命令参考
- 配置项索引
- 术语表
一、产品概览
Flocks 是一套面向安全运营场景的 AI Native 平台。它不是单点问答助手,也不是只会执行固定规则的自动化引擎,而是把对话、分析、执行、编排、接入、沉淀和持续运营组织在同一套平台能力中。
适用场景
- 需要对告警进行多源关联和初步研判的安全运营团队
- 需要把调查步骤沉淀为工作流、技能或专家 Agent 的团队
- 需要接入多个安全设备、API、网页控制台或内网系统的场景
- 希望把"分析一次问题"逐步变成"持续运行的能力"的团队
核心能力(5 层)
| 层级 | 作用 | 用户感知 |
|---|---|---|
| 多入口接入层 | 提供不同交互方式 | WebUI、CLI、TUI、通道 |
| 平台服务层 | 统一后端与管理面 | 会话、模型、工具、工作流、技能、任务、Workspace、通道 |
| Agent 运行时层 | 让任务持续推进 | 会话循环、工具调用、摘要压缩、结果合并 |
| 能力扩展层 | 承载可增长能力 | tools / workflows / agents / skills / MCP / 插件 |
| 平台支撑层 | 提供治理与沉淀 | 配置、记忆、Workspace、任务中心、持久化 |
平台以主 Agent Rex 作为统一入口,围绕会话运行时、工具系统、工作流引擎、专家 Agent、Skills、记忆系统、任务调度和多入口接入构建能力底座。
二、快速开始
2.1 安装 / 启动 / 首次配置(推荐只读本页)
本手册不再重复展开“安装与首次配置”细节,完整步骤请直接按下面入口:
- 安装、启动、模型配置入口: Quick Start
- 访问控制与远程部署说明: 部署与配置
- 运维与问题排查: 运维与排障
2.2 任务优先级建议
- 第一次接触:先看 推荐路径与安装要求
- 本机交互优先:按 Quick Start 的一行命令路径
- 服务器/标准化部署:优先看 Quick Start 中的 Docker 路径
- 先跑通再探索:回到 功能模块 和 场景实践
三、主模块使用指引
WebUI 导航分为三组:首页 / AI 工作台(会话、任务中心、Workspace)/ Agent 工作室(Agent、Workflow、Skills、工具清单、模型清单、通道)。
3.1 对话管理
Flocks 的主交互面。直接向 Rex 描述目标,平台会理解上下文、调用工具、执行工作流、委派专家 Agent。
适合场景:目标明确但不确定调哪个能力;需要边分析边追问;希望 Rex 先理解再协调。
3.2 Agent 智能体
管理主 Agent(Rex)与子 Agent(情报分析、主机排查、漏洞分析、网页取数等)。 适合场景:固化某类任务的专业执行角色;沉淀成熟调查套路;总控与执行分离。
3.3 Workflow 工作流
把动作组织成稳定流程。可创建、可校验、可测试、可运行的自动化剧本。 适合场景:固定类型告警标准化处置;周期巡检、报表、定时任务;多步流程需明确节点与 I/O。
3.4 任务中心
长期运行与调度能力。把一次性动作延伸为持续运营。 关系:Workflow 定义流程 · Agent 决定角色 · 任务中心负责按计划持续运行。
3.5 Workspace
项目级组织边界,承载插件、工作流、技能、配置、任务产出和项目上下文。适合团队化、多项目 / 多客户场景。
3.6 工具清单
平台可直接调用的执行能力(内置工具、API 工具、本地工具、MCP)。
当前 WebUI MCP 已整合进工具清单,不再独立一级页面。
3.7 模型清单
供应商、模型、默认模型、测试入口。功能异常时优先回这里检查:模型测试是否通过、默认模型是否设置、Base URL / API Key / 模型名是否一致。
3.8 Skills 技能库
承载方法论、规范、任务模板、组织经验。 四类能力边界:工具关注 动作 · 工作流关注 流程 · Agent 关注 角色 · Skills 关注 经验 / 方法。
3.9 模块配合主线
模型清单配置默认模型
↓
在会话里向 Rex 提出目标
↓
Rex 调工具 / 委派 Agent / 生成 Workflow
↓
任务中心把一次性能力变成长期运行
↓
Skills 与 Workspace 沉淀经验和项目资产四、模型配置
4.1 模型配置顺序(稳妥流程)
添加 Provider → 添加模型 → 测试连接 → 设置默认模型。
4.2 本地 / 第三方模型接入
主路径:OpenAI Compatible,适用于自建兼容 OpenAI API 的服务、第三方网关、本地模型服务。
关键字段:Base URL、API Key、模型名称。任一不匹配可能出现:看不到模型列表、404、端口看起来未生效、简单对话可用但复杂任务不稳定。
"支持某个模型" ≠ 所有部署都完全兼容 ≠ 一定能自动拉模型列表 ≠ 复杂多轮任务一定稳定。真实任务稳定性需要实测。
4.3 模型报错排障
| 报错 | 可能原因 |
|---|---|
| 超时 | 模型平台负载、网络链路、响应慢于系统预期 |
empty content | 模型平台 / 接口兼容层问题 |
peer closed connection | 连接中断、服务端异常断开 |
排障顺序:重新测试 → 查后端日志 → 区分是所有模型失败还是单模型 → 换已知稳定模型对照 → 在长会话 / 工具调用 / 长输出场景实测。
4.4 运行时配置域(flocks.json)
| 配置域 | 解决什么 |
|---|---|
provider | 模型从哪里来 |
api_services | 平台还接了哪些外部安全能力(greynoise、threatbook、skyeye、qingteng、tdp…) |
mcp | 如何统一接入外部上下文服务 |
channels | 结果往哪里发 |
sandbox | 执行时边界在哪里 |
五、通信与远程部署
默认监听 127.0.0.1(仅本机可访问)。远程访问需显式修改监听地址。
5.1 推荐远程部署方式(只开放 WebUI)
flocks start --server-host 127.0.0.1 --webui-host 0.0.0.0好处:外部可访问 WebUI;后端 API 不裸露公网;整体暴露面小。
5.2 Docker 远程访问
确认 -p 8000:8000 -p 5173:5173 端口映射正确。"容器起来了但浏览器打不开"大多是端口映射问题。
5.3 常见误区
- 以为默认
127.0.0.1也能让外部机器访问 ❌ - 远程浏览器中
127.0.0.1:8000指向的是访问者自己的机器,不是服务器本身 ❌
5.4 受限网络 / 中国大陆建议
- 使用 Gitee 安装入口
- 为
uv配置国内镜像源(如清华源) - Docker 使用国内镜像地址(如
ghcr.nju.edu.cn/agentflocks/flocks:latest)
uv 镜像示例,保存到 ~/.config/uv/uv.toml:
[[index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
[[index]]
url = "https://pypi.org/simple"
default = true5.5 WebUI 与 API 的关系
5173是"门面"8000是"能力底座"- 远程访问时门面能打开只是第一步,关键是前端请求路径也能到达后端
六、通道配置
当前支持:飞书 / 企业微信 / 微信 / 钉钉 / Telegram。
6.1 使用场景
- 研判结果主动推送至企微 / 微信 / 钉钉会话
- 机器人在特定群或会话中接收消息
- 定时任务结果推送给值班或运营团队
6.2 能力联动
Agent 分析执行 → Workflow 组织流程 → 任务中心定时执行 → 通道送达外部触点6.3 接入要点(通用)
- 钉钉:企业内部应用 + 机器人 + 群内验证
- 飞书:开放平台自建应用 + 权限 + App ID / App Secret
- 企业微信:管理后台 + 智能机器人 + Bot ID / Secret(多群投递与
session ID细节在企微页) - 微信:WebUI 扫码登录 iLink Bot,自动获取
Token/Account ID
6.4 推荐链路
数据通过 API / 日志 / 网页抓取进入 Flocks
↓
Agent 或 Workflow 分析
↓
通过企微 / 微信 / 钉钉等通道发送结果七、运维与排障
7.1 日志优先
flocks logs进一步定位可看:~/.flocks/logs/backend.log。
产物位置检查方向:当前工作区 / 会话输出目录、~/.flocks、Docker 挂载目录、Workflow artifacts。
"报告已保存但找不到"常见原因:产物在工作区或挂载目录、查的不是运行目录、Docker 文件没映射到宿主机。
7.2 任务中心优先于日志
定时任务 / 批量分析 / Workflow 类场景,先看任务中心(有没有跑、跑到哪一步),再看日志(为什么失败)。
7.3 安装排查顺序
- 检查基础依赖(
uv、Node.js 22+、npm、agent-browser) - 确认安装脚本完整执行
- 确认
flocks命令可用 - 判断是否切换安装方式
7.4 高频安装问题
| 现象 | 处理 |
|---|---|
| Node.js / npm 安装失败,前端构建失败 | 手动安装符合要求版本后重试 |
flocks 命令不可用 | 进源码目录重新执行安装脚本 |
| 浏览器依赖失败 | 可能影响整条安装链路,不要仅当浏览器功能问题处理 |
7.5 平台适配
- Linux / macOS:最接近官方主流程
- Windows:依赖管理员权限,环境问题更多
- WSL:容易遇 Node / 更新链路问题
- ARM:建议优先 Docker
7.6 什么时候切换安装方式
- 需完整交互 + 网页登录 → 本机终端 / 源码安装
- 一键安装连续失败 → 源码安装
- Windows 少踩坑 → 源码 / Docker
- 标准化服务器部署 → Docker
八、升级方式
8.1 三种方式对比
| 方式 | 适合 |
|---|---|
| 页面一键升级 | Linux / macOS、无已知兼容问题、安装方式标准 |
| 源码手动升级 | 页面升级失败时最稳妥 |
| Docker 镜像升级 | 标准化运维 |
8.2 源码手动升级
flocks stop
git pull
./scripts/install.sh
flocks restartWindows 对应 install.ps1,建议管理员 PowerShell。
8.3 Docker 升级
拉新镜像 → 重建 / 重启容器 → 确认挂载目录保留。
8.4 升级异常处理
| 现象 | 可能原因 |
|---|---|
| 升级卡很久 | 长时间无新输出视为失败,改走手动升级 |
| 页面还提示可升级 | 缓存 / 版本标识 / 跨越历史问题版本 |
| 监听地址恢复默认 | 重启未带自定义参数,不是配置坏了 |
| 页面能开但功能异常 | 默认模型未恢复 / 前端缓存 / 升级未完成 / 旧进程未退 |
恢复顺序:flocks status → flocks logs → 确认旧进程退出 → 确认启动参数 → 检查默认模型和通道。
九、安全与规范
9.1 公网暴露
默认本机运行即安全边界。推荐暴露策略:
- 只开放 WebUI,后端 API 保持本机访问
- 配合安全组 / 防火墙 / 反向代理
- 不要把后端 API 裸露到公网
部署前最小检查:是否真需要外网访问、是否只开必要端口、是否有白名单 / 可信网段、是否通过反向代理收口。
9.2 数据与脱敏原则
- 高敏感数据优先用 内网 / 私有模型
- 对公网模型,先审查组织的数据出站策略
- 原始日志 / 告警原文 / 样本内容先判断是否预处理
特别谨慎:账号令牌口令密钥、攻击样本 / 恶意负载、内网资产大量信息、合规约束数据。
Flocks 更适合作为分析和编排平台,不默认承担所有数据治理责任。真正的安全落地需结合模型部署位置、网络边界、日志规范、合规要求综合设计。
9.3 反馈渠道
- 常规(文档 / 体验 / 一般功能异常)→ 官方仓库 Issue、社区
- 安全(疑似漏洞 / 未授权风险 / 敏感数据边界)→ 官方安全反馈渠道 / 产品团队 / 指定联系人
怀疑受历史版本影响时:对照官方公告确认受影响范围 → 检查部署时间和版本 → 再决定升级 / 回滚 / 补防护。
十、场景演示
6 个已经能复用的场景。本章每个场景都按 场景简介 / 输入输出 / 前置条件 / 操作步骤 / 真实案例走读 / 产出示例 / 持续运行 / 边界 展开,便于按图索骥。
优先落地建议:告警研判 和 主机巡检 是 Flocks 在企业里最先跑起来的两个场景,建议新用户从这两条路径切入。
共同产品范式(6 个场景共用一套骨架)
1. Rex 理解任务 → 拆步骤、选能力
2. 调度专家 Agent / 工具 / Workflow → 执行动作
3. 落盘中间数据 + 结构化产出 → 不只是对话里的回答
4. 通道通知 + 定时任务 → 从"做一次"升级为"常态化运营"
5. 经验沉淀为 Skill → 下次相似任务直接套10.1 告警研判(Alert Triage)
Flocks 最容易落地、使用频率最高的场景。 核心问题:从安全设备拿到告警后,如何让每一条在几分钟内得到带证据链的结构化结论,并自动推送到运营触点。
输入 / 输出
- 输入:单条告警 ID / 原文、一批待研判告警、某时间窗告警集合;来源可为 TDP / NDR / XDR / HIDS / EDR / WAF 等
- 输出:结构化研判结果(告警 ID、攻击类型、置信度、涉事资产、建议动作)、JSON 报告、企微 / 钉钉 / 飞书通知
前置条件
| 依赖 | 要求 |
|---|---|
| 模型 | 默认模型可用,推理型效果更好 |
| 告警源 | API 或网页控制台二选一 |
| 工具 | 情报工具(ThreatBook / VT / GreyNoise)用于补 IOC 上下文 |
| 通道 | 企微 / 钉钉 / 飞书任一已连通 |
| 专家 Agent | 可选;内置了告警分析子 Agent,否则 Rex 直接分析 |
操作步骤(WebUI)
- 建会话:新建会话,用自然语言描述,例如:
"从 TDP 页面抓 5 条最新告警,逐条做研判,结果写 JSON,并把摘要发到企微"
- Rex 抓原始数据:有 API 直调,无 API 启用浏览器登录抓取;原始告警落盘到 Workspace 日期目录(如
3-28/alerts.json),这是定时任务能复用的关键 - 委派分析 Agent 逐条研判:Rex 负责切片分发和汇总,子 Agent 拿单条告警独立研判,互不污染上下文
- JSON 落盘 + 通道通知:结果回落 Workspace,同时通过通道发摘要
多群环境必须显式指定
session ID - 转定时任务:
"把这套巡检研判过程配成定时任务,每小时执行一次,结果发企微"
Rex 自动在任务中心创建:每小时执行 / 沿用本次自然语言描述 / 指定 channel 和 session ID
真实案例走读(NDR 5 条告警,~4 分钟)
| 时间 | Rex 动作 |
|---|---|
| 0:00 | 确认已配企微机器人 + 目标 session ID |
| 0:36 | 从 TDP 页面抓 5 条告警 |
| 1:03 | 写完整原始数据到 Workspace 3-28 目录 |
| 1:33 | 委派专职告警分析子 Agent 逐条分析 |
| 2:04 | 分析结果成形(结构化字段 + 结论) |
| 2:22 | 向企微推送通知 |
| 2:42 | 识别出"文件上传攻击 ×4"、"IP 109.x 重复出现"、"webshell + 内网横移" |
| 3:42 | 整条链路转成每小时定时任务 + 企微通知 |
产出示例
[
{
"alert_id": "20260328-001",
"source": "TDP",
"attack_type": "webshell_upload",
"src_ip": "109.x.x.x",
"dst_asset": "10.10.x.x",
"confidence": 0.85,
"conclusion": "确认文件上传攻击,可能已植入 webshell",
"related_alerts": ["20260328-003"],
"recommended_action": "隔离资产 + 取证"
}
]边界与常见问题
| 问题 | 处理 |
|---|---|
| 想让 Flocks 替代 NDR / TDP 做实时检测 | 不建议,Flocks 定位在"拿到线索后的深入分析" |
| 告警量极大(每小时上万) | 按时间窗 + 按告警类型切片 |
| 模型幻觉 | 在 Skill / Agent prompt 里要求"必须列证据字段,无证据拒答" |
| 多群推送搞错群 | 显式指定 session ID |
| 告警源只有网页没 API | 走浏览器方案(见 10.4) |
10.2 主机巡检与应急取证(Host Forensics)
核心问题:可能被攻陷的 Linux 主机面前,如何让 Agent 在不搞坏环境的前提下完成基线收集 → 时间线重建。 与告警研判不同,每条命令都落在真机,Flocks 通过"命令白名单 / 黑名单 + 人工逐条确认"把敏感操作和 AI 自动化解耦。
输入 / 输出
- 输入:目标主机列表、已建立 SSH / 跳板机通道
- 输出:基线报告、深度入侵报告(时间线 + IoC + 矿池 + 爆破来源 + 持久化手段)、命令执行留痕
核心安全机制(必读)
| 类型 | 行为 |
|---|---|
| 白名单 | 纯只读命令(ps / netstat / cat 只读路径 / last / who)自动执行 |
| 黑名单 | 任何写入 / 修改 / 删除(rm / sed -i / kill / iptables -A)直接拒绝 |
| 灰区 | 弹窗询问:允许一次?永远允许?或当黑名单?不处理 = 默认黑名单 |
意义:分析员不必担心 Agent 把机器搞坏;高危动作必须人点过;全过程留痕可审计。
操作步骤(WebUI)
- 新建会话:
"帮我巡检一下 10.10.x.x 这台机器,先看基线,如果异常就深度分析"
- Rex 委派主机巡检 Agent:专家 Agent 接管,有独立 system prompt 和工具栈
- 第一轮基线收集:系统信息 / CPU / 内存 / 进程 / 网络 / 登录记录 / 启动项 / cron(全部白名单)
- 发现异常 → 深度调查:Agent 停下说明发现、列出想执行的敏感命令、逐条弹窗请人工确认
- 产出结构化报告:主机画像 / 异常发现 / 完整时间线 / IoC / 建议动作
- 可选:转定时任务、串进告警研判作为证据链
真实案例走读(挖矿主机时间线还原,~4 分钟)
| 时间 | Agent 动作 |
|---|---|
| 0:10 | 确认是主机巡检 / 应急 Agent |
| 0:33 | Rex 委派,专家 Agent 上机 |
| 0:42 | 基线脚本(白名单无弹窗) |
| 1:06 | 敏感命令触发弹窗"是否允许仅此一次" |
| 1:52 | 发现挖矿痕迹 → 进入深度调查 |
| 2:21 | 写报告到 Workspace |
| 2:58 | 时间线:3/25 系统启动 → 3/27 异常登录 → 3/27 08:00 挖矿启动 |
| 3:14 | 完整入侵链:登录 / 下载 / 定时任务 / 文件 / 网络特征 |
| 3:33 | 用户认领"有些 key 是自己加的" → Agent 不误判 |
产出示例(摘要)
主机: 10.10.x.x
结论: 确认被挖矿攻击
时间线:
2026-03-25 系统启动
2026-03-27 05:18 异常登录(爆破来源 185.x.x.x)
2026-03-27 08:04 下载挖矿程序 /tmp/xmrig
2026-03-27 08:05 创建定时任务 /etc/cron.d/update
2026-03-27 08:07 建立矿池连接 pool.xxx.com:3333
IoC:
- 矿池: pool.xxx.com:3333
- 文件: /tmp/xmrig (sha256: ...)
- 定时任务: /etc/cron.d/update
建议:
- 隔离机器 / 清除恶意二进制 / 重置 SSH key / 爆破 IP 边界封禁边界
| 问题 | 处理 |
|---|---|
| 让 Agent 自己清挖矿 | 不建议,处置由人确认执行 |
| 灰区弹窗太烦 | 在企业 Skill 里扩展白名单 |
| 主机量大 SSH 不够 | Workflow 做批次调度 |
| Windows 主机 | 当前面向 Linux,Windows 另建专家 Agent |
10.3 内网安全产品接入(Network Integration)
"把设备接进来"是 Flocks 进入企业的第一步。 核心决策:接入方式的选型优先级 + API 一句话接入。
接入方式优先级(必记)
| 优先级 | 方式 | 适合 | 不适合 |
|---|---|---|---|
| ★★★ | 官方 / 私有 API | 长期稳定、定时任务、批量 | 确实没开 API |
| ★★☆ | 日志推送 / 消息队列 / 中转脚本 | 设备本身是事件源 | 需实时查询 |
| ★☆☆ | 浏览器登录读页面 | 无 API、仅 Web 控制台 | 主路径长期运行 |
浏览器是兜底,不是主路径。
内网是否必须联网
Flocks 本身不硬性要求公网。需要网络的是模型:私有化 / 内网模型不需要公网,外部云端模型(OpenAI、Claude)需要。
API 接入主路径(推荐)
自然语言辅助接入:提供 API 文档、鉴权方式和典型请求样例后,Rex 可以辅助生成工具、验证调用链路,并将其纳入平台工具体系。
- 新建会话
- 一句话描述:
"帮我 web 搜索 VT 的 API 文档,然后帮我接入 VT 的 API 服务,Key 在我刚才发的文件里"
- Rex 自动执行:
- Web Search 拉文档(或直接用你贴的文档)
- 根据文档生成 Python / API 工具
- 填入 Key
- 自动发起调用验证
- 失败则自己调试,直到成功
- 工具进入 Tools 目录,全平台可用
- 可选:在 Skill 里记调用约定(限频、字段映射)
真实案例走读(VT API 从零接入,~2 分钟)
| 时间 | Rex 动作 |
|---|---|
| 0:02 | 假设有设备 API 文档,先删掉现有 VT 工具 |
| 0:38 | 一句话:"web 搜索 VT API 文档,然后帮我接入" |
| 1:05 | Rex 开始 Web Search |
| 1:33 | 工具创建完成(但"有工具"≠"能跑") |
| 1:48 | Rex 继续验证 Key 能否正常调用 |
| 2:03 | 验证通过,工具入库 |
价值
- 接入速度:原本开发介入 2–3 天,现在 2–3 分钟
- 可沉淀:工具进入 Tools 目录,全局复用
- 可纠错:失败自动调试
- 可迭代:直接在对话里继续改
API 工具 vs MCP 怎么选
- 只给 Flocks 用 → API 工具就够了
- 跨多个 AI 平台复用 → 走 MCP
边界
| 问题 | 处理 |
|---|---|
| 文档是 Word / PPT / 扫描件 | 先转文本(pdftotext / OCR)再给 Rex |
| 只接几个接口 | 告诉 Rex "只接入 /v1/ioc 和 /v1/sample" |
| 跑段时间 401 | Token 过期,去 Tools 刷新 Key |
| 接入字段对不上业务 | 让 Rex 加一层 wrapper |
10.4 浏览器自动化与网页登录(Browser Automation)
核心思路:当系统没有 API,Rex 可以像分析员一样打开网页、登录、点击、抓数据。 但浏览器是兜底方案,不是首选。
最适合 vs 不该用
| 最适合 | 不该用 |
|---|---|
| 只能网页取数(云控制台无 API) | 设备本身有成熟 API |
| 一次性调研 | 每天定时长期运行 |
| 人工登录一次后长驻 | 部署在远程 / 无 GUI 云主机 |
| 发现后端接口用于固化 | 数据量大、频率高 |
| 合规敏感、必须留痕 |
本机安装 vs Docker(必看)
| 部署 | Headed 交互登录 | Headless 后台 | 推荐 |
|---|---|---|---|
| 本机安装 | ✅ | ✅ | 需人工登录 / 扫码 / 验证码 |
| Docker | ❌ | ✅ | 纯后台、API 拉取 |
| 远程云主机 | ❌ | ✅ | 定时任务、批量 |
"让我人肉登录一次然后让 Flocks 继续" → 必须本机安装。
操作步骤
- 新建会话:
"帮我打开 https://某云安全控制台.com,我自己登录之后,你去『告警』页面抓最近 24 小时的所有告警"
- Rex 打开浏览器 → 导航到 URL → 出现登录页停下来提示接管
- 用户扫码 / 输密码 / 过验证码
- Rex 重新接管:找入口 → 时间过滤 → 翻页 / 滚动 → 提取结构化数据
- 发现后端接口:读 XHR / Fetch,识别数据源,固化为稳定 API 工具
实用判断顺序(来需求时按顺序自问)
- 有没有 API?有 → 走 10.3
- 有没有日志推送 / MQ / 定期导出?有 → 从汇聚层捞
- 能不能要 API 文档?能 → 先谈 API
- 都不成立 → 才上浏览器
何时升级到 API 工具
浏览器任务被定时化、运行稳定、后端接口清晰时,让 Rex:
"把这个浏览器流程实际调用的后端接口抽出来,生成独立 API 工具,以后不走浏览器"
浏览器应是进入的桥,不是终点。
边界
| 问题 | 处理 |
|---|---|
| Docker 部署怎么让人登录 | 改本机部署;或本机登录后导出 Cookie 导入 Docker |
| 卡在登录页 | 多半是验证码 / 风控,交人 |
| 页面改版跑不了 | Skill 更新选择器;或让 Rex 重新探索 |
| 反爬很严 | 降速 / 走 API / 放弃 |
10.5 威胁情报与 IOC 研判(Threat Intel)
核心问题:手里只有一个 IP / 域名 / 哈希,如何让 Agent 在几分钟内给出带交叉验证的结论。 Flocks 让 Rex 同时调多个情报源(ThreatBook、VT、GreyNoise、FOFA),交叉比对后结合企业上下文统一判断。
输入 / 输出
- 输入:单个 IOC(IP / 域名 / URL / 哈希)、IOC 列表、相关上下文(告警 / 资产)
- 输出:研判结论(良性 / 可疑 / 恶意 + 置信度)、标签 / 家族、交叉验证结果、建议动作、持续跟踪任务
操作步骤
- 新建会话:
"帮我研判 IOC
8.8.8.8,查 ThreatBook、VT、GreyNoise,交叉判断后给结论" - Rex 识别 IOC 类型 → 并行调用已接入情报工具 → 字段对齐
- 交叉判断 + 结构化输出:
- 多源冲突时按 Skill 设定的优先级裁决
- 结合 IOC 自身特征(如 8.8.8.8 是 Google 公共 DNS)
- 给一句话结论 + 详细理由 + 建议
- 可选:批量研判 / 持续跟踪(转任务中心)
真实案例走读(8.8.8.8)
| 阶段 | 结论 |
|---|---|
| 识别 | 公网 IPv4 |
| 并行查询 | ThreatBook / VT / GreyNoise |
| 字段对齐 | ThreatBook:Google 公共 DNS;VT:干净;GreyNoise:扫描器命中但标签 benign |
| 交叉判断 | 多家都指向"Google 公共 DNS,良性基础设施",置信度高 |
| 企业上下文 | 检查近期告警,如出现则提示"合法 DNS 外联被误判" |
| 结论 | 良性 / 不需处置;建议优化检测规则白名单 |
产出示例
{
"ioc": "8.8.8.8",
"type": "ipv4",
"verdict": "benign",
"confidence": 0.95,
"conclusion": "Google 公共 DNS 基础设施,良性。",
"sources": {
"threatbook": {"tags": ["public_dns", "google"], "verdict": "benign"},
"virustotal": {"malicious": 0, "suspicious": 0},
"greynoise": {"classification": "benign", "actor": "Google Public DNS"}
},
"enterprise_context": {
"recent_alerts": 42,
"note": "告警量大但都是 DNS 外联,建议优化规则白名单"
},
"suggested_action": "whitelist_in_detection_rules"
}批量 / 持续跟踪
- 批量:一次 10 / 50 / 100 个 IOC,Rex 自动分片、独立落盘、汇总表
- 持续跟踪:每日检查标签变化 / IOC 族新增样本 / 事件 TTP 更新,挂任务中心
和其他场景联动
| 下游 | 使用方式 |
|---|---|
| 告警研判 | 告警里外联 IP / 下载域名触发 IOC 研判子流程 |
| 资产测绘 | 外部扫描源 IP 反查恶意度 |
| 威胁狩猎 Workflow | 以 IOC 为起点向外扩展关联样本 / C2 |
边界
| 问题 | 处理 |
|---|---|
| 多家结论冲突 | Skill 里写优先级和综合规则 |
| 限频 | Skill 限速 + 缓存层 |
| 只接了一家 | 能用但置信度打折,建议 ≥2 家 |
| 判断 APT 归属 | 仅参考意见,不作终结 |
10.6 互联网资产测绘(Asset Discovery / ASM)
核心问题:给一个域名 / 企业名,画一张暴露在互联网上的资产完整图。 Flocks 的价值:多外部测绘源 + 内部 CMDB + 威胁情报在同一上下文组装起来。
输入 / 输出
- 输入:根域名 / 企业名 / IP 段 / 混合种子
- 输出:资产清单、分类视图(业务 / 地域 / 环境)、风险视图、diff 视图(持续跟踪)
操作步骤
- 新建会话:
"帮我测绘
threatbook.cn的互联网资产,包括子域、对外端口和 Web 服务,归类输出" - 多源并行测绘:识别种子 → 并行调工具 → 去重合并(字段取并集、verdict 取严格值)
- 归类聚合:按业务 / 环境 / 技术栈 / 地域;归类规则可沉淀成 Skill
- 内部关联(CMDB):匹配已登记 / 发现影子资产 / 拼责任人 / WHOIS 或证书推测归属
- 风险打标:威胁情报反查 / 漏洞情报 / 证书状态
- 输出报告:概览 + 资产列表 + 风险 Top N + 变化清单
真实案例走读(threatbook.cn)
| 阶段 | 动作 |
|---|---|
| 种子 | threatbook.cn |
| 测绘 | 并行调 ThreatBook 资产 + FOFA + 证书透明度日志 |
| 去重合并 | 同 IP 多家字段取并集 |
| 归类 | 主站 / 官博 / 文档 / 后台 / CDN / 三方 |
| 关联 | 匹配 CMDB(实际项目 80–90% 可匹配) |
| 风险打标 | 证书状态 / 情报命中 / 暴露管理后台 → 重点 |
| 输出 | Markdown + JSON |
| 后续 | 建议转"每周资产 diff 任务"推企微 |
产出示例(Markdown 摘要)
# threatbook.cn 互联网资产测绘报告
## 概览
- 总资产:42 条
- 子域:28 条
- 对外 IP:11 个
- Web 服务:21 个
- 重点关注:1(管理后台直接暴露外网)
## 分类视图
- 主站 / 官网:www.threatbook.cn, ...
- 产品控制台:console.threatbook.cn
- 文档:docs.threatbook.cn
- API:api.threatbook.cn
- CDN:xxx.cdn.*
## 风险清单
| 资产 | 风险 | 建议 |
| --- | --- | --- |
| xxx.threatbook.cn | 旧版组件存在 CVE-2024-xxxx | 升级或下线 |持续运行:资产 diff
- 每周 / 每日任务:重跑测绘 → 对比基线 → 推送新增 / 消失 / 变化资产
- 变化信号(证书换了 / Banner 变了 / 端口变了)是重要风险信号
边界
| 问题 | 处理 |
|---|---|
| 噪声大(不是我们资产) | Skill 沉淀判定规则:归属 / 证书 subject / DNS SOA |
| 单家平台有盲区 | 多源交叉 + WHOIS + 证书透明度 |
| 影子资产无责任人 | 报告开"无责任人"分区推动补登 |
| 资产量过大(上万) | 按业务 / 部门切片,分布式 Workflow |
| 合规边界 | Flocks 不做攻击性扫描,仅基于公开测绘数据和授权数据源 |
十一、CLI 命令参考
flocks --help| 命令 | 作用 |
|---|---|
flocks start | 启动后端和 WebUI |
flocks stop | 停止服务 |
flocks restart | 重启服务 |
flocks status | 查看运行状态 |
flocks logs | 查看日志 |
flocks update | 升级到最新版本 |
flocks task | 管理任务中心 |
flocks session | 管理会话(导出 / 排查 / 批处理) |
flocks mcp | 管理 MCP 服务 |
flocks skills | 管理 Skills |
flocks export / flocks import | 导出 / 导入会话数据 |
flocks stats | 查看使用统计 |
最常用组合:
flocks start && flocks status && flocks logs升级 / 恢复:
flocks stop && flocks restart十二、配置项索引
| 配置域 | 作用 | 何时调整 |
|---|---|---|
provider | 模型供应商、适配器、模型集合 | 接入 OpenAI Compatible / 本地 / 自建网关 |
api_services | 外部安全服务启用状态 | 接 TDP / ThreatBook / Qingteng 等 |
mcp | MCP 服务接入 | 用 MCP 扩展外部能力 |
channels | 消息通道 | 接飞书 / 企微 / 钉钉 / Telegram |
sandbox | 执行隔离 | 团队 / 生产场景 |
server | 服务层行为 | CORS 等 |
allowReadPaths | 允许读取路径 | 显式授权额外读路径 |
updater | 升级源和策略 | 调整 GitHub / Gitee 更新来源 |
第一次配置优先掌握
provider、channels、api_services。
十三、术语表
| 术语 | 含义 |
|---|---|
| Rex | Flocks 默认主 Agent,承担总控、分析、调度 |
| Agent | 可独立接收目标并执行任务的智能体,可再委派子 Agent |
| Workflow | 把分析步骤、节点关系、I/O 约束组织成可复用流程的运行单元 |
| Skill | 为 Agent 提供领域知识、固定流程或接入规范的能力包 |
| MCP | Model Context Protocol,统一接入外部上下文 / 工具能力的协议 |
| Workspace | 保存输入、输出、中间产物、报告的工作区 |
| Provider | 模型供应商 / 模型适配入口 |
| Task | 由系统排队、执行、记录状态的任务单元 |
| Channel | 把消息送到飞书 / 企微 / 钉钉 / Telegram 等外部触点的能力 |
| Sandbox | 限制执行环境、权限范围和资源边界的运行隔离机制 |
附:新用户最短路径(TL;DR)
- 安装:
curl -fsSL https://gitee.com/flocks/flocks/raw/main/install_zh.sh | bash - 启动:
flocks start→flocks status→ 打开http://127.0.0.1:5173 - 配置:模型清单 → 添加 Provider → 添加模型 → 测试连接 → 设默认模型
- 使用:进入对话管理,向
Rex描述目标 - 进阶:把成熟调查沉淀为 Workflow / Skill,用任务中心做定时运行,用通道把结果推送到企微 / 钉钉
本手册为离线速查版,完整细节与配图请访问 Flocks 在线文档。遇到文档未覆盖的问题,建议先执行
flocks logs并查看任务中心状态,再决定反馈渠道。