| name | deploy |
| description | 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. |
Deploy to Databricks
Quick Deploy
databricks bundle validate -t dev
databricks bundle deploy -t dev
databricks bundle run agent_langchain_ts
Deployment Targets
Development (dev)
databricks bundle deploy -t dev
Characteristics:
- Default target
- User-scoped naming:
db-agent-langchain-ts-<username>
- Development mode permissions
- Auto-created resources
Production (prod)
databricks bundle deploy -t prod
Characteristics:
- Production mode
- Stricter permissions
- Fixed naming:
db-agent-langchain-ts-prod
- Requires explicit configuration
Step-by-Step Deployment
1. Prepare Code
Ensure code is committed and tested:
npm run dev
npm test
npm run build
2. Validate Bundle
databricks bundle validate -t dev
This checks:
databricks.yml syntax
app.yaml configuration
- Resource references
- Variable interpolation
3. Deploy Bundle
databricks bundle deploy -t dev
This will:
- Create MLflow experiment if needed
- Upload source code
- Configure app environment
- Grant resource permissions
- Create app instance
4. Start App
databricks bundle run agent_langchain_ts
Or manually:
databricks apps start db-agent-langchain-ts-<username>
5. Verify Deployment
databricks apps get db-agent-langchain-ts-<username>
databricks apps logs db-agent-langchain-ts-<username> --follow
curl https://<workspace-host>/apps/db-agent-langchain-ts-<username>/health
Managing Existing Apps
Bind Existing App
If app already exists:
databricks apps get db-agent-langchain-ts-<username>
databricks bundle deploy -t dev --force-bind
Delete and Recreate
databricks apps delete db-agent-langchain-ts-<username>
databricks bundle deploy -t dev
Configuration Files
databricks.yml
Main 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_QUERY
app.yaml
Runtime 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_QUERY
Viewing Deployed App
Get App URL
databricks apps get db-agent-langchain-ts-<username> --output json | jq -r .url
Access App
Navigate to:
https://<workspace-host>/apps/db-agent-langchain-ts-<username>
Test Deployed App
curl https://<workspace-host>/apps/db-agent-langchain-ts-<username>/health
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!"}
]
}'
Monitoring
View Logs
databricks apps logs db-agent-langchain-ts-<username> --follow
databricks apps logs db-agent-langchain-ts-<username> --tail 100
databricks apps logs db-agent-langchain-ts-<username> | grep ERROR
View MLflow Traces
See MLflow Tracing Guide for viewing traces in your workspace.
App Metrics
databricks apps get db-agent-langchain-ts-<username> --output json
databricks apps get db-agent-langchain-ts-<username> --output json | jq -r .state
Updating Deployed App
Update Code
databricks bundle deploy -t dev
databricks apps restart db-agent-langchain-ts-<username>
Update Configuration
Edit app.yaml or databricks.yml, then:
databricks bundle deploy -t dev
databricks apps restart db-agent-langchain-ts-<username>
Adding Resources
Add Serving Endpoint Permission
Edit app.yaml:
resources:
- name: serving-endpoint
serving_endpoint:
name: "your-endpoint-name"
permission: CAN_QUERY
Then redeploy:
databricks bundle deploy -t dev
Add Unity Catalog Function
Edit databricks.yml:
resources:
- name: uc-function
function:
name: "catalog.schema.function_name"
permission: EXECUTE
Update 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 dev
Troubleshooting
"App with same name already exists"
Either bind existing app:
databricks bundle deploy -t dev --force-bind
Or delete and recreate:
databricks apps delete db-agent-langchain-ts-<username>
databricks bundle deploy -t dev
"Permission denied on serving endpoint"
Ensure endpoint is listed in app.yaml resources:
resources:
- name: serving-endpoint
serving_endpoint:
name: "databricks-claude-sonnet-4-5"
permission: CAN_QUERY
"Experiment not found"
Create 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-ts
"App failed to start"
Check logs:
databricks apps logs db-agent-langchain-ts-<username>
Common issues:
- Missing dependencies in
package.json
- Incorrect
npm start command in app.yaml
- Missing environment variables
- Build errors
"Cannot reach app URL"
Verify:
- App is running:
databricks apps get <app-name> | jq -r .state
- URL is correct:
databricks apps get <app-name> | jq -r .url
- Authentication token is valid
CI/CD Integration
GitHub Actions Example
name: 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_ts
Best Practices
- Test Locally First: Always test with
npm run dev before deploying
- Use Dev Environment: Test deployments in dev before prod
- Monitor Logs: Check logs after deployment
- Version Control: Commit changes before deploying
- Resource Permissions: Verify all required resources are granted in
app.yaml
- MLflow Traces: Monitor traces to debug issues
- Incremental Updates: Make small changes and test frequently
Related Skills
- quickstart: Initial setup and authentication
- run-locally: Local development and testing
- modify-agent: Making changes to agent configuration