CYGNET:用于神经执行分类与成本控制的 Cypher 网关
摘要
CYGNET 是一个预执行网关系统,用于验证和修正 LLM 智能体在知识图谱上生成的 Cypher 查询,在查询到达生产数据库之前捕获结构性错误,误报率接近于零,并在五个语言模型上实现了 81–95% 的破损查询修复成功率。
arXiv:2606.04645v1 公告类型:新论文
摘要:以知识图谱为操作对象的语言模型智能体所生成的 Cypher 查询,往往存在结构性失败(导致数据库崩溃)或语义性失败(查询可执行但返回错误结果)两类问题。我们在查询生成与生产 Neo4j 数据库之间引入了一个预执行网关。该网关通过一条由四个后端组成的验证链对查询结构进行校验,最终在镜像图上执行,中位延迟为 5.6 毫秒。结构有误的查询将被路由至修正器,该修正器通过将结构化错误反馈迭代传入语言模型来完成修复。在七个 CypherBench 模式(2348 个问题,ACL 2025)上,该流水线在所有测试模型上均保持了原有的生成准确率,证实其作为安全防御层的可靠性。修正器在五个模型上的成功率为 81% 至 95%(均值 89%)。在九个模式上的模板生成语料库中,该网关对解析错误、约束违规以及带标记端点的路径查询中的模式引用错误的捕获率均达到 100%,且在 1135 条查询中误报率为零。对于将替换属性名在目标标签上合法存在的属性兄弟替换场景,成功率为 0%,这标志着结构验证的形式边界——超出此边界则需转入语义验证。基于规划器的代价网关可在执行前标记出灾难性的执行计划结构。
查看缓存全文
缓存时间: 2026/06/05 02:16
# CYGNET:用于神经执行分类与成本控制的 Cypher 网关 来源:https://arxiv.org/html/2606.04645 ###### 摘要 以代理身份操作知识图谱的大型语言模型会生成 Cypher 查询,这些查询可能在结构上失败——在数据库层崩溃并消耗算力却不返回任何结果——也可能在语义上失败——有效的 Cypher 查询成功执行但返回错误结果。现有工具无法区分这两种失败模式,现有基准测试也将两者合并为单一准确率指标。我们展示了在查询生成系统与生产图数据库之间设置预执行网关,可以在结构性故障到达生产环境之前将其拦截。该网关通过一个四后端链来验证查询结构,链的最终环节是对镜像图执行查询——镜像图是从 schema 构建的最小合成结构——中位延迟为每条查询 5.6 毫秒。结构性损坏的查询被路由到修正器,该修正器将结构化错误描述提供给语言模型,并持续迭代直到查询通过验证或尝试预算耗尽。在 CypherBench 基准测试的七个 schema 上,验证与修正流水线在所有被测模型上均保持了生成准确率,证实其作为安全防御层运行而不引入语义回归。修正器在五个语言模型上修复结构性损坏查询的成功率达 81% 至 95%,均值为 89%。据我们所知,目前尚无公开的带有分类结构错误标签的 Cypher 语料库。我们生成了一个涵盖九个 schema、四种错误类别的语料库并对其进行评估。该网关对解析错误的捕获率为 100%,约束违反的捕获率为 100%,带标记端点的路径查询中 schema 引用错误的捕获率为 100%,在 1135 条查询中的误报率为零。不含关系的独立查询中的 schema 替换通过级联属性检查捕获率为 48%。当替换名称在目标标签上合法时,属性同级替换在结构上无法检测,得分为 0%,这标志着结构验证的形式边界,超出该边界需由语义验证接管。基于规划器的成本网关在执行前识别灾难性的计划结构,例如无界变长路径。 ## 1 引言 知识图谱支撑着越来越多的检索增强生成系统、科学数据管理平台和企业搜索基础设施\[35 (https://arxiv.org/html/2606.04645#bib.bib36), 23 (https://arxiv.org/html/2606.04645#bib.bib23), 5 (https://arxiv.org/html/2606.04645#bib.bib5)\]。其对实体和关系的结构化表示提供了平面文本检索无法实现的事实依据,其动态更新语义也适用于底层知识在查询间频繁变化的运营场景。以代理身份操作这些图的大型语言模型将自然语言问题转化为 Cypher\[7 (https://arxiv.org/html/2606.04645#bib.bib7)\] 等图查询语言的查询,并在生产图数据库上执行它们。包括 Chatty-KG\[17 (https://arxiv.org/html/2606.04645#bib.bib17)\] 和 AGENTiGraph\[33 (https://arxiv.org/html/2606.04645#bib.bib34)\] 在内的对话式和多代理系统展示了一种架构模式:一个或多个语言模型代理在循环中构建、优化并执行图查询。 代理生成的查询以两种根本不同的方式失败。**结构性失败**发生在查询语法错误、引用了 schema 中不存在的标签或关系类型、向属性传递了类型错误的值,或违反了已声明的约束时。结构性损坏的查询在数据库层崩溃,消耗解析和规划的算力,且不返回任何有用结果。**语义性失败**发生在查询是结构上有效的 Cypher 且无错误执行,但由于未能正确表达用户意图而返回错误结果时。 结构性失败可以在执行前通过对已知 schema 检查查询来检测。一个能捕获结构性失败的预执行网关可以防止算力浪费,降低失败路径上的延迟,并向生成系统提供数据库事后错误所无法提供的可操作反馈。每一条会在生产数据库崩溃的查询,在数据库报告错误之前都会消耗解析和规划资源。在按查询执行计费的图(如云托管数据库和共享资源集群)上,每条失败的查询都是一个零回报的成本事件。一个以较低中位延迟拦截这些查询的结构网关,可以消除浪费的算力,并在数据库失败所需时间的几分之一内返回结构化反馈。 CyVer\[13 (https://arxiv.org/html/2606.04645#bib.bib13)\] 通过结构化错误报告来验证 Cypher 语法、schema 引用以及针对数据库 schema 的属性访问。LangChain 的 CypherQueryCorrector\[9 (https://arxiv.org/html/2606.04645#bib.bib9)\] 修复关系方向错误。包括 Neo4j Labs 的 mcp-neo4j-cypher\[15 (https://arxiv.org/html/2606.04645#bib.bib15)\] 在内的生产级 Model Context Protocol(MCP)服务器提供 schema 内省以及超时和截断等事后执行控制。Ozsoy\[21 (https://arxiv.org/html/2606.04645#bib.bib21)\] 将基于置信度的 Text2Cypher 推断扩展为带有语法和 schema 约束过滤的后生成过滤器。SynthCypher\[28 (https://arxiv.org/html/2606.04645#bib.bib29)\] 创建由 LLM 生成数据填充的合成 Neo4j 数据库,以对生成的训练数据进行基于执行的验证。SyntheT2C\[34 (https://arxiv.org/html/2606.04645#bib.bib35)\] 通过对现有医学知识图谱数据库执行来验证生成的 Cypher。两者均将基于执行的验证用于离线训练数据生成,而非运行时预执行验证。这些系统均未将预执行结构验证、基于规划器的成本网关和结构化细化反馈整合为一个面向代理生成 Cypher 的集成运行时网关。 在本文中,我们针对代理生成 Cypher 中的结构性失败问题。我们实现了一个四后端验证器链,由基于正则表达式的快速过滤器、基于 ANTLR\[22 (https://arxiv.org/html/2606.04645#bib.bib22)\] 的抽象语法树(AST)解析器、Neo4j EXPLAIN 后端,以及在回滚事务中对合成镜像图执行查询的镜像执行后端组成。该链捕获四类结构错误(解析错误、schema 引用错误、属性类型错误和约束违反),并以结构化错误载荷报告每类错误,下游系统可据此采取行动。基于 EXPLAIN 的成本网关解析规划器输出,以在执行前识别昂贵的查询模式。五个实现单次协议的可插拔修正器结合通用细化循环,将结构化错误路由至语言模型以迭代修复结构性损坏的查询。验证和修正完全在镜像图上运行,中位延迟为 5.6 毫秒,在查询通过结构验证之前不会接触生产数据库。 据我们所知,目前尚无公开的 Cypher 语料库提供分类结构错误标签。我们生成了一个基于模板的语料库,涵盖不同形态的九个 schema 上的四种错误类别,并对其进行评估。该网关对解析错误的捕获率为 100%,约束违反的捕获率为 100%,带标记端点的路径查询中 schema 引用错误的捕获率为 100%,在 1135 条查询中的误报率为零。独立查询中的 schema 替换通过级联属性检查捕获率为 48%,当替换名称在目标标签上合法时,属性同级替换在结构上无法检测。在 683 条独立编写的有效查询的外部语料库上,该链标记了 39 条,均为捆绑的 Cypher 9 语法无法解析的有效 Cypher 5+ 语法。在五个语言模型和五种修正器实现中,最佳修正器在最多三次细化尝试后,修复结构性损坏查询的成功率达 81% 至 95%,均值为 89%。在七个 CypherBench schema(2348 个问题)上,该流水线未降低任何模型的生成准确率,证实其作为安全防御层运行。 ## 2 方法 ### 2.1 架构与 schema 来源 我们在 Cypher 生成系统与 Neo4j 图数据库之间设置一个可编程网关。该网关根据已知 schema 验证传入查询的结构,估算查询的执行成本,并返回执行许可或适合下游细化的结构化错误描述。该网关面向以下场景:语言模型在代理循环中生成查询;生产运营者希望限制其数据库因格式错误或失控查询所承受的成本;且对大型图进行意外执行的成本比运行网关的成本高出数个数量级。 该网关可通过三种传输方式访问:直接进程内 API、面向支持 MCP 主机的 Model Context Protocol(MCP)服务器,以及面向语言无关服务的 HTTP 服务器。三种方式共享本节其余部分描述的同一内部核心。 GateLLMAgentProductionNeo4jRegexASTEXPLAINMirror-ExecuteMirrorNeo4jCost GateCorrectorCypher querypasspasspassplanexecutepassvalidatedfailfailretry(up to 3)results **图1:** 网关架构与验证流水线。生成的 Cypher 进入四后端验证器链(从左至右)。任何失败都路由到修正器并附带结构化错误载荷。修正器通过完整链重试最多三次。验证通过的查询经成本网关后到达生产环境。 网关基于 schema 描述运行,该描述列出目标图中存在的标签、关系类型、属性和约束。网关从三个来源接受描述,所有来源均解析为相同的内部表示。当图的 schema 已知且稳定,或网关在生产数据库不可用的开发环境中运行时,适合使用 YAML 或 JSON 规范。当调用方已有现成 schema 对象时,内存构建允许直接传入,适用于 schema 作为更大流水线的一部分以编程方式生成的场景。对实时 Neo4j 实例的内省是第三种选项。网关连接到数据库驱动并运行 schema 发现查询。若 APOC 插件库(一个广泛部署的 Neo4j 扩展,提供额外过程和函数)可用,网关会调用单个过程,以结构化 map 形式返回完整 schema。若 APOC 不可用,网关回退到内置查询,分别枚举约束、索引、节点类型属性和关系类型属性。回退是自动的,并记录警告日志。属性稀疏度(给定标签的节点中携带给定属性的比例)通过运行每标签计数查询来计算,当观测频率低于可配置阈值(默认 0.5)时将该属性标记为稀疏。网关支持刷新操作,重新运行 schema 加载并原子性地替换活动链中的 schema。 ### 2.2 验证器后端 网关通过一个四后端链验证查询,每个后端采用不同策略检测结构错误。后端接收 Cypher 查询和 schema,返回描述查询结构是否可接受的结果,若不可接受则指明所属错误类别。 **正则表达式后端**应用正则表达式模式从查询中提取标签、关系类型和属性访问,根据 schema 词汇表验证这些内容,并基于字符串相似度生成"您是否想用"建议。它在亚毫秒级时间内产生结果。其局限性源于正则表达式解析的固有特性,子查询、模式推导和过程调用仅能部分识别。 **AST 后端**使用 Cypher 9 语法\[22 (https://arxiv.org/html/2606.04645#bib.bib22)\] 将查询解析为抽象语法树。树遍历提取标签引用、关系引用和属性访问,包括嵌套在子查询内的标签以及通过正则表达式层无法触达的复杂模式访问的属性。当 WHERE 子句中出现字面值时,AST 后端还会根据 schema 声明的类型执行属性类型检查,并在 CREATE 和 MERGE 模式中字面值与已声明的存在性或唯一性约束冲突时检测约束违反。 **EXPLAIN 后端**向 Neo4j 驱动发送纯规划请求,并将返回的任何异常或通知映射到错误词汇表。Neo4j 规划器对语法、schema 引用、schema 绑定变量上的属性存在性以及某些形式的约束分析具有权威性。EXPLAIN 后端能捕获正则表达式和 AST 后端无法捕获的引用,包括 AST 语法未覆盖的 Cypher 语法内部的引用。其局限性在于规划不执行查询,因此无法检测运行时错误,如缺少过程、参数类型不匹配、投影中的作用域错误以及某些形式的隐式类型强制转换。 **镜像执行后端**在镜像 Neo4j 实例(下一小节描述)的事务中执行查询,并无条件回滚事务。执行尝试中的异常被捕获并映射到错误词汇表,涵盖语法错误、语义错误、缺少过程、缺少参数和类型错误。事务内执行的写操作通过回滚撤销,使镜像在调用间保持结构稳定。 短路模式QueryRegexASTEXPLAINMirror-ExecuteSchema errorpasspassskippedskippedchain stops收集全部模式QueryRegexASTEXPLAINMirror-ExecuteOrdered error listpasspassschema errorproperty error **图2:** 验证器链模式。在短路模式(上)中,链在第一次失败时停止并返回单个错误。在收集全部模式(下)中,链运行每个满足前提条件的后端,并将所有发现聚合为有序列表。 四个后端组成一个以两种模式之一运行的验证器链。在**短路模式**(默认)中,链按顺序运行后端并返回第一个失败。默认顺序为正则表达式、AST、EXPLAIN、镜像执行,将最廉价的过滤器放在前面,最权威的检查放在最后。在**收集全部模式**中,链运行每个满足前提条件的后端并聚合结果。当较早的后端已对同一查询报告解析错误时,跳过后续后端。当 AST 后端报告解析失败但 EXPLAIN 后端成功规划了同一查询时,链将 AST 结果视为语法覆盖缺口并采用 EXPLAIN 的结果。收集全部模式下的结果列表按固定契约排序。解析错误排在最前,因为解析失败优先于其他发现。在同一类别内,按产生错误的后端权威性排序,EXPLAIN 和镜像执行高于 AST 和正则表达式。在同一后端内,按严重程度排序,约束违反高于属性类型错误,属性类型错误高于 schema 引用错误。 ### 2.3 镜像图与等价性验证 我们采用合成图作为 Cypher 验证
相似文章
PIPE-Cypher: 面向文本到Cypher系统的企业级基准自动生成
PIPE-Cypher是一个管道,能够从实时属性图和种子查询中自动生成平衡的自然语言到Cypher基准,利用模式分析、反向查询接地和本地LLM评判等技术,创建具有区分性且与部署相关的基准。
构建 Decypher:面向代理的执行上下文引擎
Decypher 是一款通过执行代码库语义分析来为代理编码提供深层执行上下文的工具,使代理能够回答关于代码结构和交互的查询。
通过基于知识图谱的数据生成实现精确的文本到Cypher转换
本文提出了一种合成数据生成方法,用于微调小型LLM,将自然语言转换为属性图的Cypher查询,在实现本地部署和数据主权的同时,达到了与大型专有模型相竞争的性能。
CogGuard:边缘智能服务中用于主动预警的认知与操作画像构建
CogGuard是一种用于边缘智能服务的主动预警框架,它将基于LLM的离线画像构建与基于SLM的在线评分预测解耦,在教育和操作数据集上实现了更低的预测误差,同时将构建时间减少48%,微调时间减少19%。
Agyn:基于Kubernetes的开源分布式代理运行时——类似谷歌的AX,内置Claude Code和Codex代理,实现与LLM完全隔离的凭证管理
Agyn是一个开源的、原生于Kubernetes的代理运行时,它将Claude Code和Codex等AI代理引入生产环境,具备完整的凭证隔离和预构建的适配器。它通过在Sidecar中运行MCP服务器并对内部服务使用mTLS来解决安全问题,防止提示注入导致凭证泄露。