名词 智能体(Agent):让 LLM 按"计划 → 执行 → 检查"的循环自己把任务做完的程序 · LLM(大语言模型):底层模型,负责理解问题和生成文字,如 DeepSeek
Plan 分析问题、写好第一批 SQL;Check 对执行结果做反思,判断还缺什么、整理出新的 SQL。Do 不调用 LLM,只负责执行 SQL、返回结果,执行这一步确定、不产生幻觉。
Check 判断数据已经足够,交 Answer 组织结论返回用户;轮次用完(系统设有最大轮次上限)也强制收口,把已查到的如实报告出来。
用户提问:平台上有多少个场景?
只知道有两个数据库:PgSQL 是知识库,MySQL 是业务库,决定去 MySQL 查业务表的结构。
返回:SHOW TABLES;
在 MySQL 和 PgSQL 上各自执行 SQL,把结果返回。
缺失:字典表。整理新 SQL 交回 Do 再查;如果超过 4 轮,就强制收口。
根据平台现有的介绍信息,可以明确的一个应用场景是“出口应收账款融资场景”,该场景于2019年3月上线,已累计服务大量企业和银行网点。另外,平台资料中提到总共上线了15个应用场景,但未列出其他场景的具体名称,因此暂时无法提供完整的场景列表。
用户提问:平台上有多少个场景?
Neo4j 增强(场景 → 术语 → 数据映射),场景清单的答案在本体里。
返回:MATCH (s:Scenario) RETURN s.number, s.name, s.description, s.aliases ORDER BY s.number;
在 Neo4j 上执行查询,返回 15 行。
数据充足 ✓,无需第二轮。
小境为您梳理了平台上已定义的所有业务场景,共15个,具体如下:出口应收账款融资、出口信保保单融资、企业跨境信用信息授权查证、保税核注清单融资结算、中欧班列“长安号”融资、中欧班列“齐鲁号”融资、山东“港云仓”仓单融资、广西北部湾“港航融”、西部陆海新通道物流融资结算...
| 关注的方面 | 做什么 |
|---|---|
| 时间基准 | 把当前时间注入提示词,禁止 LLM 用它训练时的年份作答 |
| 意图路由 | 闲聊直接回答;数据查询才进入探索流程 |
| 查询策略 | 有本体:沿"场景 → 术语 → 数据映射"的 8 步链探索;无本体:SHOW TABLES → DESCRIBE → 推断 |
| 数据源选库 | 明细数据走 MySQL,趋势数据走 PgSQL,维度信息查 DataMapping |
| 参数化规范 | SQL 一律用 %s 占位符,配正反示例,参数数量严格对齐,禁止用 ? |
| 上下文复用 | 已经探明的表结构不再重复 DESCRIBE,前面的查询结果约束后面的查询 |
| 防御性规则 | 禁止跨库 JOIN;查询结果为空先排查原因再重试;探索查询加 LIMIT;禁止猜测表名 |
| 关注的方面 | 做什么 |
|---|---|
| 数据充足性 | 判断现有结果是否足以回答用户的问题 |
| 日期一致性 | 把查询里的日期值和当前时间基准对比,发现年份偏移 |
| 故障分类 | 按根因把失败分成三类:语法或参数错、表不存在、结果为空 |
| 修正策略 | 按故障类型决定方向:改写法、回头补元数据、还是重审查询条件 |
| 意图保持 | 修正时保留用户原来的意图,只改技术实现 |
| 收敛保护 | 同一原因连续失败两轮,自动降级为元数据探索,不重复同一个错误 |
| 规则 | 做什么 |
|---|---|
| 本体前置校验 | 有本体模式下,即使已有缓存结果,也必须先经 Neo4j 确认再查库 |
| Scenario 入口保护 | 禁止绕过 Scenario 节点直接查 DataMapping,保证每次查询有业务归属 |
| 大表保护 | 数据量不确定时,先 COUNT 查大小,再决定查询方式 |
| 参数不匹配回退 | 执行层捕获参数错误后,自动去掉参数重试一次 |
| 最大 PDCA 轮次 | MAX_PDCA_ROUNDS=5,超过自动收口,防止死循环 |
| DataMapping 归属隔离 | 同一张物理表被多个场景引用时,必须按 dm.scenario 区分归属 |
直接面对 MySQL、PgSQL 两张库的表,遇到问题从 SHOW TABLES 开始,靠表名和字段名猜。
同一个 Agent,中间多一层基于 Neo4j 的本体(领域知识模型 / 概念关系网络),查数前先"看图"。
本体中不会存冗余的业务数据,而是解释业务概念、描述业务概念间的联系、记录实际业务习惯(习惯用语、缩略语)、业务规则(示例、要求、禁止)等。
思路:只知道 MySQL 是业务库、PgSQL 是知识库,先从表结构里找"场景"。
做法:SHOW TABLES 逐个看表名,再在资料里翻"场景"介绍。
回答:只说得出"出口应收账款融资"一个场景,其余含糊带过:"资料里提到共 15 个场景,但列不全。"
思路:问的是业务场景,先查本体里的 Scenario 节点,那里是场景清单的唯一出处。
做法:MATCH (s:Scenario) RETURN s.name,一条查询命中。
回答:把 15 个场景连同编号、简介、别名一次列全。
"平台上有哪些业务场景"是业务概念,它不在任何一张业务表里,也没有文档告诉 Agent 去哪找。没有地图,再聪明的 Agent 也只能猜。
把"场景、业务对象、字段语义、库表归属、口径"建模成图中的节点和关系。刚才例子走的就是第一级:场景消歧,落到 Scenario 节点。
FC(Function Calling):让 LLM 按标准接口直接调用外部工具的能力。
MCP(Model Context Protocol):LLM 与外部数据源、工具对接的一种通用协议。
不用这两样,查询线路就完整地留在我们自己的代码和提示词里,界面上每一步都看得见。
17 类节点 / 161 个概念节点 / 15 类关系 / 约 185 条边;字段语义 ColumnSemantics ×14、库表映射 DataMapping ×17,全部钉到真实库。
本体早期把状态写成小写 'pay',真实库是大写 'PAY',导致查询不到数据,但执行时的AI并不会质疑本体模型的合理性。这个缺陷被核实环节抓出来并修复了,同批修正 3 处不一致。讲测评时它会再次出现。
三道保障(自动校验 / 真实库核实 / 领域专家评审)里,专家评审目前缺位:数据能验证"对不对",验证不了"业务上该不该"。这是下一页请求的核心。
目前本体和题库里的术语、列语义、口径对不对,主要由工程侧根据资料和数据库推断,还没有经过业务方面的确认。希望业务条线指定一位口径确认人,参与两件事:本体评审(术语、列语义、口径定义)和题库口径核对(标准答案采用的统计口径)。以评审会或口径答疑的形式支持即可,不需要全职。后续修正本体、向其他场景复制时,都以业务确认的口径为准。
更多场景业务库的只读访问 + 口径清单,支撑"主场景方法向其余场景复制"。
测评运行的 LLM 推理配额:一轮约 40–50 万 token,下一轮对照同量级。
用"员工、地图、翻译"打比方,把三个组件讲明白。
指挥流程的"员工"。接到问题后按固定节奏推进:先规划、再执行、再检查、再收尾。
那张"地图"。业务术语和数据库字段的对照关系,帮助系统减少探索弯路。
那位"翻译兼执行者"。把问题翻译成查询语句,再把结果组织成通俗的答案。
| 名词 | 通俗解释 |
|---|---|
| 题库 / 测试用例 | 一组预先设计、附有标准答案的问题 |
| 标准答案 | 出题人预设的正确结果,用于对照 |
| 指标 | 衡量表现的标准,例如探索轮次、响应时长 |
| 收敛 / 收敛性 | 系统经过若干轮探索后,能否在合理轮次内找到答案并停止。反复探索无法停止、该停时未停、过早停止导致遗漏答案,都属于收敛不佳 |
| 基线 | 用于对比的"上一版本"或"基准版本" |
| 快照 | 每场实验的条件记录(题目、数据、组件版本、时间),供复现与核对 |
| Token | 大模型处理文本的计量单位,大致对应算力与成本 |
| 归因 | 判断表现变化的原因,明确归属到哪个组件(编排 / 本体 / 执行) |
仅看最终答案,会忽略三类重要信息:
答案正确,但探索轮次过多、资源消耗过大。
答案正确,但过程中曾"编造"数据,可靠性存疑。
答案错误,却难以判断是流程、本体还是执行环节的问题。
原始数据:过程质量、效率与成本
把指标分配到三个组件
编排 / 本体 / 执行,各一个 0–1 分
从每次执行记录(日志)里统计出的原始数值,例如平均探索轮次、正确率、Token 消耗、耗时,相当于评估的"底账"。
把指标按归因权重折算成 0–1 的展示分,例如编排分、本体分、执行分,相当于评估的"结论"。
| 指标 | 说明 | 对应问题 |
|---|---|---|
| ① 探索轮次 | 从提问到答完,循环执行的轮数 | 探索了几轮才得到答案? |
| ② 结果正确性 | 最终答案与标准答案的符合程度 | 答案是否正确? |
| ③ 查询质量 | 中间生成的查询语句质量(语法 / 选库 / 冗余) | 查询方式是否正确? |
| ④ 事实一致性 | 过程中是否存在前后矛盾或编造字段的情况 | 前后是否自相矛盾? |
| 指标 | 说明 | 对应问题 |
|---|---|---|
| ⑤ 回答完整性 | 一个问题的多个子需求是否全部覆盖 | 是否遗漏了子问题? |
| ⑥ Token 消耗 | 消耗的算力和成本 | 资源消耗是否过高? |
| ⑦ 结论生成时间 | 从提问到生成答案的等待时长 | 等待时间是否过长? |
考察目标:探索收敛快、事实不漂移、回答不漏项、无重复劳动。
考察目标:选对库表、术语解析准确、探索更高效。
考察目标:语法正确、语义贴题、数值准确。
每个指标对三个组件的责任权重不同:●● 主导、● 参与、○ 边缘。
| 指标 | 编排 | 本体 | 执行 |
|---|---|---|---|
| 平均探索轮次 | ●● | ●● | ● |
| 结果正确性 | ●● | ●● | ● |
| 查询质量 | ● | ● | ● |
| 事实一致性 | ●● | ●● | ● |
| 回答完整性 | ●● | ○ | ● |
| Token 消耗 | ●● | ●● | ● |
| 结论生成时间 | ● | ●● | ○ |
准备题库
自动向系统提问
自动 + 人工
生成报告
一套标准题目以 15–20 道为宜:题太少缺乏统计意义,太多则单次评测耗时较长。
每道题附带三样东西:标准答案、预期轮次、子问题数量,后两样供评分和完整性检查使用。题目的口径以业务方意见为准,工程侧负责把题出规范、整理成格式。
评测工具自动把每道题发送给被测系统,通过接口交互,不接触系统代码。
完整记录全过程:每一轮的"计划 / 执行 / 检查"、每条查询语句、最终答案、耗时、Token,全部留档。
结果按日期归档,避免多次评测相互覆盖。
评分分三层:规则引擎自动判,人工标注补语义判断,最后综合成结论。
可自动计算的指标自动完成:探索轮次、结果正确性、Token 消耗、耗时。
语义是否贴题、查询是否冗余这类项目由人工判断。这一步目前靠人工做,每轮结果都有复核留档。
三层各自独立演进,最后统一输出"三组件分数 + 证据"。
分数必须附带证据,不能只给数值。每个分数都能回翻到具体的轮次记录、查询语句和统计口径。
单个方案的总结,包含三模块水平、七维指标和逐题证据。
两个方案的对比,比较各维度差异、差距大小与原因。
控制变量,才能归因。
任何评测最终都输出同一套三组件分数。
每个数值都能追溯来源。
采用编排 / 本体 / 执行等说法,不用内部代号。
该系统依靠多轮推理后给出答案,最需要考察的是能否做到"探索适量、及时收敛"。目前的评测尚未完整覆盖这一点。
变更:asset_state 大小写统一(本体 v0.0→v0.1,git b08eb26)。这是"本体质量修复前后",不是"有/无本体",后者看下一页的测试报告。
| 指标 | 修复前 | 修复后 |
|---|---|---|
| 连续下钻 · 编排分 | 0.2778 | 0.6528 ▲ |
| 重复探索命中 | 4 | 1 ▲ |
| 跨轮复用率 | 50% | 62.5% ▲ |
| 单题平均耗时 | 103.75 s | 80.0 s ▲ |
| 单题正确率 | 25% | 25%(未变) |
| 下钻事实命中率 | 16.7% | 0% ↓ |
样本量小:单题 n=5(旧题库)+ 1 个会话,没有统计显著性,只能说明机制有效。自动判分是字符串近似规则(107 判得偏宽、102/103 漏匹配),已人工复核覆盖。
过程变好被度量到了,结果没变也被解释清楚了。口径差异会伪装成能力差异,这正是受控测评的价值。
同一个 LLM(deepseek-v4-flash)、同一个 Agent(b08eb26),8 道题同一天、同一库,唯一变量是有无本体。16/16 次请求全部成功。
| 题(难度 · 类型) | 无本体 | 有本体 | 看点 |
|---|---|---|---|
| 101 放款额合计(M · 本体敏感) | ✗ 用错场景表 | ✓ | 有本体精确 422,694,000 元 / 59 笔 |
| 004 金额同比(H · 对照) | ◐ 数值十倍级错乱 | ✓ | 591,493,262 / 773,866,465 / −23.6% 全对 |
| 103 笔数(M · 本体敏感) | ◐ 75 与 59 摇摆 | ✓ | 干净答"59 笔" |
| 107 审核中笔数(E · 本体敏感) | ✗ 未答出 6 笔 | ✓ | 精确答"审核中 6 笔 / AUDITING" |
| 102 币种枚举(E · 本体敏感) | ✓ | ✓ | 两组都对(自动判级因顺序漏配) |
| 105 法规依据(M · 本体敏感) | ✓ | ✓ | 有本体更快:1 轮 vs 2 轮 |
| 003 融资金额(M · 对照) | ✗ | ✗ | 两组错在同一个口径 → 本体缺金额口径规则 |
| 108 机构层级(M · 本体敏感) | ✗ 找不到机构 | ✗ 上级答错 | 本体缺机构层级关系,下一步补上 |
知识显性化(本体)+ 语言泛化(LLM)+ 流程可控(编排)+ 度量可信(评测体系)。
本体把"对"的查法交给系统,LLM 把"懂"的语言交给用户;后面每一步改进,都用同一套带证据的测评来验证。业务专家补上口径这一环后,这条路可以复制到更多场景。
调研笔记与评测留档(results/,含逐题证据与归档路径)。