minimax agent支持自然语言转sql查询本地sqlite数据库,需先创建sales.db含products和sales表并插入示例数据,再通过上传文件或手动声明表结构接入,提问需明确主谓宾、限定时间范围、指定纯sql输出格式,并用db browser验证结果。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

让业务人员用自然语言提问,Agent自动写SQL查数据库,不用找数据分析师、不用等半天出报表,这种Text-to-SQL能力现在能直接在MiniMax Agent里跑通。
准备本地SQLite示例库
先建一个sales.db文件,里面带products和sales两张表,方便后续验证SQL是否生成正确。打开Python终端,粘贴运行以下代码:
import sqlite3
conn = sqlite3.connect("sales.db")
cursor = conn.cursor()
cursor.execute("""CREATE TABLE IF NOT EXISTS products (id INTEGER PRIMARY KEY, name TEXT NOT NULL, category TEXT, price REAL)""")
cursor.execute("""CREATE TABLE IF NOT EXISTS sales (id INTEGER PRIMARY KEY, product_id INTEGER, quantity INTEGER, amount REAL, sale_date TEXT, region TEXT, FOREIGN KEY (product_id) REFERENCES products(id))""")
products = [(1,"智能手机A","电子产品",2999),(2,"笔记本电脑B","电子产品",5999),(3,"无线耳机C","电子产品",399)]
cursor.executemany("INSERT OR REPLACE INTO products VALUES (?,?,?,?)", products)
sales = [(1,1,120,359880,"2026-07-01","北京"),(2,2,45,269955,"2026-07-01","上海")]
cursor.executemany("INSERT OR REPLACE INTO sales VALUES (?,?,?,?,?,?)", sales)
conn.commit()
conn.close()
这一步必须做完,否则后面Agent生成的SQL查不到真实数据,返回结果全是空的。
在MiniMax Agent中接入数据库
方法一:用内置数据库连接功能
登录 agent.minimax.io → 点击左上角「+新建」→ 选择「数据库查询」模板 → 在弹窗中点击「上传数据库文件」→ 选中你刚生成的 sales.db → 等待解析完成(通常3~5秒)→ 系统会自动识别表结构并显示字段列表。
【注意】上传后别急着提问,先点开「表结构预览」确认products和sales两张表都已加载,字段名和类型对得上,否则后续SQL可能引用不存在的列名。
方法二:手动声明表结构(适合无法上传文件的场景)
直接输入提示词:“数据库有两张表:products表含id、name、category、price字段;sales表含id、product_id、quantity、amount、sale_date、region字段;product_id是外键关联products.id;请基于此结构回答问题。”
这一步比上传文件多写20个字,但能绕过文件权限限制,适合内网或安全策略严格的环境。
写出能执行的自然语言提问
第一步:明确主语和动词——问“哪个区域销量最高”,不能说“帮我看看销售情况”。Agent需要主谓宾结构才能准确映射到SELECT+GROUP BY+ORDER BY。
第二步:限定时间范围——加“最近7天”比“最近”更安全,“7月销量”比“上个月”更不易歧义,因为Agent不默认知道当前日期上下文。
第三步:指定输出格式——结尾加一句“只返回SQL语句,不要解释,不要加```sql标记”,否则你会收到带Markdown包裹的代码,复制进SQLite时会报错。
示例提问:“查2026年7月各区域销售额总和,按金额降序排列,只返回SQL语句,不要解释,不要加```sql标记”
执行并验证生成的SQL
① 复制Agent返回的SQL语句 → 打开DB Browser for SQLite(免费工具)→ 连接sales.db → 粘贴SQL到执行窗口 → 点击「Execute SQL」。
② 如果报错,重点看三处:FROM子句的表名是否拼错(比如写成sale而非sales)、WHERE里的日期格式是否为'2026-07%'(SQLite不认'2026/07')、聚合字段是否漏写GROUP BY(SELECT region, sum(amount) 必须跟 GROUP BY region)。
③ 查到结果后,对比原始数据:比如北京7月有两条记录(359880+0),上海也是两条(269955+449850),总和应为719735,若SQL返回值不符,说明Agent把quantity当成了amount,需在提问中强调“按amount求和”。
这一步做完,SQL就真正跑通了。











