Skip to main content

Setting up Agents to query your Snowflake Database

This guide will walk you through configuring Agents to query your Snowflake Database. Before following this guide, ensure that you have set up your Snowflake tools already by following the instructions [here](Snowflake Tools setup.md) .

To configure these agents, you will require the following components added to your project

  1. Snowflake SQL Query Tool
  2. Snowflake Metadata Retrieval Tool
  3. Memory object
  4. LLM model

Metadata Retrieval Agent

The Metadata Retrieval Agent will be a scheduled Agent to retrieve the Metadata associated with the Snowflake Database, and populate a Memory object.

SQL Query Agent

The SQL Query Agent will use the Metadata retrieved from the Memory object to allow the user to query their Database.

Agent Setups

Metadata Retrieval Agent

The Agent setup should have a LLM, Memory block, and Metadata Retrieval tool.

Snowflake SQL Metadata agent

  1. Add the LLM to the Agent
  2. Add the Metadata Retrieval tool to the LLM
  3. Add the Memory block to the Agent

The following connections are needed:

  1. Input line to LLM
  2. LLM line to Output
  3. Memory line to Output

Schedule the Agent by

  1. Selecting the gear icon on the Input block
  2. Turning on Schedule Execution
  3. Providing a time range to repeat metadata retrieval. This would be based on how often you expect your data to change.

Add Snowflake SQL Query tool

Metadata Retrieval Agent

The Agent setup should have a LLM, Memory block (same as previous), and SQL Query tool. Snowflake SQL Query agent

  1. Add the LLM to the Agent
  2. Add the SQL Query tool to the LLM
  3. Add the Memory block to the Agent

The following connections are needed:

  1. Input line to LLM
  2. LLM line to Output
  3. Memory line to LLM

Query the LLM by asking it questions relevant to your Database. Ensure that the Metadata agent has been run at least once before running queries, as it is required to populate any information about the database in the Memory block.

Snowflake query results