|
|
@@ -0,0 +1,1027 @@
|
|
|
+"""生成《Ai-DOP 本体驱动智能体建设方案》Word 文档(评审稿)。
|
|
|
+
|
|
|
+参考图片理念(本体驱动数据治理:实体/属性/关联/动作四要素)与 Ai-DOP 现有代码资产,
|
|
|
+阐述在现有代码基础上以「零旁路增量」方式加入智能体,实现自动预警、自动分析、自动优化。
|
|
|
+"""
|
|
|
+
|
|
|
+from __future__ import annotations
|
|
|
+
|
|
|
+import os
|
|
|
+
|
|
|
+from docx import Document
|
|
|
+from docx.enum.text import WD_ALIGN_PARAGRAPH, WD_LINE_SPACING
|
|
|
+from docx.oxml.ns import qn
|
|
|
+from docx.shared import Cm, Pt
|
|
|
+
|
|
|
+BASE = os.path.dirname(os.path.abspath(__file__))
|
|
|
+OUT = os.path.join(BASE, "plan", "Ai-DOP本体驱动智能体建设方案.docx")
|
|
|
+
|
|
|
+doc = Document()
|
|
|
+sec = doc.sections[0]
|
|
|
+sec.page_width = Cm(21.0)
|
|
|
+sec.page_height = Cm(29.7)
|
|
|
+sec.top_margin = Cm(2.54)
|
|
|
+sec.bottom_margin = Cm(2.54)
|
|
|
+sec.left_margin = Cm(2.8)
|
|
|
+sec.right_margin = Cm(2.8)
|
|
|
+
|
|
|
+
|
|
|
+def set_run_font(run, name_cn="宋体", name_en="Times New Roman", size=12, bold=False, color=None):
|
|
|
+ run.font.name = name_en
|
|
|
+ run._element.rPr.rFonts.set(qn("w:eastAsia"), name_cn)
|
|
|
+ run.font.size = Pt(size)
|
|
|
+ run.bold = bold
|
|
|
+ if color is not None:
|
|
|
+ run.font.color.rgb = color
|
|
|
+
|
|
|
+
|
|
|
+def style_normal():
|
|
|
+ style = doc.styles["Normal"]
|
|
|
+ style.font.name = "Times New Roman"
|
|
|
+ style.font.size = Pt(12)
|
|
|
+ style._element.rPr.rFonts.set(qn("w:eastAsia"), "宋体")
|
|
|
+ pf = style.paragraph_format
|
|
|
+ pf.line_spacing_rule = WD_LINE_SPACING.ONE_POINT_FIVE
|
|
|
+ pf.space_after = Pt(6)
|
|
|
+
|
|
|
+
|
|
|
+def add_title(text: str):
|
|
|
+ p = doc.add_paragraph()
|
|
|
+ p.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
|
|
+ p.paragraph_format.space_after = Pt(12)
|
|
|
+ run = p.add_run(text)
|
|
|
+ set_run_font(run, "黑体", "SimHei", 18, True)
|
|
|
+
|
|
|
+
|
|
|
+def add_subtitle(text: str):
|
|
|
+ p = doc.add_paragraph()
|
|
|
+ p.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
|
|
+ p.paragraph_format.space_after = Pt(12)
|
|
|
+ run = p.add_run(text)
|
|
|
+ set_run_font(run, "黑体", "SimHei", 14, True)
|
|
|
+
|
|
|
+
|
|
|
+def add_meta(text: str):
|
|
|
+ p = doc.add_paragraph()
|
|
|
+ p.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
|
|
+ p.paragraph_format.space_after = Pt(4)
|
|
|
+ run = p.add_run(text)
|
|
|
+ set_run_font(run, "宋体", "Times New Roman", 10.5)
|
|
|
+
|
|
|
+
|
|
|
+def add_h1(text: str):
|
|
|
+ p = doc.add_paragraph()
|
|
|
+ p.paragraph_format.space_before = Pt(14)
|
|
|
+ p.paragraph_format.space_after = Pt(8)
|
|
|
+ run = p.add_run(text)
|
|
|
+ set_run_font(run, "黑体", "SimHei", 14, True)
|
|
|
+
|
|
|
+
|
|
|
+def add_h2(text: str):
|
|
|
+ p = doc.add_paragraph()
|
|
|
+ p.paragraph_format.space_before = Pt(10)
|
|
|
+ p.paragraph_format.space_after = Pt(6)
|
|
|
+ run = p.add_run(text)
|
|
|
+ set_run_font(run, "黑体", "SimHei", 12, True)
|
|
|
+
|
|
|
+
|
|
|
+def add_body(text: str, indent=True):
|
|
|
+ p = doc.add_paragraph()
|
|
|
+ p.paragraph_format.first_line_indent = Pt(24) if indent else Pt(0)
|
|
|
+ p.paragraph_format.space_after = Pt(6)
|
|
|
+ run = p.add_run(text)
|
|
|
+ set_run_font(run, "宋体", "Times New Roman", 12)
|
|
|
+
|
|
|
+
|
|
|
+def add_bullet(text: str, ordered=False, index=None):
|
|
|
+ p = doc.add_paragraph()
|
|
|
+ p.paragraph_format.left_indent = Cm(0.74)
|
|
|
+ p.paragraph_format.first_line_indent = Pt(0)
|
|
|
+ p.paragraph_format.space_after = Pt(3)
|
|
|
+ prefix = f"{index}." if ordered else "•"
|
|
|
+ run = p.add_run(f"{prefix} {text}")
|
|
|
+ set_run_font(run, "宋体", "Times New Roman", 12)
|
|
|
+
|
|
|
+
|
|
|
+def add_table(headers, rows, col_widths=None):
|
|
|
+ table = doc.add_table(rows=1 + len(rows), cols=len(headers))
|
|
|
+ table.style = "Table Grid"
|
|
|
+ table.autofit = True
|
|
|
+
|
|
|
+ for i, h in enumerate(headers):
|
|
|
+ cell = table.rows[0].cells[i]
|
|
|
+ cell.text = ""
|
|
|
+ p = cell.paragraphs[0]
|
|
|
+ p.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
|
|
+ run = p.add_run(h)
|
|
|
+ set_run_font(run, "宋体", "Times New Roman", 10.5, True)
|
|
|
+ tc = cell._tc
|
|
|
+ tcPr = tc.get_or_add_tcPr()
|
|
|
+ shd = tcPr.makeelement(qn("w:shd"), {
|
|
|
+ qn("w:val"): "clear",
|
|
|
+ qn("w:color"): "auto",
|
|
|
+ qn("w:fill"): "D9E2F3",
|
|
|
+ })
|
|
|
+ tcPr.append(shd)
|
|
|
+
|
|
|
+ for r_idx, row in enumerate(rows):
|
|
|
+ for c_idx, val in enumerate(row):
|
|
|
+ cell = table.rows[r_idx + 1].cells[c_idx]
|
|
|
+ cell.text = ""
|
|
|
+ p = cell.paragraphs[0]
|
|
|
+ run = p.add_run(str(val))
|
|
|
+ set_run_font(run, "宋体", "Times New Roman", 10.5)
|
|
|
+
|
|
|
+ if col_widths:
|
|
|
+ for row in table.rows:
|
|
|
+ for i, w in enumerate(col_widths):
|
|
|
+ row.cells[i].width = Cm(w)
|
|
|
+
|
|
|
+ doc.add_paragraph()
|
|
|
+
|
|
|
+
|
|
|
+def draw_attribution_graph(out_png: str):
|
|
|
+ """绘制归因分析链路示意(欠料预警场景),以节点+箭头网络形式呈现,辅助归因反馈表达。"""
|
|
|
+ import matplotlib
|
|
|
+ matplotlib.use("Agg")
|
|
|
+ import matplotlib.pyplot as plt
|
|
|
+ from matplotlib.patches import FancyArrowPatch, FancyBboxPatch
|
|
|
+
|
|
|
+ plt.rcParams["font.sans-serif"] = ["Microsoft YaHei"]
|
|
|
+ plt.rcParams["axes.unicode_minus"] = False
|
|
|
+
|
|
|
+ fig, ax = plt.subplots(figsize=(13.6, 5.6), dpi=160)
|
|
|
+ ax.set_xlim(0, 13.6)
|
|
|
+ ax.set_ylim(0, 5.6)
|
|
|
+ ax.axis("off")
|
|
|
+
|
|
|
+ def node(x, y, w, h, title, sub, fc, ec, tfs=11.5):
|
|
|
+ ax.add_patch(
|
|
|
+ FancyBboxPatch(
|
|
|
+ (x - w / 2, y - h / 2), w, h,
|
|
|
+ boxstyle="round,pad=0.02,rounding_size=0.16",
|
|
|
+ linewidth=1.6, edgecolor=ec, facecolor=fc, zorder=2,
|
|
|
+ )
|
|
|
+ )
|
|
|
+ ax.text(x, y + h * 0.14, title, ha="center", va="center",
|
|
|
+ fontsize=tfs, fontweight="bold", color="#1a1a1a", zorder=3)
|
|
|
+ if sub:
|
|
|
+ ax.text(x, y - h * 0.24, sub, ha="center", va="center",
|
|
|
+ fontsize=8.5, color="#333333", zorder=3)
|
|
|
+
|
|
|
+ def arrow(x1, y1, x2, y2, label=None, lc="#8a8a8a", ls="-", lw=1.5, rad=0.0, label_dy=0.3):
|
|
|
+ ax.add_patch(
|
|
|
+ FancyArrowPatch(
|
|
|
+ (x1, y1), (x2, y2), arrowstyle="-|>", mutation_scale=15,
|
|
|
+ color=lc, linewidth=lw, linestyle=ls, zorder=4,
|
|
|
+ connectionstyle=f"arc3,rad={rad}",
|
|
|
+ )
|
|
|
+ )
|
|
|
+ if label:
|
|
|
+ ax.text((x1 + x2) / 2, (y1 + y2) / 2 + label_dy, label, ha="center",
|
|
|
+ va="bottom", fontsize=8.5, color=lc if lc != "#8a8a8a" else "#555555")
|
|
|
+
|
|
|
+ # 上行:实体关联链
|
|
|
+ node(1.65, 4.0, 2.55, 1.1, "ORDER 订单", "crm_seorderentry", "#E8F0FE", "#4472C4")
|
|
|
+ node(4.55, 4.0, 2.55, 1.1, "WORK_ORDER 工单", "WorkOrdMaster", "#E8F0FE", "#4472C4")
|
|
|
+ node(7.45, 4.0, 2.55, 1.1, "MATERIAL 物料", "ic_itemmaster", "#E8F0FE", "#4472C4")
|
|
|
+ node(10.35, 4.0, 2.55, 1.1, "SUPPLIER 供应商", "srm_supplier", "#E8F0FE", "#4472C4")
|
|
|
+ arrow(2.925, 4.0, 3.275, 4.0, "按 order_no 关联", label_dy=0.72)
|
|
|
+ arrow(5.825, 4.0, 6.175, 4.0, "按 material_code 关联", label_dy=0.72)
|
|
|
+ arrow(8.725, 4.0, 9.075, 4.0, "按 supplier_code 关联", label_dy=0.72)
|
|
|
+
|
|
|
+ # 下行:症状—根因—处置
|
|
|
+ node(2.4, 1.7, 4.0, 1.6, "预警事实(时效性规则命中)", "欠料看板 48h 未更新\n证据:SupplierShortageKanban 记录 xxx", "#FFF4E0", "#ED7D31")
|
|
|
+ node(6.9, 1.7, 4.2, 1.6, "根因:MRP_JOB 任务失败", "采购申请生成任务最近一次运行失败\n证据:aidop_action_run_log.record_id=xxx", "#FBE4E4", "#C00000")
|
|
|
+ node(11.0, 1.7, 3.2, 1.6, "处置:重跑 MRP 建议", "TOOL_RERUN_MRP\nL2 审批后执行", "#E2F0D9", "#548235")
|
|
|
+
|
|
|
+ # 症状→物料(虚线),物料→根因(虚线),根因→处置(实线)
|
|
|
+ arrow(3.4, 2.5, 6.7, 3.45, "症状定位", lc="#ED7D31", ls=(0, (4, 3)), label_dy=0.15)
|
|
|
+ arrow(7.45, 3.45, 6.0, 2.5, "沿动作链定位根因", lc="#C00000", ls=(0, (4, 3)), label_dy=0.15)
|
|
|
+ arrow(9.0, 1.7, 9.4, 1.7, "生成建议", lc="#548235", label_dy=-0.55)
|
|
|
+
|
|
|
+ # 图例
|
|
|
+ legend = [
|
|
|
+ ("#E8F0FE", "#4472C4", "实体节点(沿关联链)"),
|
|
|
+ ("#FFF4E0", "#ED7D31", "预警事实(附触发规则)"),
|
|
|
+ ("#FBE4E4", "#C00000", "根因(附证据位置)"),
|
|
|
+ ("#E2F0D9", "#548235", "处置动作(L2 审批)"),
|
|
|
+ ]
|
|
|
+ for i, (fc, ec, txt) in enumerate(legend):
|
|
|
+ ly = 5.15 - i * 0.72
|
|
|
+ ax.add_patch(FancyBboxPatch((0.55, ly - 0.16), 0.5, 0.32,
|
|
|
+ boxstyle="round,pad=0.01,rounding_size=0.05",
|
|
|
+ linewidth=1.2, edgecolor=ec, facecolor=fc))
|
|
|
+ ax.text(1.2, ly, txt, ha="left", va="center", fontsize=8.5, color="#333333")
|
|
|
+
|
|
|
+ fig.savefig(out_png, bbox_inches="tight", facecolor="white")
|
|
|
+ plt.close(fig)
|
|
|
+
|
|
|
+
|
|
|
+style_normal()
|
|
|
+
|
|
|
+add_title("Ai-DOP 本体驱动智能体建设方案")
|
|
|
+add_subtitle("——在现有代码基础上实现自动预警、自动分析、自动优化")
|
|
|
+add_meta("文档版本:V1.7(评审稿) 编制日期:2026 年 10 月")
|
|
|
+add_meta("适用范围:Ai-DOP 主库(server/Plugins/Admin.NET.Plugin.AiDOP 与 Web 前端)")
|
|
|
+
|
|
|
+# ============ 一、背景与目标 ============
|
|
|
+add_h1("一、背景与目标")
|
|
|
+
|
|
|
+add_h2("1.1 本体背景:Palantir Ontology 数字孪生语义层")
|
|
|
+add_body(
|
|
|
+ "「本体驱动数据治理」理念源自 Palantir Foundry 平台的 Ontology(本体):它是平台的数字孪生与统一语义层,"
|
|
|
+ "把集成进 Foundry 的数字资产(数据集、虚拟表、模型)映射为对象、属性、链接,并叠加操作与函数,"
|
|
|
+ "构成可支撑各类业务场景的语义+动能模型;核心理念是「把你的业务变成代码」(Your Business as Code),"
|
|
|
+ "在数据、分析和运营系统之间建立实时连接。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "传统数据平台围绕「表—行—列」组织数据,Ontology 围绕真实世界的对象组织数据:"
|
|
|
+ "对象类型定义组织中的一个实体或事件(如物料、订单、供应商、设备),对象是它的单个实例,"
|
|
|
+ "对象集是多个对象的动态集合。两者的类比关系如下:"
|
|
|
+)
|
|
|
+add_table(
|
|
|
+ ["数据集", "Ontology"],
|
|
|
+ [
|
|
|
+ ["数据集 Dataset", "对象类型 Object Type"],
|
|
|
+ ["行 Row", "对象 Object"],
|
|
|
+ ["列 Column", "属性 Property"],
|
|
|
+ ["字段值 Field", "属性值 Property Value"],
|
|
|
+ ["表间关联 Join", "链接类型 Link Type"],
|
|
|
+ ],
|
|
|
+ col_widths=[7.75, 7.75],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "Ontology 的本质是用「对象—属性—链接—操作—函数」把企业的数据、模型和流程统一成"
|
|
|
+ "可导航、可运营、可治理的数字孪生层,让业务用户、分析人员和 AI Agent 在同一套业务语言上工作。"
|
|
|
+ "本方案以 4 张配置表承载这一语义层:对象类型→实体登记、属性→现有业务表字段、链接→关联登记、"
|
|
|
+ "操作与函数→动作链登记与工具注册表(见第三章)。"
|
|
|
+)
|
|
|
+
|
|
|
+add_h2("1.2 DOP 背景与架构")
|
|
|
+add_body(
|
|
|
+ "数字化运营平台(Digital Operation Platform,简称 DOP)是一款深度融合 AI 算法、智能制造技术与集成供应链管理的企业级数字化解决方案,"
|
|
|
+ "通过四层架构设计与 S0~S9 十大核心功能模块,实现从订单评审、计划排程、物料供应、生产执行到仓储物流的订单交付全流程数字化运营管理,"
|
|
|
+ "帮助企业构建敏捷、透明、智能的数字化运营体系,提升供应链效率、降低运营成本,并支持数据驱动的持续改善决策。"
|
|
|
+ "DOP 通常与企业的 ERP 系统或视具体情况与其他 MES、WMS 系统配合使用,需要 ERP、MES、WMS 等各类系统数据接口。"
|
|
|
+)
|
|
|
+add_body("四层架构与各模块功能定位、技术亮点如下:")
|
|
|
+add_table(
|
|
|
+ ["层", "模块", "功能定位", "技术亮点"],
|
|
|
+ [
|
|
|
+ ["第一层\n业务流程与基础数据建模与标准化", "S0 建模与标准化", "数据建模与流程建模,打造数字孪生工厂", "为订单交付计划协同和执行层提供基础数据与业务流程"],
|
|
|
+ ["第二层\n订单交付计划协同和执行", "S1 产销协同", "基于 AI 需求预测模型,动态匹配市场需求与生产计划,优化订单评审和资源分配", "集成多源数据(历史销售、市场趋势、客户反馈),机器学习算法生成滚动式产销计划,支持供需动态平衡"],
|
|
|
+ ["", "S2 制造协同", "打通跨部门、跨工厂的制造资源调度,支持多产品、多工序柔性排产与生产任务分解", "根据订单优先级,结合数字孪生技术模拟产线负荷,智能算法优化设备利用率与 OEE"],
|
|
|
+ ["", "S3 供应协同", "协同供应商与物流网络,确保原材料准时交付与库存动态平衡", "供应商数据透明化,AI 驱动安全库存预警与补货策略优化"],
|
|
|
+ ["", "S4 采购执行", "自动化采购订单和交货计划生成、审批与跟踪,支持集中采购与分散采购混合模式", "供应商在线交期答复与发货单、二维码标签创建,自动物料批次号管理与追溯"],
|
|
|
+ ["", "S5 物料仓储与内物流", "管理原材料入库、存储与出库,支持远程调度与智能货架管理", "物联网(IoT)实时监控库存状态,二维码技术实现物料全生命周期追溯"],
|
|
|
+ ["", "S6 生产执行", "监控生产现场作业效率,采集生产报工数据并监控工艺质量", "工业 AI 视觉检测缺陷,边缘计算实现实时工艺参数调优"],
|
|
|
+ ["", "S7 成品仓储与外物流", "自动化成品分拣、包装与发货,支持多渠道订单合并与智能路径规划", "AGV 与无人仓协同,AI 算法优化拣货路线与装载率"],
|
|
|
+ ["第三层\n订单异常监控", "S8 异常监控", "实时感知订单交付协同和执行层各环节异常,快速响应并启动纠偏机制,保障流程连续性", "规则巡检引擎(时效性、一致性、完整性、阈值)与 AI 模型(时序分析、聚类)识别设备故障、交期延误、库存积压等风险"],
|
|
|
+ ["第四层\n运营绩效管理", "S9 绩效管理", "基于全流程数据挖掘,量化运营绩效差距,自主生成改善方案,驱动持续优化", "关联分析与决策树定位 KPI 未达标深层原因,强化学习模拟策略效果并推荐改进路径"],
|
|
|
+ ],
|
|
|
+ col_widths=[2.9, 2.1, 5.1, 5.3],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "S8 异常监控核心能力四段:数据感知(规则巡检引擎与 AI 模型识别风险)、归因分析(知识图谱与因果推理定位异常源头,如供应商延迟、工艺偏差)、"
|
|
|
+ "智能决策(自动触发应急预案,如切换备用供应商、动态调整排产)、自主执行(在得到用户授权的前提下自动执行所需的业务流程)。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "S9 绩效管理核心能力四项:KPI 动态看板(可视化呈现 OTD、库存周转率、产能利用率等核心指标)、根因诊断(定位 KPI 未达标的深层原因,如采购周期过长、设备 OEE 偏低)、"
|
|
|
+ "自主优化(通过强化学习模拟不同策略效果,推荐最优改进路径,如调整安全库存阈值、优化排产逻辑)、闭环反馈(将改善措施自动同步至执行层,形成「分析—决策—执行」闭环)。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "本方案正是在 DOP 既有四层架构与 S0~S9 模块之上,以本体(Ontology)语义层为底座,"
|
|
|
+ "把 S8/S9 已探索的数据感知、归因分析、智能决策、自主执行等能力系统化、可配置化,"
|
|
|
+ "并扩展为覆盖 S1~S9 全模块的智能体建设路径(详见 1.5、1.6 节)。"
|
|
|
+)
|
|
|
+
|
|
|
+add_h2("1.3 理念参照:本体驱动数据治理")
|
|
|
+add_body(
|
|
|
+ "本方案参照「本体驱动数据治理」理念设计:以本体模型为统一语义中枢,"
|
|
|
+ "把分散在 ERP、MES、WMS 等异构系统中的数据转换为业务语义状态,"
|
|
|
+ "使上层应用具备可核对、可预警、可追溯的能力。本体模型由四要素构成:"
|
|
|
+)
|
|
|
+add_table(
|
|
|
+ ["本体四要素", "含义", "示例"],
|
|
|
+ [
|
|
|
+ ["实体 Entity", "业务世界中的对象", "订单、工单、物料、供应商、设备、批次"],
|
|
|
+ ["属性 Attribute", "对象的状态与特征", "工单状态、交期、成本、良品率、库存量"],
|
|
|
+ ["关联 Relation", "对象之间的关系", "订单→工单→工序;供应商→物料→工厂"],
|
|
|
+ ["动作 Action", "业务过程中发生的行为", "下单、排产、领料、发货、质检、审批"],
|
|
|
+ ],
|
|
|
+ col_widths=[3, 5, 7.5],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "在「业务语义模型—数据映射与治理—业务实时数据」三层架构中,"
|
|
|
+ "语义模型层定义统一语言、统一对象、统一关系、统一事件与可执行规则,"
|
|
|
+ "数据映射层对接异构系统并负责口径统一与血缘追溯,"
|
|
|
+ "底层面向业务对象提供实时数据。智能体(Agent)正是运行在这一语义底座之上:"
|
|
|
+ "依据规则监测异常实现自动预警,沿关联与动作链推理实现自动分析,"
|
|
|
+ "在约束下生成改进建议实现自动优化。"
|
|
|
+)
|
|
|
+
|
|
|
+add_h2("1.4 现状盘点:Ai-DOP 已有资产")
|
|
|
+add_body("经对现有代码取证,Ai-DOP 已具备支撑智能体建设的基础资产:")
|
|
|
+add_table(
|
|
|
+ ["现有资产", "代码落点", "对智能体的复用价值"],
|
|
|
+ [
|
|
|
+ ["LLM 客户端", "ChatBI/DeepSeekChatClient.cs", "已接入 DeepSeek 纯 JSON 补全接口,可直接供 Planner 调用"],
|
|
|
+ ["ChatBI 智能问答", "ChatBI/ChatBIService.cs 及前端 aidop/chatbi", "自然语言问数入口,可增强为带证据链回答"],
|
|
|
+ ["业务动作日志", "aidop_action_run_log 表 + AidopActionRunLogWriter", "记录订单评审、排程、下达、采购闭环等动作,可作为动作链事实来源"],
|
|
|
+ ["周期巡检 Job(22 个)", "Job/ 目录(S8WatchSchedulerJob、S8TimeoutAutoEscalationJob、MdpOutboxDeadLetterAlertJob 等)", "现成挂接范式:新增巡检 Job 即可接入调度"],
|
|
|
+ ["S9 智慧诊断闭环", "SmartOps/ 目录(SmartDiagnosisEvidenceRegistry、SmartOpsImprovementActionService、SmartOpsImprovementApproverGuard、SmartOpsImprovementEffectiveness)", "诊断证据→改善行动→审批人守卫→有效性验证完整闭环,可直接复用"],
|
|
|
+ ["S8 异常协同", "ado_s8_exception 及 S8 审批流", "异常登记、分级、升级与处置通道"],
|
|
|
+ ["审批流", "IFlowBizHandler 业务回调", "所有落库动作的必经关口,智能体写操作经此人工确认"],
|
|
|
+ ["租户隔离", "AidopTenantScope.ResolveOrThrow", "智能体所有读写强制注入 tenant_id"],
|
|
|
+ ["数据中台", "mdp_stg/mdp_std/dwd 四库链路", "统一口径的业务数据,作为本体属性与关联的事实来源"],
|
|
|
+ ],
|
|
|
+ col_widths=[3.2, 5.6, 6.7],
|
|
|
+)
|
|
|
+
|
|
|
+add_h2("1.5 建设目标")
|
|
|
+add_body(
|
|
|
+ "参照 Ontology 本体论分两步推进:先把 S0 建设为 DOP 的数字孪生与统一语义层"
|
|
|
+ "(对象—属性—链接—操作—函数统一登记,让业务用户、分析人员与 AI Agent 在同一套业务语言上工作),"
|
|
|
+ "再把 S1~S9 建设为能够进行「感知—归因—决策—执行」的模块级智能体。"
|
|
|
+ "在现有代码基础上以增量方式建设智能体能力,实现四大业务目标:"
|
|
|
+)
|
|
|
+for i, t in enumerate(
|
|
|
+ [
|
|
|
+ "数据感知:基于四规则巡检引擎(时效性、一致性、完整性、阈值)与 AI 模型(时序分析、聚类)周期扫描业务数据,识别设备故障、交期延误、库存积压等风险,异常即触发分级预警,推送至 S8 异常协同与责任人。",
|
|
|
+ "归因分析:基于本体四要素登记与动作链,由 LLM 编排 Planner 沿实体—关联—动作链定位根因(如供应商延迟、工艺偏差),输出必须附带证据(表名、字段、记录号),无证据不下结论。",
|
|
|
+ "智能决策:分析结论转化为改善建议与应急预案(如切换备用供应商、动态调整排产),经审批流人工确认后落库执行,执行结果经有效性验证回写规则库,形成闭环持续改进。",
|
|
|
+ "自主执行:在得到用户授权(审批通过)的前提下,由执行调度智能体自动获取所需的业务数据并执行已批准的业务流程(默认 L2,白名单动作可升 L3,见下),与治理红线「审批流不可绕过」保持一致。",
|
|
|
+ ],
|
|
|
+ 1,
|
|
|
+):
|
|
|
+ add_bullet(t, ordered=True, index=i)
|
|
|
+add_body(
|
|
|
+ "四大目标与三大能力一一对应:数据感知→自动预警,归因分析→自动分析,智能决策+自主执行→自动优化。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "最终实现「可核对」(所有结论均有证据可查)、「可预警」(异常提前暴露)、「可追溯」(任意结论可反查至原始数据)。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "「自主执行」与治理红线「所有落库必须审批」以 L0~L4 五级自动化等级统一口径:"
|
|
|
+ "本方案默认 L2(起草并提交审批,通过后调用既有服务落库);"
|
|
|
+ "L3(预设额度/白名单内自动执行、事后审计与抽检)仅限高频、低风险、可逆动作(如催交通知)白名单例外;"
|
|
|
+ "L4 全自动闭环本期不开放,需至少一个季度 L3 运行数据后评审。"
|
|
|
+)
|
|
|
+add_table(
|
|
|
+ ["等级", "名称", "智能体权限", "适用判断"],
|
|
|
+ [
|
|
|
+ ["L0", "只读问答", "只查询、只解释,不产生任何写操作", "数据敏感或结论影响面大的场景"],
|
|
|
+ ["L1", "建议", "输出建议与草案,人执行", "规则尚不稳定、需积累样本"],
|
|
|
+ ["L2", "审批后执行", "起草并提交审批,通过后调用既有服务落库", "本方案默认等级"],
|
|
|
+ ["L3", "授权范围自动执行", "在预设额度/白名单内自动执行,事后审计与抽检", "高频、低风险、可逆(如催交通知)"],
|
|
|
+ ["L4", "全自动闭环", "无人工介入,自动感知—决策—执行—验证", "本期不开放,需至少一个季度 L3 运行数据后评审"],
|
|
|
+ ],
|
|
|
+ col_widths=[1.2, 3, 6.2, 5.1],
|
|
|
+)
|
|
|
+
|
|
|
+add_h2("1.6 模块级智能体画像:S1~S9 智能体与具体需求")
|
|
|
+add_body(
|
|
|
+ "在四类职能智能体(数据感知/关系推理/风险预警/执行调度,见第四章)之上,"
|
|
|
+ "按业务模块规划九个模块级智能体,各自承担「感知—归因—决策—执行」闭环:"
|
|
|
+)
|
|
|
+add_table(
|
|
|
+ ["模块", "智能体", "职责要点"],
|
|
|
+ [
|
|
|
+ ["S1 产销协同", "S1 产销协同智能体", "需求分层预测(日常/旺季大促/新老品替换/退市期),输出风险提示与应对建议"],
|
|
|
+ ["S2 制造协同", "S2 制造协同智能体", "汇聚 BOM/工艺/产能/报工/质量数据,动态优化生产排程"],
|
|
|
+ ["S3 供应协同", "S3 供应协同智能体", "齐套分析与替代料策略、供应商履约监控、自动选供建议"],
|
|
|
+ ["S4 采购执行", "S4 采购执行智能体", "PO 自动起草与审批、交期答复跟踪与逾期催交、供应商履约复盘与配额调整建议"],
|
|
|
+ ["S5 物料仓储", "S5 物料仓储智能体", "IQC 收货与库存对账、盘点差异处置、批次库位追溯、安全库存与补货建议"],
|
|
|
+ ["S6 生产执行", "S6 生产执行智能体", "报工实绩与 MES 同步监控、工序检验判定、产能偏差归因与建议出勤人数"],
|
|
|
+ ["S7 成品仓储", "S7 成品仓储智能体", "FQC 检验放行监控、成品入库与发货跟踪、签收 POD 与退货闭环"],
|
|
|
+ ["S8 异常管理", "S8 异常管理智能体", "订单全流程节点「体征」监控,异常分层解释与调整方案"],
|
|
|
+ ["S9 绩效管理", "S9 绩效管理智能体", "运营绩效全景监控与绩效改善方案建议"],
|
|
|
+ ],
|
|
|
+ col_widths=[2.6, 4.2, 8.7],
|
|
|
+)
|
|
|
+add_body("重点模块智能体的具体需求:")
|
|
|
+add_body(
|
|
|
+ "S1 产销协同智能体:汇聚历史销量、产品属性、销售政策等内因与天气、促销、社媒舆情、宏观趋势等外因,"
|
|
|
+ "采用时间序列与因果因子模型并融合 LLM 建议,为日常、旺季与大促、新老品替换和退市期提供分层预测,"
|
|
|
+ "同步输出风险提示与应对建议;并从组织、产品、时间三个维度拆解需求预测与库存计划,"
|
|
|
+ "将安全库存、正态分布、泊松分布与服务水准方法与实时可视化监控结合,滚动调整补货策略,"
|
|
|
+ "避免「一刀切」模式下的高库存或断供风险。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "S2 制造协同智能体:汇聚 BOM、产品制造工艺、设备产能以及生产报工、生产质量实时数据,"
|
|
|
+ "采用机器学习与遗传算法模型并融合 LLM 建议,动态优化生产排程,同步输出风险提示与应对建议。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "S3 供应协同智能体:一方面自动识别 BOM 等基础数据异常,进行物料齐套分析与替代料策略优化,确保产线不断料;"
|
|
|
+ "另一方面通过供应商配额与物料交付履约监控,实时跟踪供货比例、交期与 IQC 品质表现,异常自动预警并给出调整建议;"
|
|
|
+ "将供方库、历史物料匹配供应商数据整合分析,自动推荐货源清单候选供应商,并可根据人工匹配数据进行规则学习、"
|
|
|
+ "自动更新匹配规则;配合 S4 采购执行智能体实现 PO 下达、送货通知、回货检讨等自动化衔接。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "S8 异常管理智能体:对订单从下达到发运的每个关键节点建立「体征」,当物料齐套、生产产能、生产质量、"
|
|
|
+ "仓储物流任一环节出现异常时,先给出「发生了什么—为什么—将会怎样—应该怎么做」的分层解释,"
|
|
|
+ "再自动生成调整方案(计划重排、替换物料、调整配额、加急发运),并通过与第三方系统的联动,"
|
|
|
+ "把建议转化为可执行指令,使订单交付全过程可视与管控。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "S9 绩效管理智能体:持续计算并监控企业运营绩效波动,结合订单交付周期、生产效率、质量、异常事件构建绩效全景,"
|
|
|
+ "输出绩效改善方案建议,帮助企业更早完成预案部署。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "S4 采购执行智能体:基于采购申请与配额、框架价规则自动起草 PO 并进入审批流,跟踪供应商交期答复,"
|
|
|
+ "对逾期未答复按 T-3 规则自动催交;按供应商聚合交期、品质与配额达成表现生成履约复盘,"
|
|
|
+ "输出配额调整建议(经审批后更新货源);跟踪 IQC 退货与采购退回闭环。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "S5 物料仓储智能体:监控 IQC 收货过账与上架执行,日终对账识别库存差异并输出差异处置建议;"
|
|
|
+ "按批次与库位追溯物料全生命周期;结合历史消耗与提前期给出安全库存、再订货点与补货建议(详见 5.9);"
|
|
|
+ "监控领料拣配执行与欠料看板数据新鲜度。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "S6 生产执行智能体:监控报工实绩与 MES 数据同步,按工序检验规则判定质量异常;"
|
|
|
+ "对比理论产能与实际产能定位瓶颈(设备/换型/人员/来料),输出稼动率提升建议与建议出勤人数(详见 5.7);"
|
|
|
+ "监测工装模具、设备台账与工艺参数健康状态。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "S7 成品仓储智能体:监控 FQC 检验与放行进度,跟踪成品入库、发货单执行与承运履约;"
|
|
|
+ "跟踪签收 POD 回传与退货处理闭环;异常体征上报 S8 统一分级处置。"
|
|
|
+)
|
|
|
+add_body("九个智能体画像与现有代码资产的对应关系(代码层取证,均为复用对象):")
|
|
|
+add_table(
|
|
|
+ ["智能体", "现有代码承载(Admin.NET.Plugin.AiDOP)"],
|
|
|
+ [
|
|
|
+ ["S1 产销协同", "Order/ 24 个服务(SeOrderService、OrderDeliveryService、OrderResourceCheckService、ContractReviewService、CapacityDateCalculator、MaterialRequirementCalculator、LinkagePlanService);Job:S1MdpSyncTransformJob;KPI:S1KpiDailySnapshotStore"],
|
|
|
+ ["S2 制造协同", "Manufacturing/ 18 个服务(ProductionScheduleGenerationService、WorkOrderSchedulingService、ExecutableDailyPlanService、ScheduleExceptionService、ProductionSchedulingActionService);Job:S2AutoScheduleJob"],
|
|
|
+ ["S3 供应协同", "Supply/ 22 个服务(DeliveryScheduleService、DemandScheduleService、PurchaseRequestService、NumberRuleService、OutsourceOrderService、ProcurementPipelineService);Job:S3MdpSyncTransformJob、S3PoCompletionMdpSyncJob"],
|
|
|
+ ["S4 采购执行", "ProcurementExecution/(PurchaseOrderService、PurchaseOrderTransferService、PurchaseRequestMergeService、PurchaseRequestFromShortageService、SupplierDeliveryManagementService、SupplierShortageKanbanService、IqcReturnQueryService)与 MaterialShortageBizHandler;Job:S4MdpSyncTransformJob"],
|
|
|
+ ["S5 物料仓储", "MaterialWarehouse/ 40+ 服务(InventoryPosting 收货/库存/编号/幂等、IQC 检验、盘点、MissedPrint 漏打);Job:S5InventoryDailyRecon/Inbound/Reconcile/MdpRefreshJob;领料:WorkOrder/PickBillCreator"],
|
|
|
+ ["S6 生产执行", "Service/S6/ 24 个服务(IpqcInspectionService、S6ProductionInstructionService、S6ProcessInspectionService/Judge/SpecResolver、ReportWorkMdpSyncService、ToolingLedgerService、MoldToolReferenceChecker)"],
|
|
|
+ ["S7 成品仓储外物流", "Service/S7/ 13 个服务(FqcApplyService、FqcInspectionService、FqcSpecRuleService、FqcSpecMaterialMapService、ProductionInboundService、SalesDeliveryNoticeService、FqcInspBillFlowBizHandler)"],
|
|
|
+ ["S8 异常管理", "Service/S8/ 50 个服务(S8WatchSchedulerService、S8DecisionService、S8Notification* 通知层、S8RoleResolver、ExceptionClosure/EscalationBizHandler、Rules 规则引擎);Job:S8WatchScheduler/TimeoutAutoEscalation/ActiveFlowStuckScanJob"],
|
|
|
+ ["S9 绩效管理", "SmartOps/ 39 个服务(KpiTarget* 组件、KpiCalcDispatcher、KpiResultStatusResolver、SmartDiagnosisEvidence*、SmartOpsImprovementActionService/ApproverGuard/Effectiveness);Job:SmartOpsImprovementActionReminder/KpiAtomicWarmup/KpiMdpBootstrapJob"],
|
|
|
+ ],
|
|
|
+ col_widths=[2.6, 12.9],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "九个业务域与四类职能能力的覆盖关系(需求覆盖矩阵 A)如下:横向四类能力是平台层,纵向九个业务域是场景层;"
|
|
|
+ "「主」=该域是此能力的主要产生方与消费方,须自建规则与首批工具并承担验收责任;"
|
|
|
+ "「辅」=只登记所需对象与接口、不重复建规则;「—」=本期不涉及、在需求卡 C2 明确写出「不包含」。"
|
|
|
+ "S3 为全链路最完整的域,作为能力基线;S6 问数为「—」——车间异常以推送为主,对话问数统一走 S8 入口。"
|
|
|
+ "对象数、规则数、工具数均为建议起步值,须在 P0 按代码基线与业务基线校准。"
|
|
|
+)
|
|
|
+add_table(
|
|
|
+ ["业务域", "感知", "推理", "预警", "调度", "问数", "首批对象类型", "规则/工具", "业务 Owner", "审批角色"],
|
|
|
+ [
|
|
|
+ ["S1 产销协同", "主", "辅", "辅", "主", "主", "客户订单、SKU、预测版本、库存计划、产能单元", "6–8 / 4–6", "销售运营+计划部", "计划经理;销售总监(大单/促销)"],
|
|
|
+ ["S2 制造协同", "主", "主", "辅", "主", "辅", "工单、工序、工作中心、产线、模具、班次、日历、技能矩阵", "8–10 / 5–7", "制造部+计划部", "生产经理;计划经理"],
|
|
|
+ ["S3 供应协同", "主", "主", "主", "主", "主", "物料、供应商、货源、配额、PO、交货计划、替代料、IQC", "8–10 / 4–6", "采购部+物控", "采购经理;质量经理(替代料)"],
|
|
|
+ ["S4 采购执行", "主", "辅", "主", "主", "辅", "请购、PO、PO 行、交期答复、ASN、收货、框架价", "6–8 / 6–8", "采购部", "采购经理/总监/分管副总(金额分级)"],
|
|
|
+ ["S5 物料仓储", "主", "辅", "主", "辅", "主", "库存、库位、批次、容器、出入库单、盘点、呆滞", "7–9 / 4–5", "仓储+物控", "仓储经理"],
|
|
|
+ ["S6 生产执行", "主", "主", "主", "辅", "—", "工单工序任务、报工、检验、不良、设备、停机、工艺参数", "8–10 / 4–6", "车间+质量", "车间主任;质量经理(工艺参数)"],
|
|
|
+ ["S7 成品仓储外物流", "主", "辅", "主", "主", "—", "成品库存、发货单、装箱、承运商、路线、签收、退货", "6–8 / 4–6", "物流部", "物流经理"],
|
|
|
+ ["S8 异常管理", "辅", "主", "主", "主", "辅", "异常事件、体征、处置单、升级记录、责任矩阵", "分类字典+分级矩阵 / 3–4", "运营管理部", "值班经理;责任部门负责人"],
|
|
|
+ ["S9 绩效管理", "主", "主", "辅", "辅", "主", "KPI 定义、指标值、绩效树、改善行动、收益核算", "5–7 / 3–4", "运营+财务", "运营总监;财务(收益口径)"],
|
|
|
+ ],
|
|
|
+ col_widths=[1.7, 0.8, 0.8, 0.8, 0.8, 0.8, 3.6, 2.2, 1.7, 2.2],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "责任边界三条硬规则:R1 域内建模——对象类型、属性口径、域内规则由业务域 Owner 负责登记与版本化,平台层不替业务定义口径;"
|
|
|
+ "R2 跨域只读——跨域分析只读对方已登记对象,不直接读对方业务表,保证证据链可追溯、口径统一;"
|
|
|
+ "R3 写动作归域——任何写动作由拥有该业务服务的域执行,智能体只起草,避免越权与重复建设。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "跨域衔接实例(S4 采购执行需求卡约定):① 与 S3——齐套与缺料结论直接作为催交(R06)输入,禁止两域各算一套欠料;"
|
|
|
+ "② 与 S8——只上报体征(逾期、未答复、价格偏离),分级、升级与处置由 S8 统一;"
|
|
|
+ "③ 与 S9——只接受白名单参数回写(如安全提前期),价格与配额不得由 S9 自动修改。"
|
|
|
+)
|
|
|
+
|
|
|
+# ============ 二、总体思路 ============
|
|
|
+add_h1("二、总体思路:零旁路增量")
|
|
|
+
|
|
|
+add_h2("2.1 建设原则")
|
|
|
+add_body(
|
|
|
+ "智能体建设遵循「零旁路增量」原则:智能体只做感知、推理与建议,业务操作一律复用现有服务。具体原则:"
|
|
|
+)
|
|
|
+for i, t in enumerate(
|
|
|
+ [
|
|
|
+ "不引入 OWL/RDF 本体推理机,不在 Java/Spring 侧另建本体服务;本体四要素由 4 张自建配置表承载,全部带 tenant_id。",
|
|
|
+ "四类智能体(数据感知、关系推理、风险预警、执行调度)实现为插件 Job 目录下的独立巡检 Job 与一个 LLM 编排 Planner,复用现有调度、认证、租户隔离与审批流。",
|
|
|
+ "写类动作一律经现有审批流(IFlowBizHandler)人工确认后落库,智能体只「起草」与「建议」。",
|
|
|
+ "缺省关闭态即保持原有行为:未登记工具不可调用,未启用规则不巡检,可评审、可回退。",
|
|
|
+ ],
|
|
|
+ 1,
|
|
|
+):
|
|
|
+ add_bullet(t, ordered=True, index=i)
|
|
|
+
|
|
|
+add_h2("2.2 本体理念与 Ai-DOP 落地形态映射")
|
|
|
+add_table(
|
|
|
+ ["本体理念", "Ai-DOP 落地形态"],
|
|
|
+ [
|
|
|
+ ["本体模型(实体/属性/关联/动作)", "4 张配置表:实体登记表、关联登记表、动作链登记表、工具注册表"],
|
|
|
+ ["数据映射与治理(口径统一、血缘追溯)", "数据中台 mdp/dwd 链路 + 实体/关联登记约束"],
|
|
|
+ ["基于语义的业务实时数据", "现有业务表 + 巡检 Job 周期性扫描"],
|
|
|
+ ["企业智能问数(可回答性含证据)", "ChatBI 增强:答案附带证据链"],
|
|
|
+ ["AI 辅助本体构建(业务描述→初始构建→迭代优化)", "LLM 抽取半自动生成登记表草稿,人工确认后生效"],
|
|
|
+ ["智能求解器(SOP/MPS/APS 输入→六大能力输出)", "优化建议经审批流执行,落入排产、采购、交货等现有业务服务"],
|
|
|
+ ],
|
|
|
+ col_widths=[8, 7.5],
|
|
|
+)
|
|
|
+
|
|
|
+add_h2("2.3 治理红线(不可逾越)")
|
|
|
+for i, t in enumerate(
|
|
|
+ [
|
|
|
+ "租户隔离:所有读写强制注入 tenant_id 上下文;任何绕过租户字段的查询或写入均被禁止。",
|
|
|
+ "审批流:智能体仅可「起草」或「建议」,所有落库操作必须经由现有审批流人工确认,不可绕过。",
|
|
|
+ "指标口径:智能体引用的指标定义、计算逻辑与数据源,必须严格对齐已注册的蓝图文档与操作手册,不可自行推断或幻觉。",
|
|
|
+ "工具注册闸门:所有可被智能体调用的 API 或服务,必须完成显式注册并附带业务语义描述,未注册工具不可调用。",
|
|
|
+ ],
|
|
|
+ 1,
|
|
|
+):
|
|
|
+ add_bullet(t, ordered=True, index=i)
|
|
|
+
|
|
|
+# ============ 三、本体语义底座 ============
|
|
|
+add_h1("三、本体语义底座:四要素落表设计")
|
|
|
+add_body(
|
|
|
+ "本体四要素以 4 张自建配置表承载,均含 tenant_id,与现有业务库同库部署,"
|
|
|
+ "由前端提供登记维护页面。初始缺省关闭,不改变任何现有业务行为。"
|
|
|
+)
|
|
|
+add_table(
|
|
|
+ ["表名", "承载要素", "关键字段(要点)", "作用"],
|
|
|
+ [
|
|
|
+ ["aidop_agent_entity", "实体登记", "entity_code、entity_name、source_table、key_field、status_dict、attr_spec_json、enabled", "登记业务对象与数据落点,供巡检与推理定位事实来源;状态字典与属性口径(单位/时间语义/口径版本)一并登记"],
|
|
|
+ ["aidop_agent_relation", "关联登记", "from_entity、to_entity、relation_type、join_condition、enabled", "登记实体间关系(如 工单→工序 按工单号关联),推理沿此链路展开"],
|
|
|
+ ["aidop_agent_action_chain", "动作链登记", "chain_code、trigger_entity、action_type、handler_service、approval_required、automation_level、idem_key、rollback_desc", "登记可执行动作(如 重跑 MRP、作废日计划)与自动化等级/幂等键/回滚方式,执行调度智能体据此起草建议"],
|
|
|
+ ["aidop_agent_tool_registry", "工具注册表", "tool_code、tool_name、semantic_desc、invoke_target、tenant_id", "工具注册闸门:仅注册工具可被 Planner 调用,附业务语义描述"],
|
|
|
+ ],
|
|
|
+ col_widths=[3.6, 2.2, 5.4, 4.3],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "四表与本体理念中「本体模型」四分支一一对应:实体表对应 Entity,"
|
|
|
+ "属性由实体表关联的现有业务表字段天然承载(不重复建模),属性口径元数据(单位、时间语义、口径版本)与状态字典由实体表 status_dict、attr_spec_json 字段登记,"
|
|
|
+ "关联表对应 Relation,"
|
|
|
+ "动作链表与工具注册表对应 Action(操作与函数:写类操作落动作链,只读函数落工具注册表,不另建函数登记表)。"
|
|
|
+ "规则与约束(数据质量规则)落在巡检引擎的规则配置中,暂以代码/JSON 配置承载,"
|
|
|
+ "P1 实施规则配置页时再评估独立规则配置表设计,见第五章。"
|
|
|
+)
|
|
|
+
|
|
|
+# ============ 四、四类智能体设计 ============
|
|
|
+add_h1("四、四类智能体设计")
|
|
|
+add_table(
|
|
|
+ ["智能体", "职责", "触发方式", "输出落点", "复用现有资产"],
|
|
|
+ [
|
|
|
+ ["数据感知智能体", "扫描数据新鲜度、一致性、完整性,产出异常事实", "周期巡检 Job(错峰调度)", "异常事实写入动作日志与预警候选队列", "22 个 Job 挂接范式、aidop_action_run_log"],
|
|
|
+ ["关系推理智能体", "沿实体—关联—动作链定位根因,产出证据链", "预警事实产生后 / ChatBI 提问时", "根因候选 + 证据(表名/字段/记录号)", "SmartDiagnosisEvidenceRegistry 范式"],
|
|
|
+ ["风险预警智能体", "四规则巡检引擎判定异常,分级预警(轻微/一般/严重)", "周期巡检 Job", "S8 异常协同登记 + 消息通知责任人", "ado_s8_exception、S8 审批流"],
|
|
|
+ ["执行调度智能体", "将分析结论起草为改善建议,经审批后执行并验证", "预警/分析结论产生后", "改善行动 + 有效性验证回写", "SmartOpsImprovementActionService、ImprovementApproverGuard、ImprovementEffectiveness"],
|
|
|
+ ],
|
|
|
+ col_widths=[2.8, 4.6, 2.6, 3.2, 2.3],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "四类职能智能体分工对齐本体理念中「诊断(故障/交付)→ 行业知识沉淀 → 智能问数」三栏逻辑:"
|
|
|
+ "感知与预警对应异常发现,关系推理对应本体因果链路诊断,执行调度对应推荐措施落地。"
|
|
|
+ "LLM 编排 Planner 作为统一调度中枢,按「感知→推理→预警→调度」串接四类智能体。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "四类职能智能体与 1.6 节九个模块级智能体构成「横向能力 × 纵向场景」矩阵:"
|
|
|
+ "每个模块级智能体由四类职能能力组合实现(如 S3 供应协同智能体 = 数据感知的履约巡检 + 关系推理的交期偏差归因 + "
|
|
|
+ "风险预警的分级提醒 + 执行调度的选供建议),四类职能智能体提供可复用的原子能力,"
|
|
|
+ "模块级智能体负责业务场景的闭环编排;5.5~5.9 场景示例即模块级智能体的首批落地。"
|
|
|
+)
|
|
|
+
|
|
|
+# ============ 五、三大能力落地路径 ============
|
|
|
+add_h1("五、自动预警、自动分析、自动优化落地路径")
|
|
|
+
|
|
|
+add_h2("5.1 自动预警:四规则巡检引擎")
|
|
|
+add_body("预警能力以规则巡检引擎实现,四类规则按租户、按对象配置,缺省关闭:")
|
|
|
+add_table(
|
|
|
+ ["规则类型", "监测内容", "示例"],
|
|
|
+ [
|
|
|
+ ["时效性规则", "关键数据的新鲜度", "欠料看板数据超 48 小时未更新则预警"],
|
|
|
+ ["一致性规则", "跨模块数据口径一致", "交货计划数量与采购订单数量不一致则预警"],
|
|
|
+ ["完整性规则", "关键链路数据完备", "齐套检查结果缺失工单行则预警"],
|
|
|
+ ["阈值规则", "业务指标越界", "排产异常数、审批超时数超阈值则预警"],
|
|
|
+ ],
|
|
|
+ col_widths=[3, 6.5, 6],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "巡检以新增 Job 方式挂入现有调度(与 S8WatchSchedulerJob 同范式),"
|
|
|
+ "扫描结果与登记表比对,命中规则即产生预警候选,经分级后写入 S8 异常协同并通知责任人。"
|
|
|
+ "预警结论必须携带触发规则与异常事实位置,保证「可核对、可追溯」。"
|
|
|
+)
|
|
|
+
|
|
|
+add_h2("5.2 自动分析:LLM 编排 Planner 与证据链")
|
|
|
+add_body("分析能力由 Planner 编排完成,流程为:")
|
|
|
+for i, t in enumerate(
|
|
|
+ [
|
|
|
+ "输入:预警事实(含实体、属性值、异常记录号)+ 实体/关联/动作链登记 + 相关业务数据片段。",
|
|
|
+ "推理:沿关联链定位候选根因(如 工单延迟 → 车间生产阶段资源冲突 → 运输环节卡点)。",
|
|
|
+ "校验:每个候选根因必须落到具体证据(表名、字段、记录号),证据不足的候选予以剔除。",
|
|
|
+ "输出:根因报告(结论 + 证据链 + 置信度),供人工确认或供 ChatBI 带证据回答。",
|
|
|
+ ],
|
|
|
+ 1,
|
|
|
+):
|
|
|
+ add_bullet(t, ordered=True, index=i)
|
|
|
+add_body(
|
|
|
+ "Planner 调用现有 DeepSeekChatClient(纯 JSON 补全)完成语义整理与候选排序,"
|
|
|
+ "但推理骨架由登记表与证据校验代码决定,LLM 不产生无证据结论,从机制上抑制幻觉。"
|
|
|
+)
|
|
|
+
|
|
|
+# 归因分析链路图(节点+箭头网络形式,辅助归因反馈表达)
|
|
|
+IMG_ATTR = os.path.join(BASE, "plan", "_img", "attribution_chain.png")
|
|
|
+os.makedirs(os.path.dirname(IMG_ATTR), exist_ok=True)
|
|
|
+draw_attribution_graph(IMG_ATTR)
|
|
|
+p_img = doc.add_paragraph()
|
|
|
+p_img.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
|
|
+p_img.add_run().add_picture(IMG_ATTR, width=Cm(14.5))
|
|
|
+p_cap = doc.add_paragraph()
|
|
|
+p_cap.alignment = WD_ALIGN_PARAGRAPH.CENTER
|
|
|
+run_cap = p_cap.add_run(
|
|
|
+ "图 5.2 归因分析链路示意(欠料预警场景):症状先定位到物料节点,再沿动作链锁定失败任务为根因,处置建议经 L2 审批执行;"
|
|
|
+ "每个节点与箭头均标注关联依据或证据位置"
|
|
|
+)
|
|
|
+set_run_font(run_cap, "宋体", "Times New Roman", 10.5)
|
|
|
+
|
|
|
+add_h2("5.3 自动优化:建议—审批—执行—验证闭环")
|
|
|
+add_body("优化能力复用 S9 已验证的闭环范式,形成完整回路:")
|
|
|
+for i, t in enumerate(
|
|
|
+ [
|
|
|
+ "建议生成:执行调度智能体依据分析结论与工具注册表,起草改善建议(如 重跑 MRP 任务、调整排产优先级、补充采购申请)。",
|
|
|
+ "人工审批:建议进入现有审批流(IFlowBizHandler),审批人守卫校验(ImprovementApproverGuard 范式),未审批不落库。",
|
|
|
+ "执行:审批通过后调用现有业务服务执行(复用排程、采购、交货等既有服务,不另起炉灶)。",
|
|
|
+ "验证:执行结果经有效性验证(ImprovementEffectiveness 范式),验证通过回写规则库与登记表,形成持续进化。",
|
|
|
+ ],
|
|
|
+ 1,
|
|
|
+):
|
|
|
+ add_bullet(t, ordered=True, index=i)
|
|
|
+
|
|
|
+add_h2("5.4 端到端示例:缺料预警—根因分析—优化执行")
|
|
|
+add_body("以供应商欠料场景为例,展示三大能力联动:")
|
|
|
+for i, t in enumerate(
|
|
|
+ [
|
|
|
+ "自动预警:数据感知智能体巡检发现欠料看板数据 48 小时未更新(时效性规则命中),风险预警智能体登记 S8 异常并通知供应链责任人。",
|
|
|
+ "自动分析:关系推理智能体沿「供应商→物料→工单」关联链与 MRP 任务动作链定位根因——MRP 采购申请生成任务最近一次运行失败(附任务运行日志记录号)。",
|
|
|
+ "自动优化:执行调度智能体起草「重跑 MRP 采购申请生成」建议,经审批通过后执行;执行后感知智能体复检库存数据已恢复,有效性验证通过,闭环结束。",
|
|
|
+ ],
|
|
|
+ 1,
|
|
|
+):
|
|
|
+ add_bullet(t, ordered=True, index=i)
|
|
|
+add_body("该示例全程不新建业务逻辑,预警、分析、执行均复用现有 Job、业务服务与审批流。")
|
|
|
+
|
|
|
+add_h2("5.5 试点用例:工单物料齐套四量智能问答")
|
|
|
+add_body(
|
|
|
+ "作为 P2 首批试点,选取业务高频场景:业务人员手动执行工单物料资源检查(齐套检查)后,"
|
|
|
+ "对某工单、某物料的欠料详情发问——「工单 XXX 的物料 A 欠多少?在库、在检、在途、占用各多少?欠料原因是什么?」"
|
|
|
+ "智能体按工单号与物料号分析,返回四类数量与欠料原因。"
|
|
|
+)
|
|
|
+add_body("该场景所需数据在现有代码中均已存在:")
|
|
|
+add_table(
|
|
|
+ ["数据项", "现有代码来源"],
|
|
|
+ [
|
|
|
+ ["在库", "WorkOrdTemp.locStock(来自 165 InvMaster 经数据中台 DOPDEMORQ_SQLSERVER 拉入 _tmp_inv_master)"],
|
|
|
+ ["在检", "WorkOrdTemp.zjsl(PurOrdDetail + MissedPrint + qms_qcp_inspecapplyn 质检申请)"],
|
|
|
+ ["在途", "WorkOrdTemp.ztsl(PurOrdDetail 发货量 − 收货量)"],
|
|
|
+ ["齐套/承诺", "WorkOrdTemp.jqsl / hfjq / PurOrdQty"],
|
|
|
+ ["欠料数量", "dwd_requirement_examine_detail(need_count / use_qty / lack_qty 中台权威列)"],
|
|
|
+ ["占用", "ic_item_stockoccupy / srm_po_occupy(须由聚合工具单独取数,两表列名不同:orderentry_id / entry_id)"],
|
|
|
+ ],
|
|
|
+ col_widths=[3.2, 12.3],
|
|
|
+)
|
|
|
+add_body("问答执行流程(全链路只读,不涉及动作链登记):")
|
|
|
+for i, t in enumerate(
|
|
|
+ [
|
|
|
+ "实体识别:从问句抽取工单号与物料号,命中实体登记表(WORK_ORDER / MATERIAL)。",
|
|
|
+ "链路定位:沿关联登记表四条链路(工单→物料需求、物料→在检、物料→在途、物料→占用)确定取数路径;在库为物料属性,取中台 InvMaster。",
|
|
|
+ "工具取数:调用工具注册表中「齐套四量查询」工具,由后端聚合服务返回四量与欠料。",
|
|
|
+ "证据回答:按「在库 X、在检 Y、在途 Z、占用 W,欠料 Q,原因……」格式回答,附证据表名与记录号。",
|
|
|
+ ],
|
|
|
+ 1,
|
|
|
+):
|
|
|
+ add_bullet(t, ordered=True, index=i)
|
|
|
+add_body("落地三条件(均在现有代码基础上实现):")
|
|
|
+for i, t in enumerate(
|
|
|
+ [
|
|
|
+ "注册聚合查询工具:四量分属齐套宽表、165 库存、采购、质检、占用表,须由后端服务先聚合再注册为工具,LLM 不直连数据库。",
|
|
|
+ "占用单独取数:宽表不单独成列(已参与齐套扣减),聚合服务须单独汇总 ic_item_stockoccupy / srm_po_occupy。",
|
|
|
+ "欠料口径对齐:欠料数量直接引用 lack_qty 权威列,智能体不得自行用「需求−四量」重算。",
|
|
|
+ ],
|
|
|
+ 1,
|
|
|
+):
|
|
|
+ add_bullet(t, ordered=True, index=i)
|
|
|
+add_body(
|
|
|
+ "该用例全部基于现有代码资产:齐套检查(WorkOrderMaterialReadinessService)、欠料宽表(WorkOrdDetailTotalKB)、"
|
|
|
+ "供应商欠料看板(SupplierShortageKanbanService)与 ChatBI 链路,不新建业务逻辑,仅新增登记种子与一个只读聚合查询工具。"
|
|
|
+)
|
|
|
+
|
|
|
+add_h2("5.6 场景示例:S1 客户交期提前的影响分析与建议")
|
|
|
+add_body(
|
|
|
+ "业务人员将某订单交期提前后,智能体自动沿关联链分析影响面并输出建议——"
|
|
|
+ "交期提前 N 天:受影响工单 X 张(其中 Y 张当前产能不满足新交期,需重排);"
|
|
|
+ "物料 A/B 需求提前、缺料风险升高;采购单 PO-C 需催交;发货计划 SH-D 建议改期。"
|
|
|
+)
|
|
|
+add_table(
|
|
|
+ ["数据项", "现有代码来源"],
|
|
|
+ [
|
|
|
+ ["新交期推演", "crm_seorderentry.sys_capacity_date(动态产能推演:真实产线产能 + 工作日历 + 后处理提前期)"],
|
|
|
+ ["工单同步", "WorkOrdMaster(交期确认后工单同步,交期变化触发资源重检)"],
|
|
|
+ ["计划重排", "三级计划重排 /api/Order/seorder/{id}/refresh-plan"],
|
|
|
+ ["物料与采购", "ic_demandschedule、srm_pr_main、srm_po_main、交货计划 DueDate"],
|
|
|
+ ],
|
|
|
+ col_widths=[3.2, 12.3],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "执行路径:感知(交期变更事件)→ 关系推理(沿 订单→工单→物料需求→采购→交货→发货 关联链逐节点计算影响)"
|
|
|
+ "→ 输出建议(重排/催交/改期清单,写类建议经审批流执行)。需登记实体 ORDER 与关联 ORDER-WO,工具 TOOL_DUE_DATE_IMPACT。"
|
|
|
+)
|
|
|
+
|
|
|
+add_h2("5.7 场景示例:S2 理论产能与实际产能分析与建议人数")
|
|
|
+add_body(
|
|
|
+ "智能体定期对比理论产能与实际产能,自动输出改进建议;并根据当天生产内容自动输出建议人数,"
|
|
|
+ "例如「今日计划工序量 X,建议出勤 Y 人(分两班)」,支撑排产与人员调度。"
|
|
|
+)
|
|
|
+add_table(
|
|
|
+ ["数据项", "现有代码来源"],
|
|
|
+ [
|
|
|
+ ["理论产能", "ProdLineDetail.Rate(产线标准速率)+ 产线日历/工作日历"],
|
|
|
+ ["实际产能", "可执行日计划完工实绩(ExecutableDailyPlanService + MES 实绩回读)"],
|
|
|
+ ["效率指标", "OEE KPI(时间稼动率 × 性能稼动率 × 良品率,S6 已注册)"],
|
|
|
+ ["人员技能", "S0 产线技能主数据(AdoS0LineSkillMasterQueryDto)"],
|
|
|
+ ],
|
|
|
+ col_widths=[3.2, 12.3],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "执行路径:感知(产能偏差巡检:理论−实际超阈值)→ 分析(偏差归因:设备/换型/人员/来料)→ 建议:"
|
|
|
+ "输出瓶颈工序清单与稼动率提升建议;建议人数 = Σ(当日计划工序量 × 标准工时) ÷ 人均有效工时,按班次拆分。"
|
|
|
+ "需登记实体 PROD_LINE、LINE_SKILL,工具 TOOL_CAPACITY_GAP、TOOL_HEADCOUNT_SUGGEST。"
|
|
|
+)
|
|
|
+
|
|
|
+add_h2("5.8 场景示例:S3 物料交期分析与自动选供")
|
|
|
+add_body(
|
|
|
+ "智能体按物料对比理论交期与实际交期,分析供应商履约表现并输出改进建议;"
|
|
|
+ "新需求产生时按「交期匹配度 + 历史履约率 + 配额」排序推荐供应商,经审批后更新货源。"
|
|
|
+)
|
|
|
+add_table(
|
|
|
+ ["数据项", "现有代码来源"],
|
|
|
+ [
|
|
|
+ ["理论交期", "采购订单 / 交货计划 DueDate(DeliveryScheduleService)"],
|
|
|
+ ["实际交期", "收货实绩(ReceiptQty / RctQty + 实际到货时间)"],
|
|
|
+ ["供应商档案", "货源表 quota_rate(配额)、lead_time(提前期)、quota_priority"],
|
|
|
+ ["配额分配", "DeliveryScheduleService 按 quota_rate 拆分需求并校验配额之和"],
|
|
|
+ ],
|
|
|
+ col_widths=[3.2, 12.3],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "执行路径:感知(履约偏差巡检:实际交期 − 理论交期)→ 分析(按供应商/物料聚合履约率与延期原因)→ 建议:"
|
|
|
+ "供应商改进建议(如「V1 近 30 天平均延期 X 天,主要因 A 物料,建议配额下调」);"
|
|
|
+ "自动选供建议(「物料 M 新需求按交期匹配度 + 履约率 + 配额排序,推荐 V2,经审批后更新货源」)。"
|
|
|
+ "需登记实体 SUPPLIER、关联 MAT-SUPPLIER,工具 TOOL_SUPPLIER_PERF、TOOL_SUPPLIER_SELECT。"
|
|
|
+)
|
|
|
+
|
|
|
+add_h2("5.9 场景示例:库存变动与安全库存/补货建议(库存优化模型)")
|
|
|
+add_body(
|
|
|
+ "库存变动(对账差异或持续消耗)触发智能体按历史消耗拟合库存优化模型,"
|
|
|
+ "自动输出安全库存与补货建议:更新 SafetyStk、给出再订货点与建议补货量(在手 + 在途扣减后)。"
|
|
|
+)
|
|
|
+add_table(
|
|
|
+ ["数据项", "现有代码来源"],
|
|
|
+ [
|
|
|
+ ["安全库存字段", "AdoS0ItemMaster.SafetyStk(decimal(18,5))已存在,库存类型字典含「安全库存」"],
|
|
|
+ ["库存变动", "S5InventoryDailyReconJob / S5InventoryReconcileJob 对账结果"],
|
|
|
+ ["消耗历史", "发料记录(领料单),用于分布参数估计"],
|
|
|
+ ["提前期", "供应商 lead_time(货源表)"],
|
|
|
+ ],
|
|
|
+ col_widths=[3.2, 12.3],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "模型选择:需求连续波动取正向分布(正态分布),安全库存 SS = z × σd × √L(σd 需求标准差、L 提前期、z 服务水平系数);"
|
|
|
+ "离散小批量需求取泊松分布,按目标服务水平查泊松分位数定再订货点 ROP。"
|
|
|
+ "执行路径:感知(库存对账变动 / 连续消耗触发)→ 分析(近 N 期消耗拟合分布参数)→ 建议(安全库存 / 再订货点 / 补货量),"
|
|
|
+ "写类建议(更新 SafetyStk)经审批流执行。需登记实体 INVENTORY,工具 TOOL_SAFETY_STOCK。"
|
|
|
+)
|
|
|
+
|
|
|
+# ============ 六、与现有代码的对接点 ============
|
|
|
+add_h1("六、与现有代码的对接点")
|
|
|
+
|
|
|
+add_h2("6.1 新增内容清单")
|
|
|
+add_table(
|
|
|
+ ["类别", "新增内容", "落点说明"],
|
|
|
+ [
|
|
|
+ ["配置表", "4 张本体登记表(含 DDL 与种子数据)", "现有业务库,SqlSugar CodeFirst 挂入插件 Entity"],
|
|
|
+ ["巡检 Job", "数据感知 Job、四规则巡检 Job(预警 Job)", "Job/ 目录,与现有 22 个 Job 同范式注册调度"],
|
|
|
+ ["Planner 服务", "LLM 编排 Planner + 证据校验服务", "新增 Planner/ 目录,复用 DeepSeekChatClient"],
|
|
|
+ ["智能体服务", "工具注册闸门服务、建议起草服务", "复用 AidopActionRunLogWriter、S9 改善闭环组件"],
|
|
|
+ ["前端页面", "本体登记维护页 + 智能体运行看板", "复用现有管理端框架,登记 FUNC 功能码后注入菜单"],
|
|
|
+ ["配置开关", "租户级启用开关与规则配置", "缺省关闭,逐租户灰度开启;规则暂以代码/JSON 承载,不建独立规则表"],
|
|
|
+ ],
|
|
|
+ col_widths=[2.6, 6.2, 6.7],
|
|
|
+)
|
|
|
+
|
|
|
+add_h2("6.2 复用与不改动边界")
|
|
|
+add_body("以下现有资产直接复用、不重构:")
|
|
|
+for t in [
|
|
|
+ "DeepSeekChatClient 及 ChatBI 现有链路;",
|
|
|
+ "aidop_action_run_log 动作日志表与写入器;",
|
|
|
+ "S9 诊断证据、改善行动、审批人守卫、有效性验证四个组件;",
|
|
|
+ "S8 异常协同登记与审批流;",
|
|
|
+ "数据中台 mdp/dwd 链路与租户隔离解析(AidopTenantScope)。",
|
|
|
+]:
|
|
|
+ add_bullet(t)
|
|
|
+add_body(
|
|
|
+ "智能体不直连第三方系统,不绕过审批流,不改动现有业务服务的内部逻辑;"
|
|
|
+ "所有新增能力缺省关闭,未启用租户的行为与当前版本完全一致。"
|
|
|
+)
|
|
|
+
|
|
|
+add_h2("6.3 需求就绪度判定与需求卡标准")
|
|
|
+add_body(
|
|
|
+ "对照 1.6 节与第五章按「可开发、可验收」标准对 S1~S9 九个域逐维判定(下表为当前状态,非目标状态),"
|
|
|
+ "判定依据为对 Ai-DOP 主库代码的三层取证(详见下表后取证说明):"
|
|
|
+ "8 个域六维「部分」以上,仅 S2 验收评测与 S7 KPI 为「缺失」——「缺失」指需求卡文档未写或评测资产空缺,不代表代码能力不存在。"
|
|
|
+ "按「缺 C1/C5/C11 即不可开发」标准,各域须按一页需求卡补齐文档与评测后方可进入开发排期。"
|
|
|
+)
|
|
|
+add_table(
|
|
|
+ ["业务域", "业务目标/KPI", "对象与本体", "触发与事件", "规则与算法", "动作与权限", "验收与评测"],
|
|
|
+ [
|
|
|
+ ["S1 产销协同", "部分", "部分", "部分", "部分", "部分", "部分"],
|
|
|
+ ["S2 制造协同", "部分", "部分", "部分", "部分", "部分", "缺失"],
|
|
|
+ ["S3 供应协同", "部分", "部分", "部分", "部分", "部分", "部分"],
|
|
|
+ ["S4 采购执行", "部分", "部分", "部分", "部分", "部分", "部分"],
|
|
|
+ ["S5 物料仓储", "部分", "部分", "部分", "部分", "部分", "部分"],
|
|
|
+ ["S6 生产执行", "部分", "部分", "部分", "部分", "部分", "部分"],
|
|
|
+ ["S7 成品仓储外物流", "缺失", "部分", "部分", "部分", "部分", "部分"],
|
|
|
+ ["S8 异常管理", "部分", "部分", "部分", "部分", "部分", "部分"],
|
|
|
+ ["S9 绩效管理", "部分", "部分", "部分", "部分", "部分", "部分"],
|
|
|
+ ],
|
|
|
+ col_widths=[2.2, 2.1, 2.1, 2.1, 2.1, 2.1, 2.1],
|
|
|
+)
|
|
|
+add_body("判定取证方式(代码层/配置层/数据层三层取证,禁止以文档转述代替代码证据):")
|
|
|
+add_body(
|
|
|
+ "「对象与本体、动作与权限」取证于插件各域服务与审批流 BizHandler:S1 Order/ 24 个服务、S2 Manufacturing/ 18、S3 Supply/ 22、"
|
|
|
+ "S4 ProcurementExecution/ 与 Supply 采购服务、S5 MaterialWarehouse/ 40+、S6 Service/S6/ 24、S7 Service/S7/ 13、S8 Service/S8/ 50、S9 SmartOps/ 39 个文件;"
|
|
|
+ "审批流落点:OrderReview/ContractReview/OrderChangeReviewBizHandler(S1)、MaterialShortageBizHandler(S4)、"
|
|
|
+ "IpqcInspectionFlow/S6ProcessInspectionFlowBizHandler(S6)、FqcInspBillFlowBizHandler(S7)、ExceptionClosure/EscalationBizHandler(S8)。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "「触发与事件」取证于 Job/ 目录 22 个定时任务:S1MdpSyncTransformJob、S2AutoScheduleJob、S3MdpSyncTransformJob/S3PoCompletionMdpSyncJob、"
|
|
|
+ "S4MdpSyncTransformJob、S5InventoryDailyRecon/Inbound/Reconcile/MdpRefresh、S8WatchScheduler/TimeoutAutoEscalation/ActiveFlowStuckScanJob、"
|
|
|
+ "SmartOpsImprovementActionReminder/KpiAtomicWarmupJob 等(S6/S7 为 MDP 同步服务式触发)。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "「规则与算法」取证于 S8 Rules 规则引擎(6 类规则定义 + DataAccess/Health/Providers 分层,S8DecisionService 决策)、"
|
|
|
+ "S6ProcessInspectionJudge/S6ProcessSpecResolver、FqcSpecRuleService、CapacityDateCalculator 与 MaterialRequirementCalculator(S1)、"
|
|
|
+ "排程与产能约束算法(S2)、MRP 采购申请生成规则(S4)、IQC 过账幂等(S5)、SmartOpsKpiAggregateRuleRegistry/KpiTargetRules(S9)。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "「业务目标/KPI」取证于 SmartOps KpiTarget* 组件(KpiTargetService/Resolver/Rules、S1KpiDailySnapshotStore、KpiResultStatusResolver)与 S8KpiSnapshotService/S8KpiTargetConfigService;"
|
|
|
+ "S7 尚无成品物流 KPI 注册证据,判缺失。"
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "「验收与评测」取证于 Admin.NET.Plugin.AiDOP.Tests 与 Admin.NET.Test(S3 2 个、S4 供应商安全 2 个、S5 40+、S6 12、S7 2、S8 50+、SmartOps 18 个测试文件)"
|
|
|
+ "及 Web tests/e2e(s0/s8 场景);S2 排程域无测试资产,判缺失。"
|
|
|
+)
|
|
|
+add_body("各域现状判定与首要补齐项:")
|
|
|
+add_table(
|
|
|
+ ["业务域", "现状判定", "首要补齐项"],
|
|
|
+ [
|
|
|
+ ["S1 产销协同", "代码资产齐全,规格文档不足", "预测粒度与准确率目标、库存计划对象、给 S2 的输入契约与冻结期"],
|
|
|
+ ["S2 制造协同", "代码资产齐全,约束文档缺失", "约束清单(设备/模具/技能/换型)、冻结期、求解时限与结果可解释"],
|
|
|
+ ["S3 供应协同", "相对最完整", "替代料规则、与 S4 的 PO/ASN 边界、IQC 口径"],
|
|
|
+ ["S4 采购执行", "代码资产齐全,需求卡未写", "按 AGT-S4-001 补写全量需求卡(对象/规则/动作均已取证,补目标与评测文档化)"],
|
|
|
+ ["S5 物料仓储", "代码资产齐全(IQC/入库/对账),需求卡未写", "作业对象(收货/上架/拣料/盘点)、批次与库位、盘点差异处理需求卡化"],
|
|
|
+ ["S6 生产执行", "代码资产齐全(工序检验/报工),需求卡未写", "报工与质量对象、停机原因树、工艺参数可调边界需求卡化"],
|
|
|
+ ["S7 成品仓储外物流", "代码资产齐全(FQC/入库/发运),需求卡未写", "发运对象、承运与路线、签收 POD、退货需求卡化;KPI 缺失待补"],
|
|
|
+ ["S8 异常管理", "规则引擎与测试已就绪,字典与基线待定", "体征字典与阈值基线、分级标准、S1~S7 责任人矩阵"],
|
|
|
+ ["S9 绩效管理", "KPI 平台与闭环已就绪,KPI 字典基线待定", "KPI 字典(公式/口径/数据源)、绩效树、回写白名单"],
|
|
|
+ ],
|
|
|
+ col_widths=[2.8, 3.6, 9.1],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "每个域智能体按「一页需求卡」C0~C13 十四项标准写清,最多 3 页:"
|
|
|
+ "C1(业务目标与 KPI)、C5(规则与算法)、C11(验收与评测)任一缺失,评审直接判定「不具备开发条件」。"
|
|
|
+)
|
|
|
+add_table(
|
|
|
+ ["编号", "字段", "必须写清的内容"],
|
|
|
+ [
|
|
|
+ ["C0", "元信息", "需求编号、版本、业务域 Owner、关联域、试点范围、代码基线、自动化等级"],
|
|
|
+ ["C1", "业务目标与 KPI", "3~6 个 KPI:定义与公式、数据源、当前基线、目标值、责任人(无基线值的 KPI 不得进入验收)"],
|
|
|
+ ["C2", "范围与对象", "包含/不包含;对象类型清单(编码、唯一键、关键属性、状态机);关键口径定义"],
|
|
|
+ ["C3", "触发方式", "事件、定时、对话三类;事件名、时点、输入、期望响应(事件可订阅、可幂等去重)"],
|
|
|
+ ["C4", "输入数据与口径", "数据项、来源表/服务、派生口径、新鲜度、缺失处理、权限范围"],
|
|
|
+ ["C5", "规则与算法", "规则编号、判定逻辑、阈值参数、命中动作、证据位置;LLM 能做/不能做什么(LLM 不参与最终数值决策)"],
|
|
|
+ ["C6", "输出物", "输出清单、载体、必含内容、证据要求(结论 100% 附证据位置)"],
|
|
|
+ ["C7", "动作与自动化等级", "动作编号、L0~L4 等级、前置条件、审批、幂等键、回滚方式"],
|
|
|
+ ["C8", "人工介入与审批", "审批矩阵(金额/风险分级)、强制人工项、驳回原因回写(审批人落到岗位)"],
|
|
|
+ ["C9", "异常与降级", "LLM 不可用、数据缺失、重复触发、规则冲突、越权访问的兜底与用户可见状态"],
|
|
|
+ ["C10", "时效与 SLA", "端到端时效、批量上限、巡检窗口、对话首响(全部为数字并写明错峰约束)"],
|
|
|
+ ["C11", "验收与评测", "功能用例数、专家标注样例、质量指标与阈值、回归要求"],
|
|
|
+ ["C12", "上下游接口", "与 S3/S5/S6/S7/S8/S9 及外部系统的方向、内容、契约"],
|
|
|
+ ["C13", "本体登记清单", "对象、属性映射、链接、事件、动作、函数、工具、状态机、证据规范(可直接落四张登记表)"],
|
|
|
+ ],
|
|
|
+ col_widths=[1.5, 3, 11],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "写需求卡时的三个易错点:"
|
|
|
+)
|
|
|
+add_table(
|
|
|
+ ["易错点", "错误写法", "正确写法"],
|
|
|
+ [
|
|
|
+ ["把方案话术当需求", "「采用机器学习与遗传算法动态优化排程」", "「以最小化换型次数为第一目标、交期满足为硬约束,求解上限 90 秒,输出前 3 个方案及目标值分解」"],
|
|
|
+ ["只写正向路径", "「自动生成 PO 并跟踪」", "「无货源/无价格/超配额/供应商冻结四类分支各自挂起并转什么任务」"],
|
|
|
+ ["验收写形容词", "「预警及时、结论可核对」", "「逾期预警提前≥3 天覆盖≥80%;证据完整率 100%;误报率≤10%(100 条标注样本)」"],
|
|
|
+ ],
|
|
|
+ col_widths=[3, 5.9, 6.6],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "需求卡须同步维护「证据规范」:每条结论 = 对象编码 + 记录号 + 字段 + 值 + 快照时间 + 口径版本,"
|
|
|
+ "缺快照时间或口径版本的证据在跨日复核时视为无效。"
|
|
|
+ "S4 采购执行智能体需求卡(AGT-S4-001)为完整参照示例:首批三个场景(PR 转 PO 自动起草含配额与框架价校验、"
|
|
|
+ "交期答复与 T-3 逾期催交、供应商履约复盘与配额调整建议),首批规则 6 条、动作 6 个(全部 L2,催交通知可升 L3),"
|
|
|
+ "试点范围 1 工厂 × 1 品类 × 30 家供应商运行一个完整采购月;验收底线为草稿字段准确率 ≥98%、规则命中准确率 ≥90%、"
|
|
|
+ "误报率 ≤10%、逾期预警提前 ≥3 天覆盖 ≥80%、证据完整率 100%。"
|
|
|
+ "登记口径:动作(有副作用)、函数(确定性无副作用,如未交量/配额校验/交期匹配)、工具三者分开登记、编码不混用,"
|
|
|
+ "未注册工具一律不可调用。完整需求卡见配套文档《AI-DOP_S1-S9智能体需求覆盖矩阵与需求卡模板》。"
|
|
|
+)
|
|
|
+
|
|
|
+# ============ 七、分阶段实施计划 ============
|
|
|
+add_h1("七、分阶段实施计划")
|
|
|
+add_table(
|
|
|
+ ["阶段", "建设内容", "交付物", "验收口径"],
|
|
|
+ [
|
|
|
+ ["P0 底座(约 2 周)", "4 张本体登记表 + 工具注册闸门 + 前端登记页", "表 DDL、登记维护页面", "登记、启停、租户隔离生效;未启用租户行为不变;矩阵 A 对象/规则/工具起步值完成代码与业务基线校准"],
|
|
|
+ ["P1 自动预警(约 3 周)", "四规则巡检引擎 + 数据感知/风险预警 Job + S8 对接", "巡检 Job、规则配置页、预警通知", "规则命中即登记 S8 异常并通知;预警结论可核对"],
|
|
|
+ ["P2 自动分析(约 3 周)", "关系推理智能体 + Planner + 证据链 + ChatBI 增强 + 齐套四量问答试点", "Planner 服务、证据链报告、ChatBI 带证据回答、试点用例", "根因候选均带证据;无证据不下结论;试点问答返回四量与欠料并附证据"],
|
|
|
+ ["P3 自动优化(约 3 周)", "执行调度智能体 + 建议审批 + 有效性验证闭环", "建议起草服务、闭环流程", "建议经审批方可执行;验证结果回写规则库"],
|
|
|
+ ["P4 扩展(持续)", "更多业务场景规则沉淀、登记表扩展", "场景规则包、登记数据", "每场景均有可复盘证据与收益统计"],
|
|
|
+ ],
|
|
|
+ col_widths=[2.8, 5, 3, 4.7],
|
|
|
+)
|
|
|
+add_body("P0~P3 合计约 11 周;各阶段均可独立交付与回退,不阻塞现有业务发版。")
|
|
|
+add_body(
|
|
|
+ "P4 业务域补齐顺序按「数据就绪度 × 规则确定性」排序(与模块重要性无关):"
|
|
|
+ "S4 采购执行 → S5 物料仓储 → S3 完善 → S7 成品仓储外物流 → S6 生产执行 → S1/S2 完善 → S8/S9 字典与 KPI 基线;"
|
|
|
+ "S6 依赖车间实时数据,宜在 S4/S5 跑通 L2 闭环后再启动。"
|
|
|
+ "各域以「一页需求卡」C0~C13 达标为排期输入,6.3 节矩阵 B 的「缺失/部分」逐项销项。"
|
|
|
+)
|
|
|
+
|
|
|
+# ============ 八、风险与应对 ============
|
|
|
+add_h1("八、风险与应对")
|
|
|
+add_table(
|
|
|
+ ["风险", "应对措施"],
|
|
|
+ [
|
|
|
+ ["LLM 幻觉导致错误结论", "推理骨架由登记表与证据校验代码决定;结论必须带证据;关键建议必经人工审批"],
|
|
|
+ ["误报导致预警疲劳", "规则阈值可配置、预警分级、置信度过滤;错峰巡检控制频率"],
|
|
|
+ ["越权访问或跨租户泄漏", "所有读写强制 tenant_id;工具注册闸门限定可调用面;复用 ResolveOrThrow 解析"],
|
|
|
+ ["巡检影响在线业务", "巡检只读扫描、错峰调度、限流;重活复用现有调度能力"],
|
|
|
+ ["登记表滞后于业务变化", "LLM 半自动抽取生成登记草稿(AI 辅助本体构建),人工确认生效;版本化留痕"],
|
|
|
+ ],
|
|
|
+ col_widths=[5, 10.5],
|
|
|
+)
|
|
|
+
|
|
|
+# ============ 九、预期效果 ============
|
|
|
+add_h1("九、预期效果与价值量化")
|
|
|
+add_body(
|
|
|
+ "智能体能力建设的价值量化目标如下(目标值为示例,P0 阶段以一个月历史数据锁定基线后方可校准):"
|
|
|
+)
|
|
|
+add_table(
|
|
|
+ ["维度", "改善前(现状)", "目标值"],
|
|
|
+ [
|
|
|
+ ["预警时效", "人工巡检,小时级发现", "规则巡检分钟级发现,关键风险提前 72 小时暴露"],
|
|
|
+ ["分析时效", "专家手工排查,天级定位", "证据链推理,小时级输出根因报告"],
|
|
|
+ ["人工干预率", "依赖人工巡查与判断", "常规异常自动闭环,人工干预率下降 40%"],
|
|
|
+ ["问题响应时间", "以小时计", "缩短 60% 以上"],
|
|
|
+ ["可核对可追溯", "结论依赖经验", "100% 结论附带证据链,可反查至原始数据"],
|
|
|
+ ["交付准时率", "现有水平", "提升 15%(经排产/采购类优化建议闭环)"],
|
|
|
+ ],
|
|
|
+ col_widths=[3.4, 5.6, 6.5],
|
|
|
+)
|
|
|
+add_body(
|
|
|
+ "表中数值为目标示例,P0 阶段以一个月历史数据锁定基线后方可进入验收,无基线的 KPI 不写入验收表。"
|
|
|
+)
|
|
|
+
|
|
|
+# ============ 十、附录 ============
|
|
|
+add_h1("十、附录:术语对照表")
|
|
|
+add_table(
|
|
|
+ ["术语", "释义", "在本方案中的角色"],
|
|
|
+ [
|
|
|
+ ["OTD", "Order-To-Delivery,订单交付端到端全流程", "智能体运行的业务主线,覆盖 S0~S10 模块"],
|
|
|
+ ["ANDON / SIM", "安灯与即时管理,标杆企业异常监控数字化工具", "S8 异常协同的成熟实践,自动预警的落地载体"],
|
|
|
+ ["本体(Ontology)", "业务世界的统一语义模型", "智能体运行的语义底座,以 4 张配置表承载"],
|
|
|
+ ["实体/属性/关联/动作", "本体四要素", "分别对应实体登记表、业务表字段、关联登记表、动作链表与工具注册表"],
|
|
|
+ ["巡检 Job", "周期性执行的后台任务", "数据感知与风险预警智能体的运行形态"],
|
|
|
+ ["Planner", "LLM 编排中枢", "串接四类智能体,负责候选根因排序与报告生成"],
|
|
|
+ ["工具注册闸门", "可调用 API 的显式注册机制", "未注册工具不可被智能体调用,防止越权"],
|
|
|
+ ["证据链", "结论所依赖的表名、字段、记录号", "「可核对、可追溯」的强制载体"],
|
|
|
+ ["改善闭环", "建议—审批—执行—验证回路", "自动优化的落地通道,复用 S9 范式"],
|
|
|
+ ],
|
|
|
+ col_widths=[3.2, 5.4, 6.9],
|
|
|
+)
|
|
|
+
|
|
|
+add_body(
|
|
|
+ "本方案以「零旁路增量」为总纲:本体作为统一语义底座沉淀于登记表,"
|
|
|
+ "智能体作为巡检 Job 与 Planner 挂入现有调度与审批体系,"
|
|
|
+ "自动预警、自动分析、自动优化三项能力逐级叠加、缺省关闭、可评审、可回退,"
|
|
|
+ "在现有代码基础上把 Ai-DOP 从「看数据、用数据」推向「自动感知、自动推理、自动闭环」。"
|
|
|
+)
|
|
|
+
|
|
|
+os.makedirs(os.path.dirname(OUT), exist_ok=True)
|
|
|
+doc.save(OUT)
|
|
|
+print(OUT)
|