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

LangChain SQLDatabase Agent多表查询单引号异常报错求助

LangChain SQLDatabase Agent多表查询时多余单引号导致表不存在错误

这个问题已有不少开发者碰到过,核心原因是LangChain的SQLDatabase Agent在处理多表名参数时,错误地将包裹整个表名列表的单引号拆分到了每个表名的两端,导致数据库无法识别带单引号的表名。

从执行日志能清晰看到问题:

Thought: The table names are correct. I should query the schema of these tables.
Action: schema_sql_db
Action Input: 'ods_crs_reservation, ods_crs_reservation_room_history'
Observation: Error: table_names {"ods_crs_reservation_room_history'", "'ods_crs_reservation"} not found in database
Thought: I must have made a typo. I should double check the table names.
Action: list_tables_sql_db
Action Input: ""

Agent把原本的单引号包裹的多表名列表,拆分成了分别带前后单引号的两个表名,直接触发了表不存在的报错,而单表查询时因为只有一个表名,不会出现这种拆分错误。

常用的解决办法:

  • 自定义schema_sql_db工具的输入解析逻辑,自动去除每个表名两端的多余单引号
  • 在prompt中明确要求Agent传递多表名时不要添加任何单引号,直接用逗号分隔多个表名
  • 升级到LangChain的较新版本,部分后续版本已经修复了这个多表参数解析的bug

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:05:02