EASH 产品培训导览 · Pack 构建全流程

解释领域包各模块是什么、谁先谁后、数据从哪来。本页是概念培训,不是系统操作界面。

五个文件,别混
· 产品原型 = 真实系统操作(安装、导入、查看内容)
· 本培训页 = 理解设计逻辑与构建顺序
· 本体类梳理方法论 = 咨询顾问现场怎么拆类(vs CMDB)
· FDE 能力开发手册 = 集成工程师如何把第三方 API 做成可调用工具
· AI接口适配助手 = 对话式生成可调用工具(见需求文档)
· 咨询交付包(consulting-kit)= 填好的真实业务样例
一句话:Pack 构建在干什么?

不是在平台里重建一个 CMDB。为「智能体要能办事」定义一套业务语义模型,再把客户现有系统(CMDB、监控、工单)对齐到这套模型上,最后让真实数据实例进图谱,智能体才能查得准。

第一阶段 · 设计时

① 本体语义模型

类、属性、关系、规程
Pack:本体与关系 + 办事规程

第二阶段 · 设计时

② 对接与对齐

字段映射 + 归一词典 + 连接器
Pack:字段映射 + 归一词典

第三阶段 · 运行时

③ 图谱实例 ABox

连接器 ETL 写入 Neo4j
验收里程碑,非手工灌类

第四阶段 · 能力

③½(可选)+ ④ 可调用工具

AI 适配助手或表单声明 tool_id
先于编排

第五阶段 · 发布

⑤ 智能体编排 + 评测

每步绑定④已声明能力 → 发布
值班员工作台可用

界面上叫「本体与关系」,本质是第一步:构建本体的数据结构(TBox)——有哪些类、每类什么属性、类之间什么关系。完整端到端见 产品运行逻辑;「四层语义」见 方法论(≠ 构建步数)。

产品原型入口:领域包管理 → 顶部「进入本体构建」,或模块行「构建」。可为每类添加属性、关系;办事规程在左侧「全局办事规程」统一管理,各类详情页可查看「关联规程」。

产品运行逻辑:从咨询到值班员问一句话
你的理解大体正确。下面按时间顺序串起来:咨询定场景 → Pack 五步构建 → 管理端接现网 → 值班员运行时办事。
flowchart TB
  subgraph CONSULT["阶段 0 · 咨询(产品外,工作坊)"]
    WS[场景 + CQ 能力问题]
    STORY[故障/办事故事 ALERT-991]
    WS --> STORY --> ONTO_DRAFT[产出:类/关系/映射草稿]
  end

  subgraph PACK["阶段 1–5 · 领域包(管理端 · 领域包管理)"]
    S1[① 本体 TBox
类/属性/关系/规程] S2[② 映射与归一
字段规则 + 归一词典] S3[③ 图谱实例 ABox
ETL 写入 Neo4j] S35[③½ AI适配 可选] S4[④ 可调用工具] S5[⑤ 编排 + 评测发布] S1 --> S2 --> S3 S3 --> S35 --> S4 --> S5 end subgraph ADMIN["横切 · 管理端(与②并行配置)"] CONN[业务系统连接
URL/密钥/健康检查] LIVE[上线工作台八步旅程] CONN --> S3 end subgraph RUN["阶段 6 · 运行时(值班员)"] WB[工作台对话] HAR[Harness 按步骤办事] TG[ToolGate 调④已声明能力] NEO[(Neo4j ③ 或回源 CMDB/监控)] WB --> HAR --> TG --> NEO TG --> WB end ONTO_DRAFT --> S1 S5 --> WB
你的说法对齐产品术语补充说明
先做咨询,梳理场景要哪些数据阶段 0:CQ + 工作坊不在 Pack 五步编号里,但是①的输入;见 本体类梳理方法论
第一步建本体:类、属性、关系、规程① 本体 TBox只定义「表结构」,还没有 pay-gw-03 实例
第二步把企业分散数据和本体对应② 映射与归一含字段映射 + 归一词典;连接器地址在管理端「业务系统连接」配
第三步是不是对接系统、填充数据?② 配规则 + 连接器;③ 看结果③ 不是再对接一遍,是同步完成后的 ABox 验收页;数据由系统自动 ETL写入,非在本体构建里手工录入
第四步声明能力、接口规范④ 可调用工具tool_id + schema + connector/handler;可用 ③½ 助手生成草稿
第五步编排智能体⑤ 智能体编排 + 评测发布每步只能从④清单里选;考过后值班员才能用

③ 运行图谱怎么构建?

  1. 配置阶段(②):写好「Prometheus.labels.pod → Pod.name」等映射行 + 归一词典
  2. 连接阶段(管理端):业务系统连接填 base URL、密钥,测试通过
  3. 同步阶段(自动):连接器按策略 ETL / Webhook 推送 → 先映射取值 → 再归一绑 ci_id → 合并写入 Neo4j
  4. 验收阶段(③ 页面):领域包 →「查看图谱实例」按类浏览,确认场景子图节点数(如 15 个)
  5. 持续运行:新 Pod 上线、新告警产生 → 连接器持续同步,③ 子图自动增长
两套「旅程」别混:
· 领域包管理顶部条:① 本体 → ② 映射 → ③ 图谱实例 → ③½ → ④ 能力 → ⑤ 编排(Pack 内容怎么建
· 上线工作台八步:装 Pack → 咨询导入 → 连接与同步 → 编排 → 评测 → …(租户怎么上线
截图若从蓝色「图谱实例」卡片看起,①② 在上方需向上滚动。

还缺哪些环节?(相对完整 To B 系统)

环节原型/首期说明
用户登录 / 多租户 / RBAC原型未做平台架构已设计 Principal + Scope;编码 Week1 预留
③½ AI 接口适配助手原型已有减轻 FDE 写 Adapter,可选加速器
评测门禁管理端「评测中心」⑤ 的一部分,未考过不能发布
Webhook 自动推送上线工作台第 7 步告警无人工点击触发智能体(P2 路线图)
办事 Trace / 审批 HITL工作台 + 管理端回放运行时治理,非 Pack 构建步
数据存储架构:Neo4j 要单独设计吗?设计写在哪?
常见误解:「③½ AI接口适配助手」= 把数据接进来形成图谱。
实际:③½ 只辅助生成 ④ 办事可调用工具(智能体运行时调 API),不负责 Neo4j 入图。入图走另一条管道(见下图)。
flowchart TB
  subgraph INGEST["管道 A · 入图(形成 ③ 图谱实例)"]
    EXT1[(CMDB / Prometheus / ITSM)]
    CONN[业务系统连接 + Connector 插件]
    MAP[② 字段映射 + 归一词典]
    ETL[GraphSync ETL / Webhook]
    NEO[(Neo4j ABox)]
    EXT1 --> CONN --> ETL
    MAP --> ETL --> NEO
  end

  subgraph RUNTIME["管道 B · 办事(④⑤ 智能体运行时)"]
    AGENT[智能体 Harness]
    TG[ToolGate]
    CAP[④ 可调用工具 tools/*.yaml]
    EXT2[(监控 / 日志 / 图谱查询)]
    AGENT --> TG --> CAP
    CAP --> EXT2
    CAP --> NEO
  end

  TBOX[① 本体 TBox] --> MAP
  TBOX -->|OntoCore 导出 labels/constraints| NEO
  TBOX --> CAP
          

③ 图谱实例的前置条件(与 ③½ 无关)

必须先有在哪配作用
① 本体 TBox领域包 · 本体构建定义 Neo4j 节点标签、属性、关系类型(= 图 schema)
② 映射 + 归一领域包 · 映射与归一定义外部字段如何变成图节点属性
连接器实例管理端 · 业务系统连接base URL、密钥、同步策略 — 这才是「接系统」
至少一次同步自动(ETL/Webhook)GraphSync 写入 Neo4j;③ 页验收结果

原型 Demo 里已有 15 个图谱节点,是因为预置了华东金融云样例 + 连接器已配好,不代表必须先做 ③½。

各库要不要做「结构设计」?写在哪?

存储要不要设计设计是什么 · SSOT 在哪原型怎么体现
Neo4j 要,但不单独画 ER 图 ① 本体 TBox = 图 schema;发布时 OntoCore 自动导出 labels、constraints、索引(平台架构设计/03 §5 OntoCore 导出器) 「本体构建」= TBox;「图谱实例」= ABox 运行数据
PostgreSQL 要(平台元数据) Pack 版本、租户、用户、会话、HITL、审批 — 平台架构设计/02 §五、08 技术选型;DDL 在编码 Week1 落地 原型未展开表结构;管理端办事记录/审批为 UI 示意
ClickHouse 要(审计/Trace) 工具调用、LLM 步骤追加写 — 03 TraceStore 管理端 Trace 回放
Redis 引擎内置 缓存、限流 — 无需业务方设计 不暴露
Prometheus / ELK 客户侧 SSOT EASH 不替代;经 Connector 回源或摘要入 Context 业务系统连接卡片
Pack 文件 领域数据模型 ontology/ mappings/ tools/平台架构设计/05 目录规范 领域包各构建页
口诀:业务语义结构在 Pack 本体(TBox) 里设计;图里跑的数据在 Neo4j(ABox) 里由同步产生;平台账号会话在 Postgres;全量指标日志不进图,办事时经 ④ 回源查。

研发主文档:docs/platform/03-平台架构设计.md(OntoCore、GraphSync)· 02-平台能力全景.md §五数据分类 · 08-技术选型方案.md §七图库分层。

原型操作:本体模型构建界面
界面区域做什么
类列表 + 添加类定义有哪些概念(Pod、Alert…)
类 · 属性这类对象有哪些字段(name、severity…),供后续字段映射对齐
类 · 关系与其他类的边类型(runs_on、depends_on…)
类 · 关联规程哪些全局规程的条件引用了本类(只读关联视图)
全局办事规程Pack 级硬规则 R01~R05,Harness 强制执行;不是挂在某一个类下面,但条件里会写涉及哪些类
办事规程和类的关系:规程是「跨类业务规则」。例如 R01 同时涉及 BusinessService 和 ChangeRequest——所以在两个类的「关联规程」里都能看到 R01,但编辑入口只在「全局办事规程」。
Pack 构建全流程(关系图)
flowchart TB
  subgraph P1["第一阶段:本体语义模型(你要先做的)"]
    CQ[能力问题 / 业务场景
如:告警根因、资产查询] ONTO[本体类 Class
Pod / Alert / 技术服务…] ATTR[类上的属性
name / severity / ci_id…] REL[类之间的关系
runs_on / depends_on / supports…] RULE[办事规程 R01-R05
硬规则,非 CMDB 字段] CQ --> ONTO --> ATTR ONTO --> REL ONTO --> RULE end subgraph P2["第二阶段:各系统对齐到本体"] CMDB[(蓝鲸 CMDB
有自己的表和字段)] PROM[(Prometheus
labels / metrics)] ITSM[(ServiceNow ITSM
变更单字段)] MAP[字段映射
源系统.类.字段 → 本体.类.属性] DICT[归一词典
多源别名 → 统一 ci_id] CONN[连接器
地址、密钥、同步频率] CMDB --> MAP PROM --> MAP ITSM --> MAP MAP --> DICT CONN --> CMDB CONN --> PROM CONN --> ITSM end subgraph P3["第三阶段:能力 + 智能体 + 验证"] SYNC[ETL / Webhook 同步] GRAPH[(知识图谱 Neo4j
实例 ABox)] TOOLS[④ 可调用工具
get_alert / trace_ci…] AGENT[⑤ 智能体编排
每步绑定可调用工具] EVAL[评测题库] MAP --> SYNC DICT --> SYNC SYNC --> GRAPH ONTO --> TOOLS GRAPH --> TOOLS TOOLS --> AGENT ONTO --> AGENT GRAPH --> AGENT AGENT --> EVAL end subgraph USER["用户侧"] WB[值班工作台对话] AGENT --> WB end

实线依赖:必须先有本体(P1),才能做映射(P2);映射通了,实例才能入图;必须先声明可调用工具(④),才能在智能体编排里绑定(⑤)

第一步:构建本体语义模型(≠ 建 CMDB)

根据业务场景梳理:智能体要回答什么问题,就需要哪些概念(类)、每个概念有哪些属性、概念之间有哪些关系

要定义什么举例(华东金融云)数据从哪来
类 ClassPod、Alert、TechnicalService、ChangeRequest… 共 22 类工作坊 + 运维专家访谈;参考咨询交付包 / 教辅-04
属性 PropertyPod.namespace、Alert.severity、ChangeRequest.status同上;属性是「这类东西有哪些字段」
关系 Relationpay-gw-03 runs_on node-07;支付网关 supports 在线支付依赖链白板图;教辅-04 关系表
办事规程 RuleR01 核心变更需 CAB;R05 报告必须带 ID运维制度 + 专家;教辅-03 §6
关键:这一步只定义「语义契约」,还没有 CMDB 里具体哪台机器。就像数据库先建表结构(DDL),再灌数据(DML)。

类怎么拆?不是 CMDB 式「基础设施→网络→交换机」深树,而是场景 CQ + 四层语义 + 故障链。详见独立文档 《本体类梳理方法论》(含可视化对比图与顾问工作坊步骤)。

本体类怎么梳理?(vs CMDB 管理对象)
CMDBEASH 本体
按物理/组织世界分类(基础设施、应用、人员…)智能体场景证据链(告警→CI→服务→变更)
3~5 层 CI 类型树四层语义(结构/功能/动态/规程)+ 结构层 1 层父类
问「公司有哪些资产?」问「CQ 能力问题要不要答?」

打开完整方法论(顾问现场指南)

方法论内新增:能力怎么构建 · 可调用工具原型入口

到「图谱实例」③,数据构建都完成了吗?
不完全是。①②③ = 数据地基。之后还要 ④ 声明可调用工具 → ⑤ 智能体编排绑定 → 评测发布 → 连接器持续同步。

③ 的里程碑:场景子图可查。④⑤ 的里程碑:值班员能在工作台问告警/根因/资产

能力说明:可调用工具怎么构建 · 方法论 三步之后完成了吗

第二步:把各系统对齐到本体

CMDB、ITSM、Prometheus 各自有一套表/类/字段。第二步做两件事:

  1. 字段映射:源系统的「类.字段」→ 本体的「类.属性」
  2. 归一词典:不同系统对同一台设备的不同叫法 → 统一成一个 ID

对齐完成后,连接器同步数据,实例(pay-gw-03、ALERT-991)才进入图谱。详见下文 归一 vs 映射图解图谱实例浏览

运维对象辨析:Pod 是什么?

Pod 来自 Kubernetes(K8s),不是物理服务器,也不是集群 Node。可以把它理解成:

① K8s 基础设施层级(从下到上)
物理机 / 虚拟机
└── Node(K8s 集群节点 · 宿主机)
    └── Pod(容器工作负载实例 · 最小调度单元)
        └── Container(真正跑进程的容器)
② 逻辑服务与 Pod 实例(本体里的关系,和上面不是同一层)
支付网关(TechnicalService · 逻辑服务)
    ▲
    │ member_of(以下 3 个 Pod 属于该服务)
    │
    ├── pay-gw-01(Pod)
    ├── pay-gw-02(Pod)
    └── pay-gw-03(Pod)

上图 ① 是机房/K8s 物理层级;图 ② 是运维语义层——多个 Pod 实例属于同一个技术服务。不要混成一棵树。

Pod = 一组跑在一起的容器(container)的最小调度单元。
支付网关应用跑在 3 个 Pod 里:pay-gw-01、pay-gw-02、pay-gw-03——每个 Pod 里通常有一个主容器,是逻辑上的应用实例,不是机房那台机器。
本体类是什么不是什么华东金融云举例
PodK8s 里的容器工作负载实例≠ 物理机 ≠ 虚拟机 ≠ Nodepay-gw-03(支付网关的一个运行实例)
NodeK8s 集群里的节点(常对应一台 VM/物理机)≠ Podnode-07(宿主机,Pod 跑在它上面)
PhysicalServer机房物理服务器更底层srv-k8s-node-05
NetworkDevice交换机、路由器SW-CORE-02
TechnicalService运维视角的「技术服务」(逻辑服务单元)≠ 单个 Pod,是多个 Pod 的集合支付网关(下面有 3 个 Pod)

关系链:Pod runs_on Node;多个 Pod member_of 支付网关。告警 ALERT-991 observed_on 某个 Pod,不是 observed_on 某台交换机。

归一词典 vs 字段映射:不是一回事(图解)
一句话:字段映射回答「从哪取、写到哪」;归一词典回答「不同写法是不是同一对象」。二者都在 Pack 里先配置好,同步时先映射取值、再归一绑身份,最后写入图谱。
字段映射
结构对齐
「Prometheus 的 labels.pod 字段」→ 本体「Pod 的哪个属性」
像翻译规则
归一词典
身份对齐
「pay-gw-03」和「PAY-GW-POD-03」→ 同一 ci_id
像身份证编号
图谱实例
写入结果
Neo4j 里的节点/边(ABox)
像灌进库里的行

归一词典的目的,是构建图数据吗?——是,但是间接的。归一词典本身是一张「对照规则表」,不直接存图;同步时靠它把多源数据挂到同一个节点上,图才不会碎成一堆重复对象。

sequenceDiagram
  participant CMDB as 蓝鲸 CMDB
  participant PROM as Prometheus
  participant ETL as 同步 ETL
  participant MAP as 字段映射规则
  participant DICT as 归一词典
  participant NEO as Neo4j 图谱

  Note over MAP,DICT: 都在 Pack 里预先配置(设计时)
  PROM->>ETL: 告警 ALERT-991
labels.pod = pay-gw-03 ETL->>MAP: ① 查映射:labels.pod → Pod.name MAP-->>ETL: 取出值 pay-gw-03 ETL->>DICT: ② 查归一:pay-gw-03 是哪个 ci_id? DICT-->>ETL: ci-pod-pay-gw-03 ETL->>NEO: ③ 写入/合并节点
Pod(ci_id, name, …)
Alert ─observed_on─► Pod CMDB->>ETL: 另一条记录 PAY-GW-POD-03 ETL->>DICT: ② 同一 ci_id ETL->>NEO: ③ 合并到同一节点,不新建
为什么有了归一词典,还要字段映射写到本体属性?

归一词典只管身份(这是谁),不管其他属性从哪来
· namespace=payment 来自 K8s → 需要映射行:K8s.Pod.metadata.namespace → Pod.namespace
· severity=P2 来自 Prometheus → 需要映射行:Alert.labels.severity → Alert.severity
· pay-gw-03 是身份 → 映射取出后,再经归一得到 ci_id

不能每次都去源系统查吗?——智能体办事时要跨系统串证据链(告警→Pod→服务→变更),如果图谱里没有节点和边,每一步都要调 CMDB、监控、ITSM,又慢又容易对不齐。图谱存的是场景需要的子集;细粒度数据(全量日志、指标曲线)仍现场查源系统。
你的疑问答案
先做映射还是先有归一词典?配置时两者都先在 Pack 里建好;同步时对身份类字段:先映射取值 → 再查归一 → 再写入图谱。
它俩是不是一回事?不是。映射 = 字段路径;归一 = 多源别名合并。只有「身份类」字段会同时用到两者。
归一词典 = 构建图?归一是让图不碎的规则;真正构图的是 ETL 把实例+关系写入 Neo4j。
你的理解核对(Kevin 版):
· 归一词典 ✅ — 管某一个真实对象(一台交换机、一个 Pod)在各系统里的不同叫法,归到同一个 ci_id,信息才能聚合。
· 字段映射 ✅ 方向对,但再精确一点 — 它管的是规则,不是某一个实例本身:「凡是 Pod 这类对象,namespace 从 K8s 哪个字段取、severity 从 Prometheus 哪个字段取」。同步时对每一条实例记录套用这些规则,填进我们本体实例的属性里。
归一词典字段映射
管什么粒度一个真实对象(一条 ci_id)一类对象上的一个属性怎么取值
管什么内容pay-gw-03 = PAY-GW-POD-03 → 同一 ci_id凡是 Pod,namespace 从 K8s metadata.namespace 取
类比这个人的身份证号和曾用名填表说明:「这一栏从哪抄」
配置在 Pack 里按对象维护别名表按「数据源·源类·字段→本体属性」维护规则行
同步时身份字段取值后,查表绑 ci_id对每条源记录执行,填实例各属性值
举例:pay-gw-03 这一条记录同步进图谱

【Pack 里预先配好的规则】
· 字段映射:Pod.namespace ← K8s.metadata.namespace(类级规则)
· 字段映射:Pod.name ← K8s.metadata.name(类级规则)
· 归一词典:pay-gw-03 / PAY-GW-POD-03 → ci-pod-pay-gw-03(对象级身份)

【同步时】
K8s 送来一条 Pod 记录 → 按映射取 namespace=payment、name=pay-gw-03 → 查归一得 ci_id=ci-pod-pay-gw-03 → 写入 Neo4j 节点 Pod(ci_id, name, namespace, …)
三层记忆:模型 → 规则 → 实例
做什么存在哪原型入口
① 本体构建定义「表结构」:有哪些类、属性、关系(TBox)Pack 配置进入本体构建
② 映射 + 归一定义「数据怎么灌进来」:属性从哪取 + 身份怎么对齐Pack 配置进入映射与归一
③ 图谱实例灌进去之后的真实对象(pay-gw-03、ALERT-991)Neo4j(ABox)查看图谱实例

①② 是设计时在 Pack 里配的规则和模型;③ 是运行时 ETL 同步写入图数据库、智能体和用户实际查询的对象。

本体模型(TBox)vs 图谱实例(ABox)
flowchart TB
  subgraph Pack["领域 Pack 文件(设计时 · 不进 Neo4j)"]
    TBOX[TBox 本体模型
22 类 / 属性定义 / 关系类型 / 规程] MAPR[字段映射规则] DICTR[归一词典规则] end subgraph Runtime["运行时(同步后)"] ETL[连接器 + ETL] ABOX[(Neo4j 知识图谱
ABox 实例)] INST1[Pod pay-gw-03] INST2[Alert ALERT-991] INST3[ChangeRequest CHG00412] ETL --> ABOX ABOX --> INST1 ABOX --> INST2 ABOX --> INST3 INST2 -->|observed_on| INST1 INST3 -->|targets| INST1 end TBOX -.定义结构.-> ETL MAPR --> ETL DICTR --> ETL subgraph External["仍留在源系统(不全量入图)"] CMDB[(CMDB 全量台账)] LOG[(Elastic 全量日志)] MET[(Prometheus 时序)] end ABOX -.需要时现场查.-> CMDB ABOX -.需要时现场查.-> LOG ABOX -.需要时现场查.-> MET

Pack 存的是「.schema + 规则」(TBox + 映射 + 归一),不是把全公司机器塞进 YAML。Neo4j 存同步后的实例节点和关系边(ABox),供智能体拓扑遍历。原型中可在「图谱实例」页查看已入图对象。

哪些属性要入图?哪些现场查?

一个对象在 CMDB 里可能有上百个字段——不是全进图谱。按场景能力问题裁剪:智能体办事链路上用得上的才同步入图,其余通过「可调用工具」现场查源系统。

数据类型是否入 Neo4j原因举例(支付网关场景)
身份 + 拓扑✅ 入图跨系统串链、影响面展开ci_id、name、runs_on、depends_on、supports
场景判断属性✅ 入图规程检查、报告生成Alert.severity、BusinessService.is_critical、ChangeRequest.status
全量监控时序❌ 不入图数据量大、变化快P99 曲线 → 现场查 Prometheus
全量应用日志❌ 不入图体量巨大15 分钟错误日志 → 现场查 Elastic
CMDB 扩展字段❌ 一般不入非本场景必需采购合同号、机柜 U 位 → 需要时再调 CMDB 工具
决策口诀:智能体拓扑遍历 / 规程判断 / 报告引用 ID 要用的 → 入图;大体量、高频率、非本场景 的 → 映射可留空或标「现场查询」,用可调用工具直连源系统。
图谱实例存在哪?用户怎么看?

存哪:运行时 Neo4j 图数据库。每个实例是一个节点(带类标签和属性),关系是。华东金融云样例对齐 seed/neo4j_ops_paygw.cypher

怎么来:连接器按字段映射 + 归一词典 ETL 同步(或咨询交付种子灌入)。不是用户在「本体构建」里手工逐条录入——那是定义类,不是灌实例。

用户怎么看:产品原型 → 领域包管理 → 「图谱实例」(按类筛选、查看属性与关系、跳转拓扑)。与「本体构建」区别:

本体构建图谱实例
存什么类 / 属性定义 / 关系类型(TBox)pay-gw-03、ALERT-991 等真实对象(ABox)
存在哪Pack 配置Neo4j
谁维护咨询工作坊 + 管理员表单ETL 自动同步 + 归一人工补录
原型入口进入本体构建查看图谱实例(领域包管理蓝色卡片)
归一词典到底是什么?(第二步之一)

问题:同一台支付网关 Pod,CMDB 叫 PAY-GW-POD-03,Prometheus 叫 pay-gw-03,工单里写「支付网关 03 号实例」。如果不对齐,图谱上会变成 3 个节点,智能体就乱了。

归一词典做的事:规定一个主键 ci_id(如 ci-pod-pay-gw-03),把所有别名都指到这个主键上。

主键 ci_id规范名CMDB 写法Prometheus 写法
ci-pod-pay-gw-03pay-gw-03PAY-GW-POD-03labels.pod=pay-gw-03
ci-node-07node-07SRV-K8S-NODE-07host-10-1-2-7
ci-lb-pay-01pay-lb-01LB-PAY-PROD-01VIP 10.2.1.100
和字段映射的关系(同步流水线):
· 字段映射 = 从各系统怎么取值、对齐到本体哪个属性(结构对齐)
· 归一词典 = 取到的身份值(如 pay-gw-03 / PAY-GW-POD-03)是不是同一对象,统一成 ci_id(身份对齐)
· 二者配合:映射行写「labels.pod → Pod.name,转换=经归一词典→ci_id」→ 同步时先按映射取值,再查归一词典绑定图谱节点
· 不是「字段映射监控归一词典是否遵守」——而是 ETL 流水线里先映射、后归一的两步

数据从哪来:手工维护 + 咨询交付导入;新 Pod 上线持续添加别名。原型中可在「映射与归一 → 归一词典」添加条目

可调用工具是什么?谁开发?按什么标准?
一句话:「能力」= EASH ToolGate 上登记的办事动作(如 ops:get_alert),不是 Prometheus/ITSM 的原始 API 名。智能体只能调用 Pack 里已声明的能力;编排里的「绑定可调用工具」是从声明清单里选。

先分清三件事

概念是什么谁开发 / 谁配置
第三方系统
Prometheus、CMDB、ITSM、Elastic
客户已有的监控/台账/工单/日志系统客户或厂商维护;只需提供标准 REST/OpenAPI + Webhook不必按 EASH 格式暴露「能力」
连接器 Connector把外部系统地址、凭证、同步策略接到平台;负责入图或回源通道FDE / 实施在「业务系统连接」配置;复杂系统由 EASH 或伙伴 开发 Connector 插件(见 platform/07)
可调用工具智能体办事时调用的原子动作,带 tool_id、入参 schema、关联 connectorPack 声明(教辅-06 / packs/ops/tools/*.yaml);Adapter 实现多数由 EASH 平台预置,客户新场景由 FDE 按 ToolGate 规范扩展
flowchart TB
  subgraph VENDOR["第三方(客户侧)"]
    PROM[Prometheus API]
    ITSM[ServiceNow API]
    CMDB[蓝鲸 CMDB API]
  end

  subgraph EASH["EASH 平台"]
    CONN[连接器 Connector
地址/密钥/同步] ADP[Adapter 适配器
平台或 FDE 开发] TG[ToolGate 工具网关
鉴权/Scope/审计] DECL[④ 可调用工具
tools/*.yaml] ORCH[⑤ 智能体编排
步骤绑定可调用工具] HAR[Harness 运行时] end PROM & ITSM & CMDB --> CONN CONN --> ADP DECL --> TG ADP --> TG ORCH --> HAR TG --> HAR HAR -->|get_alert| ADP

什么才算一条合格的「可调用工具」?

必填说明
tool_id全局唯一,如 ops:get_alert(带 Pack 命名空间)
schema.input / outputJSON Schema;参数名应对齐本体属性(如 alert_id、ci_id)
connector + handler调用时走哪个连接器插件(prometheus-v1…)+ Adapter 代码路径(如 adapters.prometheus.get_alert),后者决定API 路由模板
typegraph_query(查图谱)/ rest_adapter(API 回源)/ command_template(经客户自动化平台)
write是否写操作;首期 ops-pack 默认只读 false

标准文档:docs/platform/10-ToolGate工具接入规范.md · 教辅 教辅-06-MCP工具清单与参数schema.md

三种常见来源(实施现场怎么选)

来源谁做何时用例子
A · Pack 模板自带EASH 产品首期 ops-pack 开箱即用get_alert、trace_ci_to_service、list_changes(已在 packs/ops/tools/)
B · 平台 Adapter + 现场声明EASH 提供 Adapter;FDE 在 Pack 里声明并关联 Connector客户接了 Prometheus/ITSM,映射已通声明 query_metrics 关联 prometheus-v1
C · 新 Connector + 新 ToolFDE/研发按 platform/07、10 开发客户用非标系统或要写操作自研工单系统 → 新 Connector → 新 list_changes Adapter
第三方需要按我们的规范暴露能力吗?
· 不需要。厂商继续提供自家 REST API 即可。
· 我们要做的:用 Connector 连上它,用 Adapter 把「查告警」封装成 ops:get_alert,在 Pack 里声明这条 Tool。
· MCP 只是 ToolGate 对外暴露能力的一种形态(给 Cursor/WorkBuddy);客户 CMDB/Prometheus 不要求实现 MCP。
和「绑定可调用工具」的关系(④ → ⑤):
① 工作坊画诊断步骤,标出需要哪些动作(查告警、查变更…)
② 在 Pack ④ 可调用工具 中登记(或确认模板已有)
③ 配置 业务系统连接,让声明里的 connector 可用
④ 在 ⑤ 智能体编排 每步从声明清单绑定一项
⑤ 评测 → 发布 → 值班员工作台可用

图谱类 vs API 回源类:
· trace_ci_to_servicetrace_impact → 主要查 Neo4j(①②③ 已入图的数据)
· get_alertlist_changes → ToolGate 经 Connector 按需调 Prometheus/ITSM(路径 B)
· query_logs → 回源 Elastic;若②映射未完成,能力标「待对齐」,评测会失败(EV-LOG-03)

可调用工具里为什么没有「完整 API 地址」?怎么对应到 REST?
核心:完整 REST 地址拆成两层配——基础 URL在「业务系统连接」;路径模板在 Adapter handler 里。可调用工具把二者绑定起来,而不是每次手填一整条 URL。

三层配置(别混在一起)

配什么在哪配例子
① 连接器实例现场 base URL、密钥、同步策略管理后台 · 业务系统连接https://prometheus.hfec.prod:9090
https://alertmanager.hfec.prod:9093
② 可调用工具tool_idconnector 插件、handler、入参 schemaPack ④ 可调用工具ops:get_alertprometheus-v1 + adapters.prometheus.get_alert
③ 编排绑定诊断第 N 步调用哪个已声明能力Pack ⑤ 智能体编排步骤 1 绑定 get_alert

运行时怎么拼出完整请求?

get_alert 为例:
· 连接器配置:alertmanager_url = https://alertmanager.hfec.prod:9093
· Adapter handler adapters.prometheus.get_alert 内固定路由:GET /api/v2/alerts?filter=alert_id="{alert_id}"
· 运行时 ToolGate:alertmanager_url + 路由模板 + 入参 alert_id → 调客户 Alertmanager
· 换客户现场只改 ① 的 URL,② 的 Pack 声明不用改

为什么选连接器还不够?

一个连接器(如 Prometheus)往往暴露多个 REST 动作:查告警、查指标、查规则……每个动作对应不同的handler + 路径。所以表单里除了选「关联连接器」,还要选 Adapter handler,并预览 API 路由模板(只读)。

图谱类能力(graph_query)无外部 REST,handler 指向 Neo4j Cypher 模板,连接器选平台内置图谱。

工程 SSOT:packs/ops/tools/get_alert.yamladapter.connector + adapter.handler)· docs/platform/10-ToolGate工具接入规范.md · 研发落地:FDE 能力开发手册

AI接口适配助手:对话式生成能力
一句话:没有完整 OpenAPI 也行 —— 粘贴接口说明调用代码,中台用大模型生成工具草稿,试跑失败自动修复,通过后写入④可调用工具。
步骤操作
1领域包 → ③½ 打开 AI接口适配助手
2选择输入方式:OpenAPI / 粘贴说明 / 粘贴代码 → 选连接器 → 开始适配
3在对话区查看 AI 解析;右侧预览 tools/*.yaml 草稿
4沙箱试跑 → 失败则「自动修复并重试」或对话输入「继续修复」
5试跑通过 → 写入可调用工具 → ⑤ 编排绑定

详细需求:AI接口适配助手-产品需求.md · FDE 手册:开发手册 §AI接口适配助手

原型操作:可调用工具构建界面

入口:领域包管理 → ③½ AI接口适配助手(推荐)或 第四步:进入可调用工具配置

操作说明
查看已声明能力中文名、id、Adapter handlerAPI 路由模板、关联连接器、可用状态
创建工具选类型 → 选连接器实例(只读显示基础 URL)→ 选 handler → 预览 API 路由 → 填入参
编辑 / 删除可改名称/状态;handler 与路由只读,改 URL 请去「业务系统连接」
从咨询交付导入导入标准 ops 工具清单(华东金融云样例)

保存后,智能体编排「绑定可调用工具」下拉自动同步本表;未声明的能力不会出现。三层配置详解见 API 怎么对应

字段映射(四级 · 已在原型实现)

完整映射是四层,原型「映射与归一 → 字段映射」已按此实现,并支持手工添加数据源与映射行

含义举例
① 数据源哪个系统Prometheus / 蓝鲸 CMDB / ServiceNow
② 源类 / 表 / 资源类型系统内的对象类型CMDB「主机」、K8s Pod、ITSM change_request
③ 源字段该类型上的字段labels.pod、metadata.namespace、number
④ 本体类.属性Pack 里定义的目标Pod.name、Pod.namespace、ChangeRequest.change_id
完整映射行示例:
Prometheus · Alert 资源 · labels.pod → 本体 Pod(经归一)· 关系 observed_on
CMDB · 服务实例表 · service_id → 本体 TechnicalService.service_id
ITSM · change_request · cmdb_ci → 关系 ChangeRequest.targetsConfigurationItem

入口:领域包管理 → 进入映射与归一 → 左侧「数据源」可先添加 Elastic/Splunk 等,再在「字段映射」里配置四级映射。

Pack 里每个模块:什么意思、数据从哪来
本体与关系 第一阶段

是什么:本体的数据结构——类、属性、关系。TBox,还没有具体机器数据。

数据从哪来:咨询工作坊产出 → 导入咨询交付包;或表单编辑。华东金融云样例:22 类全表见 consulting-kit。

不像 CMDB 因为:还包含 Alert、规程、智能体步骤等 CMDB 通常不建的概念。

归一词典 第二阶段

是什么:多源别名 → 唯一主键 ci_id 的对照表。

数据从哪来:CMDB/监控/工单管理员联合维护;新资源上线时登记。

字段映射 第二阶段

是什么:各系统的类.字段 → 本体类.属性的对齐规则(含转换:枚举、时间格式等)。

数据从哪来:各数据源 Owner 填表(教辅-07 / 咨询交付映射章);连接器按此 ETL。

办事规程 第一阶段

是什么:智能体办事时必须遵守的硬规则,Harness 强制执行,不由大模型判断。

举例:R02 生产 LB 重启必须在维护窗口内;R04 未审批变更不得建议执行。

数据从哪来:运维制度、变更管理委员会规则、专家访谈;不是 CMDB 同步来的。

和本体的关系:规程约束「智能体输出的建议是否合法」,属于语义层,和「类/属性」并列,都在第一阶段定义。

可调用工具 第四步 · 先于编排

是什么:智能体的「手」——Pack 允许调用哪些办事动作(查告警、查变更、查拓扑),含 tool_id、入参 schema、关联连接器。

不是什么:不是 Prometheus / ITSM 的原始 REST API 名;不是让 LLM 随便调客户接口。

和编排的关系:此处声明能力清单;智能体编排里每步绑定其中一项。未声明的能力不能绑。

→ 能力到底谁开发、按什么标准?(必读)

智能体定义 第五步 · 绑定可调用工具

是什么:一个会办事的智能体——何时触发、按什么步骤查、每步绑定哪个已声明能力、输出什么报告。

举例:场景 A「支付网关根因分析」7 步;场景 B「资产与依赖查询」4 步。

数据从哪来:诊断协议工作坊(咨询交付-场景A/B);运行时 Harness 按步骤调④已声明能力。

评测题库 第三阶段

是什么:真实历史故障当考题,发布前智能体必须考过(如通过率 ≥85%)。

举例:EV-01 输入 ALERT-991,金标准必须含 CHG00412;EV-ASSET-01 必须列出 3 个 Pod。

数据从哪来:SRE 提供脱敏真实 case;咨询交付 / 教辅-10。

本体语义 vs CMDB:为谁建、建什么?
你的理解 ✅ 基本正确:EASH 本体语义是为智能体办事而设计的;传统 CMDB 构建首要服务对象是人(资产管理员、运维工程师查台账)。因此本体在复用 CMDB 一部分 CI 结构之外,还要增加办事规程、告警、诊断协议等 CMDB 通常不建模、但智能体必需的内容。
维度传统 CMDBEASH 本体语义(ops-pack)
主要为谁建——资产治理、台账查询、变更关联(管理员/SRE 直接查界面)智能体——Harness 按步骤遍历图谱、调工具、过规程门禁(人通过工作台看结果)
构建目标全公司配置项权威台账,越全越好让智能体能回答场景问题(根因、影响面…),按场景裁剪 MVO
驱动问题「公司有哪些资产?归谁管?」「ALERT-991 根因是什么?会影响哪些业务?」(能力问题 CQ)
数据范围偏重结构层 CI:服务器、网络、应用、依赖结构层 + 动态层(Alert、Event)+ 规程层(ChangeRequest、办事规程)+ 智能体层(步骤、评测)
关系怎么用人看拓扑图、做影响分析智能体自动串证据链:告警 → Pod → 服务 → 变更
与 CMDB 关系自身即权威源不替代 CMDB;从 CMDB 同步子集,并扩展智能体语义
flowchart LR
  subgraph CMDB["传统 CMDB · 为人建"]
    H1[资产管理员 / SRE]
    C1[(配置项台账
CI 类型全 · 字段多)] H1 -->|查界面、导报表| C1 end subgraph EASH["EASH 本体 · 为智能体建"] AG[智能体 + Harness] ONTO[本体语义 TBox
类 / 属性 / 关系] RULE[办事规程 R01-R05] PROTO[诊断步骤 / 评测] GRAPH[(Neo4j 场景子图)] ONTO --> GRAPH RULE --> AG PROTO --> AG AG -->|trace / 规程检查| GRAPH end C1 -.同步子集.-> GRAPH
本体比 CMDB「多」什么?(智能体专用语义)
· 办事规程 — Harness 硬拦截,如「未审批变更不得建议执行」(CMDB 不管办事规则)
· Alert / Event — 监控动态对象,支撑根因场景(CMDB 通常不实时存告警)
· 智能体定义 + 评测 — 办事步骤与发布门禁(CMDB 无此概念)
· 可调用工具 — 智能体能调哪些只读工具(CMDB 不提供)
需要微调的一点:CMDB 的数据不只有人看——ITSM、自动化平台也会消费 CMDB API。更准确的说法是:CMDB 的建模动机和验收标准以人的资产治理为主;EASH 本体的建模动机和验收标准以智能体能否通过场景评测为主。人仍然通过值班工作台使用智能体,但语义结构是Agent-first 设计的。

重叠部分(Pod、Node、服务、depends_on…)不必重复造轮子——工作坊梳理场景后,从 CMDB 复用类名与关系,经字段映射 + 归一同步实例入图即可。

数据这么大,本体构建能完成吗?
结论:能完成,但必须用对方法——不是一次建全库,而是「场景 MVO + 分阶段扩展」。
担心实际做法
类太多首期只建场景需要的 22 类,不是 CMDB 几千个 CI 类型
映射太复杂只映射本场景用到的数据源字段(如支付网关链路),87%→100% 是增量
实例太多图谱存相关子图(支付 namespace),不是全公司 1 万台机器一次入图
各系统模型不一归一词典 + 四级映射表;未解析的进队列人工处理,不硬编
谁来做咨询工作坊 1~2 周产出 MVO;平台用表单+导入,不是手写 YAML

华东金融云样例已经证明:一条告警根因链 + 一条资产查询链可以用同一套 22 类本体跑通。验证产品可行后,再扩展下一个场景(日志、指标),类表可复用、映射可追加。

智能体编排:步骤绑定可调用工具

管理控制台 → 智能体编排中,为每个场景智能体定义办事步骤,每步从「可调用工具」清单中绑定一项。Harness 按步骤调用 ToolGate,办事进度在工作台右侧逐步点亮。

ALERT-991 根因分析(7 步)
理解问题 → 查告警 → 追溯影响服务 → 核对变更 → 查网络证据 → 规程检查 → 生成报告
操作原型路径
新建 / 编辑智能体编排页三栏 · 步骤 CRUD + 绑定可调用工具
保存草稿 / 发布评测未通过时发布被门禁拦截
预览运行跳转工作台并演示办事进度动画

打开「智能体编排」

评测门禁:发布前必须考过

评测中心用真实历史故障脱敏 case检验智能体输出。通过率未达门禁(如 ≥85%)则不得发布。失败案例可跳转字段映射或连接器修复。

EV-01 输入 ALERT-991,金标准必须含 CHG00412 变更证据 · EV-LOG-03 日志映射未完成时会失败

打开「评测中心」

业务系统连接:接什么、怎么配

连接器是智能体访问客户现网系统的入口(CMDB、Prometheus、ITSM、日志等)。Pack 里的「可调用工具」定义智能体能调什么;连接器定义调到哪里

三层关系(与 FDE 手册一致)
① 连接器 base URL(本页)→ ② Adapter handler + API 路由(领域包·可调用工具)→ ③ 编排绑定到具体智能体步骤
操作路径(原型)说明
新建连接管理端 → 业务系统连接 → 新建选类型 → 填地址/密钥 → 保存并自动测试
测试连接卡片「测试连接」或「全部测试」成功/失败 Toast;日志类可能显示「映射中」
配置同步策略业务系统连接 → 编辑 → 同步策略模式(Push/Pull/按需)、Cron、首次同步、同步对象(本体类)
立即同步连接器卡片 / 数据同步 中心触发 GraphSync 入图;编排同步可一次跑多源
查看进度管理端 → 数据同步任务历史、映射 % vs 同步 %、DLQ 失败重试
继续映射Elastic 卡片 → 继续映射跳转领域包「字段映射」,补齐 log.level 等属性
演示:最小接入顶栏「演示:完整接入」切换ITSM 显示未配置,工作台根因会话缺变更证据(ALERT-992 样例)
导出配置工具栏「导出配置」脱敏 JSON,供备份或迁移

业务系统连接 · 数据同步中心 · FDE 手册

数据同步中心:何时同步、同步多少
映射 % ≠ 同步 %。映射在领域包②衡量「规则写全了吗」;同步在数据同步中心衡量「ETL 跑了吗、入图健康吗」。
能力原型入口
KPI 看板全库节点数、运行中任务、DLQ 积压、全局调度状态
按源状态表模式/周期、最近·下次运行、累计入图、映射条与同步条
任务历史每次 GraphSync 写入记录/节点/边、耗时、失败说明
DLQ归一/映射失败条目 → 重试或跳转修映射
编排全量同步工具栏「立即全量同步」= CMDB + 监控 + ITSM 顺序入图

打开「数据同步」 · 详见 数据存储架构

上线工作台:八步旅程

上线工作台是租户管理员的汇总页:一眼看清 Pack 安装、连接器、编排、评测是否就绪,以及今日办事情况。

1–2

安装 + 导入

从咨询交付包导入本体、映射、规程

3

连接与同步

业务系统连接 + 数据同步策略与入图

4–6

编排 + 评测 + 管理

智能体步骤、评测门禁、运行态启停

7–8

集成 + 试用

Webhook 自动推送 · 值班员工作台

区块你能做什么
八步上线旅程每一步可点击跳转(领域包 / 导入 / 连接 / 编排 / 评测 / 智能体管理 / 集成 / 工作台)
今日办事记录查看值班员办事摘要;「回放」打开 Trace 时间线
连接器健康度与「业务系统连接」页数据同步;异常时横幅提示去修复映射
待办横幅Elastic 映射 < 95% 时提示,引导完善字段映射

在原型中打开「上线工作台」

值班工作台:值班员怎么用

工作台是中文对话 + 右侧上下文:不暴露 YAML、protocol_id;值班员用自然语言办事,Harness 在后台按规程执行。右上角皮肤切换支持「值班青绿」与「企业克莱因蓝」(与管理员后台一致)。

场景覆盖(运维首期)
· 告警/根因/影响面 — 场景 A(S1/S2/S3)
· 资产清单+拓扑 — 场景 B(技术服务 → 配置项展开)
· AI 问数 — 自然语言聚合统计(如「A 机房多少 Pod」「各域技术服务分布」),结果以统计卡片 + 柱状图 + 表格呈现,可追溯到 ci_id
· 日志/指标 — 现场查大体量数据
· HITL 审批 — 写操作拦截后人工批准
AI 问数要不要放在平台里?要。它与纯 RAG 问数的区别是:走本体语义 + 图谱聚合 + 可调用工具,结果可审计、可下钻到具体配置项,且与场景 B 共用同一套 22 类本体。适合变更评审前盘点资源、领导问「某机房有多少资产」等值班高频问法。
页面功能
智能对话多会话切换(告警根因 / 查询 / 影响面 / 资产问数 / 日志 / 指标);右侧展示告警、CI、变更等上下文;办事进度与编排步骤对齐
办事记录历史摘要列表;点击行恢复会话;支持勾选导出/删除
消息操作按钮「继续根因分析」「查看拓扑」「查看完整报告」「生成工单草稿」等 → 打开二级全屏页(拓扑 / 报告 / 工单 / 日志 / 图表)
拓扑渲染使用 Mermaid 自动布局(中文不乱码);编码版可升级为 Cytoscape 交互拓扑
推荐演示路径(ALERT-991)
① 工作台选「ALERT-991 根因分析」会话 → ② 查看办事进度八步 → ③ 切换「演示:最小接入」看 ITSM 缺失分支 → ④ 「待我审批」处理重启申请 → ⑤ 管理端回放 Trace

在原型中进入「值班工作台」

集成与生态:对外怎么接

EASH 支持多种薄入口:后端仍是同一套 Pack + Harness + 智能体,只是用户从企微、工单侧边栏或 Webhook 进来。

方式适用原型操作
EASH 工作台默认推荐集成页 → 打开工作台
告警 WebhookAlertmanager 自动推送复制 Webhook URL → 回放自动分析 Trace
企业微信 / 钉钉移动值班查看回调配置 → 导出接入文档
ITSM 侧边栏处理故障单时嵌入脚本说明
MCP开发调试端点说明;生产仍建议经 Harness 审计

在原型中打开「集成与生态」

常见问题
先做本体还是先接 CMDB?
先定本体语义(哪怕 10 个类),再谈映射。否则不知道 CMDB 字段该对齐到什么。
归一词典和字段映射能合并吗?
概念上分开更清晰:映射管「结构」,归一管「身份」。产品 UI 可以放在同一「对接」工作台里。
本体和 CMDB 是不是一回事?
不是。CMDB 为人建资产台账;EASH 本体为智能体建场景语义。重叠的 CI 结构可从 CMDB 同步,但要额外加办事规程、告警、诊断协议等 CMDB 通常没有的内容。
办事规程为什么在本体里?
都属于「语义契约」——智能体理解业务世界的规则,不是外部系统同步来的数据。
实例数据存在哪?
运行时 Neo4j 图谱(ABox)。Pack 里存的是 schema + 映射规则,不是全公司数据。用户可在原型「图谱实例」页按类浏览已同步对象。
有归一词典了,为什么还要字段映射?
归一只解决「是不是同一对象」。namespace、severity、变更状态等属性仍要从各系统字段映射进来;图谱还要存拓扑边供智能体遍历。
为什么不每次都去源系统查?
跨系统证据链(告警→Pod→服务→变更)需要预汇聚的子图;日志、指标等大体量数据仍现场查。
本体构建和图谱实例是不是一回事?
不是。前者定义「表结构」(TBox),后者是「表里的行和关系」(ABox),由同步写入 Neo4j。