valv icon

valv

valv 讓 AI agent 透過驗證結構化查詢、套用呼叫者專屬政策並執行 SQL,安全且受範圍控管地存取資料庫,適合想以 agent 驅動資料庫存取、又不暴露原始 SQL 的開發者。

valv

為 AI agent 提供安全的資料庫存取

valv 是一個開發者工具,讓 AI agent 能安全且受範圍控管地存取資料庫。模型不會撰寫原始 SQL;相反地,它會輸出結構化查詢,valv 再依 live schema 驗證、限制在目前呼叫者範圍內、編譯成 SQL,並執行。

這個產品適用於 agent 需要真正資料庫存取、但又不應看見資料庫全部內容的情境。政策以程式碼定義,存取預設為拒絕,且同一個查詢會依呼叫者的 tenant 或角色而回傳不同結果。

為什麼選擇 valv

伺服器端驗證

agent 送出的是結構化查詢,而不是原始 SQL。valv 會在任何 SQL 執行前,於伺服器端依據即時 schema 重建並再次檢查。

呼叫者專屬政策

政策以 TypeScript 撰寫,可依呼叫者範圍控管資料列與欄位。文件將預設拒絕所有存取描述為建議做法,並明確加入必要存取。

適合分析的查詢

查詢層支援篩選、彙總、時間序列與 top-N 查詢,因此 agent 能詢問的不只是一對一查找。

具 token 感知的輸出限制

回應會被限制,避免寬泛查詢回傳超出模型可處理的資料量。首頁將此描述為具 token 感知的輸出控管。

資料庫適配器

valv 可搭配 Postgres、MySQL、SQLite 與 ClickHouse,文件也描述了 Prisma 與 ClickHouse 的 adapter。

agent 與 MCP 整合

你可以將工具交給 Vercel AI SDK,或透過 MCP 對外提供,讓同一套資料庫政策能在不同 agent 設定中使用。

valv 適用於哪些情境

  • 租戶範圍的應用程式助理

    在讓資料列與欄位存取綁定目前 tenant 或使用者情境的同時,為應用程式 agent 加入以資料庫為基礎的回答。

  • 分析查詢

    讓分析人員可以提出彙總、篩選、時間序列或 top-N 輸出需求,而不需向模型暴露不受限制的 SQL。

  • 基於 MCP 的 agent 存取

    當你希望像 Claude Code 這類工具具備無程式碼存取時,透過 MCP 將資料庫提供給 coding agent。

  • 每位呼叫者的政策強制執行

    將資料庫存取規則集中以程式碼管理,讓不同呼叫者可從同一個問題看到不同結果。

Pros and Cons

Pros

  • 可防止模型發出原始 SQL,降低受到注入式失敗影響的風險。
  • 讓團隊能以 TypeScript 定義資料列與欄位存取,並在每次請求套用政策。
  • 支援彙總與時間序列等分析型查詢模式,不僅限於簡單鍵值查找。
  • 可搭配多種資料庫,並能在應用程式內或透過 MCP 使用。
  • 採用預設拒絕的存取方式,讓資料在明確允許前保持隱藏。

Cons

  • 來源材料未包含價格資訊,因此可見頁面無法判斷其商業模式。
  • 首頁與文件列出了支援的資料庫,但來源只提供了 Prisma 與 ClickHouse 的 adapter 細節;更深入的設定差異未在此完整說明。
  • 文件提到 MCP 與 AI SDK 整合,但可見來源未展示完整實作步驟或邊界情況限制。

FAQ

valv 如何運作?

valv 位於模型與資料庫之間。模型先輸出結構化查詢,valv 會依據 schema 驗證、套用呼叫者專屬政策、將其編譯為 SQL,然後執行。

常見的使用案例有哪些?

來源資料指出的情境包括:面向 agent 的資料庫存取、資料列與欄位範圍控管、像篩選與彙總這類分析查詢,以及與 Vercel AI SDK 或 MCP 搭配使用。來源未提供更長的垂直產業用例清單。

它安全嗎?

valv 的設計目標是讓模型永遠不會撰寫原始 SQL,且無法存取你所定義政策之外的資料。它會在 SQL 存在之前於伺服器端重建並重新檢查查詢,並以預設拒絕存取作為建議起點。

它和原始 SQL 相比如何?

與原始 SQL 工具相比,valv 在保留 agent 驅動查詢彈性的同時,加入伺服器端驗證與政策範圍控管。文件將其與不受限制的 SQL 以及狹窄的手寫端點做了對照。

Quick Facts

類別
開發者工具
主要用途
為 AI agent 提供安全的資料庫存取
支援的資料庫
Postgres、MySQL、SQLite、ClickHouse
整合途徑
Vercel AI SDK、MCP
政策模型
以 TypeScript 政策實作的預設拒絕存取
來源網址
valv.sh