2026-09-05 17:09:21 +08:00
|
|
|
|
-- =============================================================================
|
|
|
|
|
|
-- 单 Agent 专用 MySQL(5 张)
|
|
|
|
|
|
-- 执行时机:各 Agent 组开发自己的功能时创建(也可一次性全建)
|
|
|
|
|
|
-- 共用底座见 01-mysql-共用底座.sql
|
|
|
|
|
|
-- =============================================================================
|
|
|
|
|
|
|
|
|
|
|
|
USE jinrong_agent;
|
|
|
|
|
|
|
|
|
|
|
|
-- ⚪ 客户财富 Agent
|
|
|
|
|
|
CREATE TABLE customer_threshold_config (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
|
customer_id VARCHAR(64) NOT NULL,
|
|
|
|
|
|
scope_type ENUM('portfolio','product') NOT NULL DEFAULT 'portfolio',
|
|
|
|
|
|
scope_ref VARCHAR(64) NULL,
|
|
|
|
|
|
loss_threshold_pct DECIMAL(5,2) NOT NULL,
|
|
|
|
|
|
notify_channel SET('app','sms','email') NOT NULL DEFAULT 'app',
|
|
|
|
|
|
is_enabled TINYINT(1) NOT NULL DEFAULT 1,
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
|
|
|
|
KEY idx_customer (customer_id, is_enabled)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='【客户专用】亏损阈值配置';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE customer_notify_log (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
|
customer_id VARCHAR(64) NOT NULL,
|
|
|
|
|
|
trace_id VARCHAR(64) NOT NULL,
|
|
|
|
|
|
notify_type ENUM('loss_threshold','market_volatility') NOT NULL,
|
|
|
|
|
|
threshold_config_id BIGINT UNSIGNED NULL,
|
|
|
|
|
|
payload JSON NOT NULL,
|
|
|
|
|
|
channel VARCHAR(16) NOT NULL,
|
|
|
|
|
|
send_status ENUM('sent','failed') NOT NULL,
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
|
|
KEY idx_customer_time (customer_id, created_at)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='【客户专用】提醒留痕';
|
|
|
|
|
|
|
|
|
|
|
|
-- ⚪ 代理人助手 Agent
|
|
|
|
|
|
CREATE TABLE advisor_draft (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
|
draft_id VARCHAR(64) NOT NULL,
|
|
|
|
|
|
session_id VARCHAR(64) NOT NULL,
|
|
|
|
|
|
trace_id VARCHAR(64) NOT NULL,
|
|
|
|
|
|
advisor_id VARCHAR(64) NOT NULL,
|
|
|
|
|
|
customer_id VARCHAR(64) NOT NULL,
|
|
|
|
|
|
draft_type ENUM('script','follow_up') NOT NULL,
|
|
|
|
|
|
content MEDIUMTEXT NOT NULL,
|
|
|
|
|
|
review_status ENUM('pending','approved','rejected') NOT NULL DEFAULT 'pending',
|
|
|
|
|
|
reviewer_id VARCHAR(64) NULL,
|
|
|
|
|
|
reviewed_at DATETIME(3) NULL,
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
|
|
UNIQUE KEY uk_draft_id (draft_id),
|
|
|
|
|
|
KEY idx_advisor_customer (advisor_id, customer_id, created_at),
|
|
|
|
|
|
KEY idx_review (review_status, created_at)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='【代理人专用】话术/跟进草稿';
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE compliance_hit_log (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
|
session_id VARCHAR(64) NOT NULL,
|
|
|
|
|
|
trace_id VARCHAR(64) NOT NULL,
|
|
|
|
|
|
agent_type ENUM('customer','advisor') NOT NULL,
|
|
|
|
|
|
actor_id VARCHAR(64) NOT NULL,
|
|
|
|
|
|
hit_category ENUM('return_promise','principal_guarantee','buy_sell_guide','product_recommend','other') NOT NULL,
|
|
|
|
|
|
matched_terms JSON NOT NULL,
|
|
|
|
|
|
severity ENUM('low','medium','high') NOT NULL,
|
|
|
|
|
|
action_taken ENUM('flagged','blocked','alerted') NOT NULL,
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
|
|
KEY idx_severity_time (severity, created_at),
|
|
|
|
|
|
KEY idx_session (session_id)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='【代理人专用】违规话术命中';
|
|
|
|
|
|
|
|
|
|
|
|
-- ⚪ 数据分析 Agent
|
|
|
|
|
|
CREATE TABLE analytics_query_log (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
|
session_id VARCHAR(64) NOT NULL,
|
|
|
|
|
|
trace_id VARCHAR(64) NOT NULL,
|
|
|
|
|
|
staff_id VARCHAR(64) NOT NULL,
|
|
|
|
|
|
nl_question TEXT NOT NULL,
|
|
|
|
|
|
generated_sql TEXT NOT NULL,
|
|
|
|
|
|
sql_hash CHAR(64) NOT NULL,
|
|
|
|
|
|
row_count INT UNSIGNED NULL,
|
|
|
|
|
|
exec_status ENUM('success','error','blocked') NOT NULL,
|
|
|
|
|
|
exec_latency_ms INT UNSIGNED NULL,
|
|
|
|
|
|
result_summary JSON NULL,
|
|
|
|
|
|
has_disclaimer TINYINT(1) NOT NULL DEFAULT 0,
|
|
|
|
|
|
error_message VARCHAR(512) NULL,
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
|
|
KEY idx_staff_time (staff_id, created_at),
|
|
|
|
|
|
KEY idx_trace (trace_id),
|
|
|
|
|
|
KEY idx_sql_hash (sql_hash)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='【分析专用】查数 SQL 留痕';
|
2026-09-06 15:09:13 +08:00
|
|
|
|
|
|
|
|
|
|
-- ⚪ 风控监测 Agent
|
|
|
|
|
|
CREATE TABLE risk_aml_list (
|
|
|
|
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
|
list_id VARCHAR(64) NOT NULL,
|
|
|
|
|
|
list_type ENUM('sanction','terror','pep') NOT NULL,
|
|
|
|
|
|
full_name VARCHAR(128) NOT NULL COMMENT '与 core_customer.display_name 同为脱敏展示名口径',
|
|
|
|
|
|
id_no VARCHAR(32) NULL COMMENT '预留:待 Core 提供证件数据后启用匹配',
|
|
|
|
|
|
bank_card_no VARCHAR(32) NULL COMMENT '预留:同上',
|
|
|
|
|
|
match_threshold DECIMAL(3,2) NOT NULL DEFAULT 0.85,
|
|
|
|
|
|
source VARCHAR(64) NOT NULL,
|
|
|
|
|
|
list_version VARCHAR(16) NOT NULL,
|
|
|
|
|
|
effective_date DATE NOT NULL,
|
|
|
|
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
|
|
|
|
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
|
|
|
|
UNIQUE KEY uk_list_id (list_id),
|
|
|
|
|
|
KEY idx_name (full_name),
|
|
|
|
|
|
KEY idx_active (is_active)
|
|
|
|
|
|
) ENGINE=InnoDB COMMENT='【风控专用】AML 名单本地镜像 · 依据 docs/PRD/PRD-风控监测Agent.md §6.2';
|