Prerequisites
Before enabling Fleet, you must complete the following setup steps:- Install the base LangSmith platform:
- Enable LangSmith Deployment (agent deployment capabilities).
Components
Fleet consists of the following components:agentBootstrap: Job that deploys the LangSmith Deployment (agent) needed for Fleet.agentBuildertoolServer: Provides MCP tool execution for agents.triggerServer: Handles webhooks and scheduled triggers.agent: The main agent that will handle agent generation and where all the assistants will be created.
Enable Fleet
To enable Fleet, add the following to yourvalues.yaml:
Generate an encryption key
Fleet requires a Fernet encryption key to securely store secrets. Generate one using Python:fleet_encryption_key parameter. See Use an existing secret for details.Enable OAuth tools and triggers (optional)
To enable OAuth-based tools (like Gmail, Slack, Linear), configure theoauthProviderOrgId and add provider IDs for each integration you want to enable. You can enable any combination of providers.
Available providers
General configuration
Add the following to yourvalues.yaml. Include only the providers you need.
Provider setup guides
Google OAuth provider
Google OAuth provider
Create OAuth client in GCP
Add URLs to GCP
<hostname> with your LangSmith hostname and <provider-id> with the provider ID you’ll use (e.g., google):Authorized JavaScript origins:https://<hostname>
https://<hostname>/api-host/v2/auth/callback/<provider-id>https://<hostname>/host-oauth-callback/<provider-id>
Copy credentials
Configure OAuth provider in LangSmith
- Client ID: Find in GCP
- Client Secret: Find in GCP
- Authorization URL:
https://accounts.google.com/o/oauth2/auth - Token URL:
https://oauth2.googleapis.com/token - Provider ID: Unique string, for example:
google
Deploy
values.yaml and deploy:Microsoft OAuth provider
Microsoft OAuth provider
Create an Azure app registration
Choose supported account types
Add the redirect URI
<hostname> with your LangSmith hostname and <provider-id> with your provider ID:Create a client secret
Add Microsoft Graph delegated permissions
Mail.ReadWriteMail.SendCalendars.ReadWriteTeam.ReadBasic.AllChannel.ReadBasic.AllChannel.CreateChannelMessage.SendChannelMessage.Read.AllChat.CreateChat.ReadWriteUser.ReadBasic.AllFiles.ReadWrite.AllSites.ReadWrite.All
offline_access for Microsoft providers so users can receive refresh tokens.Grant tenant consent
Configure OAuth provider in LangSmith
- Name: For example,
Microsoft - Provider ID: Unique string, for example:
microsoft-oauth-provider - Client ID: Application (client) ID from Azure
- Client Secret: Client secret value from Azure
- Authorization URL:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize - Token URL:
https://login.microsoftonline.com/common/oauth2/v2.0/token - Provider Type:
microsoft - Token endpoint auth method:
client_secret_post
common in the authorization and token URLs with your tenant ID.Deploy
values.yaml and deploy:Linear OAuth provider
Linear OAuth provider
Create a Linear OAuth app
Add callback URL
<hostname> with your LangSmith hostname and <provider-id> with your provider ID:Copy credentials
Configure OAuth provider in LangSmith
- Client ID: from Linear app
- Client Secret: from Linear app
- Authorization URL:
https://linear.app/oauth/authorize - Token URL:
https://api.linear.app/oauth/token - Provider ID: Unique string, for example:
linear
Deploy
values.yaml and deploy:LinkedIn OAuth provider
LinkedIn OAuth provider
Create a LinkedIn OAuth app
Configure OAuth settings
Add redirect URI
<hostname> with your LangSmith hostname and <provider-id> with your provider ID:Copy credentials
Configure OAuth provider in LangSmith
- Client ID: from LinkedIn app
- Client Secret: from LinkedIn app
- Authorization URL:
https://www.linkedin.com/oauth/v2/authorization - Token URL:
https://www.linkedin.com/oauth/v2/accessToken - Provider ID: Unique string, for example:
linkedin
Deploy
values.yaml and deploy:Slack OAuth provider
Slack OAuth provider
Create a Slack app
Add scopes
channels:historychannels:readchat:writegroups:historygroups:readim:historyim:readim:writempim:historyteam:readusers:readusers:read.email
Copy credentials from Slack
Configure OAuth provider in LangSmith
- Client ID: Find in Slack app
- Client Secret: Find in Slack app
- Authorization URL:
https://slack.com/oauth/v2/authorize - Token URL:
https://slack.com/api/oauth.v2.access - Provider ID: Unique string, for example:
slack
Add redirect URI to Slack
<hostname> with your LangSmith hostname and <provider-id> with your provider ID (e.g., slack):Get the bot ID
- Get the bot token from OAuth & Permissions in your Slack app.
- Run the following command:
- Copy the
bot_idfrom the response.
Deploy LangSmith
values.yaml and deploy:Enable event subscriptions
- After deployment, go to Event Subscriptions in your Slack app and enable events.
-
Set the Request URL to:
-
Add the following bot events:
message.channelsmessage.groupsmessage.immessage.mpim
Set up triggers and tools
- Add the Slack bot to the channel you want it to read from.
- When configuring the Slack tool or trigger in Fleet, provide the channel ID and channel name.
Enable GitHub App for Fleet
Fleet integrates with GitHub through a dedicated GitHub App (not an OAuth app). The GitHub App provides repository access for Fleet’s GitHub tools and supports the user authorization flow required for private repository access. Setup involves creating a GitHub App, gathering its credentials, storing them as Kubernetes secrets, and referencing them fromvalues.yaml.
Create a GitHub App
Fill in basic details
- GitHub App name: Any unique name, for example
acme-langsmith-fleet. Make a note of the slug GitHub generates (the lowercased, hyphenated form of the name — this is the value you’ll use forFLEET_GITHUB_APP_SLUG). - Homepage URL: Your LangSmith hostname, for example
https://langsmith.acme.com. - Uncheck Active under Webhook for now — you’ll enable it in a later step after generating a webhook secret.
Set callback URLs
<hostname> with your LangSmith hostname:Set webhook URL and generate a webhook secret
- Check Active.
-
Set the Webhook URL to:
- Paste the generated value into Webhook secret. Save it — you’ll need the same value when configuring LangSmith.
Set repository permissions
- Contents: Read and write
- Issues: Read and write
- Pull requests: Read and write
- Metadata: Read-only (automatically selected)
Choose install visibility
Create the app
- App ID (numeric, at the top of the page) →
FLEET_GITHUB_APP_ID - Public link (for example,
https://github.com/apps/acme-langsmith-fleet) →FLEET_GITHUB_APP_PUBLIC_LINK - App slug (the last path segment of the public link) →
FLEET_GITHUB_APP_SLUG - Client ID (under About) →
FLEET_GITHUB_APP_CLIENT_ID
Generate a client secret
FLEET_GITHUB_APP_CLIENT_SECRET. GitHub only shows it once.Generate a private key
.pem file. Keep this file secure — it grants full access to the GitHub App. The PEM contents are FLEET_GITHUB_APP_PRIVATE_KEY.Generate a state JWT secret
FLEET_GITHUB_APP_STATE_JWT_SECRET.Create a Kubernetes secret
Configure values.yaml
values.yaml, replacing the placeholder values with the non-sensitive values gathered above:FLEET_GITHUB_APP_ENABLED must be set on the tool server so the GitHub tools are registered. The remaining FLEET_GITHUB_APP_* variables are consumed by the platform backend and so live under commonEnv.Deploy and install the app on repositories
- In LangSmith, open a Fleet agent and go to the GitHub integration in the agent editor.
- Click Connect GitHub to install the app on the repositories Fleet should access.
- For private repositories, you must explicitly select each repository during installation.
Disable Fleet
To disable Fleet, set the following tofalse in your values.yaml:

