EvoOntology: A Self-Evolving Ontology Layer for Data Agents
Meiduo Chong, Shaolei Zhang, Ju Fan, Xiaoyong Du
cs.AI, cs.CL, cs.DB
2026-09-14
人大提出EvoOntology,把本体做成MCP服务,数据Agent按需查询而不是把语义层塞进Prompt。DDR-Bench上Traj-Wise平均提高17.8分,静态语义层在Claude-Sonnet-5上反而掉15.0分。
数据 Agent 要用自然语言完成跨表、跨库、跨文件的任务,可数据在外面,Agent 只能通过 SQL 和读文件这类通用工具去摸。结构不知道、字段名对不上、一次探错还不能留给下次用,这就是论文说的 agent–data gap。
两条老路都不好走。让 Agent 对着生数据盲探,宽表和异构源上会陷进重复试探。把人工语义层整段塞进 Prompt,上下文吃不下,也跟不上不同底座的行为差异。人大这组把中间层做成 Agent 可以主动查询的本体,并且让它跟着失败轨迹自己改。
本体状态分三层:Content 是带类型的语义图(Terms、Mappings、Constraints、Evidence,外加语义关系和结构引用);Schema 规定节点字段和允许的关系;Tool 通过 MCP 暴露 browse 和 resolve,会话开始只把一份短 manifest 放进 Prompt,细节按需取。
Builder Agent 不看标准答案,只看训练工作负载和原始数据。它从反复出现的实体、指标、操作里提出候选,对每个候选发探测查询,类型、过滤和值分布对得上才写入初始 Content,探测记录留作 Evidence。
演化 Agent 读历史轨迹,抽出反复出现的失败签名,标到 Content / Tool / Schema 三层之一,每次只改一层。候选和父版本在同一验证集、同一解码和交互预算下成对评估,提升达不到阈值 τ 就丢掉。六个 LLM 底座从同一初始状态独立演化,允许长出底座专属的本体。
评测用双向两折:一折的 70% 做构建和演化、30% 做成对验证,冻结后再测另一折,再对调取平均。测试折的答案从不回流。
DDR-Bench 10-K 场景,相对无本体 ReAct:
| 底座 | Traj-Wise 基线 | EvoOntology | 提升 |
| GPT-5.5 | 64.2 | 90.9 | +26.7 |
| GPT-5.6-sol | 68.5 | 93.5 | +25.0 |
| Claude-Sonnet-5 | 72.5 | 81.3 | +8.8 |
| Claude-Opus-4.8 | 73.0 | 92.3 | +19.3 |
| DeepSeek-V4-Flash | 30.3 | 52.3 | +22.0 |
| Qwen3.5-Flash | 14.3 | 19.1 | +4.8 |
六底座 Traj-Wise 平均 +17.8。把同一份 builder 语义层塞进 Prompt(Baseline+SL)并不稳:Claude-Sonnet-5 的 Traj-Wise 掉 15.0 分。可检索的轨迹记忆只能把平均 Traj-Wise 从 69.5 抬到 75.8,比 EvoOntology 的 89.5 仍低 13.7 分。
BIRD(Oracle Knowledge)上 EX 平均 +7.4、VES 平均 +8.6;Claude-Opus-4.8 的 EX 从 67.5 到 78.3。InsightBench 平均只 +1.9,DeepSeek-V4-Flash 的 Overall +6.1 是这里最大的一档,短参考答案容易饱和。
初始本体已经能把 DDR Traj-Wise 均值抬 12.3 分,演化再加 7.7 分;BIRD EX 是先 +5.1 再 +3.7。演化循环里拿掉成对门控,Traj-Wise 掉 11.2 分,是最大的一块;拿掉层级归属掉 6.3。只改 Tool 能从基线 69.5 到 82.7,三层一起才到 89.5。遮住 Mappings 掉 13.4 分,遮住 Evidence 掉 8.7 分。四个底座演化后的 Term 集合两两 Jaccard 不超过 0.62,交叉部署至少掉 6.6 分。
代价上,DDR 每任务总 token 从基线 52.6K 降到演化后 42.0K,大约少 20%,因为轨迹从 14.6 轮缩到 8.4 轮,抵消了每轮多出来的 manifest。
语义层该被查询,不该被整段贴进上下文。对做 text-to-SQL 和跨源调研的人,这比「再写一份 metrics.yml」更接近能跑的系统:MCP 工具、探测接地、失败归因、成对门控,缺一环都会回退。底座要各自演化,一份通用本体直接搬过去会掉点。
InsightBench 的增益很小,别指望它在已经对上参考答案的短洞察任务上再挤很多。
工作负载自适应用了同一基准的另一折,不是全新域。τ 和演化轮数对最终分的敏感性,正文没有单独扫。Insight 分数短、饱和快,几乎看不出演化的额外价值。交叉底座实验说明专属本体有用,也说明维护成本会随底座数量涨。论文没有把演化算力从任务 token 里单列出来。开放域、schema 天天变的生产库,还没有实验。