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

如何取消MySQL LangChain SQL Agent的10行查询限制?

解决SQL Agent自动添加LIMIT 10的问题

LangChain的SQL数据库工具默认会给生成的查询语句加上LIMIT 10,目的是避免返回过多数据。要取消这个全局限制,按以下步骤操作:

  • 修改SQLDatabase初始化参数
    创建SQLDatabase实例时,通过limit参数指定取消限制(设为None即可):

    from langchain.sql_database import SQLDatabase
    
    # 替换为你的MySQL连接URI
    db = SQLDatabase.from_uri("mysql://用户名:密码@主机地址/数据库名", limit=None)
    
  • 用修改后的数据库实例创建Toolkit
    基于修改后的db对象重新生成SQLDatabaseToolkit:

    from langchain.agents.agent_toolkits import SQLDatabaseToolkit
    
    toolkit = SQLDatabaseToolkit(db=db, llm=llm)
    
  • 重新创建SQL Agent
    使用新的toolkit初始化Agent,之后生成的查询就不会自动添加LIMIT 10了:

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

如果已经创建了toolkit,也可以直接修改其内部数据库的limit属性来快速生效:

toolkit.db.limit = None

临时方案:如果只是单次查询需要取消限制,也可以在提问时明确说明“查询全表数据,不要添加LIMIT限制”,但这种方式依赖模型理解,稳定性不如配置参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 16:52:05