AI 工具开发 高级

外部系统工具实战:数据库、API、浏览器与代码执行

四大类高频工具的实现要点与安全边界:SQL 只读、REST 封装、浏览器自动化、代码解释器。

① 数据库工具:只读是底线

  • 只授 SELECT 权限账号;执行前校验语句;默认 LIMIT;
  • 把表结构 + 字段业务含义("GMV=成交总额")作为工具描述的一部分或独立 describe_schema 工具;
  • 参考本站《实战:代码助手与 SQL 问答》。

② REST API 工具:包装而不是透传

  • 不直接暴露"通用 HTTP 请求工具"(模型会乱传 URL),而是按业务封装成 create_ticket、get_user 等具体工具;
  • 鉴权 Key 在工具内部管理,绝不作为模型可见参数;
  • 返回值裁剪到任务所需字段。

③ 浏览器自动化工具

  • 用 Playwright 封装 open_page / read_content / click 等原子工具;
  • 网页内容是不可信输入:返回前剥离脚本与隐藏文本,防提示注入(见《MCP 安全》课);
  • 限定可访问域名白名单。

④ 代码执行工具(Code Interpreter)

  • 最能放大能力的工具,也最危险——必须沙箱
  • 复用本站「Java 在线沙箱」的思路:独立目录、超时强杀、禁网络、限制内存;Python 生态用容器隔离更彻底;
  • 返回 stdout + 运行状态,报错原样返回让模型修代码重试。

通用安全公式

每个工具上线前回答:它最坏能造成什么损失?然后把这个损失用权限、白名单、沙箱、审批圈到可接受范围。

📝 课后练习

quiz-1 给 Agent 提供数据库查询工具的安全底线是?