SQL 访问 AI 代理 — 灵活性与安全防护

发布: (2025年12月17日 GMT+8 15:38)
3 min read
原文: Dev.to

Source: Dev.to

运营 AI 代理需要边界

AI 代理正越来越多地用于诸如客户支持等运营任务:

“我的订阅状态如何?”

要回答,代理必须:

  • 通过电子邮件或电话查找客户
  • 检查活跃订阅
  • 查看最近的互动记录

挑战: 在不授予无限制访问权限的情况下,让 AI 安全地查询数据库。

为什么常见方案不足

方法AI 代理面临的挑战
原始 SQL风险高,易受注入攻击和错误影响
硬编码 API缺乏灵活性,每个查询都需要修改代码
GraphQL / OData功能强大但通用;缺乏安全防护和声明式接口,无法可靠地进行代理查询

关键洞察: AI 代理并不需要完整的数据库灵活性——它们需要 可预测、受限的访问

我们的两部分解决方案

我们结合了两种模式:

1. 模型上下文协议 (MCP)

  • 标准化的 AI → 工具通信接口
  • 支持工具发现、结构化参数、可预测的响应

2. 基于模式的查询构建器

  • 将 JSON 定义的实体模式转换为安全的 SQL
  • 处理关系、字段白名单以及多后端支持
  • 支持多个 SQL 后端——演示使用 SQLite,生产环境使用 SQL Server 或 PostgreSQL——使用相同的查询逻辑

结果: 最少的样板代码、安全的边界、对 LLM 友好的查询语法。
安全性: 明确的字段白名单 (allowedFilterFields) 防止 AI 访问未授权的数据。

为什么这很重要

  • AI 就绪的 API: 安全地实现运营查询
  • 双重接口: 同一引擎同时服务 AI(通过 MCP)和 REST 客户端
  • 可扩展: 以最少代码添加新工具
  • 安全: 明确的白名单防止未授权访问

关键要点

  • 运营 AI 查询 ≠ 临时分析
  • 受限接口提升可靠性和可预测性
  • 将传输层(MCP)与查询逻辑(查询构建器)分离,最大化灵活性
  • 类似 MongoDB 的 JSON 过滤器与 LLM 训练相契合

接下来

下一篇文章 中,我们将深入探讨 MCP 细节:AI 如何发现并调用工具,并提供真实示例。

查看 GitHub 仓库获取 完整实现、图表和代码

Back to Blog

相关文章

阅读更多 »

仓库利用的权威指南

引言 仓库本质上只是一个 3‑D 盒子。利用率只是衡量你实际使用了该盒子多少的指标。虽然物流 c...