AI Agent操作数据库:说人话查数据,自动翻译成SQL

📘 教程 2026-07-16 约 2 分钟阅读

不会SQL也能查数据库。Agent把「上个月卖了多少单「翻译成SQL,查完再把结果说给你听。

💡 你将学到

不会SQL也能查数据库。Agent把「上个月卖了多少单「翻译成SQL,查完再把结果说给你听。

📜 目录

一个Agent的核心能力:用户说人话,Agent翻译成SQL,执行查询,再把结果翻译回人话。

工作原理

用户:"去年哪个产品卖得最好?"
      ↓
Agent(生成SQL)
Agent:SELECT product_name, SUM(quantity) as total 
       FROM orders WHERE year = 2025 
       GROUP BY product_name ORDER BY total DESC LIMIT 1
      ↓
执行SQL → 得到结果
      ↓
Agent(翻译回人话)
"去年卖得最好的是XXX,总销量YYY件。"

安全措施

Agent访问数据库最危险的事:它可能执行破坏性操作。

# 只允许SELECT查询
def execute_safe_query(sql: str) -> list:
    if sql.strip().upper().startswith("SELECT"):
        return execute(sql)
    else:
        raise Exception("只允许查询操作")

总结

Agent + 数据库 = 自然语言数据接口。 但一定要加安全限制——只读查询可以,写操作必须人工确认。

安全性增强

只读查询可以用Agent,写操作需要严格限制:

import sqlparse

def safe_query(sql):
    parsed = sqlparse.parse(sql)[0]
    # 只允许SELECT
    if parsed.get_type() != 'SELECT':
        raise PermissionError("只允许查询操作")

    # 禁止危险函数
    forbidden = ['INTO OUTFILE', 'LOAD_FILE', 'BENCHMARK']
    for f in forbidden:
        if f in sql.upper():
            raise PermissionError(f"禁止使用: {f}")

    return execute_with_timeout(sql, timeout=10)

推荐给Agent一个专门的只读数据库账号,从数据库层面限制权限。

相关文章

相关文章
2026-07-19
Aider:终端中的AI编程助手,智能理解项目结构并编辑多文件
2026-07-19
AI Agent数据接入:让Agent读取你的各种数据源
2026-08-06
Earthly(1.2万星)构建框架2026:用熟悉的Dockerfile语法做可重复构建

本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。

💬 评论 (0)

暂无评论,来说两句吧~

登录后评论