Skip to main content

teradata-agentstack

A Python SDK package that dynamically generates client classes from OpenAPI specifications for Teradata AI/ML platform services.

It provides a unified way to work with Teradata AgentStack services from Python.

For community support, visit Teradata Community.

For Teradata customer support, visit Teradata Support.

Copyright 2026 Teradata. All rights reserved.

Table of Contents


Overview

teradata-agentstack is a Python SDK that gives you a unified interface to Teradata's AI/ML platform services. It covers the full lifecycle of an AI agent on Teradata: deploy agents as managed services, serve and manage models through the Inference Engine, observe agent behavior end-to-end, control access through API key management, register MCP servers and endpoints, and provision the Ray clusters your workloads run on.

  • A blueprint() helper lists all available classes and operations for a module.

Included SDKs

Module Client Class Generated Classes Service
teradata_agentstack.agentops AgentOpsClient Definitions, Deployments, Secrets, Health Teradata AgentOps
teradata_agentstack.rayops RayClusterManagementClient RayClusterManagement, ... Ray Cluster Management
teradata_agentstack.agento11y AgentO11yClient Traces, Projects, Evaluations, ... Agent Observability
teradata_agentstack.access_manager AccessManagerClient Keys, Admin, Proxy API Access Manager
teradata_agentstack.inference_engine InferenceEngineClient Secrets, Pools, Endpoints, ... Inference Engine
teradata_agentstack.mcp_management MCPManagementClient Servers, ... MCP Management Service
teradata_agentstack.mcp_endpoint_management MCPEndpointManagementClient Endpoints, ... MCP Endpoint Management

Release Notes

Version 20.00.00.02

  • Updated README with general documentation improvements.
  • Added link to public notebook workflows.

Version 20.00.00.01

  • ELE-10086 : Fixed a startup issue that could stop RayOps from loading in some environments.
  • Fixed Access Manager fallback models so API responses are recognized correctly and work reliably.

Version 20.00.00.00

  • First release of teradata-agentstack.
  • Supported SDK modules in this release:
    • agentops
    • rayops
    • agento11y
    • access_manager
    • inference_engine
    • mcp_management
    • mcp_endpoint_management

Installation

Version: 20.00.00.00 | Python: ≥ 3.9 (64-bit) | Platform: Windows, macOS, Linux

pip install teradata-agentstack

Note: A 64-bit Python environment is required. Installation will fail on 32-bit platforms.

Dependencies

Package Version
teradataml >=20.00.00.10
requests ≥ 2.33.0
oauthlib ≥ 3.2.2
requests-oauthlib ≥ 2.0.0
pydantic ≥ 2.10.6
PyYAML ≥ 6.0.2
pandas ≥ 0.22

Authentication

All SDK clients accept the same authentication objects, imported from the top-level package:

from teradata_agentstack import ClientCredentialsAuth, DeviceCodeAuth, BearerAuth, BasicAuth

ClientCredentialsAuth — OAuth2 Client Credentials

auth = ClientCredentialsAuth(
    auth_token_url="https://your-sso/token",
    auth_client_id="your_client_id",
    auth_client_secret="your_client_secret"
)

DeviceCodeAuth — OAuth2 Device Code Flow

auth = DeviceCodeAuth(
    auth_token_url="https://your-sso/token",
    auth_device_auth_url="https://your-sso/device_authorization",
    auth_client_id="your_client_id"
)

BearerAuth — Static Bearer Token

auth = BearerAuth(auth_bearer="your_bearer_token")

BasicAuth — Username / Password

auth = BasicAuth(username="user", password="pass")

Authentication Precedence Order

Each configuration value (base_url, auth, ssl_verify) is resolved in the following order. The first source that provides a value wins:

  1. Constructor arguments — values passed directly to the client (e.g., base_url=..., auth=...).
  2. Environment variables — values read from the process environment (e.g., BASE_URL, BASE_API_AUTH_MODE).
  3. YAML config file — values loaded from the config file (explicit config_file path, or the default ~/.teradataml/sdk/config.yaml).

If none of the three sources supplies a required value, a TeradataMlException is raised.

Authentication via Environment Variables

You can configure authentication without passing an auth object by setting environment variables:

Variable Description
BASE_URL Base URL of the API endpoint
BASE_API_AUTH_MODE client_credentials, device_code, bearer, or basic
BASE_SSL_VERIFY true or false
BASE_API_AUTH_CLIENT_ID OAuth2 client ID
BASE_API_AUTH_CLIENT_SECRET OAuth2 client secret
BASE_API_AUTH_TOKEN_URL OAuth2 token endpoint URL
BASE_API_AUTH_DEVICE_AUTH_URL OAuth2 device authorization URL
BASE_API_AUTH_BEARER_TOKEN Static bearer token

Authentication via YAML Config File

# config.yaml
base_url: https://your-server
ssl_verify: true
auth_mode: client_credentials
auth_client_id: your_client_id
auth_client_secret: your_client_secret
auth_token_url: https://your-sso/token

Pass the path using the config_file argument on any client.


Quick Start

AgentOps SDK

from teradata_agentstack import DeviceCodeAuth
from teradata_agentstack.agentops import AgentOpsClient
from teradata_agentstack.agentops import Definitions, Deployments, Secrets, Health
from teradata_agentstack.agentops.models import (
    AgentDefinitionCreateRequest,
    DeploymentCreateRequest,
)

auth = DeviceCodeAuth(
    auth_token_url="https://your-sso/token",
    auth_device_auth_url="https://your-sso/device_authorization",
    auth_client_id="your_client_id"
)

client = AgentOpsClient(
    base_url="https://your-agentops-server",
    auth=auth,
    workspace_id="your-workspace-id",
    namespace="your-k8s-namespace"
)

# Create API instances
agent_definitions = Definitions(client=client)
deployments = Deployments(client=client)
secrets = Secrets(client=client)

# Create an agent definition — pass Pydantic model directly to body=
created = agent_definitions.create(
    body=AgentDefinitionCreateRequest(
        name="my-agent",
        framework="LangGraph",
        artifacts={"storage_type": "zip"},
    ),
    file="/path/to/agent.zip",
)

# Poll until status reaches terminal state (published/failed)
agent_definitions.poll(id=created.id)

# Create a deployment
deployment = deployments.create(body=DeploymentCreateRequest(...))

# Poll until deployment is active/failed/stopped
deployments.poll(id=deployment.agent_id)

Note: The old class names (AgentDefinitions, AgentDeployments, AgentSecrets) still work as backward-compatible aliases.


### Ray Cluster Management SDK

```python
from teradata_agentstack import ClientCredentialsAuth
from teradata_agentstack.rayops import RayClusterManagementClient

auth = ClientCredentialsAuth(
    auth_token_url="https://your-sso/token",
    auth_client_id="your_client_id",
    auth_client_secret="your_client_secret"
)

client = RayClusterManagementClient(
    base_url="https://your-ray-server",
    auth_data=auth
)

Agent Observability SDK

from teradata_agentstack import BearerAuth
from teradata_agentstack.agento11y import AgentO11yClient

auth = BearerAuth(auth_bearer="your_bearer_token")

client = AgentO11yClient(
    base_url="https://your-agento11y-server",
    auth=auth,
    project_id="your-project-id"
)

Access Manager SDK

from teradata_agentstack import BearerAuth
from teradata_agentstack.access_manager import AccessManagerClient

auth = BearerAuth(auth_bearer="your_bearer_token")

client = AccessManagerClient(
    base_url="https://your-server:9876",
    auth=auth
)

Inference Engine SDK

from teradata_agentstack import ClientCredentialsAuth
from teradata_agentstack.inference_engine import InferenceEngineClient

auth = ClientCredentialsAuth(
    auth_token_url="https://your-sso/token",
    auth_client_id="your_client_id",
    auth_client_secret="your_client_secret"
)

client = InferenceEngineClient(
    base_url="https://your-inference-server",
    auth=auth,
    workspace="your-workspace"
)

MCP Management SDK

from teradata_agentstack import ClientCredentialsAuth
from teradata_agentstack.mcp_management import MCPManagementClient

auth = ClientCredentialsAuth(
    auth_token_url="https://your-sso/token",
    auth_client_id="your_client_id",
    auth_client_secret="your_client_secret"
)

client = MCPManagementClient(
    base_url="https://your-mcp-server",
    auth=auth
)

MCP Endpoint Management SDK

from teradata_agentstack import BasicAuth
from teradata_agentstack.mcp_endpoint_management import MCPEndpointManagementClient

auth = BasicAuth(username="user", password="pass")

client = MCPEndpointManagementClient(
    base_url="https://your-mcp-server:8001",
    auth=auth
)

Notebook Workflows

End-to-end Jupyter notebook examples demonstrating common workflows are available in the public repository:

teradata-agentstack/Workflows


Pydantic Model Support

All SDK modules support passing Pydantic models directly to request body parameters. The SDK automatically serializes models before sending:

from teradata_agentstack.agentops.models import AgentDefinitionCreateRequest

# Pass Pydantic model directly
result = agent_definitions.create(
    body=AgentDefinitionCreateRequest(name="my-agent", framework="LangGraph", ...),
    file="/path/to/agent.zip",
)

Polling Async Resources

Some SDK classes support a .poll() method for resources that are processed asynchronously:

Module Class Terminal States Success States
agentops Definitions published, failed published
agentops Deployments active, failed, stopped active
# Poll until agent definition is published (or failed)
result = agent_definitions.poll(id=agent_def_id, interval=5, max_attempts=20)

# Poll until deployment is active (or failed/stopped)
result = deployments.poll(id=deployment_id, interval=10, max_attempts=30)

Parameters:

  • id (required): Resource ID to poll
  • interval (optional): Seconds between polls (default varies by resource)
  • max_attempts (optional): Maximum attempts before timeout

The blueprint() Function

Every SDK module exposes a blueprint() function that lists all available classes and operations for that module:

from teradata_agentstack.agentops import blueprint
blueprint()
# ----------------------------------------------------------------
# Available classes for AgentOps SDK:
#     * teradata_agentstack.agentops.Definitions
#     * teradata_agentstack.agentops.Deployments
#     ...
# ----------------------------------------------------------------

Notes and Limitations

  • Only keyword arguments are accepted in API methods; positional arguments are not supported.
  • Pydantic models can be passed directly to body parameters — the SDK handles serialization automatically.
  • TLS certificate verification is enabled by default. Disable only in trusted development environments (ssl_verify=False).

License

Copyright 2026 Teradata. All rights reserved. Teradata Confidential and Trade Secret.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

teradata_agentstack-20.0.0.2-py3-none-any.whl (180.7 kB view details)

Uploaded Python 3

File details

Details for the file teradata_agentstack-20.0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for teradata_agentstack-20.0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 df261851313c77767ecf01af518756cf0f77ff2d2f4e706f16b082a949b12f1b
MD5 ab20dda5300273749084ad6560972162
BLAKE2b-256 52d7e4077fef414b93e82e7a9e25c11bdcbc15a42c2e59a992f7d1e3d516b35d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page