The Alation AI Agent SDK enables AI agents to access and leverage metadata from the Alation Data Catalog.
This SDK empowers AI agents to:
The project is organized into multiple components:
alation-ai-agent-sdk
)
The core SDK provides the foundation for interacting with the Alation API. It handles authentication, request formatting, and response parsing.
LangChain Integration (alation-ai-agent-langchain
)
This component integrates the SDK with the LangChain framework, enabling the creation of sophisticated AI agents that can reason about your data catalog.
Learn more about the LangChain Integration
MCP Integration (alation-ai-agent-mcp
)
The MCP integration provides an MCP-compatible server that exposes Alation's context capabilities to any MCP client.
Learn more about the MCP Integration
# Install core SDK pip install alation-ai-agent-sdk # Install LangChain integration pip install alation-ai-agent-langchain # Install MCP integration pip install alation-ai-agent-mcp
The library needs to be configured with your Alation instance credentials. Depending on your authentication mode, you can use either UserAccountAuthParams
or ServiceAccountAuthParams
.
from alation_ai_agent_sdk import AlationAPI, ServiceAccountAuthParams # Initialize the SDK with Service Account Authentication auth_params = ServiceAccountAuthParams( client_id="your_client_id", client_secret="your_client_secret" ) alation_api = AlationAPI( base_url="https://your-alation-instance.com", auth_method="service_account", auth_params=auth_params )
If you cannot obtain service account credentials (admin only), see the User Account Authentication Guide for instructions.
A retrieval tool that pulls contextual information from the Alation catalog based on natural language queries.Functionality
Usage
response = alation_ai_sdk.get_context( "What certified data set is used to make decisions on providing credit for customers?" )
Input Parameters
question
(string): The natural language querysignature
(optional dict): The configuration controlling which objects and their fieldsReturns
Functionality
Usage
response = alation_ai_sdk.get_data_products( "12345" # Example product ID ) response = alation_ai_sdk.get_data_products( "Show me all data products related to sales" )
Input Parameters
product_id
(string, optional): The ID of the product for direct lookupquery
(string, optional): A natural language query to discover data productsReturns
Functionality
Usage
# Get tables from a specific datasource bulk_signature = { "table": { "fields_required": ["name", "description", "columns"], "search_filters": { "fields": {"ds": [123]} # Specific datasource }, "limit": 100, "child_objects": { "columns": { "fields": ["name", "data_type", "description"] } } } } response = sdk.bulk_retrieval(signature=bulk_signature)
Input Parameters
signature
(dict): The configuration controlling which objects and their fieldsReturns
Functionality
Input Parameters
job_id
(int): The identifier of the asychronous job.Returns
Supported object types
glossary_term
: Individual glossary terms (corresponds to document objects)glossary_v3
: Glossary collections (corresponds to doc-folder objects, i.e., Document Hubs)Functionality
Input Parameters
id
, otype
, field_id
, and the new value
.Returns
Functionality
Input Parameters
Returns
NOTE: This BETA feature must be enabled on the Alation instance. Please contact Alation support to do this. Additionally, the lineage tool within the SDK must be explicitly enabled.
Functionality
Input Parameters
root_node
(dict) The starting object. Must contain id
and otype
.direction
(upsteam|downstream) The direction to resolve the lineage graph from.limit
(optional int) Defaults to 1,000.batch_size
(optional int) Defaults to 1,000.max_depth
(optional int) The maximumn depth to transerve of the graph. Defaults to 10.allowed_otypes
(optional string[]) Controls which types of nodes are allowed in the graph.pagination
(optional dict) Contains information about the request including cursor identifier.show_temporal_objects
(optional bool) Defaults to false.design_time
(optional 1,2,3) 1 for design time objects. 2 for run time objects. 3 for both design and run time objects.excluded_schema_ids
(optional int[]) Remove nodes if they belong to these schemas.time_from
(optional timestamp w/o timezone) Controls the start point of a time period.time_to
(optional timestamp w/o timezone) Controls the ending point of a time period.Returns
Functionality
Input Parameters
No parameters required
Returns
Functionality
Input Parameters
No parameters required
Returns
Complete instruction set with custom fields and examples for generating data dictionary.
Shape the SDK to your needsThe SDK's alation-context
and bulk_retrieval
tools support customizing response content using signatures. This powerful feature allows you to specify which fields to include and how to filter the catalog results. For instance:
# Define a signature for searching only tables that optionally # include joins and filters if relevant to the user question signature = { "table": { "fields_required": ["name", "title", "description"], "fields_optional": ["common_joins", "common_filters"] } } # Use the signature with your query response = sdk.get_context( "What are our sales tables?", signature )
For more information about signatures, refer to Using Signatures
Guides and Example AgentsDirect usage examples for the Alation AI Agent SDK:
Enable agentic experiences with the Alation Data Catalog.
Harness the SDK to build complex agents and workflows.
The number of published agent frameworks and toolkits appears to be increasing every day. If you don't happen to see the framework or toolkit you're using here, it's still possible to adapt alation-ai-agent-sdk
to your needs. It may be as simple as writing a wrapping function where a decorator is applied.
While we want to reach as many developers as possible and make it as convenient as possible, we anticipate a long tail distribution of toolkits and won't be able to write adapters for every case. If you'd like support for a specific toolkit, please create an issue to discuss.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4