Learning Context-Free Grammars for Grammar-Constrained Decoding via Declarative Agentic Programming with Guarantees
Autogrammar 是一个自动从文档和执行数据中学习上下文无关文法的 agent,用于语法约束解码。它被形式化为 Kripke 结构,其非确定性选择由语言模型解析,并通过线性时序逻辑约束实现声明式控制。在 Amazon CloudWatch Logs Insights、Dynatrace Query Language 和 Datadog Search Syntax 三个 DSL 上评估了四个版本,生成的文法在未见数据上达到接近完美的精确率;时序限制将执行时间减少 3.8 倍,且没有显著的精确率损失。
发展脉络
- 首次出现Learning Context-Free Grammars for Grammar-Constrained Decoding via Declarative Agentic Programming with GuaranteesarXiv cs.CL
- 当前判断自动学习 DSL 文法可降低语法约束解码的采用门槛,使语言模型更可靠地生成 DSL 代码,可能推动 DSL 在低资源场景下的应用。Agent Pulse · 分析
语言模型在与外部服务交互时,常因 DSL 资源稀缺而产生语法无效的程序。语法约束解码可消除此类失败,但需要目标语言的上下文无关文法,而第三方 DSL 的文法难以获取。本文定义了 agent Autogrammar,自动从文档和执行数据中学习文法。Autogrammar 形式化为 Kripke 结构,由语言模型解决非确定性选择,通过线性时序逻辑约束实现声明式控制。在三个 DSL 上评估四个版本,生成的文法在未见数据上精确率接近完美;时序限制减少执行时间 3.8 倍且无显著精确率损失。
Autogrammar 将文法学习建模为 Kripke 结构,利用语言模型作为非确定性选择的求解器,并通过线性时序逻辑约束控制 agent 行为,这为声明式 agent 编程提供了新范式。时序限制在保持精确率的同时显著降低执行时间,表明约束可以优化推理效率。
自动学习 DSL 文法可降低语法约束解码的采用门槛,使语言模型更可靠地生成 DSL 代码,可能推动 DSL 在低资源场景下的应用。
对于依赖 DSL 交互的企业,Autogrammar 可减少语法错误导致的失败,提高自动化流程的可靠性,降低人工干预成本。
未来可探索将 Autogrammar 扩展到更多 DSL 和更复杂的约束,以及与其他解码方法结合,进一步提升生成程序的语法和语义正确性。