You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用VertexAI结合Few-Shot示例创建SQL Agent时遇架构错误求助

解决LangChain SQL Agent与VertexAI结合时的提示模板错误

问题根源

出现Invalid prompt schema; check for mismatched or missing input parameters. {'agent_scratchpad', 'input'}错误的核心原因是:你使用的SQL Agent提示模板(尤其是自定义的suffix)缺少VertexAI模型要求的必填参数agent_scratchpad和input,或者提示模板的结构与VertexAI的输入格式不兼容。

解决方案

1. 修正自定义后缀(custom_suffix)

确保你的custom_suffix包含{agent_scratchpad}和{input}这两个占位符。ZeroShotReactDescription类型的Agent默认后缀会包含这些参数,示例如下:

custom_suffix = """
Begin!

Question: {input}
Thought: 我需要先查看数据库中的表结构,确定最相关的表后查询其 schema。
{agent_scratchpad}
"""

如果你的自定义后缀遗漏了这两个占位符,补充后即可解决参数不匹配问题。

2. 正确初始化VertexAI模型

确保你使用的是适配聊天模板的ChatVertexAI而非基础的VertexAI,因为ZeroShotReactDescription Agent的提示结构更适配聊天模型:

from langchain.chat_models import ChatVertexAI

llm = ChatVertexAI(model_name="text-bison@001", temperature=0)

3. 移除不必要的自定义后缀(可选)

如果你的自定义后缀没有特殊需求,可以直接移除suffix=custom_suffix参数,让Agent使用默认的兼容提示模板:

agent = create_sql_agent(
    llm=llm,
    toolkit=toolkit,
    verbose=True,
    agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    extra_tools=custom_tool_list,
)

4. 检查Few-Shot示例的集成方式

如果你的Few-Shot示例是通过修改提示模板添加的,确保这些示例不会覆盖或遗漏agent_scratchpad和input参数。可以将示例放在提示的prefix部分,保留suffix中的必填参数占位符。

内容的提问来源于stack exchange,提问作者Userrrrrrrr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 16:42:08