把大模型接入数学绘图工具,难点不在于生成一段看起来合理的文本,而在于把自然语言意图变成可检查、可执行、可恢复的操作。
输出先进入语法边界
模型输出不应直接执行。第一步是把允许的命令、参数类型和对象引用写成明确语法,再由解析器把文本转换为 AST。解析失败意味着输入不完整,应当返回结构化错误给模型或用户。
type CommandNode = {
name: string;
args: Array<NumberNode | PointNode | ReferenceNode>;
};
AST 校验承担安全与正确性
语法正确仍可能语义错误。校验层需要确认对象是否存在、参数数量是否匹配、引用是否形成循环,以及命令是否位于允许集合。通过后,执行器只接收规范化节点,不再处理任意字符串。
把错误变成下一轮上下文
执行失败时,返回“第几个节点、期待什么、实际得到什么”,比返回一段堆栈更有用。模型可以据此修正局部命令,用户也能理解系统为什么没有继续。
Next.js 与 LangChain 的位置
Web 层负责会话、界面与流式状态;编排层负责提示、工具调用和重试;语法与 AST 层保持独立,因为它们才是可确定性测试的核心。这样的边界让模型或框架升级时,不必重写数学执行逻辑。
可靠的 AI 工具不是消除错误,而是把不确定输出限制在一个可验证的通道里。
本文依据 tiwe0/tiwe0 中公开的 LLM 与 GeoGebra 集成项目说明整理。
