ibm-watsonx-orchestrate 1.6.0b0__py3-none-any.whl → 1.6.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. ibm_watsonx_orchestrate/__init__.py +1 -1
  2. ibm_watsonx_orchestrate/agent_builder/agents/agent.py +1 -0
  3. ibm_watsonx_orchestrate/agent_builder/agents/types.py +5 -1
  4. ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/__init__.py +2 -0
  5. ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/prompts.py +34 -0
  6. ibm_watsonx_orchestrate/agent_builder/agents/webchat_customizations/welcome_content.py +20 -0
  7. ibm_watsonx_orchestrate/agent_builder/connections/__init__.py +2 -2
  8. ibm_watsonx_orchestrate/agent_builder/connections/connections.py +21 -7
  9. ibm_watsonx_orchestrate/agent_builder/connections/types.py +39 -36
  10. ibm_watsonx_orchestrate/agent_builder/tools/flow_tool.py +83 -0
  11. ibm_watsonx_orchestrate/agent_builder/tools/types.py +7 -1
  12. ibm_watsonx_orchestrate/cli/commands/agents/agents_controller.py +56 -18
  13. ibm_watsonx_orchestrate/cli/commands/channels/webchat/channels_webchat_controller.py +104 -21
  14. ibm_watsonx_orchestrate/cli/commands/chat/chat_command.py +2 -0
  15. ibm_watsonx_orchestrate/cli/commands/connections/connections_command.py +26 -18
  16. ibm_watsonx_orchestrate/cli/commands/connections/connections_controller.py +61 -61
  17. ibm_watsonx_orchestrate/cli/commands/environment/environment_controller.py +1 -1
  18. ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_command.py +118 -30
  19. ibm_watsonx_orchestrate/cli/commands/evaluations/evaluations_controller.py +22 -9
  20. ibm_watsonx_orchestrate/cli/commands/knowledge_bases/knowledge_bases_controller.py +2 -2
  21. ibm_watsonx_orchestrate/cli/commands/server/server_command.py +123 -5
  22. ibm_watsonx_orchestrate/cli/commands/toolkit/toolkit_controller.py +9 -3
  23. ibm_watsonx_orchestrate/cli/commands/tools/tools_controller.py +107 -22
  24. ibm_watsonx_orchestrate/client/agents/agent_client.py +74 -6
  25. ibm_watsonx_orchestrate/client/base_api_client.py +2 -1
  26. ibm_watsonx_orchestrate/client/connections/connections_client.py +18 -9
  27. ibm_watsonx_orchestrate/client/connections/utils.py +4 -2
  28. ibm_watsonx_orchestrate/client/local_service_instance.py +1 -1
  29. ibm_watsonx_orchestrate/client/service_instance.py +3 -3
  30. ibm_watsonx_orchestrate/client/tools/tempus_client.py +8 -3
  31. ibm_watsonx_orchestrate/client/utils.py +10 -0
  32. ibm_watsonx_orchestrate/docker/compose-lite.yml +228 -67
  33. ibm_watsonx_orchestrate/docker/default.env +32 -13
  34. ibm_watsonx_orchestrate/docker/proxy-config-single.yaml +12 -0
  35. ibm_watsonx_orchestrate/flow_builder/flows/flow.py +15 -5
  36. ibm_watsonx_orchestrate/flow_builder/utils.py +78 -48
  37. ibm_watsonx_orchestrate/run/connections.py +4 -4
  38. {ibm_watsonx_orchestrate-1.6.0b0.dist-info → ibm_watsonx_orchestrate-1.6.2.dist-info}/METADATA +5 -3
  39. {ibm_watsonx_orchestrate-1.6.0b0.dist-info → ibm_watsonx_orchestrate-1.6.2.dist-info}/RECORD +42 -37
  40. {ibm_watsonx_orchestrate-1.6.0b0.dist-info → ibm_watsonx_orchestrate-1.6.2.dist-info}/WHEEL +0 -0
  41. {ibm_watsonx_orchestrate-1.6.0b0.dist-info → ibm_watsonx_orchestrate-1.6.2.dist-info}/entry_points.txt +0 -0
  42. {ibm_watsonx_orchestrate-1.6.0b0.dist-info → ibm_watsonx_orchestrate-1.6.2.dist-info}/licenses/LICENSE +0 -0
@@ -1,7 +1,7 @@
1
1
  services:
2
- ########################
3
- # Orchestrate Lite dependencies
4
- ########################
2
+ ########################
3
+ # Orchestrate Lite dependencies
4
+ ########################
5
5
  wxo-server-redis:
6
6
  image: ${OPENSOURCE_REGISTRY_PROXY:-docker.io}/redis:7.2
7
7
  platform: linux/amd64
@@ -56,7 +56,7 @@ services:
56
56
  restart: unless-stopped
57
57
  ports:
58
58
  - "8787:8787"
59
- environment:
59
+ environment:
60
60
  WATSONX_API_KEY: ${WATSONX_APIKEY}
61
61
  WATSONX_URL: ${WATSONX_URL}
62
62
  WATSONX_SPACE_ID: ${WATSONX_SPACE_ID}
@@ -87,7 +87,7 @@ services:
87
87
  NODE_LOG_LEVEL: debug
88
88
  RABBITMQ_EXCHANGE: verdi_events_affinity
89
89
  SOCKET_PING_TIMEOUT: 20000
90
- WXO_DOMAIN_URL: http://localhost:4321
90
+ WXO_DOMAIN_URL: http://localhost:4321/api/v1
91
91
  IS_WXA_WEBCHAT: "true"
92
92
  NODE_OPTIONS: --max-http-header-size 32768
93
93
  PATH: /opt/app-root/src/node_modules/.bin/:/opt/app-root/src/.npm-global/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
@@ -115,13 +115,17 @@ services:
115
115
  platform: linux/amd64
116
116
  restart: unless-stopped
117
117
  environment:
118
- WXO_DEPLOYMENT_TYPE: 'laptop'
118
+ WXO_DEPLOYMENT_TYPE: "laptop"
119
119
  AGENT_RUNTIME_ENDPOINT: http://wxo-server:4321
120
120
  TEMPUS_RUNTIME_ENDPOINT: http://wxo-tempus-runtime:9044
121
121
  CONNECTIONS_MANAGER_ENDPOINT: http://wxo-server-connection-manager:3001
122
+ AGENT_OPS_API_KEY: ${AGENTOPS_API_KEY}
123
+ AGENTS_OPS_RUNTIME_ENDPOINT: https://frontend-server:443
124
+ IS_OBSERVABILITY_FEATURE_ENABLED: "true"
125
+ ALLOW_INSECURE_TLS: "true"
122
126
  command: 'npm start'
123
127
  ports:
124
- - '4025:4025'
128
+ - "4025:4025"
125
129
  healthcheck:
126
130
  test: curl -k http://localhost:4025/api/health --fail
127
131
  interval: 5s
@@ -130,10 +134,9 @@ services:
130
134
 
131
135
  wxo-server-minio:
132
136
  image: ${OPENSOURCE_REGISTRY_PROXY:-docker.io}/minio/minio:latest
133
- platform: linux/amd64
134
137
  ports:
135
- - '9000:9000'
136
- - '9001:9001'
138
+ - "9000:9000"
139
+ - "9001:9001"
137
140
  healthcheck:
138
141
  test: timeout 5s bash -c ':> /dev/tcp/127.0.0.1/9000' || exit 1
139
142
  interval: 5s
@@ -148,7 +151,6 @@ services:
148
151
 
149
152
  wxo-server-minio-setup:
150
153
  image: ${OPENSOURCE_REGISTRY_PROXY:-docker.io}/minio/mc:latest
151
- platform: linux/amd64
152
154
  depends_on:
153
155
  wxo-server-minio:
154
156
  condition: service_healthy
@@ -157,14 +159,15 @@ services:
157
159
  /usr/bin/mc alias set wxo-server-minio http://wxo-server-minio:9000 ${MINIO_ROOT_USER:-minioadmin} ${MINIO_ROOT_PASSWORD:-watsonxorchestrate};
158
160
  /usr/bin/mc mb wxo-server-minio/wxo-server-storage-bucket;
159
161
  /usr/bin/mc mb wxo-server-minio/langfuse;
162
+ /usr/bin/mc anonymous set download wxo-server-minio/wxo-server-storage-bucket;
160
163
  exit 0;
161
164
  "
162
-
165
+
163
166
  wxo-milvus-standalone:
164
167
  image: ${OPENSOURCE_REGISTRY_PROXY:-docker.io}/milvusdb/milvus:v2.5.6
165
168
  command: ["milvus", "run", "standalone"]
166
169
  security_opt:
167
- - seccomp:unconfined
170
+ - seccomp:unconfined
168
171
  environment:
169
172
  ETCD_ENDPOINTS: wxo-milvus-etcd:2379
170
173
  MINIO_ADDRESS: wxo-server-minio:9000
@@ -200,7 +203,7 @@ services:
200
203
  interval: 30s
201
204
  timeout: 20s
202
205
  retries: 3
203
-
206
+
204
207
  socket-handler:
205
208
  image: ${SOCKET_HANDLER_REGISTRY:-us.icr.io/watson-orchestrate-private}/wxo-socket-handler:${SOCKET_HANDLER_TAG:-latest}
206
209
  platform: linux/amd64
@@ -223,31 +226,33 @@ services:
223
226
  volumes:
224
227
  - ./sdk:/packages
225
228
  - tools:/tools
226
-
227
229
  command: >
228
- bash -c '
229
- export PYTHONPATH="/tmp/monkey:$PYTHONPATH"
230
- mkdir -p /tmp/monkey &&
230
+ bash -c '
231
+ export PYTHONPATH="/tmp/monkey:$PYTHONPATH"
232
+ mkdir -p /tmp/monkey &&
231
233
 
232
- echo -e "from uvicorn.supervisors.multiprocess import Process\n_original_is_alive = Process.is_alive\ndef patched_is_alive(self, timeout: float = 30):\n return _original_is_alive(self, timeout=30)\nProcess.is_alive = patched_is_alive" > /tmp/monkey/sitecustomize.py &&
234
+ echo -e "from uvicorn.supervisors.multiprocess import Process\n_original_is_alive = Process.is_alive\ndef patched_is_alive(self, timeout: float = 30):\n return _original_is_alive(self, timeout=30)\nProcess.is_alive = patched_is_alive" > /tmp/monkey/sitecustomize.py &&
233
235
 
234
- uvicorn --host 0.0.0.0 --port 4321 --log-config /app/config/logs/log_conf.yaml --log-level debug --workers 5 wo_archer.api.main:app &
236
+ uvicorn --host 0.0.0.0 --port 4321 --log-config /app/config/logs/log_conf.yaml --log-level debug --workers 5 wo_archer.api.main:app &
235
237
 
236
- for i in {1..40}; do curl --silent --fail http://127.0.0.1:4321/health/alive && echo "[INFO] HTTP Service ready" && break || echo "[INFO] Waiting for HTTP service..." && sleep 10; done;
237
- curl --silent --fail http://127.0.0.1:4321/health/alive || (echo "[ERROR] HTTP service failed to start" && exit 1);
238
+ for i in {1..40}; do curl --silent --fail http://127.0.0.1:4321/health/alive && echo "[INFO] HTTP Service ready" && break || echo "[INFO] Waiting for HTTP service..." && sleep 10; done;
239
+ curl --silent --fail http://127.0.0.1:4321/health/alive || (echo "[ERROR] HTTP service failed to start" && exit 1);
238
240
 
239
- wait
240
- '
241
+ wait
242
+ '
241
243
  depends_on:
242
244
  wxo-server-redis:
243
- condition: service_started
245
+ condition: service_started
244
246
  wxo-server-db:
245
- condition: service_started
247
+ condition: service_started
246
248
  wxo-server-worker:
247
- condition: service_started
249
+ condition: service_started
248
250
  langfuse-worker:
249
- condition: service_started
250
- required: False
251
+ condition: service_started
252
+ required: False
253
+ networks:
254
+ - default
255
+ - jaeger-network
251
256
  environment:
252
257
  RUNTIME_MANAGER_API_KEY: ${RUNTIME_MANAGER_API_KEY:-testapikey}
253
258
  PIP_NO_CACHE_DIR:
@@ -260,9 +265,9 @@ services:
260
265
  CELERY_RESULT_BACKEND: redis://wxo-server-redis:6379/0
261
266
  FLOWER_URL: http://wxo-server-flower:5555
262
267
  DB_ENCRYPTION_KEY: thisisthedbencryptionkeyforlocaltestingonly
263
- STORAGE_S3_BUCKET: ${STORAGE_S3_BUCKET:-wxo-server-storage-bucket} # name of s3 bucket where you want to store objects
268
+ STORAGE_S3_BUCKET: ${STORAGE_S3_BUCKET:-wxo-server-storage-bucket} # name of s3 bucket where you want to store objects
264
269
  STORAGE_S3_ENDPOINT: http://wxo-server-minio:9000
265
- STORAGE_S3_FORCE_PATH_STYLE: 'true'
270
+ STORAGE_S3_FORCE_PATH_STYLE: "true"
266
271
  STORAGE_S3_REGION: us-east-1
267
272
  EVENT_BROKER_URL: redis://wxo-server-redis:6379/0
268
273
  AWS_ACCESS_KEY_ID: ${MINIO_ROOT_USER:-minioadmin}
@@ -270,13 +275,13 @@ services:
270
275
  ASSISTANT_LLM_MODEL_ID: ${ASSISTANT_LLM_MODEL_ID:-watsonx/ibm/granite-3-8b-instruct}
271
276
  ASSISTANT_LLM_API_KEY: ${ASSISTANT_LLM_API_KEY}
272
277
  ASSISTANT_LLM_API_BASE: ${ASSISTANT_LLM_API_BASE:-https://us-south.ml.cloud.ibm.com}
273
- ASSISTANT_LLM_SPACE_ID : ${ASSISTANT_LLM_SPACE_ID}
278
+ ASSISTANT_LLM_SPACE_ID: ${ASSISTANT_LLM_SPACE_ID}
274
279
  BAM_API_KEY: ${BAM_API_KEY}
275
280
  WXAI_API_KEY: ${WXAI_API_KEY}
276
281
  ROUTING_LLM_MODEL_ID: ${ROUTING_LLM_MODEL_ID:-watsonx/ibm/granite-8b-unified-api-model-v2}
277
282
  ROUTING_LLM_API_KEY: ${ROUTING_LLM_API_KEY}
278
283
  ROUTING_LLM_API_BASE: ${ROUTING_LLM_API_BASE:-https://us-south.ml.cloud.ibm.com}
279
- ROUTING_LLM_SPACE_ID : ${ROUTING_LLM_SPACE_ID}
284
+ ROUTING_LLM_SPACE_ID: ${ROUTING_LLM_SPACE_ID}
280
285
  ASSISTANT_EMBEDDINGS_MODEL_ID: ${ASSISTANT_EMBEDDINGS_MODEL_ID:-watsonx/ibm/slate-125m-english-rtrvr-v2}
281
286
  ASSISTANT_EMBEDDINGS_API_KEY: ${ASSISTANT_EMBEDDINGS_API_KEY}
282
287
  ASSISTANT_EMBEDDINGS_API_BASE: ${ASSISTANT_EMBEDDINGS_API_BASE:-https://us-south.ml.cloud.ibm.com}
@@ -305,7 +310,7 @@ services:
305
310
  CALLER_ID: 12345
306
311
  AGENTIC_FLOW_ENABLED: ${AGENTIC_FLOW_ENABLED}
307
312
  CELERY_WORKER_POOL: ${CELERY_WORKER_POOL}
308
- IS_WXO_LITE: 'TRUE'
313
+ IS_WXO_LITE: "TRUE"
309
314
  OAUTH_REDIRECT_URL: https://localhost:4322/api/v1/connections/callback
310
315
  ENABLE_WEBHOOKS: false
311
316
  DISABLE_JSON_LOG_CELERY: true
@@ -324,8 +329,13 @@ services:
324
329
  AUTHORIZATION_URL: ${AUTHORIZATION_URL}
325
330
  WO_AUTH_TYPE: ${WO_AUTH_TYPE}
326
331
  AI_GATEWAY_BASE_URL: ${AI_GATEWAY_BASE_URL}
327
- AI_GATEWAY_ENABLED : ${AI_GATEWAY_ENABLED}
328
-
332
+ AI_GATEWAY_ENABLED: ${AI_GATEWAY_ENABLED}
333
+ IBM_TELEMETRY_EXPORTER_TYPE: http
334
+ IBM_TELEMETRY_TRACER_ENDPOINT: http://jaeger:4318/v1/traces
335
+ USE_IBM_TELEMETRY: ${USE_IBM_TELEMETRY:-false}
336
+ AGENTOPS_API_KEY_AUTH_ENABLED: ${AGENTOPS_API_KEY_AUTH_ENABLED:-false}
337
+ AGENTOPS_API_KEY: ${AGENTOPS_API_KEY}
338
+ ES_HOST: http://elasticsearch:9200
329
339
 
330
340
  wxo-server-worker:
331
341
  image: ${WORKER_REGISTRY:-us.icr.io/watson-orchestrate-private}/wxo-server-conversation_controller:${WORKER_TAG:-latest}
@@ -333,20 +343,23 @@ services:
333
343
  restart: unless-stopped
334
344
  depends_on:
335
345
  wxo-server-redis:
336
- condition: service_started
346
+ condition: service_started
337
347
  wxo-server-db:
338
- condition: service_started
348
+ condition: service_started
339
349
  langfuse-worker:
340
- condition: service_started
341
- required: False
350
+ condition: service_started
351
+ required: False
342
352
  volumes:
343
353
  - ./sdk:/packages
344
354
  - tools:/tools
355
+ networks:
356
+ - default
357
+ - jaeger-network
345
358
  environment:
346
359
  RUNTIME_MANAGER_API_KEY: ${RUNTIME_MANAGER_API_KEY:-testapikey}
347
360
  AI_GATEWAY_ENABLED : ${AI_GATEWAY_ENABLED}
348
361
  AI_GATEWAY_BASE_URL: ${AI_GATEWAY_BASE_URL}
349
- IS_WXO_LITE: 'TRUE'
362
+ IS_WXO_LITE: "TRUE"
350
363
  TRM_BASE_URL: http://tools-runtime-manager:8080
351
364
  AGENT_STEP_DETAILS: redis://wxo-server-redis:6379/0
352
365
  AGENT_GATEWAY_URI: http://wxo-agent-gateway:8989
@@ -354,9 +367,9 @@ services:
354
367
  POSTGRES_URL: postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@wxo-server-db:5432/postgres
355
368
  CELERY_BROKER_URL: redis://wxo-server-redis:6379/0
356
369
  CELERY_RESULT_BACKEND: redis://wxo-server-redis:6379/0
357
- STORAGE_S3_BUCKET: ${STORAGE_S3_BUCKET:-wxo-server-storage-bucket} # name of s3 bucket where you want to store objects
370
+ STORAGE_S3_BUCKET: ${STORAGE_S3_BUCKET:-wxo-server-storage-bucket} # name of s3 bucket where you want to store objects
358
371
  STORAGE_S3_ENDPOINT: http://wxo-server-minio:9000
359
- STORAGE_S3_FORCE_PATH_STYLE: 'true'
372
+ STORAGE_S3_FORCE_PATH_STYLE: "true"
360
373
  STORAGE_S3_REGION: us-east-1
361
374
  EVENT_BROKER_URL: redis://wxo-server-redis:6379/0
362
375
  DB_ENCRYPTION_KEY: thisisthedbencryptionkeyforlocaltestingonly
@@ -365,11 +378,11 @@ services:
365
378
  ASSISTANT_LLM_MODEL_ID: ${ASSISTANT_LLM_MODEL_ID:-watsonx/ibm/granite-3-8b-instruct}
366
379
  ASSISTANT_LLM_API_KEY: ${ASSISTANT_LLM_API_KEY}
367
380
  ASSISTANT_LLM_API_BASE: ${ASSISTANT_LLM_API_BASE:-https://us-south.ml.cloud.ibm.com}
368
- ASSISTANT_LLM_SPACE_ID : ${ASSISTANT_LLM_SPACE_ID}
381
+ ASSISTANT_LLM_SPACE_ID: ${ASSISTANT_LLM_SPACE_ID}
369
382
  ROUTING_LLM_MODEL_ID: ${ROUTING_LLM_MODEL_ID:-watsonx/ibm/granite-8b-unified-api-model-v2}
370
383
  ROUTING_LLM_API_KEY: ${ROUTING_LLM_API_KEY}
371
384
  ROUTING_LLM_API_BASE: ${ROUTING_LLM_API_BASE:-https://us-south.ml.cloud.ibm.com}
372
- ROUTING_LLM_SPACE_ID : ${ROUTING_LLM_SPACE_ID}
385
+ ROUTING_LLM_SPACE_ID: ${ROUTING_LLM_SPACE_ID}
373
386
  ASSISTANT_EMBEDDINGS_MODEL_ID: ${ASSISTANT_EMBEDDINGS_MODEL_ID:-watsonx/ibm/slate-125m-english-rtrvr-v2}
374
387
  ASSISTANT_EMBEDDINGS_API_KEY: ${ASSISTANT_EMBEDDINGS_API_KEY}
375
388
  ASSISTANT_EMBEDDINGS_API_BASE: ${ASSISTANT_EMBEDDINGS_API_BASE:-https://us-south.ml.cloud.ibm.com}
@@ -415,8 +428,11 @@ services:
415
428
  USE_SAAS_ML_TOOLS_RUNTIME: ${USE_SAAS_ML_TOOLS_RUNTIME}
416
429
  AUTHORIZATION_URL: ${AUTHORIZATION_URL}
417
430
  WO_AUTH_TYPE: ${WO_AUTH_TYPE}
431
+ IBM_TELEMETRY_EXPORTER_TYPE: http
432
+ IBM_TELEMETRY_TRACER_ENDPOINT: http://jaeger:4318/v1/traces
433
+ USE_IBM_TELEMETRY: ${USE_IBM_TELEMETRY:-false}
418
434
  WXO_DEPLOYMENT_PLATFORM: saas
419
- CALLBACK_HOST_URL: http://wxo-server:4321
435
+ CALLBACK_HOST_URL: ${CALLBACK_HOST_URL:-http://wxo-server:4321}
420
436
 
421
437
  tools-runtime-manager:
422
438
  image: ${TRM_REGISTRY:-us.icr.io/watson-orchestrate-private}/tools-runtime-manager:${TRM_TAG:-latest}
@@ -426,20 +442,20 @@ services:
426
442
  - "8080:8080"
427
443
  depends_on:
428
444
  wxo-server-db:
429
- condition: service_healthy # Ensures DB is ready before starting
445
+ condition: service_healthy # Ensures DB is ready before starting
430
446
  volumes:
431
447
  - $HOME/.kube/config:/root/.kube/config
432
448
  - tools-runtime-data:/shared-data
433
449
  environment:
434
450
  RUNTIME_MANAGER_API_KEY: ${RUNTIME_MANAGER_API_KEY:-testapikey}
435
451
  KUBECONFIG: /root/.kube/config
436
- K8S_SERVER: "https://lima-rancher-desktop:6443" # Kubernetes API on host
452
+ K8S_SERVER: "https://lima-rancher-desktop:6443" # Kubernetes API on host
437
453
  DB_HOST: wxo-server-db
438
- DB_PORT: ${DB_PORT:-5432} # Ensure default port
454
+ DB_PORT: ${DB_PORT:-5432} # Ensure default port
439
455
  DB_USER: ${DB_USER:-postgres}
440
456
  DB_PASSWORD: ${DB_PASSWORD:-postgres}
441
457
  DB_NAME: ${DB_NAME:-postgres}
442
- DB_SSLMODE: ${DB_SSLMODE:-disable} # Disable SSL if not configured
458
+ DB_SSLMODE: ${DB_SSLMODE:-disable} # Disable SSL if not configured
443
459
  DB_CONN_LIFE: ${DB_CONN_LIFE}
444
460
  DB_MAX_IDLE_CONN: ${DB_MAX_IDLE_CONN}
445
461
  DB_MAX_CONN: ${DB_MAX_CONN}
@@ -452,9 +468,9 @@ services:
452
468
  VOLUME_MOUNT_PATH: "/shared-data"
453
469
  TOOLS_RUNTIME_MANAGER_BASE_URL: ${TOOLS_RUNTIME_MANAGER_BASE_URL}
454
470
  CONNECTION_SERVICE_BASE_URL: http://wxo-server-connection-manager:3001
455
- STORAGE_S3_BUCKET: ${STORAGE_S3_BUCKET:-wxo-server-storage-bucket}
471
+ STORAGE_S3_BUCKET: ${STORAGE_S3_BUCKET:-wxo-server-storage-bucket}
456
472
  STORAGE_S3_ENDPOINT: http://wxo-server-minio:9000
457
- STORAGE_S3_FORCE_PATH_STYLE: 'true'
473
+ STORAGE_S3_FORCE_PATH_STYLE: "true"
458
474
  STORAGE_S3_REGION: us-east-1
459
475
  AWS_ACCESS_KEY_ID: ${MINIO_ROOT_USER:-minioadmin}
460
476
  AWS_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD:-watsonxorchestrate}
@@ -479,21 +495,163 @@ services:
479
495
  RUNTIME_MANAGER_API_KEY: ${RUNTIME_MANAGER_API_KEY:-testapikey}
480
496
  TOOLS_RUNTIME_MANAGER_BASE_URL: ${TOOLS_RUNTIME_MANAGER_BASE_URL}
481
497
  DB_HOST: wxo-server-db
482
- DB_PORT: ${DB_PORT:-5432} # Ensure default port
498
+ DB_PORT: ${DB_PORT:-5432} # Ensure default port
483
499
  DB_USER: ${DB_USER:-postgres}
484
500
  DB_PASSWORD: ${DB_PASSWORD:-postgres}
485
501
  DB_NAME: ${DB_NAME:-postgres}
486
- DB_SSLMODE: ${DB_SSLMODE:-disable} # Disable SSL if not configured
487
- STORAGE_S3_BUCKET: ${STORAGE_S3_BUCKET:-wxo-server-storage-bucket}
502
+ DB_SSLMODE: ${DB_SSLMODE:-disable} # Disable SSL if not configured
503
+ STORAGE_S3_BUCKET: ${STORAGE_S3_BUCKET:-wxo-server-storage-bucket}
488
504
  STORAGE_S3_ENDPOINT: http://wxo-server-minio:9000
489
- STORAGE_S3_FORCE_PATH_STYLE: 'true'
505
+ STORAGE_S3_FORCE_PATH_STYLE: "true"
490
506
  STORAGE_S3_REGION: us-east-1
491
507
  AWS_ACCESS_KEY_ID: ${MINIO_ROOT_USER:-minioadmin}
492
508
  AWS_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD:-watsonxorchestrate}
493
509
 
494
- ########################
495
- # LANGFUSE dependencies
496
- ########################
510
+ ########################
511
+ # IBM AGENT-OPS
512
+ ########################
513
+ elasticsearch:
514
+ image: docker.elastic.co/elasticsearch/elasticsearch:8.17.5
515
+ profiles: [ibm-telemetry]
516
+ environment:
517
+ - discovery.type=single-node
518
+ - xpack.security.enabled=true
519
+ - ES_JAVA_OPTS=-Xms512m -Xmx512m
520
+ - ELASTIC_USERNAME=elastic
521
+ - ELASTIC_PASSWORD=changeme
522
+ # Turn off disk threshold warnings
523
+ - cluster.routing.allocation.disk.threshold_enabled=false
524
+ ports:
525
+ - "9200:9200"
526
+ networks:
527
+ - jaeger-network
528
+ volumes:
529
+ - es_data:/usr/share/elasticsearch/data
530
+ healthcheck:
531
+ test:
532
+ [
533
+ "CMD-SHELL",
534
+ "curl -s -u elastic:changeme http://localhost:9200/_cluster/health | grep -q '\"status\":\"green\"\\|\"status\":\"yellow\"'",
535
+ ]
536
+ interval: 10s
537
+ timeout: 10s
538
+ retries: 20
539
+ start_period: 40s
540
+
541
+ jaeger-proxy:
542
+ image: ${JAEGER_PROXY_REGISTRY:-us.icr.io/watson-orchestrate-private}/jaeger-proxy:${JAEGER_PROXY_TAG:-latest} # temporay registry
543
+ profiles: [ibm-telemetry]
544
+ environment:
545
+ - TENANT_API_KEY=${AGENTOPS_API_KEY}
546
+ - TENANT_CONFIG_URL=http://wxo-server:4321
547
+ - TENANT_DEFAULT_USERNAME=${ES_USERNAME}
548
+ - TENANT_DEFAULT_PASSWORD=${ES_PASSWORD}
549
+ - TENANT_DEFAULT_HOSTNAME=http://elasticsearch:9200
550
+ - DEFAULT_TENANT_ID=${DEFAULT_TENANT_ID}
551
+ ports:
552
+ - "9202:9201" # Expose proxy on host port 9202
553
+ networks:
554
+ - jaeger-network
555
+ - default
556
+ volumes:
557
+ - ./proxy-config-single.yaml:/app/config/proxy-config.yaml:ro
558
+ depends_on:
559
+ elasticsearch:
560
+ condition: service_healthy
561
+ healthcheck:
562
+ test: ["CMD", "python", "-c", "import requests; requests.get('http://localhost:9201/health').raise_for_status()"]
563
+ interval: 10s
564
+ timeout: 5s
565
+ retries: 5
566
+ start_period: 10s
567
+
568
+ jaeger:
569
+ image: ${OPENSOURCE_REGISTRY_PROXY:-docker.io}/jaegertracing/all-in-one:1.69.0
570
+ profiles: [ibm-telemetry]
571
+ command:
572
+ - "--es.max-span-age=720h"
573
+ - "--log-level=debug"
574
+ # - "--sampling.default-sampling-probability=1.0" # Changed from default 0.001
575
+ environment:
576
+ - SPAN_STORAGE_TYPE=elasticsearch
577
+ - ES_SERVER_URLS=http://jaeger-proxy:9201
578
+ - ES_USERNAME=elastic
579
+ - ES_PASSWORD=changeme
580
+ - JAEGER_SAMPLER_TYPE=const
581
+ - JAEGER_SAMPLER_PARAM=1
582
+ ports:
583
+ - "6831:6831/udp"
584
+ - "6832:6832/udp"
585
+ - "5778:5778"
586
+ - "16686:16686"
587
+ - "4317:4317"
588
+ - "4318:4318"
589
+ - "14250:14250"
590
+ - "14268:14268"
591
+ - "14269:14269"
592
+ healthcheck:
593
+ test: ["CMD", "wget", "--spider", "-q", "http://localhost:14269"]
594
+ interval: 1s
595
+ timeout: 3s
596
+ retries: 30
597
+ start_period: 5s
598
+ depends_on:
599
+ elasticsearch:
600
+ condition: service_healthy
601
+ jaeger-proxy:
602
+ condition: service_healthy
603
+ networks:
604
+ - jaeger-network
605
+
606
+ frontend-server:
607
+ image: ${AGENT_ANALYTICS_REGISTRY:-us.icr.io/watson-orchestrate-private}/agentops-backend:${AGENT_ANALYTICS_TAG:-latest}
608
+ profiles: [ibm-telemetry]
609
+ restart: always
610
+ healthcheck:
611
+ test:
612
+ [
613
+ "CMD",
614
+ "python",
615
+ "-c",
616
+ "import urllib.request, ssl; context = ssl._create_unverified_context(); urllib.request.urlopen('https://localhost:443', context=context)",
617
+ ]
618
+ interval: 30s
619
+ timeout: 10s
620
+ retries: 5
621
+ start_period: 20s
622
+ depends_on:
623
+ jaeger:
624
+ condition: service_healthy
625
+ environment:
626
+ - TEST=true
627
+ - ES_USERNAME=elastic
628
+ - ES_PASSWORD=changeme
629
+ - ES_HOST=http://elasticsearch:9200
630
+ - JWT_SECRET_KEY=${JWT_SECRET}
631
+ - JAEGER_URL=http://jaeger:16686
632
+ - JAEGER_COLLECT_URL=http://jaeger
633
+ - WATSONX_APIKEY=${WATSONX_APIKEY}
634
+ - WATSONX_SPACE_ID=${WATSONX_SPACE_ID}
635
+ - WATSONX_URL=${WATSONX_URL}
636
+ - PROXY_SERVER_URL=http://jaeger-proxy:9201
637
+ - WXO_DEPLOYMENT_PLATFORM=saas
638
+ - TENANT_API_KEY=${AGENTOPS_API_KEY}
639
+ - TENANT_CONFIG_URL=http://wxo-server:4321
640
+ - TENANT_DEFAULT_USERNAME=${ES_USERNAME}
641
+ - TENANT_DEFAULT_PASSWORD=${ES_PASSWORD}
642
+ - API_KEY_AUTH_ENABLED=${AGENTOPS_API_KEY_AUTH_ENABLED}
643
+ - INBOUND_API_KEY=${AGENTOPS_API_KEY}
644
+ - DEFAULT_TENANT_ID=${DEFAULT_TENANT_ID}
645
+ - TENANT_DEFAULT_HOSTNAME=http://elasticsearch:9200
646
+ ports:
647
+ - "8765:443"
648
+ networks:
649
+ - jaeger-network
650
+ - default
651
+
652
+ ########################
653
+ # LANGFUSE dependencies
654
+ ########################
497
655
  langfuse-worker:
498
656
  image: ${OPENSOURCE_REGISTRY_PROXY:-docker.io}/langfuse/langfuse-worker:3
499
657
  restart: unless-stopped
@@ -583,9 +741,6 @@ services:
583
741
  retries: 10
584
742
  start_period: 1s
585
743
 
586
-
587
-
588
-
589
744
  wxo-tempus-runtime:
590
745
  image: ${FLOW_RUMTIME_REGISTRY:-us.icr.io/watson-orchestrate-private}/wxo-tempus-runtime:${FLOW_RUNTIME_TAG:-latest}
591
746
  restart: unless-stopped
@@ -622,10 +777,13 @@ services:
622
777
  REDIS_TLS: false
623
778
  LANGFUSE_ENABLED: ${LANGFUSE_ENABLED:-false}
624
779
  LANGFUSE_HOST: ${LANGFUSE_HOST:-http://langfuse-web:3000}
625
- LANGFUSE_PUBLIC_KEY: ${LANGFUSE_PUBLIC_KEY:-pk-lf-7417757e-d6df-421b-957e-683b76acb5df}
626
- LANGFUSE_SECRET_KEY: ${LANGFUSE_PRIVATE_KEY:-sk-lf-7bc4da63-7b2b-40c0-b5eb-1e0cf64f9af2}
780
+ LANGFUSE_PUBLIC_KEY: ${LANGFUSE_PUBLIC_KEY:-pk-lf-7417757e-d6df-421b-957e-683b76acb5df}
781
+ LANGFUSE_SECRET_KEY: ${LANGFUSE_PRIVATE_KEY:-sk-lf-7bc4da63-7b2b-40c0-b5eb-1e0cf64f9af2}
627
782
  LOG_LEVEL: info
628
- DISABLE_FLOW_BINDING: true
783
+ WO_API_KEY: ${WO_API_KEY}
784
+ WO_INSTANCE: ${WO_INSTANCE}
785
+ AUTHORIZATION_URL: ${AUTHORIZATION_URL}
786
+ WO_AUTH_TYPE: ${WO_AUTH_TYPE}
629
787
  healthcheck:
630
788
  test: curl -k http://localhost:9044/readiness --fail
631
789
  interval: 5s
@@ -635,7 +793,7 @@ services:
635
793
  - 9044:9044
636
794
  depends_on:
637
795
  - wxo-server-db
638
-
796
+
639
797
  volumes:
640
798
  tools:
641
799
  driver: local
@@ -659,7 +817,10 @@ volumes:
659
817
  driver: local
660
818
  langfuse_clickhouse_logs:
661
819
  driver: local
820
+ es_data:
821
+
662
822
  networks:
663
823
  default:
664
824
  name: wxo-server
665
-
825
+ jaeger-network:
826
+ driver: bridge
@@ -52,47 +52,55 @@ EVENT_BROKER_TTL="-1"
52
52
  # See get_default_registry_env_vars_by_dev_edition_source() in src/ibm_watsonx_orchestrate/cli/commands/server/server_command.py for more details.
53
53
  REGISTRY_URL=
54
54
 
55
- SERVER_TAG=19-06-2025-v2
56
55
 
56
+ SERVER_TAG=02-07-2025
57
57
  SERVER_REGISTRY=
58
58
 
59
- WORKER_TAG=19-06-2025-v2
59
+ WORKER_TAG=02-07-2025
60
60
  WORKER_REGISTRY=
61
61
 
62
- AI_GATEWAY_TAG=18-06-2025-v2
62
+ AI_GATEWAY_TAG=01-07-2025
63
63
  AI_GATEWAY_REGISTRY=
64
64
 
65
- AGENT_GATEWAY_TAG=16-06-2025
65
+ AGENT_GATEWAY_TAG=23-06-2025
66
66
  AGENT_GATEWAY_REGISTRY=
67
67
 
68
68
  DB_REGISTRY=
69
69
  # If you build multiarch set all three of these to the same, we have a pr against main
70
70
  # to not have this separation, but we can merge it later
71
- DBTAG=17-06-2025-v1
72
- AMDDBTAG=17-06-2025-v1
73
- ARM64DBTAG=17-06-2025-v1
71
+ DBTAG=24-06-2025-v1
72
+ AMDDBTAG=24-06-2025-v1
73
+ ARM64DBTAG=24-06-2025-v1
74
74
 
75
75
  UI_REGISTRY=
76
- UITAG=19-06-2025
76
+ UITAG=27-06-2025
77
77
 
78
78
  CM_REGISTRY=
79
- CM_TAG=18-06-2025
79
+ CM_TAG=27-06-2025
80
80
 
81
- TRM_TAG=10-06-2025
81
+ TRM_TAG=26-06-2025
82
82
  TRM_REGISTRY=
83
83
 
84
- TR_TAG=10-06-2025
84
+ TR_TAG=26-06-2025
85
85
  TR_REGISTRY=
86
86
 
87
- BUILDER_TAG=16-06-2025
87
+ BUILDER_TAG=02-07-2025
88
88
  BUILDER_REGISTRY=
89
89
 
90
- FLOW_RUNTIME_TAG=17-06-2025
90
+ FLOW_RUNTIME_TAG=23-06-2025
91
91
  FLOW_RUMTIME_REGISTRY=
92
92
 
93
+
94
+ AGENT_ANALYTICS_TAG=02-07-2025-v1
95
+ AGENT_ANALYTICS_REGISTRY=
96
+
97
+ JAEGER_PROXY_TAG=01-07-2025
98
+ JAEGER_PROXY_REGISTRY=
99
+
93
100
  SOCKET_HANDLER_TAG=29-05-2025
94
101
  SOCKET_HANDLER_REGISTRY=
95
102
 
103
+
96
104
  # END -- IMAGE REGISTRIES AND TAGS
97
105
 
98
106
  TAVILY_API_KEY=dummy_tavily_api_key
@@ -126,6 +134,9 @@ CONNECTION_SERVICE_BASE_URL="http://wxo-server-connection-manager:3001"
126
134
  AI_GATEWAY_BASE_URL="http://ai-gateway:8787/v1"
127
135
  AI_GATEWAY_ENABLED=True
128
136
  AGENT_GATEWAY_URI="http://wxo-agent-gateway:8989"
137
+ DEFAULT_TENANT_ID=10000000-0000-0000-0000-000000000000
138
+ ES_USERNAME=elastic
139
+ ES_PASSWORD=changeme
129
140
  #To Prevent warnings
130
141
  VECTOR_STORE_PROVIDER=
131
142
  MILVUS_URI=
@@ -141,3 +152,11 @@ DB_CONN_LIFE=
141
152
  DB_MAX_IDLE_CONN=
142
153
  DB_MAX_CONN=
143
154
  SERVER_HOST=
155
+
156
+ # Use your machine's local IP address for external async tool communication.
157
+ CALLBACK_HOST_URL=
158
+
159
+ AGENTOPS_API_KEY_AUTH_ENABLED=true
160
+ AGENTOPS_API_KEY=qwertyuiop
161
+
162
+ RUNTIME_MANAGER_API_KEY=example
@@ -0,0 +1,12 @@
1
+ # Default tenant to use when tenant_id is not found
2
+ default_tenant: "default"
3
+
4
+ # Tenant configurations
5
+ tenants:
6
+ # Default tenant on ES instance 1
7
+ default:
8
+ store_type: elasticsearch
9
+ hostname: "http://elasticsearch:9200"
10
+ username: "elastic"
11
+ password: "changeme"
12
+ index_prefix: "default"