Important
Enabling LangSmith Deployment requires an Enterprise plan.
Enabling LangSmith Deployment requires an Enterprise plan.
This setup page is for enabling LangSmith Deployment on an existing LangSmith instance.Review the self-hosted options to understand:
- LangSmith (observability): What you should install first.
- LangSmith Deployment: What this guide enables.
- Standalone Server: Lightweight alternative without the UI.
Overview
This guide builds on top of the Kubernetes installation guide. You must complete that guide first before continuing. This page covers the additional setup steps required to enable LangSmith Deployment:- Installing the LangGraph operator
- Configuring your ingress
- Connecting to the control plane
Prerequisites
- You are using Kubernetes.
- You have an instance of self-hosted LangSmith running.
KEDAis installed on your cluster.
- Ingress Configuration
- You must set up an ingress, gateway, or use Istio for your LangSmith instance. All agents will be deployed as Kubernetes services behind this ingress. Use this guide to set up an ingress for your instance.
- You must have slack space in your cluster for multiple deployments.
Cluster-Autoscaleris recommended to automatically provision new nodes. - A valid Dynamic PV provisioner or PVs available on your cluster. You can verify this by running:
- Egress to
https://beacon.langchain.comfrom your network. This is required for license verification and usage reporting if not running in air-gapped mode. See the Egress documentation for more details.
Setup
- As part of configuring your self-hosted LangSmith instance, you enable the
deploymentoption. This will provision a few key resources.listener: This is a service that listens to the control plane for changes to your deployments and creates/updates downstream CRDs.LangGraphPlatform CRD: A CRD for LangSmith Deployment. This contains the spec for managing an instance of a LangSmith deployment.operator: This operator handles changes to your LangSmith CRDs.host-backend: This is the control plane.
As of v0.12.0, the
langgraphPlatform option is deprecated. Use config.deployment for any version after v0.12.0.- Two additional images will be used by the chart. Use the images that are specified in the latest release.
- In your config file for langsmith (usually
langsmith_config.yaml), enable thedeploymentoption. Note that you must also have a valid ingress setup:
-
In your
values.yamlfile, configure thehostBackendImageandoperatorImageoptions (if you need to mirror images). If you are using a private container registry that requires authentication, you must also configureimagePullSecrets, refer to Configure authentication for private registries. - You can also configure base templates for your agents by overriding the base templates here. Your self-hosted infrastructure is now ready to create deployments.
(Optional) Configure additional data planes
In addition to the existing data plane already created in the above steps, you can create more data planes that reside in different Kubernetes clusters or the same cluster in a different namespace.Prerequisites
- Read through the cluster organization guide in the hybrid deployment documentation to understand how to best organize this for your use case.
- Verify the prerequisites mentioned in the hybrid section are met for the new cluster. Note that in step 5 of this section, you need to enable egress to your self-hosted LangSmith instance instead of https://api.host.langchain.com and https://api.smith.langchain.com.
- Run the following commands against your LangSmith Postgres instance to enable this feature. This is the Postgres instance that comes with your self-hosted LangSmith setup.
Deploying to a different cluster
- Follow steps 2-6 in the hybrid setup guide. The
config.langsmithWorkspaceIdvalue should be set to the workspace ID you noted in the prerequisites. - To deploy more than one data plane to the cluster, follow the rules listed here.
Deploying to a different namespace in the same cluster
- You will need to make some modifications to the
langsmith_config.yamlfile you created in step 3 of the above setup instructions:- Set the
operator.watchNamespacesfield to the current namespace your self-hosted LangSmith instance is running in. This is to prevent clashes with the operator that will be added as part of the new data plane. - It is required to use the Gateway API or an Istio Gateway. Please adjust your
langsmith_config.yamlfile accordingly.
- Set the
- Run a
helm upgradeto update your self hosted LangSmith instance with the new config. - Follow steps 2-6 in the hybrid setup guide. The
config.langsmithWorkspaceIdvalue should be set to the workspace ID you noted in the prerequisites. Remember thatconfig.watchNamespacesshould be set to different namespaces than the one used by the existing data plane!
(Optional) Configure authentication for private registries
If your Agent Server deployments will use images from private container registries (e.g., AWS ECR, Azure ACR, GCP Artifact Registry, private Docker registry), configure image pull secrets. This is a one-time infrastructure configuration that allows all deployments to automatically authenticate with your private registry. Step 1: Create a Kubernetes image pull secretmyregistry.com: Your registry URLyour-username: Your registry usernameyour-password: Your registry password or access tokenlangsmith: The Kubernetes namespace where LangSmith is installed
values.yaml