Neo4j · 共享关系记忆(P0 最小集)
为何需要:持仓-产品-客户、产品-适当性规则、客户-代理人归属是 四 Agent 共同依赖的关系视图,用于:
C-01 持仓关联、A-01 客户概况、R-01/R-02 上下文、D-05 交叉问数。
为何不存 MySQL 主表:关系遍历与传导(持仓→行业→风险事件)在图上更高效;事实金额仍以 Core RO 为准。
1. P0 节点(Node Labels)
| Label |
主键属性 |
来源 |
说明 |
Customer |
customer_id |
Core 同步 |
不含敏感明文,仅 ID + 脱敏标记 |
Advisor |
advisor_id |
Core 同步 |
|
Product |
product_id |
Core 同步 |
基金/产品 |
RiskGrade |
code |
Core |
C1C5 或 R1R5 |
Industry |
industry_code |
Core 同步 |
行业分类,P1 扩展 |
不在 Neo4j 存:会话、审计、向量、画像 JSON(仍 MySQL)。
2. P0 关系(Relationships)
| 关系 |
起 → 止 |
属性 |
用途 |
ASSIGNED_TO |
Customer → Advisor |
since, status |
F-01 归属校验 |
HAS_RISK_LEVEL |
Customer → RiskGrade |
source=l0, evaluated_at |
R-02 适当性(L0 权威) |
HOLDS |
Customer → Product |
qty, market_value, cost, pnl_pct, as_of |
C-01/A-01/R-01 上下文 |
REQUIRES_MIN_RISK |
Product → RiskGrade |
rule_id |
R-02 产品最低适配等级 |
BELONGS_TO |
Product → Industry |
— |
C-13 持仓传导,P1 |
3. 同步策略
| 同步频率 |
数据 |
| 准实时(≤5min) |
HOLDS 市值/盈亏 |
| 日批 |
Industry、REQUIRES_MIN_RISK |
| 事件驱动 |
ASSIGNED_TO 变更 |
4. 各 Agent 读图场景
| Agent |
Cypher 意图示例 |
场景 |
| 客户财富 |
我的某产品→所属行业→相关资讯标的 |
C-01, C-13 |
| 代理人助手 |
客户→持仓→产品风险等级分布 |
A-01 |
| 风控监测 |
客户→HOLDS→Product→REQUIRES_MIN_RISK vs HAS_RISK_LEVEL |
R-02 |
| 数据分析 |
统计某 RiskGrade 下 HOLD 产品类别分布 |
D-05 |
5. P0 不建模(避免过度设计)
| 不建 |
原因 |
| 会话/Message 节点 |
MySQL + Redis 已覆盖 |
| 预警 Alert 节点 |
MySQL risk_alert 权威 |
| 画像标签节点 |
MySQL JSON + 分析用 SQL 聚合足够 P0 |
| 全文文档节点 |
Milvus 负责 RAG |
6. 示例 Cypher(R-02 适当性)
硬判定逻辑仍在风控服务代码 + Core 规则引擎;Neo4j 提供 关系查询加速,非唯一真相源。