ZY Action Platform · LightGotham 落地方案

最基础版「AI 行动系统」Gotham 情报篇 · 落地方案

把「多源情报接入 → 清洗融合 → 实体解析建图 → 查询/图分析 → 时空研判 → 模式告警 → 情报报告 → 协作与权限 → AIP AI 跨产品联动」用真实功能串成一条可演示、可复现、可验收的情报自动化闭环。

适用范围:LightGotham(P4)+ AIP 跨产品联动 形态:开发/演示手册 全部步骤为已实现功能

文档卡片

项目说明
方案名称最基础版「AI 行动系统」Gotham 情报篇——一条端到端的情报接入-研判-行动闭环
业务主题「玄武集团关联网络」情报研判:多源人员/资金/航运情报接入 → 重复实体消解合并 → 知识图谱关联分析 → 地图/时间轴时空定位 → 模式规则命中告警 → 自动生成情报简报 → 全程 ABAC 权限与审计(沿用 Gotham bootstrap 幂等预置的演示数据,无需造数)
覆盖产品P4 Gotham多源接入 / 清洗 / 实体解析 / 知识图谱 / 全局搜索 / 图分析 / 地理 / 时间轴 / 多视图 / 模式识别 / 情报报告 / 协作 / ABAC / 审计哈希链 P1 AIPAutomation Copilot(call_gotham_api 跨产品工具)
Demo 时长完整分幕约 40~60 分钟;验收最小路线约 15 分钟(第 6 节标 ⭐ 项);3 分钟台词见第 7 节
参考依据action/products/gotham/ 当前分支代码(路由 server/server.go、seed server/seed.go、presets pattern/presets.go)、wiki/frontend-intro-v5/markdown/gotham/(16 页前端手册)、wiki/gotham/TADwiki/docs/gotham/API/
前置结论Gotham 已具备「多源接入 + AI/规则检测 + 人工审核 + 报告 + 权限审计」完整能力,无需新增开发即可演示;本方案不做代码改动,只做「把已实现功能串起来」的操作编排。姊妹篇:AIP+Foundry 版见 action/docs/ai-action-demo.html

1 这个 Demo 是什么

1.1 一句话定义

Gotham 版「AI 行动系统」=多源接入/融合 负责把杂乱情报洗成统一实体实体解析/图谱 负责把实体连成可推理的关系网模式识别 负责自动发现可疑行为并告警情报报告 负责一键汇聚成简报留证,最后 AIP Copilot 让你用一句话驱动 Gotham 查数、建实体。人只在该拍板的地方拍板(实体合并人工审核、告警研判、报告发布),其余全自动。

它回答演示中最常被问的四个问题:

  1. 情报从哪来、怎么变成系统里的「对象」? —— 多源接入页配置「连接 + 映射 + 清洗」三段式数据源,运行后原始记录自动映射成图谱节点/边(融合实体)。
  2. 同一批人出现在多个源里怎么办? —— 实体解析四层打分流水线(确定性→规则→模糊→AI 裁决,未配 LLM key 时灰区降级)+ 三阈值带分流 + 人工审核合并兜底。
  3. 系统怎么「主动」发现问题? —— 模式识别规则(frequency/anomaly/association)自动扫描实体与事件,命中落告警,评分排序,人工确认/处置闭环。
  4. 凭什么相信研判结论? —— 实体簇/匹配对可回看、告警带证据链、报告由真实数据汇聚生成、ABAC 策略评估留 trace、审计日志带哈希链可验证。

1.2 Gotham 的「对象 / 本体」怎么理解(对比 Foundry)

从 Foundry(或 ai-action-demo.html)过来的观众最常问:「Gotham 里对象在哪建?本体在哪配?」答案是:Gotham 没有独立的『本体管理』页面,它的语义层是『图谱实体 + 映射配置 + 解析作业』三件事合起来承担的

概念Foundry 对应物Gotham 落点(怎么建/怎么配)
对象类型(person/org/ship…)对象类型 object_type(强 schema,属性列固定)图节点 type 字符串(弱 schema):不需要预先注册,由数据源 mapping_config.node_type、解析作业 entity_type、手工建节点时的 type 字段约定;seed 预置 person/org/ship 三类
属性(列)对象属性(白名单校验)节点 properties 任意键值 JSON,由数据源 mapping_config.property_fields 决定哪些原始列入图
对象实例(行)业务表行图节点(存磁盘 JSON temp/gotham_graph.json)+ 融合实体表 fused_entities(含原始记录 raw 留底)
链接(关系)link 类型图边:数据源边型映射(edge_type/source_field/target_field)自动生成,或 POST /graph/edges 手工建
版本审批draft→review→merge不适用(无版本机);等价的治理卡点是实体合并人工审核ABAC 策略

一句话:Gotham 的「建模」= 建数据源时写好映射配置(记录→节点/边的规则),「实例」= 运行导入 + 实体解析,「查询」= 全局搜索 / 图 API / 时空 API。详见 §5.1/§5.2。

1.3 验收标准(做完后应能逐项打勾)

  1. 在线层:Gotham 后端 18083 /health ok;admin/admin1 登录成功,token 与 AIP/Foundry 互信。
  2. 数据层:多源接入页可见 seed 数据源 gotham_demo_personnel 与 5 条融合实体;新建一个数据源并运行,批次 success、融合实体增加。
  3. 解析层:创建并运行一个实体解析作业,作业 completed;能看到匹配对(auto_merged/review)、实体簇,人工审核「确认合并」后图上代表实体吸收成员。
  4. 图谱层:情报工作台能看到 10 节点 8 边 seed 图(玄武集团/天河贸易/青龙航运/泰和轮…),neighbors/subgraph 可查。
  5. 查询层:全局搜索 /search?q=玄武 并发检索七域(图谱/融合实体/时间轴/地理/报告/任务/项目),命中结果按实际数据出现分类。
  6. 时空层:地图 6 要素与 heatmap 可见;时间轴 9 事件、range/aggregate 可查。
  7. 自动化层:模式识别规则「测试」返回命中数、「评估」落库命中并进告警看板;告警 acknowledge→resolve 闭环可走。
  8. 报告层:从数据生成一份情报简报(entity/incident/analysis 分节),发布后可导出 HTML。
  9. 权限层:ABAC 评估「analyst 读 secret」返回 deny;审计 /audit/verify 哈希链校验通过。
  10. AI 联动层:AIP Copilot 对话经 call_gotham_api 查询 Gotham 图谱节点 / 创建新节点成功。

1.4 范围边界(诚实的“不做什么”)

  • 本方案只串 Gotham 单产品闭环 + AIP Copilot 跨产品联动Foundry 数据管道/本体审批、Apollo 供应链、Swift 卫星结算不在主剧情内(AIP/Foundry 版见 action/docs/ai-action-demo.html)。
  • AI 能力诚实声明:① 实体解析第四层(LLM 裁决灰区)已接线:server 按 LLM key 注入网关(O-012,llm.api_keys 配了 deepseek/dashscope 任一即注入 resolution.NewResolver(db, graphStore, llm, …)),作业勾 enable_ai 后灰区匹配对真实交大模型裁决并产出 ai_reviewed;仅未配置任何 LLM key 时才保持 nil 降级,灰区自动按模糊层分数处理,不报错不阻塞——演示时讲「AI 裁决层真实可用,未配 key 的降级场景灰区自动走审核」;② 情报报告 /reports/generate数据驱动汇聚(把实体/事件/命中按 sections 拼装成报告块),不是 LLM 写作;③ 模式识别是「规则 + 统计」确定性检测,AI 增强属 V2 规划未启用。
  • Neo4j 图存储为可选后端(gotham.graph.mode=neo4j),默认 disk 模式(JSON 落盘 temp/gotham_graph.json,单机演示够用;运维备份经 /ops/backups
  • 依赖 LLM 的环节(AIP Copilot 对话)结果不完全确定,跑偏用自然语言补一句纠正,不算 bug。

2 产品与能力落点

「AI 行动系统」每个环节在 Gotham 里都有一个真实落点:

系统环节承担模块前端入口(Gotham 侧边栏)后端 API(前缀 /api/v1,前端经 /gotham-api/v1 代理)
情报接入与清洗fusion(多源融合)多源接入 /gotham/ingestion/ingestion/sources/ingestion/batches/ingestion/entities
实体消解(本体归一)resolution(四层打分)实体解析 /gotham/resolution/resolution/jobs/resolution/reviews
知识图谱graph(disk/neo4j 双实现)情报工作台 /gotham/graph/nodes/graph/edges/graph/neighbors|subgraph|merge
全局查询search(七域并发)情报工作台搜索框GET /search?q=
图分析analysis(B4 增强)图谱映射/图分区/时序分析页/analysis/graph/path|centrality|community|pagerank|partition|temporal/*(admin)
地理空间geo地图视图 /gotham/map/map/features/map/heatmap/map/radius/map/trajectory/:entity_id
时序研判timeline时间轴 /gotham/timeline/timeline/events/timeline/range|aggregate|forecast|compare
多视图联动views多视图联动 /gotham/views/views/sessions/views/links
模式识别/告警pattern(规则+统计)模式识别 /gotham/patterns/patterns/rules/patterns/hits/patterns/alerts
情报报告reports(数据驱动)情报报告 /gotham/reports/reports/reports/generate/reports/:id/html|pdf|docx
协作工作流collab + eventbus/ws项目协作/任务看板/协同动态/collab/projects|tasks|comments|notificationsGET /ws
权限与审计abac + 审计哈希链访问控制 /gotham/access/access-policies/access-policies/evaluate|traces/audit/verify
AI 跨产品联动AIP Automation CopilotAIP 管理后台 → AI 自动化经营/automation/chat(工具 call_gotham_api,接口目录 products/aip/automation/catalog/gotham.go

3 一条端到端链路(全景图)

主剧情推荐的业务闭环(点击各节跳到对应操作):

情报事件:线报称「玄武集团」通过多家空壳公司与大额资金划转关联 │ ▼ ① 多源接入:CSV/JSON/数据库/手工 四类情报源配置「连接+映射+清洗」(§5.1) │ 运行导入 → 融合实体落库(fingerprint 去重、SSE 进度、可暂停续传) ▼ ② 实体解析:四层打分(确定性→规则→模糊→AI 裁决)+ 三阈值带分流(§5.2) │ 自动合并 / 灰区人工审核(并排对比 → 确认合并/拒绝)→ 代表实体写图 ▼ ③ 知识图谱:person/org/ship 节点 + member_of/transferred_to/shipped_to 边(§5.3) │ ▼ ④ 查询研判:全局搜索七域并发 / 图 path·centrality·community·pagerank(§5.4) │ ▼ ⑤ 时空定位:地图要素·热力·轨迹(§5.5) + 时间轴事件·聚合·预测(§5.6) + 多视图联动(§5.7) │ ▼ ⑥ 自动发现:模式规则(frequency/anomaly/association)评估命中 → 告警评分排序(§5.8) │ 人工确认 acknowledge → 处置 resolve 闭环 ▼ ⑦ 成果沉淀:数据驱动生成情报简报(实体/事件/命中分节)→ 发布 → 导出 HTML/PDF/DOCX(§5.9) │ ▼ ⑧ 权限留证:ABAC deny 一票否决(analyst 禁读 secret)+ 审计哈希链验证(§5.10) │ ▼ ⑨ AI 联动:AIP Copilot 一句话 call_gotham_api 查图/建节点(§5.11)

图中每个箭头都是「已实现的路由或前端页面」,没有一条是 PPT 上虚构的能力。§5 分幕即按此链路展开。

4 环境准备与启动

4.1 前置依赖与配置

必需

  • 代码分支 action-v5,仓库含 action/ 目录
  • Go 1.25+、Node.js(前端构建)
  • PostgreSQL 17(可选:不可达自动降级 SQLite ./data/gotham_platform.db
  • LLM Key(仅 §5.11 AIP Copilot 联动需要:config.yaml → llm.api_keys.deepseek

关键配置(action/config.yaml

  • gotham.graph.mode: disk(默认;图数据落盘 temp/gotham_graph.json,neo4j 可选)
  • gotham_api.base_url:AIP Copilot 调 Gotham 的地址,缺省已默认 http://localhost:18083,无需配置
  • security.username_fallback=true(默认):AIP/Foundry/Gotham 共享 SECRET_KEY,token 跨产品互信

4.2 启动方式

开发模式(推荐演示用),开两个终端(要演 §5.11 再加 AIP 终端):

# 终端 1 —— Gotham 后端(情报全栈,端口 18083)
cd <本机检出目录>/action            # 例如 E:\GitHub\auto_project_gen\action
go run ./products/gotham/cmd

# 终端 2 —— 前端(Vite 5173,/gotham-api→18083 并重写为 /api/v1;/api→18081;/aip-api→18080)
cd <本机检出目录>/action/web
npm run dev

# 终端 3(可选,§5.11 用)—— AIP 后端
cd <本机检出目录>/action
go run ./products/aip/cmd
  • 健康检查:curl http://127.0.0.1:18083/health 返回 ok;OpenAPI 自文档:http://127.0.0.1:18083/api/docs/ui
  • 直连 API 演示时用 http://localhost:18083/api/v1/…(脚本/回归);走前端代理则用 /gotham-api/v1/…
  • 启动即完成:建库(PG chatbi_action_dev 优先,与 AIP/Foundry 同库不同表)→ AutoMigrate 全部表 → 幂等 seed(见 §4.3)→ 监听 18083。
Windows 提醒:bash 的 cwd 每次重置,命令带全路径 cd … && … 前缀;停进程用 PowerShell Stop-Process -Name xxx -Force(勿用 taskkill,WOW64 杀不掉 64 位进程);8080/8000 已占用勿用,Gotham 固定 18083。

4.3 登录与演示数据(bootstrap 幂等 seed)

说明
账号超级管理员 admin / admin1(环境变量 DEFAULT_ADMIN_USERNAME/PASSWORD 可覆盖)。演示 ABAC 时再注册一名 analyst 角色用户更真实。
图谱 seed10 节点(person/org/ship,含 1 个 classification=secret 的玄武集团)+ 8 边(member_of / transferred_to[金额 50 万] / shipped_to / operates / associated_with),固定 ID 幂等 upsert
融合 seedmanual 数据源 gotham_demo_personnel(5 条人员记录:张远/李四/王敏/吴刚/赵敏,含 org/role/amount),已运行导入成功
地理 seed6 要素:北京联络点/上海货栈/广州港口/青岛锚地/深圳观察点 5 个点 + 华北-华东航线 1 条线(部分关联 entity_id)
时间轴 seed9 条事件(2026-07~08):meeting/movement/transaction/registration/incident,severity low→critical,部分关联图节点
模式 seed2 条演示规则(「高频事件预警」frequency / 「大额资金异常」anomaly)+ 预置规则库(反欺诈/企业关联/公共安全三类 ≥5 条,默认 active)
报告 seed1 条《玄武集团关联网络情报简报》(heading/paragraph/table/kv 块,draft 态)
ABAC seed3 条策略:「分析师禁读机密」(deny,priority 100)/「分析师可读内部数据」(allow)/「管理员全量放行」
“改完跑偏”补救:重启 Gotham 后端即幂等 seed;图数据在 temp/gotham_graph.json,删掉该文件重启可还原图谱初始态(数据库平台表保留)。删图上节点用情报工作台删除按钮或 DELETE /graph/nodes/:id

5 主剧情:玄武集团关联网络「接入-研判-行动」闭环

5.1 第一幕 · 多源接入:对象怎么创建

目的:回答「Gotham 里的对象从哪来」——建数据源 → 配映射 → 运行导入,三步把原始记录变成图谱实体候选。入口:Gotham 侧边栏 → 多源接入/gotham/ingestion)。

操作(推荐边讲边配一个新源)

  1. 点「创建数据源」,填名称(全局唯一,编辑不可改)与显示名,来源类型四选一file_csv / file_json(文件路径)/ database(连接器参数 + 查询 SQL,口令 AES 加密落库)/ manual(直接预置 records 数组——演示最稳,无外部依赖)。
  2. 映射配置(本体的核心,表单/JSON 双模式):节点型node_type(如 person)+ id_field(唯一标识列)+ label_field(名称列)+ property_fields(哪些列入图属性);边型edge_type + source_field/target_field(两端实体标识列)。
  3. 清洗规则(可选):勾选启用 + 错误策略 skip/strict/tolerant + 预设按钮逐个追加(去首尾空格/空值统一/日期标准化/手机号规整/全角转半角/正则替换/枚举映射)。
  4. 推荐演示数据(与 seed 人员刻意重叠,为 §5.2 解析供料)——manual 源 records 示例:
    [
      {"entity_id":"intel_a_001","name":"张远","org":"玄武集团","role":"头目","amount":260000},
      {"entity_id":"intel_a_002","name":"张远","org":"玄武集团","role":"出资人","amount":260000},
      {"entity_id":"intel_a_003","name":"ZW航运-赵敏","org":"天河贸易","role":"财务","amount":120000}
    ]
    ①②是同一人的两条异源记录(同名不同 id,fuzzy 层会给出高相似分);③演示规则层谐音归一(“赵敏” vs “ZW航运-赵敏”)。
  5. 保存后点数据源行内 运行:确认后 POST /ingestion/sources/:id/run 异步执行,立即返回 running 批次;前端经 SSE(fetch + ReadableStream 带 Bearer 头)实时推进进度条。大文件可 暂停/继续(断点续传按 ResumeOffset)。
  6. 批次终态后看「融合实体」表:每条记录一行,含 schema_type(node/edge)、fingerprint(sha256 去重键)、status=pending(待解析)。

怎么验

  • 批次列表出现 success(或 partial)行,详情弹窗可见 total/imported/failed/error_log;融合实体表新增 3 条 pending 实体。
  • 清洗生效:故意传一条空名称记录 → 按 error_strategy 被跳过并记入 error_log,而不是整批失败。
两个必知边界(实测):database 源复用连接器工厂 allow-list,默认仅放行 MYSQL/SQLSERVER/POSTGRESQL(SQLITE 需显式授权),连不上先查这里;② 编辑数据源时 name 与 source_type 不可改(置灰),改名需删除重建;删除数据源保留历史批次与融合实体。

5.2 第二幕 · 实体解析:本体信息怎么配置与归一

目的:多源重复实体合并成一个图谱节点——这是 Gotham 的「本体治理」卡点。四层打分流水线 + 三阈值带分流 + 人工审核闭环。入口:侧边栏 → 实体解析/gotham/resolution)。

操作

  1. 「作业管理」页创建解析作业:名称(全局唯一)、实体类型(datalist 常用 person/org/ship/incident/asset,可自由输入)、参与数据源(勾选 §5.1 的两个源)、AI 层 enable_ai 勾选(见下方 AI 层说明)→ 点「创建并运行」POST /resolution/jobs + 自动 POST /resolution/jobs/:id/run)。
  2. 作业后台执行 四层打分,前端每 2s 轮询作业详情(60s 上限):
    L1 确定性  external_id / fingerprint 完全一致        → 1.00  自动合并
    L2 规则    归一化名称相等 → 0.95;拼音首字母同串 → 0.85(谐音,如 张伟/章伟)
    L3 模糊    Levenshtein / JaroWinkler / Soundex / Dice 组合相似度
              (L2/L3 叠加属性加成:phone/email 同名值相等 +0.12、其余同名键 +0.04,总上限 +0.20)
    L4 AI      灰区 [0.35, 0.85) 且作业勾 enable_ai、后端已注入 LLM 网关时交大模型裁决(见下)
    三阈值带:  score ≥ 0.90 → auto_merged(自动合并)
              0.70 ≤ score < 0.90 → review(进人工审核)
              score < 0.70 → rejected(拒绝)
              阈值带作业级可配:API thresholds 字段须满足 0 < candidate < accept ≤ 1,缺省仍 0.90/0.70
  3. 作业 completed 后看详情面板:统计卡(候选实体/匹配对/自动合并/待审核/AI 裁决/实体簇)+ 实体簇列表 + 匹配对列表(按状态过滤)。
  4. 切「人工审核」标签:review 态匹配对以实体 A/B 并排属性卡片展示(含匹配依据与相似分)→ 填可选审核理由 → 点确认合并(实体 B 吸收进代表实体并写图,POST /resolution/reviews/:id/confirm)或拒绝。审核写操作经 ABAC PEP(resolution.review),deny 命中返回 403。
  5. 回「情报工作台」搜合并后的代表实体:图上只保留一个节点,fused_entities 的 resolved_entity_id 已回填。

怎么验

  • 作业 completed;两条「张远」记录出现在同一实体簇(L1/L3 分流);人工审核确认后簇成员数变化。
  • 「确认合并前图谱无新节点、确认后代表节点属性吸收成员」——审核闸门是真的。
AI 层说明(重要):后端已按 LLM key 注入网关(O-012:config.yaml → llm.api_keys 配了 deepseek/dashscope 任一即注入,都为空才保持 nil);作业勾 enable_ai 后,灰区 [0.35, 0.85) 匹配对交大模型裁决并产出 ai_reviewed,LLM 调用失败自动降级回 L3 分数、不阻塞作业。仅未配 key 的降级场景下,灰区自动按 L3 模糊分分流到人工审核。演示话术:「勾了 AI 层且后端配了 key,灰区匹配真走大模型裁决并打 ai_reviewed;没配 key 时按模糊相似度分流,保证不漏判」。另:后端有 POST /resolution/reviews/:id/split(拆分已合并实体),前端暂未提供按钮,需走 API。

5.3 第三幕 · 知识图谱:节点与边

目的:看懂「情报对象在图上的形态」,并演示手工建实体(不经过导入的直接姿势)。入口:侧边栏 → 情报工作台/gotham)。

操作

  1. 工作台看 seed 图:点「玄武集团」(org,classification=secret)看属性与关联边(张远/李四 member_of、transferred_to 天河贸易 amount=500000)。
  2. 手工建节点(API 演示,对应 Copilot 目录里的 gotham_create_graph_node):
    curl -X POST http://localhost:18083/api/v1/graph/nodes \
      -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
      -d '{"type":"person","name":"神秘出资人","properties":{"region":"华北","amount":999999},"source":"线报-2026-09"}'
  3. 建边连回已知实体(POST /graph/edges,source_id/target_id/type/weight/properties),如 financed → 玄武集团。
  4. 查邻居 GET /graph/nodes/:id/neighbors、子图过滤 GET /graph/subgraph?type=org;发现重复节点时 POST /graph/nodes/merge 合并(TAD-04)。

怎么验

  • 新节点/边立即出现在工作台与 GET /graph/nodes 列表;GET /graph/stats 计数 +1。
  • graph stats 显示节点/边总数与类型分布,与 seed+新增一致。
图存储默认 disk 模式(JSON 文件 temp/gotham_graph.json,进程内存 + 落盘);配置 gotham.graph.mode=neo4j 并填 Bolt 连接即可切换 Neo4j,API 不变——「单机优先、不过度封装」的典型落点。

5.4 第四幕 · 怎么查询:全局搜索 + 图分析

目的:把「图里有什么」变成「一句话/一次调用问出来」。Gotham 的查询入口比 Foundry 更「情报化」:

入口在哪适合问真实例子
全局搜索情报工作台搜索框(GET /search?q=「这个词和谁有关」玄武 → 七域并发(图谱节点/融合实体/时间轴事件/地理要素/报告/任务/项目,每域限 10 条、空分类不返回)
图邻域查询工作台节点详情「这个人的直接关系网」/graph/nodes/graph:person:zhy/neighbors → 所属组织+同组织人员+关联人
图分析(admin)图谱映射/时序分析页「路径/中心性/社区/影响力」/analysis/graph/path(两实体关系链)、centrality(谁是关键中间人)、community(团伙划分)、pagerank(影响力排序)
时序图分析时序分析页 /gotham/temporal「某时间段的关系演变」/analysis/graph/temporal/subgraph|trend|path(时窗子图/时间桶统计/时窗最短路径)

怎么验

  • 搜索「玄武」七域并发、图谱/融合实体等域按实际数据出现命中行(空分类不返回;seed 报告标题含「玄武」亦会命中报告域);搜索「赵敏」能同时看到融合实体(原始记录)与图节点(归一后)。
  • 图分析任选一个算法(如 centrality)返回分数列表——注意 /analysis/* 需要 admin 角色

5.5 第五幕 · 地图视图

目的:给关联网络加空间维度。入口:地图视图/gotham/map)。

操作与验证

  1. 看 seed 6 要素:5 个点(北京联络点/上海货栈/广州港口/青岛锚地/深圳观察点)+ 1 条航线线要素(华北-华东航线)。
  2. 手工建要素(POST /map/features):{"name":"疑似交接点","geometry_type":"point","coordinates":[122.1,30.5],"properties":{"entity_type":"ship"},"entity_id":"graph:ship:taihe"}——entity_id 关联图实体后可从实体下钻到地图。
  3. 空间查询三连:GET /map/features/bbox(框选)、GET /map/features/radius(半径)、GET /map/heatmap(热力聚合);GET /map/aggregate/regions 按区域聚合。
  4. 轨迹回放:GET /map/trajectory/:entity_id 查某实体(如泰和轮)的时空轨迹。
  5. 图层管理:/map/layers 增删改查,按业务分组控制要素显隐。

5.6 第六幕 · 时间轴

目的:给关联网络加时间维度,并为 §5.8 模式规则供料。入口:时间轴/gotham/timeline)。

操作与验证

  1. 看 seed 9 事件(2026-07~08):高管会晤/离港/大宗交易/船舶登记/货栈异常/靠泊/检查/集会/航线异常——incident 类事件是「高频事件预警」规则的评估对象。
  2. 新建事件(POST /timeline/events):{"title":"可疑夜间卸货","event_time":"2026-09-01T02:00:00Z","event_type":"incident","severity":"high","entity_id":"graph:ship:taihe","location":"舟山"};event_type 枚举 meeting/movement/transaction/registration/incident,severity low/medium/high/critical。
  3. 时序查询:/timeline/events/range(区间)、/timeline/aggregate(按周期聚合)、/timeline/forecast(趋势预测)、/timeline/compare(双周期对比)、/timeline/periods

5.7 第七幕 · 多视图联动

目的:图谱/地图/时间轴三视图同一筛选条件联动,讲「情报研判不是切页面,是同一个案的多面」。入口:多视图联动/gotham/views)。

操作与验证

  1. 创建视图会话(POST /views/sessions),多视图页同时打开图谱/地图/时间轴面板。
  2. 应用过滤器(POST /views/sessions/:id/filter,如按实体类型/时间窗)→ 三个视图同步收窄;DELETE …/filter 清除。
  3. 建立视图联动关系(POST /views/links)后在图谱点选实体,GET /views/sessions/:id/linked 返回联动结果。
  4. 协作闭环:把会话存为共享视图(/collab/projects/:id/shared-views),团队成员打开即见同一研判现场。

5.8 第八幕 · 模式识别:自动化发现 + 告警闭环

目的:演示「系统主动发现问题」——把「什么样的事件值得警惕」固化为规则,自动扫描、命中落库、评分排序、人工处置。入口:模式识别/gotham/patterns)。

操作

  1. 看规则列表:seed 2 条(「高频事件预警」:30 天内 incident ≥3 起触发;「大额资金异常」:person 实体 amount > 10 万)+ 预置规则库(反欺诈/企业关联/公共安全三类,active)。
  2. 新建一条规则练手:三种类型 frequency(时间窗频次)/ anomaly(属性阈值,算子 gt/lt/gte/lte/eq)/ association(同一实体事件类型组合共现);表单切类型自动填 config 模板;config JSON 如 {"window_days":30,"min_count":3,"event_type":"incident"}
  3. 先点「测试」POST /patterns/rules/:id/test不落库只返回命中数)确认规则不跑偏 → 再点「评估」(落库命中)或「全量评估」(所有启用规则批量执行,返回 total/hit/miss/errors 卡片)。
  4. 规则生命周期:draft→测试中→启用中→已禁用→已归档(POST /patterns/rules/:id/transition 状态机约束非法流转;预置规则默认 active 直通)。
  5. 命中闭环:「命中记录」表查看(证据/次数/严重度)→ 点确认acknowledge)→ 点处置resolve);「告警看板」按 score = 严重度基础分 × 类型置信度 × 新鲜度衰减 排序。

怎么验

  • frequency 窗口 = 「评估时刻往前推 window_days」:seed 3 条 incident 中只有 2026-08-06 / 08-15 两条落在 30 天窗内,先按 §5.6 新建一条 9 月 incident(如 09-01「可疑夜间卸货」)凑满 3 条,「高频事件预警」评估即命中。
  • 「大额资金异常」对 seed 人员 amount(张远 20 万/赵敏 12 万 > 10 万阈值)命中——正好回应主剧情资金线。
  • 告警看板出现带 score 的条目,acknowledge → resolve 状态机走通。
「自动化」不只是手动点评估这一条路:模式调度器对 active 且配了 cron schedule 的规则定时评估;同时订阅图事件总线 node.created / edge.created图谱一有新节点/边(如实体合并写图、手工建实体)即实时重新评估——演示时建完节点立刻看告警看板,常有惊喜。

5.9 第九幕 · 情报报告:数据驱动生成与导出

目的:把研判成果沉淀成可发布的简报——不是 LLM 写作,而是从真实数据按 sections 汇聚,保证每个数字可溯源。入口:情报报告/gotham/reports)。

操作

  1. 从数据生成(POST /reports/generate):sections 每节指定 kindentity(嵌入实体属性,传 entity_type/entity_id)/ incident(时间范围内事件表)/ analysis(命中统计)/ general(自由段落):
    {
      "title": "玄武集团资金网络专报",
      "report_type": "analysis",
      "sections": [
        {"kind":"entity","entity_type":"org","entity_id":"graph:org:xuanwu"},
        {"kind":"incident","start_time":"2026-07-01T00:00:00Z","end_time":"2026-09-01T00:00:00Z"},
        {"kind":"analysis"},
        {"kind":"general"}
      ]
    }
  2. 生成器读 GraphStore/时间轴/命中记录拼装报告块(heading/table/kv)并落草稿 → 前端编辑润色 → 发布POST /reports/:id/publish,draft→published)或归档。
  3. 导出三格式:GET /reports/:id/html|pdf|docx——现场点一个 HTML 预览最有说服力。
  4. 进阶:模板库(/reports/templates + from-template)、报告复制、嵌入对象(/reports/:id/objects,引用实体/图表并可 refresh 刷新)、版本管理(/reports/:id/versions + restore)。

怎么验

  • 生成的报告内容与图谱/时间轴数据一致(实体属性表、事件时间表、命中统计)。
  • 发布后导出 HTML 可直接打开;seed 报告《玄武集团关联网络情报简报》可作对照样例。
诚实边界:报告「生成」= 结构化数据汇聚(真实、可溯源、无幻觉),「研判结论/文字表述」仍需分析师撰写或后续接入 LLM 润色——演示时强调「数字是真的,人只写观点」。

5.10 第十幕 · 协作与访问控制(ABAC)

目的:演示「情报系统的秩序」:谁能看什么(ABAC 属性策略)、多人怎么协作(项目/任务/评论)、证据怎么防篡改(审计哈希链)。入口:访问控制/gotham/access)、项目协作/任务看板/协同动态页。

ABAC 演示(deny 一票否决)

  1. 看 seed 3 策略:deny(analyst × classification=secret × read, priority 100) > allow(analyst × internal) > allow(admin × *)。
  2. 用「策略评估」试算(POST /access-policies/evaluate):subject {"role":"analyst"} + resource {"classification":"secret"} + action read → 返回 deny(玄武集团节点就是 secret,analyst 打开它会被拒)。
  3. 换成 subject {"role":"admin"} → allow。评估留痕:GET /access-policies/traces 可回看每次判定。

协作与实时

  1. 项目协作(/gotham/projects):建「玄武专案」项目 → 加成员 → 成员角色调整/移除(PUT|DELETE /collab/projects/:id/members/:user_id,仅 owner)→ 建任务(/collab/projects/:id/tasks,状态机 transition 推进)→ 评论 @ 同事。
  2. 协同动态(/gotham/collab):WebSocket(GET /api/v1/ws,Vite 代理支持 ws)实时推送任务/评论/告警动态;通知可单条/全部已读。

怎么验

  • analyst 身份读 secret 节点被拒、admin 放行;trace 列表有记录。
  • 审计校验:GET /api/v1/audit/verify 返回哈希链完整——「任何一条情报操作都无法静默篡改」。

5.11 第十一幕 · AI 联动:AIP Copilot 一句话驱动 Gotham

目的:把「AI 行动系统」点题——AIP 的 Automation Copilot 经 call_gotham_api 工具(接口目录 products/aip/automation/catalog/gotham.gogotham_api.base_url 缺省已指向 18083)直接读写 Gotham。这是 Gotham 与平台其他产品的 AI 纽带。入口:AIP 管理后台 → AI 自动化经营/admin/automation,需先启动 AIP 后端并配置 LLM Key)。

三段对话演示(照着念,跑偏就补一句纠正)

  1. :「帮我查一下 Gotham 图谱里玄武集团的关系网络」→ Copilot 调 gotham_list_graph_nodes(type=org)+ gotham_get_graph_node,把节点属性与关联边汇总成回答。
  2. :「在 Gotham 里新建一个 person 节点,名字叫『神秘出资人』,属性 region=华北、amount=999999」→ Copilot 调 gotham_create_graph_node(执行前会说明影响,确认后放行),回工作台刷新可见。
  3. :「给『神秘出资人』建一条 financed 边指向玄武集团,权重 0.9」→ gotham_create_graph_edge。也可以直接问「最近 Gotham 里有哪些事件」(gotham_list_timeline_events)或「看看玄武集团的邻居」(gotham_graph_neighbors)。

怎么验

  • 对话落 automation_sessions/automation_messages;每次工具调用审计 AUTOMATION_TOOL_CALL
  • Gotham 侧 GET /graph/nodes 出现 Copilot 建的节点;GET /audit/logs(AIP 侧)可回看调用链。
  • AIP 工作流 call_api 节点也可直调 Gotham 端点(url 填 http://localhost:18083/api/v1/…),适合做「定时巡检图谱并通知」的自动化。
鉴权说明:AIP/Foundry/Gotham 共享 SECRET_KEY 且 username_fallback=true,Copilot 的调用以互信 JWT 身份到达 Gotham(admin 通配权限);若 Copilot 提示 client 未配置(CLIENT_UNAVAILABLE),检查 config 的 gotham_api.base_url(有 env 兜底 GOTHAM_API_BASE_URL)与 Gotham 是否在线。

6 分步验收测试单

给演示/回归用,勾选式 PASS/FAIL。标 是最小演示集。

#验收点操作(详见节)通过标准
⭐1Gotham 在线 + 登录§4.2/4.3/health ok;admin/admin1 登录,工作台可见 seed 图
⭐2seed 数据齐全§4.3图 10 节点 8 边;融合实体 5 条;地理 6 要素;时间轴 9 事件;报告 1 份;策略 3 条
⭐3新数据源创建+运行§5.1manual 源批次 success;融合实体新增且状态 pending
⭐4实体解析+人工审核§5.2作业 completed;同名实体进 review;confirm 后合并写图
⭐5全局搜索七域并发命中§5.4/search?q=玄武 命中图谱/实体/事件/地理等域(并发 7 域,空分类不返回)
⭐6模式规则评估命中§5.6+5.8先补一条 9 月 incident,30 天窗内 3 条 incident 触发「高频事件预警」;告警 acknowledge/resolve 走通
⭐7报告生成+导出§5.9/reports/generate 出稿;发布后 HTML 导出可打开
⭐8ABAC deny 生效§5.10analyst×secret×read = deny;trace 有记录;audit/verify 通过
9图分析算法§5.4admin 调 /analysis/graph/centrality 返回分数列表
10时空查询§5.5/5.6heatmap 返回聚合;timeline/aggregate 返回分桶统计
11多视图联动§5.7filter 后 /views/sessions/:id/linked 返回联动结果
⭐12Copilot 跨产品联动§5.11AIP 对话经 call_gotham_api 查图/建节点成功;Gotham 侧可见
13协作工作流§5.10项目建任务→transition 推进;协同动态 WS 收到推送
14运维备份§5.3POST /ops/backups 产生备份记录;/ops/health 正常

7 3 分钟演示小抄

  1. 开场 20s:翻到情报工作台,指玄武集团节点与关联边——“多源情报已经洗成一张关系网,机密节点带密级。”
  2. 40s:多源接入页新建 manual 源(含两条同名『张远’)→ 运行,SSE 进度条走完——“新情报 30 秒入图候选。”
  3. 70s:实体解析跑作业 → 人工审核页并排对比确认合并——“重复实体机器自动并,拿不准的人拍板。”
  4. 100s:模式识别「高频事件预警」评估 → 告警看板出现带分值的命中——“系统主动喊:这个团伙最近太频繁了。”
  5. 130s:报告页从数据生成专报 → 发布 → 导出 HTML——“结论每个数字可溯源,一键成稿。”
  6. 160s:切 AIP Copilot:“查一下玄武集团的关系”→ Gotham 数据回来;“新建一个可疑人员节点”→ Gotham 里真的多了节点——“AI 不只回答,还能行动。”收工。

8 常见坑与应对(实测经验)

症状原因 / 应对
勾了 enable_ai 但匹配对里没有 ai_reviewed先确认后端已配 LLM key(llm.api_keys 的 deepseek/dashscope 都为空时网关保持 nil):未配 key 属预期降级,灰区自动按模糊层分数分流到人工审核,不报错;已配 key 仍无,则看该对是否落在灰区 [0.35,0.85) 之外(AI 只裁决灰区内匹配对)。
批次一直 running 且进度条不动SSE 流未建立:看 Network 中 /gotham-api/v1/ingestion/batches/:id/progress 是否 200 且有 data 帧;401 重新登录(EventSource 不能带 token,前端用 fetch 流解析)。
保存数据源报「JSON 不合法」JSON 模式下手写格式错误,或 manual 源 records 不是数组;切回「表单编辑」重填。
database 源连不上连接器 allow-list 默认仅 MYSQL/SQLSERVER/POSTGRESQL,SQLITE 需显式授权;演示最稳用 manual 源。
人工审核页为空没有 review 态匹配对:先运行解析作业;或分数全落在自动合并/拒绝带——调高数据重叠度(同名/近音记录)再跑。
图分析接口 403/analysis/* 仅 admin 角色;用 admin 登录演示。
图数据改乱了temp/gotham_graph.json 重启还原图谱 seed;数据库平台表(融合实体/解析作业/告警)不随删,必要时清库重启。
解析作业 60s 轮询超时候选量大或灰区多:稍后手动刷新看终态,作业仍在后端执行,勿重复点运行。
「拆分已合并实体」页面找不到后端有 POST /resolution/reviews/:id/split,前端未提供按钮,走 API。
Copilot 提示 CLIENT_UNAVAILABLE / OAG_UNAVAILABLEGotham 未在线或 gotham_api.base_url 未指向 18083;先起 Gotham 再对话。LLM 环节跑偏属正常方差,补一句明确要求重试。
报告生成的内容太「干」生成器只汇聚数据(entity/incident/analysis 分节);观点段落用 general 节手写,或发布前在编辑器润色。
端口/进程问题Gotham 固定 18083;8080/8000 勿用;停进程用 PowerShell Stop-Process;bash 命令带 cd 全路径 && 前缀。

9 API 速查手册

全部端点在 Gotham 后端 http://localhost:18083/api/v1(前端代理前缀 /gotham-api/v1;Vite 重写为 /api/v1),均 Bearer <token>(除 /auth/*)。自文档:GET /api/docs / /api/docs/uiadmin = 仅管理员(图分析域)。

端点鉴权用途
认证POST /auth/register · /auth/login · /auth/refresh · /auth/logout · GET /auth/me公开/prot注册/登录/刷新轮换/当前用户
图谱GET|POST /graph/nodes · GET|DELETE /graph/nodes/:id · POST /graph/edges · DELETE /graph/edges/:id · GET /graph/stats · GET /graph/nodes/:id/neighbors · POST /graph/nodes/merge · GET /graph/subgraphprot节点/边 CRUD 与查询、实体合并
图分析GET /analysis/graph/expand|path|centrality|community|pagerank|closeness|label-propagation|scc|subgraph|stats · POST /graph/partition · GET /graph/partitions · POST /graph/temporal/subgraph|trend|pathadmin路径/中心性/社区/分区/时序图分析
多源接入GET|POST /ingestion/sources · GET|PUT|DELETE /ingestion/sources/:id · POST /ingestion/sources/:id/runprot数据源 CRUD 与运行(异步)
GET /ingestion/batches · /batches/:id · /batches/:id/progress(SSE) · POST /batches/:id/pause|resume · GET /ingestion/entitiesprot批次进度/暂停恢复/融合实体
实体解析POST /resolution/jobs · /jobs/:id/run · GET /resolution/jobs · /jobs/:id · /jobs/:id/stats|clusters|pairsprot解析作业生命周期与结果
GET /resolution/reviews · POST /resolution/reviews/:id/confirm|reject|splitprot人工审核合并/拒绝/拆分
全局搜索GET /search?q=&limit=(limit≤10)prot图谱/实体/事件/地理/报告/任务/项目七域并发
地理GET|POST /map/features · GET|PUT|DELETE /map/features/:id · GET /map/features/bbox|radius · GET /map/aggregate/regions · /map/heatmap · /map/trajectory/:entity_id · GET|POST /map/layersprot要素/空间查询/热力/轨迹/图层
时间轴GET|POST /timeline/events · GET|PUT|DELETE /timeline/events/:id · GET /timeline/events/range · /timeline/aggregate|forecast|periods|compareprot事件 CRUD 与时序分析
模式识别GET|POST /patterns/rules · GET|PUT|DELETE /patterns/rules/:id · POST /patterns/rules/:id/evaluate|test|transition|toggle · POST /patterns/evaluate-allprot规则 CRUD/评估/测试/生命周期
GET /patterns/hits · POST /patterns/hits/:id/acknowledge|resolve · GET /patterns/alerts · POST /patterns/alerts/:id/acknowledge|resolveprot命中与告警闭环
报告GET|POST /reports · GET|PUT|DELETE /reports/:id · POST /reports/:id/publish|archive · POST /reports/generate · GET /reports/:id/html|pdf|docxprot报告 CRUD/生成/发布/导出
GET /reports/templates · POST /reports/from-template · POST /reports/:id/duplicate · GET|POST /reports/:id/objects · GET /reports/:id/versions · POST /reports/:id/versions/:version/restoreprot模板/复制/嵌入对象/版本
访问控制GET|POST /access-policies · GET|PUT|DELETE /access-policies/:id · POST /access-policies/evaluate · GET /access-policies/tracesprotABAC 策略/试算/留痕
多视图GET|POST /views/sessions · GET|PUT|DELETE /views/sessions/:id · POST|DELETE /views/sessions/:id/filter · GET /views/sessions/:id/linked · POST|GET /views/links · DELETE /views/links/:idprot视图会话/过滤/联动
协作GET|POST /collab/projects · GET|PUT|DELETE /collab/projects/:id · POST /collab/projects/:id/archive · GET|POST /collab/projects/:id/members · PUT|DELETE /collab/projects/:id/members/:user_id · GET|POST /collab/projects/:id/tasks · GET|PUT|DELETE /collab/tasks/:id · POST /collab/tasks/:id/transitionprot项目/成员角色/任务状态机
GET|POST /collab/projects/:id/comments · DELETE /collab/comments/:id · GET /collab/projects/:id/activities · GET /collab/notifications · POST /collab/notifications/:id/read · /read-all · GET|POST /collab/projects/:id/shared-viewsprot评论/动态/通知/共享视图
运维/审计GET /ops/health · GET|POST /ops/backups · GET /ops/backups/:id · GET /audit/verify · GET /event-log · GET /license/info · GET /wsprot健康/备份/审计哈希链/事件总线/WS

10 相关文档索引

  • 产品与路线:wiki/OVERVIEW.mdwiki/ROADMAP.md;Gotham PRD:wiki/gotham/PRD-v4.md;技术架构:wiki/gotham/TAD/01~14(01 平台总览、02 多源融合、03 实体解析、04 知识图谱、05 图分析、06 地理、07 时间轴、08 多视图、09 模式识别、10 报告、11 协作、12 访问控制、13 边缘离线、14 部署运维)
  • 模块开发文档:wiki/docs/gotham/{multi_source_fusion, entity_resolution, knowledge_graph, graph_analysis, search, geospatial_analysis, timeline_analysis, multi_view_linkage, pattern_recognition, intelligence_reporting, collaboration_workflow, access_control_security, ops, edge_offline}.md;API 细则:wiki/docs/gotham/API/*-API.md
  • 前端页面操作手册(逐页详解,与本方案配套食用最佳)wiki/frontend-intro-v5/markdown/gotham/(16 页:ingestion、resolution、patterns、reports、access、map、timeline、views、projects、tasks、collab、graph-mapping、graph-partition、temporal、ops、overview;另有 HTML 版)
  • 姊妹方案:action/docs/ai-action-demo.html(AIP + Foundry 版最基础 AI 行动系统 Demo)
  • AIP 跨产品工具源码:products/aip/automation/api_tools.gocall_gotham_api)、接口目录 products/aip/automation/catalog/gotham.go;Gotham 服务装配:products/gotham/server/server.go;演示 seed:products/gotham/server/seed.go、预置规则库 products/gotham/pattern/presets.go
  • 前端源码:web/src/views/Gotham*.vueweb/src/views/gotham/、路由 web/src/router/index.js、API 客户端 web/src/api/gothamClient.js(aip_token + 401 自动 refresh)