微信扫码
添加专属顾问
淘宝百亿补贴数据分析助手Agent,以自然语言实现全流程数据分析,解决传统取数慢、口径乱等痛点,提升效率与质量。 核心内容: 1. 系统核心能力:自然语言提问→全流程数据分析(找表、写SQL、执行、分析) 2. 解决传统数据分析痛点:取数慢、口径混乱、归因依赖人工、知识不沉淀 3. 核心技术架构:多Agent协同、NL2MDL2SQL路径、六层知识体系及加速查询
项目概述
bybt-data-analysis-assistant 是一个数据分析智能体——你用自然语言提问,它自主完成从找表、写 SQL、执行查询到深度分析的全流程:
"昨天 GMV 多少?" → 找表 → 生成 SQL → 执行 → 返回结果"GMV 为什么跌了?" → 波动归因 → 逐层下钻 → 因果链报告"这个指标怎么计算的?" → 血缘溯源 → 上游字段 → 计算逻辑"各行业 GMV 做帕累托" → 取数 → Python 分析 → 图表
它不是简单的 Text-to-SQL,而是一个能思考、会选工具、能自我纠错的 Agent。
快速上手
启动服务:
./boot.sh
访问地址:
对话示例:
技术架构全景
用户自然语言提问 │ ▼┌──────────────────────────────────────────────────────┐│ 意图识别层 ││ Intent Agent: LLM 单次调用 → JSON 意图参数包 ││ (意图分类 + 时间解析 + 指标识别 + 维度推断) │└──────────────────────┬───────────────────────────────┘ │ ▼┌──────────────────────────────────────────────────────┐│ 调度路由层 ││ Supervisor: 日期注入 + 语义计划 + 记忆召回 ││ → 分发到对应专家 Agent │└──────┬──────────┬──────────┬──────────┬───────────────┘ │ │ │ │ ▼ ▼ ▼ ▼ ┌────────┐┌────────┐┌────────┐┌────────┐ │ Query ││Analysis││ Ops ││ Other │ │ Agent ││ Agent ││ Agent ││ Agent │ │取数专家 ││分析专家 ││运维专家 ││ 兜底 │ └────┬───┘└────┬───┘└────────┘└────────┘ │ │ ▼ ▼┌──────────────────────────────────────────────────────┐│ 保障层 ││ SQL Validator Gate (后置校验) ││ 答案净化 + SQL 自动暂存 ││ SSE 流式输出给前端 │└──────────────────────────────────────────────────────┘ │ ▼┌──────────────────────────────────────────────────────┐│ 知识底座 ││ MDL 语义层 │ SQL 片段库 │ 规则库 │ 血缘图谱 │ 会话记忆││ (WrenAI) │ (TisPlus3)│(TisPlus3)│(LightRAG)│(TisPlus3)│└──────────────────────────────────────────────────────┘
设计要点:不同环节用不同规格的模型——重活用 qwen-plus,轻活用 qwen-turbo,控制成本和延迟。
Agent 架构设计
意图识别是 Agent 的大脑前哨——在 Agent 执行前,先用一次 LLM 调用解析出标准化参数包:
{"intent_type":"attribution","confidence":0.95,"metric_field":"gmv_amt","metric_name":"GMV","time_label":"昨天 vs 前天","curr":"2026-06-14","prev":"2026-06-13","scope":"all"}一次调用同时完成:
降级策略:LLM 调用失败时,自动回退到关键词匹配 + 规则解析。
多意图检测:一个问题含多个意图时,主意图放 intent_type,次要意图放 secondary_intents 数组,支持组合如 table_meta + data_query(查表结构 + 写查询)。
Supervisor 根据意图识别结果,将问题分发到对应的专家 Agent:
为什么不用单 Agent:单 Agent 需要一个巨大的 system prompt 和几十个工具,导致工具选择困难、prompt 膨胀、调用预算浪费。多 Agent 让每个专家只看自己相关的工具和指令,选择更精准。
Agent 不是"一条命令出结果",而是边想边做的 ReAct 循环。以"昨天 GMV 和前天比怎么样?"为例:
Thought 1: 需要先找到 GMV 所在的表Action 1: search_metrics(query="GMV")Result 1: → ads_flow_sum_di, gmv_amtThought 2: 知道表了,查 SQL 规则确认口径Action 2: rule_search(table="ads_flow_sum_di")Result 2: → 必须加 WHERE activity_type=''Thought 3: 生成 SQL 查昨天和前天Action 3: build_sql(table="ads_flow_sum_di", metrics=["gmv_amt"], bizdate_start="2026-06-14", compare_bizdate_start="2026-06-13")Result 3: → SELECT ... (完整 SQL)Thought 4: 执行 SQLAction 4: odps_query(sql="...")Result 4: → 昨天 XX亿,前天 XX亿,环比 -20%Thought 5: 用户问了"怎么样",需要分析环比Action 5: python_analyze(code="df['环比'] = ...")Result 5: → 环比下降 20%,主要受家电行业影响Final Answer: 昨天 GMV 1.2 亿,环比下降 20%...
为什么用 ReAct 而不是固定流程:
ReAct 让 Agent 自主决定调什么工具、传什么参数、什么时候收敛。
Agent 有"刹车系统"(Harness),防止失控:
此外,所有 Agent 生成的 SQL 都经过 SQL Validator Gate 后置校验,确保语法正确、表名存在、字段合法。
这是整个系统最关键的技术选型。
直接让 LLM 写 SQL 有三个致命问题:
直接 Text-to-SQL │ ├── ❌ 幻觉字段:LLM 编造不存在的列名 ├── ❌ 口径错误:不知道某表的 WHERE 条件该加什么 └── ❌ 不可复用:每次从零生成,没有沉淀
LLM 不知道 ads_bybt_flow_sum_di 表必须有 activity_type = '百亿补贴' 这个 WHERE 条件。它会编造字段,会漏掉过滤条件,每次生成结果还不一样。
WrenAI 引入了 MDL(Model Definition Language)——类似 dbt 的语义建模层:
用户问题 │ ▼WrenAI MDL 语义层 │ ├── mdl.json(模型定义文件) ← 表名、字段、关系、描述 ├── dry_plan(NL → SQL 预演) ← 自然语言转 SQL ├── recall(查询历史召回) ← 记住之前问过什么 └── fetch_context(上下文召回) ← 给 LLM 补充表结构信息 │ ▼生成的 SQL 经过语义层校验 │ ▼✅ 字段存在 ✅ 口径正确 ✅ 可复用
mdl.json 定义了每个表的结构化语义:
{ "models": [ { "name": "ads_flow_sum_di","tableReference": { "table": "ads_flow_sum_di" }, "columns": [ { "name": "gmv_amt", "type": "decimal", "expression": "pay_amt" }, { "name": "bizdate", "type": "date" } ], "description": "汇总日表" } ]}Agent 在生成 SQL 前会先从 MDL 获取表结构,确保只用真实存在的字段。
Agent 根据表类型自动选择 SQL 构建策略:
4.3 节展示了 ReAct 的 Thought→Action→Result 机制。在取数场景中,这些工具调用可以按知识层级归为四个阶段:
Agent 在 ReAct 循环中自主决定调用顺序和是否需要每个阶段——简单取数可能跳过知识应用,复杂分析可能多轮调用。
数据分析场景涉及多次递归下钻查询,每次走 ODPS 执行 SQL 耗时 30-120 秒。当 Agent 需要执行 5-10 次 SQL 才能完成一次诊断时,总耗时可能超过 10 分钟。引入 Hologres 外部表直读 ODPS,将单次查询加速到 3-10 秒。
为什么选 Holo 外部表而不是全量同步:
选择外部表直读:不需要 DBA 介入,onboard 新表自动挂载,第一次查询时自动创建外部表,后续 LRU 缓存命中。
场景闸门——只在数据分析场景启用:
Holo 加速仅对 stream_analysis(多步分析编排器)生效,普通 NL2SQL、CLI 脚本、运维查询一律走 ODPS。通过 contextvars.ContextVar 实现线程/协程安全的场景标记:
执行链路:
LLM 生成 ODPSSQL │ ▼odps_query 工具(接口签名不变) │ ├─ Step0: 场景闸门——HOLO_ROUTE_MODE=always 且 holo_scope=True? │ 否 → 直走 Step7ODPS │ 是 ↓ ├─ Step1: 变量替换(${bizdate} → 具体日期值) ├─ Step2: 黑名单检测(GET_JSON_OBJECT/EXPLODE 等不兼容函数 → 直走 ODPS) ├─ Step3: 抽取 SQL 中所有表名(sqlglot AST 解析) ├─ Step4: ensure_foreign_tables——按需创建外部表 │ 检查 information_schema.foreign_tables 是否已存在 │ 不存在 → IMPORTFOREIGNSCHEMA LIMITTO () │ LRU 缓存 + 持久化 JSON,避免重复 DDL ├─ Step5: sqlglot 方言转换(ODPS → PostgreSQL) │ + 表名重写(bm_dw.xxx → public.xxx) ├─ Step6: 通过 aistudio HTTP 网关执行 │ ├─ 成功 → 返回结果(标记 "via Hologres") │ └─ 失败 → Step7 └─ Step7: FallbackODPS(PyODPS execute_sql,原路径)外部表自动管理:
不需要 DBA 预先 IMPORT 整个 project(上千表一次性 IMPORT 很贵)。而是拿到 SQL 后用 sqlglot 抽出表名,按需创建。首次查某表多 1-3 秒建表开销,后续查 LRU 命中零开销。
# 进程内存缓存(set)+ 持久化文件(.holo_foreign_imported.json)# 幂等去重,重启不丢失# 外部表与 ODPS 表同名,默认 prefix/suffix 为空
切库自愈:
当 Hologres 实例切库(如重建实例)后,所有外部表丢失。此时查询会报 relation "xxx" does not exist。系统自动检测该错误,清空 IMPORT 缓存,重新 ensure 外部表后重试一次。整个过程对 Agent 透明,最多增加 3 秒。
知识库体系
知识库是 Agent 的"记忆"。一个能正确取数、能深度归因的 Agent,背后必须有一套结构化的知识体系支撑。本章从存储、采集、应用三个维度展开。
┌─────────────────────────────────────────────────────────────┐│ 应用层 ││ Agent ReAct 循环主动调用知识检索工具 ││ search_metrics / cap_search / snippet_search / rule_search ││ lightrag_column_logic / parse_sql_lineage │├─────────────────────────────────────────────────────────────┤│ 采集层 ││ ││ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ ││ │ AST 血缘 │ │ 指标注册 │ │ Onboard 流水线 │ ││ │ 解析引擎 │ │ 体系 │ │ (表接入) │ ││ │ (6-Phase) │ │ (3 种公式) │ │ (5 步自动接入) │ ││ └──────┬───────┘ └──────┬───────┘ └────────┬─────────┘ ││ │ │ │ ││ ▼ ▼ ▼ │├─────────────────────────────────────────────────────────────┤│ 存储层 ││ ││ Layer 1: 表能力清单 + MDL 语义模型 ││ Layer 2: SQL 片段库 (Snippet Store) ││ Layer 3: SQL 规则库 (Rule Store) ││ Layer 4: 血缘知识图谱 (LightRAG KG) + AST 实时解析 ││ Layer 5: 指标注册表 (Metric Registry) ││ Layer 6: 会话记忆 (Session Memory) │└─────────────────────────────────────────────────────────────┘
知识分为六层,每层有不同的粒度、变更频率和权威等级:
权威等级:
血缘关系是数据治理的核心:某张表的 GMV 字段来自哪几张上游表?经过了什么计算?WHERE 条件是什么?这些信息分散在数百行的 ETL SQL 中,人工维护不可持续。
原始 ETL SQL │ ▼Phase 0: Schema Registry ← 加载所有相关表的字段定义 │ (本地 JSON 文件 + DataWorks API 降级) ▼Phase 1: 预处理 (Preprocess) ← 全角标准化 / DDL 剥离 / 变量替换 │ 多 INSERT 拆分 / 方言兼容 ▼Phase 2: AST 标准化 (Normalize) ← sqlglot 解析 SQL → AST │ 展开 SELECT * 为显式列列表 ▼Phase 3: 节点提取 (Extract) ← DFS 遍历 AST,按 scope 提取 │ CTE / 子查询 / UNION 分支 / 主查询 │ 每个.scope: 源表、输出列、JOIN、WHERE ▼Phase 4: 作用域解析 (Resolve) ← 符号表 + alias 消歧 │ CTE scope 隔离,拓扑序逐层解析 │ 裸列名 → schema 消歧定位 ▼Phase 5: 血缘映射 (Map) ← resolved scopes → 血缘边 (Edge) │ direct: 上游列直传 │ computed: 表达式中的所有列引用 │ aggregated: SUM/COUNT 等聚合 ▼Phase 6: 输出构建 (Output) ← 生成标准化 JSON target_table / source_tables / columns(含 depends_on) / joins / where_conditions
Agent 需要查字段血缘 │ ├── 1. lightrag_column_logic(table, column) ← 先查 LightRAG KG │ ↓ KG 未命中(表未 onboard) ├── 2. dw_get_table_source(table) ← 取 ETL 源代码 │ ↓ 拿到 SQL └── 3. parse_sql_lineage(sql, column) ← AST 实时解析 ↓ 返回字段映射、来源表、WHERE 条件
引擎能处理复杂 ODPS SQL 语法,包括:
内置 回归测试框架,覆盖 45 张真实表、296 个节点:
指标注册表(Layer 5)是波动归因诊断的核心知识源——它定义了每个业务指标如何拆解。
归因诊断的核心是"拆解":GMV 跌了 20%,要拆成访客数 × 转化率 × 客单价,找出哪个因子是主因。但"GMV 等于什么"这个知识从哪来?
如果靠 LLM 自己猜,它可能拆成"流量 × 客单价"——漏掉了转化率。如果写死在代码里,每加一个指标都要改代码。
指标注册体系让指标定义成为声明式配置,运营同学通过 Web 向导就能接入新指标。
以 GMV 为例,一个完整的指标定义:
metric_id: gmvname: GMVformula_type: multiplicativedescription: 支付GMV,流量漏斗拆解为 曝光UV × 转化率 × 客单价total_col: pay_amtfactors: - name: IPVUV label: 曝光UV type: column # 直接取列值 column: ipv_uv - name: CVR label: 转化率 type: ratio # 分子/分母 numerator: ord_cnt denominator: ipv_uv - name: AOV label: 客单价 type: ratio numerator: pay_amt denominator: ord_cntsource: table: ads_sup_index_didimensions: - dim_col: ind1_name label: 行业 perspective: goods # 供给/商品类 axis: business - dim_col: act_type label: 活动类型 perspective: place # 渠道/流量类 axis: trafficaliases: [gmv_amt, 交易额, 成交额]
乘法型恒等式铁律:因子相乘后约分必须恰好等于 total_col。
GMV = IPVUV × CVR × AOV = ipv_uv × (ord_cnt / ipv_uv) × (pay_amt / ord_cnt) = pay_amt ✅
每个指标关联一组可拆解维度,维度按两个正交轴分类:
指标接入通过 Web 平台的"指标接入向导"完成,AI 辅助生成 MetricDef:
1. 选择 MDL 表 → 系统列出表结构和字段2. AI 生成 MetricDef → LLM 根据 schema 自动推导公式类型和因子3. 预览生成的公式 → 校验恒等式、维度分类4. 确认入库 → 写入 metrics.yaml + formula_registry5. 自动同步 → 刷新 metric_registry 缓存
AI 生成时的容错机制:
perspective/axis 混淆自动修正(LLM 常把 axis 值填到 perspective)
Pydantic schema 逐条校验,不合法的标红但不阻断合法项
注入 table_profile 信息辅助 AI 理解 ROLLUP/CUBE 结构
指标注册表直接驱动归因诊断树(详见第七章):
metrics.yaml (指标定义) │ ▼formula_registry (公式展开) │ GMV → [漏斗公式: IPVUV × CVR × AOV] │ [加法公式: Σ(各行业 GMV)] │ [比率公式: GMV / 总流量] ▼归因诊断引擎 │ 多路筛选 → 选最显著拆解 │ 递归下钻 → 沿主因子逐层拆 ▼诊断树报告
Agent 在 ReAct 循环中会主动调用知识检索工具,每层知识对应不同的工具:
Agent 思考:"用户问 GMV,我需要先找表" → search_metrics("GMV") ← Layer 5: 指标定义 (找到 gmv_amt) → cap_search("GMV ") ← Layer 1: 能力清单 (找到表) → snippet_search(table="ads...") ← Layer 2: SQL 模板 → rule_search(table="ads...") ← Layer 3: 编写规则 → lightrag_table_lineage("ads...")← Layer 4: 血缘关系 (KG) → parse_sql_lineage(sql="...") ← Layer 4: 血缘关系 (AST 实时)知识不是静态的,而是采集 → 沉淀 → 审核 → 复用的闭环:
┌─────────────┐ │ 采集入口 │ └──────┬──────┘ │ ┌────────────────┼────────────────┐ │ │ │ ▼ ▼ ▼ AST 血缘解析 对话产出 SQL 指标接入向导 (ETL 源代码) (自动暂存) (AI 生成) │ │ │ ▼ ▼ ▼ LightRAG KG Staging 队列 metrics.yaml (血缘图谱) (待审核片段) (指标定义) │ │ │ └────────────────┼────────────────┘ │ ┌──────▼──────┐ │ 人工审核 │ │ (Web 平台) │ └──────┬──────┘ │ ┌──────▼──────┐ │ 入库复用 │ │ 下次 Agent │ │ 优先命中 │ └─────────────┘ │ 表结构变更 → 自动 regenerate → 更新规则/片段/AST 血缘
Web 平台提供完整的知识管理界面:
分析能力深度解析
用户视角:
“昨天 GMV 为什么跌了 20%?”
Agent 自动构建诊断树:
GMV 环比 -20% │ ├── 漏斗拆解:GMV = 访客数 × 转化率 × 客单价 │ ├── 访客数 +5% ← 不是原因 │ ├── 转化率 -22% ← ⭐ 主因! │ └── 客单价 +3% ← 不是原因 │ ├── 转化率 -22% 按行业拆 │ ├── 家电 -45% ← ⭐ Top1 贡献 │ ├── 服装 -8% │ └── 食品 +2% │ ├── 家电转化率 -45% 指标拆解 │ ├── 下单量 -40% ← ⭐ 主因 │ └── 访问量 -8% │ └── 结论:家电行业下单量骤降导致 GMV 下跌
技术实现五步法:
用户视角:
“GMV 这个字段是怎么计算出来的?上游依赖哪些表?”
Agent 的血缘溯源有两条路径,形成 KG 优先、AST 降级的降级链:
# 路径 1: 查 LightRAG 知识图谱(local 模式)lightrag_column_logic(table="ads_flow_sum_di", column="gmv_amt")→ gmv_amt = pay_amt (直接映射) 上游: dwd_ord_ent.pay_amt 过滤: WHERE activity_type =''# 路径 2: KG 未命中时,AST 实时解析 ETL 源代码dw_get_table_source(table="ads_flow_sum_di") → 拿到 SQLparse_sql_lineage(sql_text="INSERT OVERWRITE TABLE ...", target_column="gmv_amt")→ gmv_amt = pay_amt source_columns: [dwd_ord_ent.pay_amt] where_conditions: [activity_type ='']# 查表的完整上游依赖(hybrid 模式)lightrag_table_lineage(table="ads_flow_sum_di")→ 上游依赖 3 张表:1. dwd_ord_ent (交易明细)2. dim_activity_info (活动维表)3. dws_flow_sum_h (小时汇总)
KG 中的血缘数据由 AST 引擎在 onboard 时离线解析并灌入,实时解析作为降级补充。详见 6.3 节。
当查询结果需要二次加工时(帕累托、排名、透视、环比计算),Agent 会调用 python_analyze:
# Agent 生成的分析代码(沙箱内执行)df['环比'] = (df['today'] - df['yesterday']) / df['yesterday']df = df.sort_values('today', ascending=False)df['累计占比'] = df['today'].cumsum() / df['today'].sum()result = df[['industry', 'today', 'yesterday', '环比', '累计占比']].head(10)print(result.to_markdown())安全模型:
系统构建与部署
新表接入是一个自动化的五步流水线:
1. 表结构同步 → ODPS schema → mdl.json + TisPlus32. 表类型探查 → A类(预聚合)/B类(普通) + 主键 + 维度3. 规则抽取 → 下游血缘代码 → LLM 提取 WHERE 条件4. SQL 模板生成 → B类表自动生成标准模板5. 入库 → 规则/片段/能力清单写入 TisPlus3
支持 Web 界面操作和 CLI 脚本两种方式。
bybt-data-analysis-assistant/├── agent.py # CLI 入口 + Agent 构建├── agent_analysis.py # 模板分析入口├── config.py # 全局配置(ODPS/LLM/TisPlus3/...)├── boot.sh # 生产部署脚本│├── agents/ # 多 Agent 架构│ ├── supervisor.py # 路由调度器│ ├── intent_agent.py # 意图识别 Agent│ ├── base_expert.py # 专家 Agent 基类│ ├── query_agent.py # 取数+血缘+元数据+源代码+SQL开发│ ├── analysis_agent.py # 波动归因+数据分析│ ├── ops_agent.py # 调度运维│ ├── other_agent.py # 兜底寒暄│ ├── harness.py # 运行时安全守卫│ └── sql_validator_gate.py # SQL 后置校验│├── tools/ # 工具集(Agent 的"手")│ ├── odps/ # ODPS 查询 + SQL 构建│ ├── capabilities/ # 表能力清单检索│ ├── snippets/ # SQL 片段检索│ ├── rules/ # SQL 规则检索│ ├── lineage/ # 血缘知识图谱│ ├── analysis/ # Python 分析沙箱│ ├── attribution/ # 归因诊断引擎│ ├── dataworks/ # DataWorks API│ ├── memory/ # 会话记忆│ └── intent/ # 意图识别│├── web/ # Web 平台│ ├── api/ # FastAPI 后端│ └── frontend/ # React 前端│└── wren_project/ # WrenAI MDL 语义模型 ├── target/mdl.json # 模型定义文件 └── .wren/memory/ # 向量索引
评测体系
Agent 的「聪明」不能靠感觉判断,必须有可量化、可复现的评测体系。本章回答三个核心问题:评什么(6D 维度)、怎么构造样例(Golden Dataset)、怎么打分(意图感知权重 + 节点归因)。
评测从 6 个维度对 Agent 的每次回答打分,每个维度 0-100 分:
不同意图关注点不同——归因分析不关心 SQL 正确性(D5=0),取数不关心因子命中(D1=0)。系统为每个意图配置了差异化权重:
权重为 0 的维度显示为
--,不参与打分。权重可通过 Web 界面自定义调整(scripts/eval/metrics_config.json)。
评测样例存放在 scripts/eval/datasets/default.json,当前覆盖 6 类意图、15 个用例:
单个样例结构示例:
{"id":"gmv_daily_attribution","question":"20260610 GMV波动分析","intent":"analysis","tags":["attribution","gmv","daily"],"expected":{"main_factor":["3C数码","坑产","平台出资","GMV_PER_ITEM"],"main_factor_fuzzy":["3C","坑产","平台"],"formula_used":["gmv.industry","gmv.supply","gmv_per_item.is_bt"],"direction":"up","min_tree_depth":2,"must_call_tools":["attribution_diagnose","attribution_explain"],"must_not_call_tools":[],"conclusion_must_contain":["贡献","主因","3C"]}}样例设计原则:
expected 多层校验:不只看最终回答,还看中间过程(工具调用序列、SQL 内容、诊断树结构)
模糊匹配兜底:main_factor_fuzzy 允许部分命中得 60 分,避免因措辞差异误判
意图覆盖:每类意图至少 2 个用例,边界用例覆盖错误输入场景
可扩展:通过 Web 界面「评测中心」可在线增删用例,无需改代码
用户提问 │ ▼harness.run_case(question) │ 调用 stream_supervised() 获取 SSE 事件流 │ 收集: tool_call / tool_result / token / routing / validation 事件 │ 解析: attribution_diagnose 返回的诊断树 JSON │ 检测: HOLO fallback 标记 ▼EvalTrace (结构化 trace) │ events: 全部 SSE 事件 │ tool_calls: 工具调用序列 │ tool_results: 工具返回结果 │ diagnosis_tree: 诊断树 JSON │ final_answer: 最终回答 │ nodes: 7 个关键节点的状态 ▼6D 打分 (scorers) │ D1 factor_scorer → 严格匹配(100) / 模糊匹配(60) / 方向匹配(30) / 不匹配(0) │ D2 tree_scorer → 深度 + 分支数 + 方向 │ D3 tool_scorer → must_call(40) + must_not_call(25) + ordering(20) + step(15) │ D4 conclusion_scorer → LLM-as-Judge 按意图 Rubric 打分 │ D5 sql_scorer → 语法 + 表名 + 字段名 + WHERE + 白名单 │ D6 faithfulness_scorer → 规则检查 + LLM 幻觉检测 ▼加权总分 = Σ(Di × Wi) → 意图感知权重 ▼报告输出 ├── 终端彩色报告 (6D 分数 + 归因诊断) ├── JSON 报告 → reports/eval__.json ├── Bad Case 归档 → badcases/ (总分60 或任一维度=0) └── 版本对比 → --compare old.json new.json
评测不只给分数,还自动定位失败根因。Harness 从事件流中提取 7 个关键节点的状态:
当总分低于预期时,归因诊断会指出是哪个节点出了问题,例如:
根因: gate - validation_exhausted (重试 3 次未通过)根因: tool_call - 工具返回错误: odps_query根因: quality - 各节点均成功,但回答质量未达预期
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-08-05
2026-07-26
2026-07-31
2026-07-28
2026-07-29
2026-07-29
2026-07-09
2026-08-03
2026-07-19
2026-07-28
2026-09-23
2026-09-17
2026-09-02
2026-08-20
2026-08-13
2026-08-05
2026-08-03
2026-07-31
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。