---
type: study
created: 2026-08-11
updated: 2026-08-11
sensitivity: standard
status: verified
tags:
  - study
  - langchain
  - typescript
  - integrations
  - tools
  - database
topic: LangChain JavaScript 数据库 API 沙箱与知识访问工具包
sources:
  - https://docs.langchain.com/oss/javascript/integrations/tools/azure_dynamic_sessions
  - https://docs.langchain.com/oss/javascript/integrations/tools/dalle
  - https://docs.langchain.com/oss/javascript/integrations/tools/falkordb
  - https://docs.langchain.com/oss/javascript/integrations/tools/ibm
  - https://docs.langchain.com/oss/javascript/integrations/tools/json
  - https://docs.langchain.com/oss/javascript/integrations/tools/lambda_agent
  - https://docs.langchain.com/oss/javascript/integrations/tools/mcp_toolbox
  - https://docs.langchain.com/oss/javascript/integrations/tools/openapi
  - https://docs.langchain.com/oss/javascript/integrations/tools/oracleai
  - https://docs.langchain.com/oss/javascript/integrations/tools/sql
  - https://docs.langchain.com/oss/javascript/integrations/tools/vectorstore
  - https://docs.langchain.com/oss/javascript/integrations/tools/webbrowser
last_verified: 2026-08-11
---
# 数据库、API、沙箱与知识访问工具包

## 结论

- SQL、OpenAPI、Lambda、图数据库工具都能把自然语言转成真实外部操作；最小权限、只读默认、查询/URL 校验和人工确认比 prompt 约束更可靠。
- JSON/VectorStore/WebBrowser 是“读取与解释”工具包，仍可能把不可信内容送进模型；要限制数据体积、来源和递归调用。
- Azure Dynamic Sessions 是远程隔离 Python 运行时；FalkorDB、Oracle 和数据库 MCP 则把计算靠近数据。两类方案都需要明确网络、身份和资源生命周期。

## 数据库工具

### SQLToolkit

`SqlToolkit` 组合四个工具：列出表、读取 schema/sample、检查查询、执行查询。官方策略要求在 `query-sql` 前先用 `query-checker`，但生产还应增加：

- 使用只读数据库用户，并限制 schema、行级访问和 statement timeout；
- 拒绝多语句、DDL/DML、注释逃逸和危险函数；
- 对返回行数、列数和总字节设上限；
- 将查询检查与执行放在服务端策略层，不能依赖模型自觉调用 checker。

### MCP Toolbox for Databases

Google 的开源 Toolbox server 负责连接池、认证和数据库工具定义，LangChain 通过 `@toolbox-sdk/core` 获取工具再包装。生产优势在于 authenticated parameters 可从 OIDC token 绑定值、authorized invocation 可在服务端拒绝未授权主体，并能输出 OpenTelemetry。Toolbox 需要自行部署和运维；MCP 边界不是“默认可信”。

### FalkorDB 与 Oracle

- `FalkorDBGraph` 支持初始化、Cypher query、schema refresh/read 与 close，可配合 GraphCypherQAChain 把自然语言转 Cypher。示例依赖失养的 `@langchain/community` chain，且数据库凭据应尽量只读。
- `OracleSummary` 可在 Oracle AI Database 内运行 ONNX summarization，也能转发 OCI Generative AI / Hugging Face；远端 provider 凭据预先登记在数据库中。第三方调用和可选 HTTP proxy 会改变数据驻留边界。
- OracleSummary 可以包装成标准 `tool()`，但调用仍需限制输入长度、模型/provider、费用和数据库连接池。

## API 与 serverless 工具

### OpenAPIToolkit

`OpenApiToolkit` 已位于 `@langchain/classic`，包含 `json_explorer`、`requests_get`、`requests_post`。官方警告它理论上可能携带凭据请求恶意 URL。生产必须：

1. 预解析并固定 OpenAPI spec 版本；
2. 只允许明确的 server、path、method 和 header；
3. 凭据由服务端按目标注入，模型不可查看或覆盖；
4. GET/POST 前做 SSRF、重定向和响应大小检查；
5. 写操作进入审批与幂等流程。

当前页面明确没有专门的 `OpenApiToolkit` API reference，应以 v1 migration guide 和 `langchainjs` 源码核对实现。

### AWS Lambda

`AWSLambda` 把模型给出的字符串作为 Lambda `event` 参数。调用身份必须有 `lambda:InvokeFunction`，函数名、region 和 qualifier 应由应用固定；模型不应选择任意函数。示例展示发送邮件，真实系统还需 SES 权限、收件人白名单、幂等和审计。

## 受控计算与多媒体

- `SessionsPythonREPLTool` 连接 Azure Container Apps Dynamic Sessions 的 code interpreter pool，使用 Entra 身份和 management endpoint。它提供强隔离的 Python 执行，仍需限制 session 数、执行时间、文件、网络出口和成本。
- DALL·E wrapper 接受提示并返回图像 URL。生产需控制尺寸/质量、内容策略、URL 有效期、下载与对象存储流程。
- WatsonxToolkit 汇集 GoogleSearch、WebCrawler、SDXLTurbo、Weather、RAGQuery。WebCrawler 用于页面摘要而非搜索；RAGQuery 需要预先配置索引。按任务挑选最小工具集。

## 只读知识访问工具

- JSON agent 通过 `JsonSpec`/`JsonToolkit` 探索 JSON 或 YAML，例如 OpenAPI 文件。大文档应先裁剪或建索引，避免整个规范进入上下文。
- VectorStoreToolkit 把一个 vector store 与名称/描述包装为检索工具。描述决定模型何时调用，应写清语料范围、时效和不适用问题。
- WebBrowser 有两种模式：仅 URL 时摘要整页；URL 加目标描述时先用内存向量库找片段再总结。需要 `cheerio`/`axios`，且旧 agent 示例含失养的 `@langchain/community` 组件。

## 生命周期与运维

1. 数据库、图、HTTP、session pool 客户端统一用连接池并在结束时 `close()`；记录超时与资源耗尽指标。
2. 工具错误分类为参数错误、权限拒绝、限流、远端失败和不可重试副作用；只对幂等读操作有界重试。
3. 对 SQL/Cypher/API/代码执行记录经过脱敏的动作摘要与目标，不记录连接串、令牌或完整数据行。
4. 示例使用 `@langchain/classic` 或 `@langchain/community` 的地方要做依赖版本审计；后者页面已明确“no longer maintained”。

