什么是提问表单?
智能体在对话中途当场组装出来的一张小表单——选项、数字、日期——渲染成点几下就能填完的东西,而不是一段要打字回答的问题。
大多数商业对话里都有这么一刻:智能体必须先拿到四样具体信息才能帮上忙——币种、金额、期限、日期。
用大白话问,那就是一段话里塞了四个问题。回来的是其中两个的答案,顺序还跟你问的不一样,金额写作「一百六十万左右」。接着是一个追问,然后又要澄清一次那到底是不是美元。
提问表单把这一整段换成点几下。
智能体能组装出什么
表单是智能体自己写的,在对话中途,按它此刻需要什么来写。它不是你预先设计好、再挂到某个触发条件上的表单。
五种字段,可以混在同一张表单里:
- single 单选和 multi 多选 —— 从可枚举的选项里挑
- number 数字 —— 带单位和上下界;千位分隔符只显示给客户看,在交到智能体手里之前会被去掉,所以没人需要去解析「一百六十万左右」
- date 日期 —— 带允许的取值范围
- text 文本 —— 留给那个确实是开放式的问题
客户填完提交,答案作为一条消息回到对话里,智能体从这里接着往下走。
有意思的地方在于克制
这类功能的诱惑是到处都用,而一个每个问题都甩表单的智能体,比一个从来不用表单的还糟。
所以智能体被要求:只有当选项确实可枚举、至少有两个真实选项、而且拿到它才能往下推进时,才用表单。开放式问题——「说说你的情况」——仍然作为问题问出来。收尾的客套话也一样:没人想要一个「还有别的事吗?」的单选按钮,而一张只有一个选项、写着「结束对话」的表单,比它替换掉的那句话更糟。
为什么这对商用智能体重要
回来的数据是结构化的。 一个数字就是一个数字,而不是一句还要人去理解的话——当下一步是调用一个期待整数入参的报价工具时,这一点很要紧。
用更少的来回走到同一个地方。 一次交互拿到四个事实,而不是六条消息来回澄清——而每多一个来回,都是一个客户可能走神的地方。
它自动用客户的语言。 智能体写标签的方式和它写别的东西一样,所以一个西班牙语的咨询会得到一张西班牙语的表单,不需要谁去维护五份译文。
答案去了哪里
提交一张表单不是一次数据库写入——它作为一条消息回到对话里,供智能体推理。这一点很关键,因为下一步通常就是其余部件中的某一个:一个数字被直接喂进 MCP 工具,一组选择决定走 Skill 的哪个分支,或者一些事实被记进这位客户的空间,好让下个月不用再问一遍。
表单按智能体逐个启用,所以一个只应该回答问题的智能体,不会顺带获得开口提问的能力。
这是智能体在模型之上加了什么的一个好例子。模型决定的是该问什么;把它渲染成能点的东西、校验回来的内容、再把一个干净的数字交给下一个工具——这些全是外壳干的活。