Skip to content
AI 接入与工程化实践 · 第 3 篇 / 共 3 篇
领域工程与工具
专题AI 与智能体专题
当前序列AI 接入与工程化实践
阅读位置第 3 篇 / 共 3 篇当前专题第 5 个序列 / 共 8 个序列

工具调用和函数 Schema 应该怎么设计

先说结论

  • 好的函数 Schema 不是字段越多越好,而是让模型更不容易误用
  • 工具职责越单一,调用越稳定,排障也越容易
  • 真正影响效果的往往不是模型能力,而是参数设计、返回结构和失败边界

一、Schema 本质上在帮模型做什么

它不是单纯把接口文档换个格式,而是在告诉模型:

  • 这个工具是干什么的
  • 什么时候该调
  • 需要哪些参数
  • 哪些参数不能乱填

如果 Schema 设计得太宽、太模糊,模型就更容易:

  • 乱调工具
  • 传错参数
  • 把多个动作混成一次调用

二、一个更稳的设计原则

1. 一个工具尽量只做一件事

比如:

  • 查询订单
  • 取消订单
  • 创建工单

最好分开,不要做成“订单操作总入口”。

2. 参数名尽量直接

优先用业务上本来就清楚的名字,比如:

  • order_id
  • user_id
  • city

少用语义模糊的名字,比如:

  • data
  • payload
  • params

3. 把约束写进 Schema,不要只靠说明文字

比如:

  • 枚举值
  • 必填项
  • 数值范围
  • 日期格式

这些越明确,模型越不容易自由发挥。

三、返回结构也要为模型服务

很多人只关注入参,其实出参同样关键。

更稳的做法通常是:

  • 返回结构固定
  • 成功和失败格式统一
  • 错误原因尽量结构化

比如不要只返回一句“执行失败”,而要让模型知道:

  • 是参数不合法
  • 是资源不存在
  • 还是权限不足

这样模型后续才知道该重试、补参,还是直接换路。

四、最容易踩的坑

1. 一个函数承载太多动作

看起来方便,实际模型特别容易选错动作或漏填参数。

2. Schema 很宽,但校验很弱

模型传什么都能进来,最后业务层到处兜底,维护成本会很高。

3. 把前端页面模型直接照搬成工具 Schema

页面字段往往很多,但模型真正需要的只是完成动作所需的最小集合。

总结

工具调用和函数 Schema 的核心,不是“把接口暴露给模型”,而是把工具边界收窄、参数约束收紧、返回结构做稳。工具越单一,Schema 越清楚,模型调用通常就越稳定。

延伸阅读相关文章优先当前专题,再补跨专题关联。
同一序列 · 回看前文会更完整Prompt 模板和评测应该怎么做适合把 RAG、提示模板、工具调用和记忆设计放在一起看。AI 与智能体专题 · AI 接入与工程化实践同一序列 · 回看前文会更完整RAG 和微调到底怎么选适合把 RAG、提示模板、工具调用和记忆设计放在一起看。AI 与智能体专题 · AI 接入与工程化实践同专题其他序列 · AI 协作流程与治理把 AI 接进开发流程适合把需求拆解、权限边界、成本控制、审查与团队落地方式组织成一套可长期维护的流程。AI 与智能体专题 · AI 协作流程与治理同专题其他序列 · AI 工具接入与协作工作流本地向量库和云端知识库怎么取舍适合把 MCP Server、权限模型、多 Agent、知识库重排和代码审查治理放在同一条 AI 落地主线上看。AI 与智能体专题 · AI 工具接入与协作工作流跨专题关联 · 同场景:工程协作本地旧项目怎么推到远程仓库适合把本地项目入仓、Node 版本管理和日常开发环境打底放在一起看。工程协作与环境治理专题 · 开发环境与仓库协作跨专题关联 · 同场景:工程协作冲突解决到底该怎么做才不乱适合把 rebase、merge、stash、reflog 和冲突处理放到一起看。Git 专题 · Git 历史整理与命令技巧
继续阅读AI 接入与工程化实践当前序列第 3 篇 / 共 3 篇当前专题第 5 个序列 / 共 8 个序列
往前看
上一篇Prompt 模板和评测应该怎么做回到当前序列上一章上一序列AI 协作流程与治理从第 1 篇开始:把 AI 接进开发流程
往后看
下一序列AI 评测、记忆与治理细节从第 1 篇开始:AI Agent 的短期记忆和长期记忆怎么分工

把零散经验整理成可查、可复用、可持续更新的企业级知识门户