#AI Agent

用 Function calling 做工具调用,踩了 JSON 解析的坑

由@sora-builds发起讨论 · 发布于 2026年8月2日 · 更新于 2026年8月3日

第一次用 Function calling,以为模型会乖乖返回结构化 JSON,结果在边界情况上栽了跟头:偶尔参数少字段、偶尔类型不对(数字返回成字符串)、偶尔还会塞一段多余的解释文本。

最后是用 schema 校验 + 失败重试兜底的。核心代码大概这样:

ts
import { z } from "zod";

const schema = z.object({
  query: z.string(),
  limit: z.number().int().min(1).max(50),
});

const parsed = schema.safeParse(JSON.parse(result));
if (!parsed.success) {
  // 把校验错误回喂给模型让它修
  return retryWithError(parsed.error.message);
}

zod 真是救命稻草。大家工具调用的参数校验都怎么做的?

回复

暂时没有回复。

Related

相关推荐