用 grammar 约束,本地模型终于不再把 JSON 写坏

paulqq · reddit · 2026-07-29

这篇是一个很实用的本地 agent 工程方案:用 grammar 约束让小模型别再把 JSON 输出搞坏。

作者指出,本地跑模型时,结构化输出最常见的问题是:

他的做法是利用 llama.cpp 的 GBNF grammar 能力,把每个工具的 schema 编译成语法规则,让模型在 token 级别就被约束住,从而理论上不可能生成非法 JSON。另外,他还会按轮次缩小 grammar,只让模型看到当前真正相关的 3–5 个工具,而不是全部 50 个。

文章背景是他自己的本地 Rust agent Eris:

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →