Deploy TypeScript LangChain agent to Databricks. Use when: (1) User wants to deploy, (2) User says 'deploy', 'push to databricks', 'production', (3) After making changes that need deployment.
64
76%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./agent-langchain-ts/.claude/skills/deploy/SKILL.md# Validate configuration
databricks bundle validate -t dev
# Deploy to dev environment
databricks bundle deploy -t dev
# Start the app
databricks bundle run agent_langchain_tsdatabricks bundle deploy -t devCharacteristics:
db-agent-langchain-ts-<username>databricks bundle deploy -t prodCharacteristics:
db-agent-langchain-ts-prodEnsure code is committed and tested:
# Test locally first
npm run dev
# Run tests
npm test
# Verify build works
npm run builddatabricks bundle validate -t devThis checks:
databricks.yml syntaxapp.yaml configurationdatabricks bundle deploy -t devThis will:
databricks bundle run agent_langchain_tsOr manually:
databricks apps start db-agent-langchain-ts-<username># Check app status
databricks apps get db-agent-langchain-ts-<username>
# View logs
databricks apps logs db-agent-langchain-ts-<username> --follow
# Test health endpoint
curl https://<workspace-host>/apps/db-agent-langchain-ts-<username>/healthIf app already exists:
# Get app details
databricks apps get db-agent-langchain-ts-<username>
# Bind to bundle
databricks bundle deploy -t dev --force-bind# Delete existing app
databricks apps delete db-agent-langchain-ts-<username>
# Deploy fresh
databricks bundle deploy -t devMain bundle configuration:
bundle:
name: agent-langchain-ts
variables:
serving_endpoint_name:
default: "databricks-claude-sonnet-4-5"
resources:
experiments:
agent_experiment:
name: /Users/${workspace.current_user.userName}/agent-langchain-ts
apps:
agent_langchain_ts:
name: db-agent-langchain-ts-${var.resource_name_suffix}
source_code_path: ./
resources:
- name: serving-endpoint
serving_endpoint:
name: ${var.serving_endpoint_name}
permission: CAN_QUERYRuntime configuration:
command:
- npm
- start
env:
- name: DATABRICKS_MODEL
value: "databricks-claude-sonnet-4-5"
- name: MLFLOW_TRACKING_URI
value: "databricks"
- name: MLFLOW_EXPERIMENT_ID
value_from: "experiment"
resources:
- name: serving-endpoint
serving_endpoint:
name: ${var.serving_endpoint_name}
permission: CAN_QUERYdatabricks apps get db-agent-langchain-ts-<username> --output json | jq -r .urlNavigate to:
https://<workspace-host>/apps/db-agent-langchain-ts-<username># Health check
curl https://<workspace-host>/apps/db-agent-langchain-ts-<username>/health
# Chat request
curl -X POST https://<workspace-host>/apps/db-agent-langchain-ts-<username>/api/chat \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <databricks-token>" \
-d '{
"messages": [
{"role": "user", "content": "Hello!"}
]
}'# Follow logs in real-time
databricks apps logs db-agent-langchain-ts-<username> --follow
# Get last 100 lines
databricks apps logs db-agent-langchain-ts-<username> --tail 100
# Filter logs
databricks apps logs db-agent-langchain-ts-<username> | grep ERRORSee MLflow Tracing Guide for viewing traces in your workspace.
# Get app details
databricks apps get db-agent-langchain-ts-<username> --output json
# Check app state
databricks apps get db-agent-langchain-ts-<username> --output json | jq -r .state# Make changes to code
# Then redeploy
databricks bundle deploy -t dev
# Restart app
databricks apps restart db-agent-langchain-ts-<username>Edit app.yaml or databricks.yml, then:
databricks bundle deploy -t dev
databricks apps restart db-agent-langchain-ts-<username>Edit app.yaml:
resources:
- name: serving-endpoint
serving_endpoint:
name: "your-endpoint-name"
permission: CAN_QUERYThen redeploy:
databricks bundle deploy -t devEdit databricks.yml:
resources:
- name: uc-function
function:
name: "catalog.schema.function_name"
permission: EXECUTEUpdate app.yaml to pass function config:
env:
- name: UC_FUNCTION_CATALOG
value: "catalog"
- name: UC_FUNCTION_SCHEMA
value: "schema"
- name: UC_FUNCTION_NAME
value: "function_name"Redeploy:
databricks bundle deploy -t devEither bind existing app:
databricks bundle deploy -t dev --force-bindOr delete and recreate:
databricks apps delete db-agent-langchain-ts-<username>
databricks bundle deploy -t devEnsure endpoint is listed in app.yaml resources:
resources:
- name: serving-endpoint
serving_endpoint:
name: "databricks-claude-sonnet-4-5"
permission: CAN_QUERYCreate experiment:
databricks experiments create \
--experiment-name "/Users/$(databricks current-user me --output json | jq -r .userName)/agent-langchain-ts"Or update databricks.yml to auto-create:
resources:
experiments:
agent_experiment:
name: /Users/${workspace.current_user.userName}/agent-langchain-tsCheck logs:
databricks apps logs db-agent-langchain-ts-<username>Common issues:
package.jsonnpm start command in app.yamlVerify:
databricks apps get <app-name> | jq -r .statedatabricks apps get <app-name> | jq -r .urlname: Deploy to Databricks
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
- name: Install Databricks CLI
run: |
curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
- name: Deploy to Databricks
env:
DATABRICKS_HOST: ${{ secrets.DATABRICKS_HOST }}
DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN }}
run: |
databricks bundle deploy -t prod
databricks bundle run agent_langchain_tsnpm run dev before deployingapp.yamlfdc1b49
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.