solace-agent-mesh 0.0.1__py3-none-any.whl → 0.1.0__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.
Potentially problematic release.
This version of solace-agent-mesh might be problematic. Click here for more details.
- solace_agent_mesh/__init__.py +0 -3
- solace_agent_mesh/agents/__init__.py +0 -0
- solace_agent_mesh/agents/base_agent_component.py +224 -0
- solace_agent_mesh/agents/global/__init__.py +0 -0
- solace_agent_mesh/agents/global/actions/__init__.py +0 -0
- solace_agent_mesh/agents/global/actions/agent_state_change.py +54 -0
- solace_agent_mesh/agents/global/actions/clear_history.py +32 -0
- solace_agent_mesh/agents/global/actions/convert_file_to_markdown.py +160 -0
- solace_agent_mesh/agents/global/actions/create_file.py +70 -0
- solace_agent_mesh/agents/global/actions/error_action.py +45 -0
- solace_agent_mesh/agents/global/actions/plantuml_diagram.py +93 -0
- solace_agent_mesh/agents/global/actions/plotly_graph.py +117 -0
- solace_agent_mesh/agents/global/actions/retrieve_file.py +51 -0
- solace_agent_mesh/agents/global/global_agent_component.py +38 -0
- solace_agent_mesh/agents/image_processing/__init__.py +0 -0
- solace_agent_mesh/agents/image_processing/actions/__init__.py +0 -0
- solace_agent_mesh/agents/image_processing/actions/create_image.py +75 -0
- solace_agent_mesh/agents/image_processing/actions/describe_image.py +115 -0
- solace_agent_mesh/agents/image_processing/image_processing_agent_component.py +23 -0
- solace_agent_mesh/agents/slack/__init__.py +1 -0
- solace_agent_mesh/agents/slack/actions/__init__.py +1 -0
- solace_agent_mesh/agents/slack/actions/post_message.py +177 -0
- solace_agent_mesh/agents/slack/slack_agent_component.py +59 -0
- solace_agent_mesh/agents/web_request/__init__.py +0 -0
- solace_agent_mesh/agents/web_request/actions/__init__.py +0 -0
- solace_agent_mesh/agents/web_request/actions/do_image_search.py +84 -0
- solace_agent_mesh/agents/web_request/actions/do_news_search.py +47 -0
- solace_agent_mesh/agents/web_request/actions/do_suggestion_search.py +34 -0
- solace_agent_mesh/agents/web_request/actions/do_web_request.py +134 -0
- solace_agent_mesh/agents/web_request/actions/download_file.py +69 -0
- solace_agent_mesh/agents/web_request/web_request_agent_component.py +33 -0
- solace_agent_mesh/cli/__init__.py +1 -0
- solace_agent_mesh/cli/commands/__init__.py +0 -0
- solace_agent_mesh/cli/commands/add/__init__.py +3 -0
- solace_agent_mesh/cli/commands/add/add.py +88 -0
- solace_agent_mesh/cli/commands/add/agent.py +110 -0
- solace_agent_mesh/cli/commands/add/copy_from_plugin.py +90 -0
- solace_agent_mesh/cli/commands/add/gateway.py +221 -0
- solace_agent_mesh/cli/commands/build.py +631 -0
- solace_agent_mesh/cli/commands/chat/__init__.py +3 -0
- solace_agent_mesh/cli/commands/chat/chat.py +361 -0
- solace_agent_mesh/cli/commands/config.py +29 -0
- solace_agent_mesh/cli/commands/init/__init__.py +3 -0
- solace_agent_mesh/cli/commands/init/ai_provider_step.py +76 -0
- solace_agent_mesh/cli/commands/init/broker_step.py +102 -0
- solace_agent_mesh/cli/commands/init/builtin_agent_step.py +88 -0
- solace_agent_mesh/cli/commands/init/check_if_already_done.py +13 -0
- solace_agent_mesh/cli/commands/init/create_config_file_step.py +52 -0
- solace_agent_mesh/cli/commands/init/create_other_project_files_step.py +96 -0
- solace_agent_mesh/cli/commands/init/file_service_step.py +73 -0
- solace_agent_mesh/cli/commands/init/init.py +114 -0
- solace_agent_mesh/cli/commands/init/project_structure_step.py +45 -0
- solace_agent_mesh/cli/commands/init/rest_api_step.py +50 -0
- solace_agent_mesh/cli/commands/init/web_ui_step.py +40 -0
- solace_agent_mesh/cli/commands/plugin/__init__.py +3 -0
- solace_agent_mesh/cli/commands/plugin/add.py +98 -0
- solace_agent_mesh/cli/commands/plugin/build.py +217 -0
- solace_agent_mesh/cli/commands/plugin/create.py +117 -0
- solace_agent_mesh/cli/commands/plugin/plugin.py +109 -0
- solace_agent_mesh/cli/commands/plugin/remove.py +71 -0
- solace_agent_mesh/cli/commands/run.py +68 -0
- solace_agent_mesh/cli/commands/visualizer.py +138 -0
- solace_agent_mesh/cli/config.py +81 -0
- solace_agent_mesh/cli/main.py +306 -0
- solace_agent_mesh/cli/utils.py +246 -0
- solace_agent_mesh/common/__init__.py +0 -0
- solace_agent_mesh/common/action.py +91 -0
- solace_agent_mesh/common/action_list.py +37 -0
- solace_agent_mesh/common/action_response.py +327 -0
- solace_agent_mesh/common/constants.py +3 -0
- solace_agent_mesh/common/mysql_database.py +40 -0
- solace_agent_mesh/common/postgres_database.py +79 -0
- solace_agent_mesh/common/prompt_templates.py +30 -0
- solace_agent_mesh/common/prompt_templates_unused_delete.py +161 -0
- solace_agent_mesh/common/stimulus_utils.py +152 -0
- solace_agent_mesh/common/time.py +24 -0
- solace_agent_mesh/common/utils.py +638 -0
- solace_agent_mesh/configs/agent_global.yaml +74 -0
- solace_agent_mesh/configs/agent_image_processing.yaml +82 -0
- solace_agent_mesh/configs/agent_slack.yaml +64 -0
- solace_agent_mesh/configs/agent_web_request.yaml +75 -0
- solace_agent_mesh/configs/conversation_to_file.yaml +56 -0
- solace_agent_mesh/configs/error_catcher.yaml +56 -0
- solace_agent_mesh/configs/monitor.yaml +0 -0
- solace_agent_mesh/configs/monitor_stim_and_errors_to_slack.yaml +106 -0
- solace_agent_mesh/configs/monitor_user_feedback.yaml +58 -0
- solace_agent_mesh/configs/orchestrator.yaml +241 -0
- solace_agent_mesh/configs/service_embedding.yaml +81 -0
- solace_agent_mesh/configs/service_llm.yaml +265 -0
- solace_agent_mesh/configs/visualize_websocket.yaml +55 -0
- solace_agent_mesh/gateway/__init__.py +0 -0
- solace_agent_mesh/gateway/components/__init__.py +0 -0
- solace_agent_mesh/gateway/components/gateway_base.py +41 -0
- solace_agent_mesh/gateway/components/gateway_input.py +265 -0
- solace_agent_mesh/gateway/components/gateway_output.py +289 -0
- solace_agent_mesh/gateway/identity/bamboohr_identity.py +18 -0
- solace_agent_mesh/gateway/identity/identity_base.py +10 -0
- solace_agent_mesh/gateway/identity/identity_provider.py +60 -0
- solace_agent_mesh/gateway/identity/no_identity.py +9 -0
- solace_agent_mesh/gateway/identity/passthru_identity.py +9 -0
- solace_agent_mesh/monitors/base_monitor_component.py +26 -0
- solace_agent_mesh/monitors/feedback/user_feedback_monitor.py +75 -0
- solace_agent_mesh/monitors/stim_and_errors/stim_and_error_monitor.py +560 -0
- solace_agent_mesh/orchestrator/__init__.py +0 -0
- solace_agent_mesh/orchestrator/action_manager.py +225 -0
- solace_agent_mesh/orchestrator/components/__init__.py +0 -0
- solace_agent_mesh/orchestrator/components/orchestrator_action_manager_timeout_component.py +54 -0
- solace_agent_mesh/orchestrator/components/orchestrator_action_response_component.py +179 -0
- solace_agent_mesh/orchestrator/components/orchestrator_register_component.py +107 -0
- solace_agent_mesh/orchestrator/components/orchestrator_stimulus_processor_component.py +477 -0
- solace_agent_mesh/orchestrator/components/orchestrator_streaming_output_component.py +246 -0
- solace_agent_mesh/orchestrator/orchestrator_main.py +166 -0
- solace_agent_mesh/orchestrator/orchestrator_prompt.py +410 -0
- solace_agent_mesh/services/__init__.py +0 -0
- solace_agent_mesh/services/authorization/providers/base_authorization_provider.py +56 -0
- solace_agent_mesh/services/bamboo_hr_service/__init__.py +3 -0
- solace_agent_mesh/services/bamboo_hr_service/bamboo_hr.py +182 -0
- solace_agent_mesh/services/common/__init__.py +4 -0
- solace_agent_mesh/services/common/auto_expiry.py +45 -0
- solace_agent_mesh/services/common/singleton.py +18 -0
- solace_agent_mesh/services/file_service/__init__.py +14 -0
- solace_agent_mesh/services/file_service/file_manager/__init__.py +0 -0
- solace_agent_mesh/services/file_service/file_manager/bucket_file_manager.py +149 -0
- solace_agent_mesh/services/file_service/file_manager/file_manager_base.py +162 -0
- solace_agent_mesh/services/file_service/file_manager/memory_file_manager.py +64 -0
- solace_agent_mesh/services/file_service/file_manager/volume_file_manager.py +106 -0
- solace_agent_mesh/services/file_service/file_service.py +432 -0
- solace_agent_mesh/services/file_service/file_service_constants.py +54 -0
- solace_agent_mesh/services/file_service/file_transformations.py +131 -0
- solace_agent_mesh/services/file_service/file_utils.py +322 -0
- solace_agent_mesh/services/file_service/transformers/__init__.py +5 -0
- solace_agent_mesh/services/history_service/__init__.py +3 -0
- solace_agent_mesh/services/history_service/history_providers/__init__.py +0 -0
- solace_agent_mesh/services/history_service/history_providers/base_history_provider.py +78 -0
- solace_agent_mesh/services/history_service/history_providers/memory_history_provider.py +167 -0
- solace_agent_mesh/services/history_service/history_providers/redis_history_provider.py +163 -0
- solace_agent_mesh/services/history_service/history_service.py +139 -0
- solace_agent_mesh/services/llm_service/components/llm_request_component.py +293 -0
- solace_agent_mesh/services/llm_service/components/llm_service_component_base.py +152 -0
- solace_agent_mesh/services/middleware_service/__init__.py +0 -0
- solace_agent_mesh/services/middleware_service/middleware_service.py +20 -0
- solace_agent_mesh/templates/action.py +38 -0
- solace_agent_mesh/templates/agent.py +29 -0
- solace_agent_mesh/templates/agent.yaml +70 -0
- solace_agent_mesh/templates/gateway-config-template.yaml +6 -0
- solace_agent_mesh/templates/gateway-default-config.yaml +28 -0
- solace_agent_mesh/templates/gateway-flows.yaml +81 -0
- solace_agent_mesh/templates/gateway-header.yaml +16 -0
- solace_agent_mesh/templates/gateway_base.py +15 -0
- solace_agent_mesh/templates/gateway_input.py +98 -0
- solace_agent_mesh/templates/gateway_output.py +71 -0
- solace_agent_mesh/templates/plugin-pyproject.toml +30 -0
- solace_agent_mesh/templates/rest-api-default-config.yaml +23 -0
- solace_agent_mesh/templates/rest-api-flows.yaml +80 -0
- solace_agent_mesh/templates/slack-default-config.yaml +9 -0
- solace_agent_mesh/templates/slack-flows.yaml +90 -0
- solace_agent_mesh/templates/solace-agent-mesh-default.yaml +77 -0
- solace_agent_mesh/templates/solace-agent-mesh-plugin-default.yaml +8 -0
- solace_agent_mesh/templates/web-default-config.yaml +5 -0
- solace_agent_mesh/templates/web-flows.yaml +86 -0
- solace_agent_mesh/tools/__init__.py +0 -0
- solace_agent_mesh/tools/components/__init__.py +0 -0
- solace_agent_mesh/tools/components/conversation_formatter.py +111 -0
- solace_agent_mesh/tools/components/file_resolver_component.py +58 -0
- solace_agent_mesh/tools/config/runtime_config.py +26 -0
- solace_agent_mesh-0.1.0.dist-info/METADATA +179 -0
- solace_agent_mesh-0.1.0.dist-info/RECORD +170 -0
- solace_agent_mesh-0.1.0.dist-info/entry_points.txt +3 -0
- solace_agent_mesh-0.0.1.dist-info/licenses/LICENSE.txt → solace_agent_mesh-0.1.0.dist-info/licenses/LICENSE +1 -2
- solace_agent_mesh-0.0.1.dist-info/METADATA +0 -51
- solace_agent_mesh-0.0.1.dist-info/RECORD +0 -5
- {solace_agent_mesh-0.0.1.dist-info → solace_agent_mesh-0.1.0.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# This is the configuration file for the global agent
|
|
2
|
+
#
|
|
3
|
+
# It fulfills a few functions:
|
|
4
|
+
# 1. A flow to do periodic registration of this agent with the orchestrator
|
|
5
|
+
# 2. A flow to process action requests and produce action responses
|
|
6
|
+
# This requires a custom component to process the action requests
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
log:
|
|
10
|
+
stdout_log_level: INFO
|
|
11
|
+
log_file_level: INFO
|
|
12
|
+
log_file: solace_ai_connector.log
|
|
13
|
+
|
|
14
|
+
# trace:
|
|
15
|
+
# trace_file: agent_global.trace
|
|
16
|
+
|
|
17
|
+
shared_config:
|
|
18
|
+
- broker_config: &broker_connection
|
|
19
|
+
broker_connection_share: ${SOLACE_BROKER_URL}
|
|
20
|
+
dev_mode: ${SOLACE_DEV_MODE, false}
|
|
21
|
+
broker_url: ${SOLACE_BROKER_URL}
|
|
22
|
+
broker_username: ${SOLACE_BROKER_USERNAME}
|
|
23
|
+
broker_password: ${SOLACE_BROKER_PASSWORD}
|
|
24
|
+
broker_vpn: ${SOLACE_BROKER_VPN}
|
|
25
|
+
temporary_queue: ${USE_TEMPORARY_QUEUES, false}
|
|
26
|
+
|
|
27
|
+
# Take from CUST_DOCS and publish to Solace
|
|
28
|
+
flows:
|
|
29
|
+
|
|
30
|
+
# Flow to handle action requests
|
|
31
|
+
- name: global_agent_action_request_processor
|
|
32
|
+
components:
|
|
33
|
+
# Input from a Solace broker
|
|
34
|
+
- component_name: broker_input
|
|
35
|
+
component_module: broker_input
|
|
36
|
+
component_config:
|
|
37
|
+
<<: *broker_connection
|
|
38
|
+
payload_encoding: utf-8
|
|
39
|
+
payload_format: json
|
|
40
|
+
broker_queue_name: ${SOLACE_AGENT_MESH_NAMESPACE}agent_global_action_request
|
|
41
|
+
broker_subscriptions:
|
|
42
|
+
# Subscribe to all global actions - note that if we
|
|
43
|
+
# wanted to handle some global actions elsewhere, we would
|
|
44
|
+
# need to be more specific here
|
|
45
|
+
- topic: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1/actionRequest/*/*/global/>
|
|
46
|
+
qos: 1
|
|
47
|
+
|
|
48
|
+
# Custom component to process the action request
|
|
49
|
+
- component_name: action_request_processor
|
|
50
|
+
component_base_path: .
|
|
51
|
+
component_module: src.agents.global.global_agent_component
|
|
52
|
+
component_config:
|
|
53
|
+
max_allowed_file_retrieve_size: 300000 # Approx 60k tokens
|
|
54
|
+
llm_service_topic: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1/llm-service/request/general-good/
|
|
55
|
+
embedding_service_topic: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1/embedding-service/request/text/
|
|
56
|
+
broker_request_response:
|
|
57
|
+
enabled: true
|
|
58
|
+
broker_config: *broker_connection
|
|
59
|
+
request_expiry_ms: 120000
|
|
60
|
+
payload_encoding: utf-8
|
|
61
|
+
payload_format: json
|
|
62
|
+
response_topic_prefix: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1
|
|
63
|
+
response_queue_prefix: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1
|
|
64
|
+
component_input:
|
|
65
|
+
source_expression: input.payload
|
|
66
|
+
|
|
67
|
+
# Output to a Solace broker
|
|
68
|
+
- component_name: broker_output
|
|
69
|
+
component_module: broker_output
|
|
70
|
+
component_config:
|
|
71
|
+
<<: *broker_connection
|
|
72
|
+
payload_encoding: utf-8
|
|
73
|
+
payload_format: json
|
|
74
|
+
copy_user_properties: true
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# This is the configuration file for the Image Processing agent
|
|
2
|
+
#
|
|
3
|
+
# It fulfills a few functions:
|
|
4
|
+
# 1. A flow to do periodic registration of this agent with the orchestrator
|
|
5
|
+
# 2. A flow to process action requests and produce action responses
|
|
6
|
+
# This requires a custom component to process the action requests
|
|
7
|
+
# Requires the following environment variables:
|
|
8
|
+
# - ${SOLACE_BROKER_URL}
|
|
9
|
+
# - ${SOLACE_BROKER_USERNAME}
|
|
10
|
+
# - ${SOLACE_BROKER_PASSWORD}
|
|
11
|
+
# - ${SOLACE_BROKER_VPN}
|
|
12
|
+
# - ${SOLACE_AGENT_MESH_NAMESPACE}
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
log:
|
|
16
|
+
stdout_log_level: INFO
|
|
17
|
+
log_file_level: INFO
|
|
18
|
+
log_file: solace_ai_connector.log
|
|
19
|
+
|
|
20
|
+
# trace:
|
|
21
|
+
# trace_file: agent_image_processing.trace
|
|
22
|
+
|
|
23
|
+
shared_config:
|
|
24
|
+
- broker_config: &broker_connection
|
|
25
|
+
broker_connection_share: ${SOLACE_BROKER_URL}
|
|
26
|
+
dev_mode: ${SOLACE_DEV_MODE, false}
|
|
27
|
+
broker_url: ${SOLACE_BROKER_URL}
|
|
28
|
+
broker_username: ${SOLACE_BROKER_USERNAME}
|
|
29
|
+
broker_password: ${SOLACE_BROKER_PASSWORD}
|
|
30
|
+
broker_vpn: ${SOLACE_BROKER_VPN}
|
|
31
|
+
temporary_queue: ${USE_TEMPORARY_QUEUES, false}
|
|
32
|
+
|
|
33
|
+
# Take from Slack and publish to Solace
|
|
34
|
+
flows:
|
|
35
|
+
# Flow to handle action requests
|
|
36
|
+
- name: image_processing_agent_action_request_processor
|
|
37
|
+
|
|
38
|
+
components:
|
|
39
|
+
# Input from a Solace broker
|
|
40
|
+
- component_name: broker_input
|
|
41
|
+
component_module: broker_input
|
|
42
|
+
component_config:
|
|
43
|
+
<<: *broker_connection
|
|
44
|
+
payload_encoding: utf-8
|
|
45
|
+
payload_format: json
|
|
46
|
+
broker_queue_name: ${SOLACE_AGENT_MESH_NAMESPACE}agent_image_processing_action_request
|
|
47
|
+
broker_subscriptions:
|
|
48
|
+
# Subscribe to all image_processing actions - note that if we
|
|
49
|
+
# wanted to handle some image_processing actions elsewhere, we would
|
|
50
|
+
# need to be more specific here
|
|
51
|
+
- topic: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1/actionRequest/*/*/image_processing/>
|
|
52
|
+
qos: 1
|
|
53
|
+
|
|
54
|
+
# Custom component to process the action request
|
|
55
|
+
- component_name: action_request_processor
|
|
56
|
+
component_base_path: .
|
|
57
|
+
component_module: src.agents.image_processing.image_processing_agent_component
|
|
58
|
+
component_config:
|
|
59
|
+
image_gen_model: ${IMAGE_GEN_MODEL}
|
|
60
|
+
image_gen_endpoint: ${IMAGE_GEN_ENDPOINT}
|
|
61
|
+
image_gen_api_key: ${IMAGE_GEN_API_KEY}
|
|
62
|
+
image_gen_litellm_config: {}
|
|
63
|
+
llm_service_topic: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1/llm-service/request/general-good/
|
|
64
|
+
broker_request_response:
|
|
65
|
+
enabled: true
|
|
66
|
+
broker_config: *broker_connection
|
|
67
|
+
request_expiry_ms: 120000
|
|
68
|
+
payload_encoding: utf-8
|
|
69
|
+
payload_format: json
|
|
70
|
+
response_topic_prefix: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1
|
|
71
|
+
response_queue_prefix: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1
|
|
72
|
+
component_input:
|
|
73
|
+
source_expression: input.payload
|
|
74
|
+
|
|
75
|
+
# Output to a Solace broker
|
|
76
|
+
- component_name: broker_output
|
|
77
|
+
component_module: broker_output
|
|
78
|
+
component_config:
|
|
79
|
+
<<: *broker_connection
|
|
80
|
+
payload_encoding: utf-8
|
|
81
|
+
payload_format: json
|
|
82
|
+
copy_user_properties: true
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# This is the configuration file for the Slack agent
|
|
2
|
+
#
|
|
3
|
+
# It fulfills a few functions:
|
|
4
|
+
# 1. A flow to do periodic registration of this agent with the orchestrator
|
|
5
|
+
# 2. A flow to process action requests and produce action responses
|
|
6
|
+
# This requires a custom component to process the action requests
|
|
7
|
+
# Requires the following environment variables:
|
|
8
|
+
# - SOLACE_BROKER_URL
|
|
9
|
+
# - SOLACE_BROKER_USERNAME
|
|
10
|
+
# - SOLACE_BROKER_PASSWORD
|
|
11
|
+
# - SOLACE_BROKER_VPN
|
|
12
|
+
# - SOLACE_AGENT_MESH_NAMESPACE
|
|
13
|
+
# - MONITOR_SLACK_BOT_TOKEN
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
log:
|
|
17
|
+
stdout_log_level: INFO
|
|
18
|
+
log_file_level: INFO
|
|
19
|
+
log_file: solace_ai_connector.log
|
|
20
|
+
|
|
21
|
+
shared_config:
|
|
22
|
+
- broker_config: &broker_connection
|
|
23
|
+
broker_connection_share: ${SOLACE_BROKER_URL}
|
|
24
|
+
dev_mode: ${SOLACE_DEV_MODE, false}
|
|
25
|
+
broker_url: ${SOLACE_BROKER_URL}
|
|
26
|
+
broker_username: ${SOLACE_BROKER_USERNAME}
|
|
27
|
+
broker_password: ${SOLACE_BROKER_PASSWORD}
|
|
28
|
+
broker_vpn: ${SOLACE_BROKER_VPN}
|
|
29
|
+
temporary_queue: ${USE_TEMPORARY_QUEUES, false}
|
|
30
|
+
|
|
31
|
+
flows:
|
|
32
|
+
# Flow to handle action requests
|
|
33
|
+
- name: action_request_processor
|
|
34
|
+
components:
|
|
35
|
+
# Input from a Solace broker
|
|
36
|
+
- component_name: broker_input
|
|
37
|
+
component_module: broker_input
|
|
38
|
+
component_config:
|
|
39
|
+
<<: *broker_connection
|
|
40
|
+
payload_encoding: utf-8
|
|
41
|
+
payload_format: json
|
|
42
|
+
broker_queue_name: ${SOLACE_AGENT_MESH_NAMESPACE}agent_slack_action_request
|
|
43
|
+
broker_subscriptions:
|
|
44
|
+
- topic: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1/actionRequest/*/*/slack/>
|
|
45
|
+
qos: 1
|
|
46
|
+
|
|
47
|
+
# Custom component to process the action request
|
|
48
|
+
- component_name: action_request_processor
|
|
49
|
+
component_base_path: .
|
|
50
|
+
component_module: src.agents.slack.slack_agent_component
|
|
51
|
+
component_config:
|
|
52
|
+
slack_bot_token: ${MONITOR_SLACK_BOT_TOKEN}
|
|
53
|
+
thread_cache_ttl: 600
|
|
54
|
+
component_input:
|
|
55
|
+
source_expression: input.payload
|
|
56
|
+
|
|
57
|
+
# Output to a Solace broker
|
|
58
|
+
- component_name: broker_output
|
|
59
|
+
component_module: broker_output
|
|
60
|
+
component_config:
|
|
61
|
+
<<: *broker_connection
|
|
62
|
+
payload_encoding: utf-8
|
|
63
|
+
payload_format: json
|
|
64
|
+
copy_user_properties: true
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# This is the configuration file for the Web Request agent
|
|
2
|
+
#
|
|
3
|
+
# It fulfills a few functions:
|
|
4
|
+
# 1. A flow to do periodic registration of this agent with the orchestrator
|
|
5
|
+
# 2. A flow to process action requests and produce action responses
|
|
6
|
+
# This requires a custom component to process the action requests
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
log:
|
|
10
|
+
stdout_log_level: INFO
|
|
11
|
+
log_file_level: INFO
|
|
12
|
+
log_file: solace_ai_connector.log
|
|
13
|
+
|
|
14
|
+
# trace:
|
|
15
|
+
# trace_file: agent_web_request.trace
|
|
16
|
+
|
|
17
|
+
shared_config:
|
|
18
|
+
- broker_config: &broker_connection
|
|
19
|
+
broker_connection_share: ${SOLACE_BROKER_URL}
|
|
20
|
+
dev_mode: ${SOLACE_DEV_MODE, false}
|
|
21
|
+
broker_url: ${SOLACE_BROKER_URL}
|
|
22
|
+
broker_username: ${SOLACE_BROKER_USERNAME}
|
|
23
|
+
broker_password: ${SOLACE_BROKER_PASSWORD}
|
|
24
|
+
broker_vpn: ${SOLACE_BROKER_VPN}
|
|
25
|
+
temporary_queue: ${USE_TEMPORARY_QUEUES, false}
|
|
26
|
+
|
|
27
|
+
# Take from Slack and publish to Solace
|
|
28
|
+
flows:
|
|
29
|
+
|
|
30
|
+
# Flow to handle action requests
|
|
31
|
+
- name: action_request_processor
|
|
32
|
+
|
|
33
|
+
components:
|
|
34
|
+
|
|
35
|
+
# Input from a Solace broker
|
|
36
|
+
- component_name: broker_input
|
|
37
|
+
component_module: broker_input
|
|
38
|
+
component_config:
|
|
39
|
+
<<: *broker_connection
|
|
40
|
+
payload_encoding: utf-8
|
|
41
|
+
payload_format: json
|
|
42
|
+
broker_queue_name: ${SOLACE_AGENT_MESH_NAMESPACE}agent_web_request_action_request
|
|
43
|
+
broker_subscriptions:
|
|
44
|
+
# Subscribe to all web_request actions - note that if we
|
|
45
|
+
# wanted to handle some web_request actions elsewhere, we would
|
|
46
|
+
# need to be more specific here
|
|
47
|
+
- topic: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1/actionRequest/*/*/web_request/>
|
|
48
|
+
qos: 1
|
|
49
|
+
|
|
50
|
+
# Custom component to process the action request
|
|
51
|
+
- component_name: action_request_processor
|
|
52
|
+
num_instances: 10
|
|
53
|
+
component_base_path: .
|
|
54
|
+
component_module: src.agents.web_request.web_request_agent_component
|
|
55
|
+
broker_request_response:
|
|
56
|
+
enabled: true
|
|
57
|
+
broker_config: *broker_connection
|
|
58
|
+
request_expiry_ms: 120000
|
|
59
|
+
payload_encoding: utf-8
|
|
60
|
+
payload_format: json
|
|
61
|
+
response_topic_prefix: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1
|
|
62
|
+
response_queue_prefix: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1
|
|
63
|
+
component_config:
|
|
64
|
+
llm_service_topic: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1/llm-service/request/general-good/
|
|
65
|
+
component_input:
|
|
66
|
+
source_expression: input.payload
|
|
67
|
+
|
|
68
|
+
# Output to a Solace broker
|
|
69
|
+
- component_name: broker_output
|
|
70
|
+
component_module: broker_output
|
|
71
|
+
component_config:
|
|
72
|
+
<<: *broker_connection
|
|
73
|
+
payload_encoding: utf-8
|
|
74
|
+
payload_format: json
|
|
75
|
+
copy_user_properties: true
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
log:
|
|
3
|
+
stdout_log_level: ERROR
|
|
4
|
+
|
|
5
|
+
# trace:
|
|
6
|
+
# trace_file: conversation_to_file.trace
|
|
7
|
+
|
|
8
|
+
shared_config:
|
|
9
|
+
- broker_config: &broker_connection
|
|
10
|
+
broker_connection_share: ${SOLACE_BROKER_URL}
|
|
11
|
+
dev_mode: ${SOLACE_DEV_MODE, false}
|
|
12
|
+
broker_url: ${SOLACE_BROKER_URL}
|
|
13
|
+
broker_username: ${SOLACE_BROKER_USERNAME}
|
|
14
|
+
broker_password: ${SOLACE_BROKER_PASSWORD}
|
|
15
|
+
broker_vpn: ${SOLACE_BROKER_VPN}
|
|
16
|
+
temporary_queue: ${USE_TEMPORARY_QUEUES, false}
|
|
17
|
+
|
|
18
|
+
# Take from Slack and publish to Solace
|
|
19
|
+
flows:
|
|
20
|
+
- name: write_to_file
|
|
21
|
+
components:
|
|
22
|
+
- component_name: broker_input
|
|
23
|
+
component_module: broker_input
|
|
24
|
+
component_config:
|
|
25
|
+
<<: *broker_connection
|
|
26
|
+
broker_queue_name: ${SOLACE_AGENT_MESH_NAMESPACE}conversation_to_file
|
|
27
|
+
broker_subscriptions:
|
|
28
|
+
- topic: "!${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1/register/>"
|
|
29
|
+
qos: 1
|
|
30
|
+
- topic: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1/>
|
|
31
|
+
qos: 1
|
|
32
|
+
payload_encoding: utf-8
|
|
33
|
+
payload_format: json
|
|
34
|
+
|
|
35
|
+
- component_name: conversation_formatter
|
|
36
|
+
component_base_path: .
|
|
37
|
+
component_module: src.tools.components.conversation_formatter
|
|
38
|
+
component_config:
|
|
39
|
+
component_input:
|
|
40
|
+
source_expression: input
|
|
41
|
+
|
|
42
|
+
- component_name: file_output
|
|
43
|
+
component_module: file_output
|
|
44
|
+
component_config:
|
|
45
|
+
input_transforms:
|
|
46
|
+
- type: copy
|
|
47
|
+
source_expression: template:trace_{{text://input.user_properties:channel}}_{{text://input.user_properties:identity}}.txt
|
|
48
|
+
dest_expression: user_data.component_input:file_path
|
|
49
|
+
- type: copy
|
|
50
|
+
source_expression: previous:message
|
|
51
|
+
dest_expression: user_data.component_input:content
|
|
52
|
+
- type: copy
|
|
53
|
+
source_value: a
|
|
54
|
+
dest_expression: user_data.component_input:mode
|
|
55
|
+
component_input:
|
|
56
|
+
source_expression: user_data.component_input
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# This is the configuration file for the error catcher flow
|
|
2
|
+
#
|
|
3
|
+
# This config file must be included with every running instance within the Solace Agent Mesh
|
|
4
|
+
#
|
|
5
|
+
# 1. It uses the error_input component to receive messages from the error queue
|
|
6
|
+
# 2. Sends the error message to the broker
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
log:
|
|
10
|
+
stdout_log_level: INFO
|
|
11
|
+
log_file_level: INFO
|
|
12
|
+
log_file: solace_ai_connector.log
|
|
13
|
+
|
|
14
|
+
# trace:
|
|
15
|
+
# trace_file: orchestrator.trace
|
|
16
|
+
|
|
17
|
+
shared_config:
|
|
18
|
+
- broker_config: &broker_connection
|
|
19
|
+
broker_connection_share: ${SOLACE_BROKER_URL}
|
|
20
|
+
dev_mode: ${SOLACE_DEV_MODE, false}
|
|
21
|
+
broker_url: ${SOLACE_BROKER_URL}
|
|
22
|
+
broker_username: ${SOLACE_BROKER_USERNAME}
|
|
23
|
+
broker_password: ${SOLACE_BROKER_PASSWORD}
|
|
24
|
+
broker_vpn: ${SOLACE_BROKER_VPN}
|
|
25
|
+
temporary_queue: ${USE_TEMPORARY_QUEUES, false}
|
|
26
|
+
|
|
27
|
+
flows:
|
|
28
|
+
|
|
29
|
+
# Error flow - if an error happens the message will be sent to this flow
|
|
30
|
+
- name: error-catcher-flow
|
|
31
|
+
# Disable the error queue to avoid infinite loops
|
|
32
|
+
put_errors_in_error_queue: false
|
|
33
|
+
components:
|
|
34
|
+
|
|
35
|
+
# Input from the Error Queue
|
|
36
|
+
- component_name: error_input
|
|
37
|
+
component_module: error_input
|
|
38
|
+
|
|
39
|
+
# If it wasn't filtered, it means that there was a channel in the user_properties
|
|
40
|
+
# This means that we can send the error message to the channel
|
|
41
|
+
- component_name: broker_output_error_message
|
|
42
|
+
component_module: broker_output
|
|
43
|
+
component_config:
|
|
44
|
+
<<: *broker_connection
|
|
45
|
+
payload_encoding: utf-8
|
|
46
|
+
payload_format: json
|
|
47
|
+
copy_user_properties: true
|
|
48
|
+
input_transforms:
|
|
49
|
+
- type: copy
|
|
50
|
+
source_expression: input.payload
|
|
51
|
+
dest_expression: user_data.output:payload
|
|
52
|
+
- type: copy
|
|
53
|
+
source_expression: template:${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1/stimulus/error/error-flow
|
|
54
|
+
dest_expression: user_data.output:topic
|
|
55
|
+
component_input:
|
|
56
|
+
source_expression: user_data.output
|
|
File without changes
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Configuration for the Slack Monitor Agent
|
|
2
|
+
#
|
|
3
|
+
# This sets up:
|
|
4
|
+
# 1. Agent registration flow
|
|
5
|
+
# 2. Action request processing flow
|
|
6
|
+
# 3. Event monitoring flow for tracking all solace agent mesh events
|
|
7
|
+
#
|
|
8
|
+
# Required environment variables:
|
|
9
|
+
# - SOLACE_BROKER_URL
|
|
10
|
+
# - SOLACE_BROKER_USERNAME
|
|
11
|
+
# - SOLACE_BROKER_PASSWORD
|
|
12
|
+
# - SOLACE_BROKER_VPN
|
|
13
|
+
# - SOLACE_AGENT_MESH_NAMESPACE
|
|
14
|
+
# - MONITOR_SLACK_STATUS_CHANNEL
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
log:
|
|
18
|
+
stdout_log_level: INFO
|
|
19
|
+
log_file_level: INFO
|
|
20
|
+
log_file: solace_ai_connector.log
|
|
21
|
+
|
|
22
|
+
shared_config:
|
|
23
|
+
- broker_config: &broker_connection
|
|
24
|
+
broker_connection_share: ${SOLACE_BROKER_URL}
|
|
25
|
+
dev_mode: ${SOLACE_DEV_MODE, false}
|
|
26
|
+
broker_url: ${SOLACE_BROKER_URL}
|
|
27
|
+
broker_username: ${SOLACE_BROKER_USERNAME}
|
|
28
|
+
broker_password: ${SOLACE_BROKER_PASSWORD}
|
|
29
|
+
broker_vpn: ${SOLACE_BROKER_VPN}
|
|
30
|
+
temporary_queue: ${USE_TEMPORARY_QUEUES, false}
|
|
31
|
+
|
|
32
|
+
flows:
|
|
33
|
+
|
|
34
|
+
# Event monitoring flow
|
|
35
|
+
- name: event_monitor
|
|
36
|
+
put_errors_in_error_queue: false
|
|
37
|
+
components:
|
|
38
|
+
# Input from broker - subscribe to all solace agent mesh events
|
|
39
|
+
- component_name: broker_input
|
|
40
|
+
component_module: broker_input
|
|
41
|
+
component_config:
|
|
42
|
+
<<: *broker_connection
|
|
43
|
+
payload_encoding: utf-8
|
|
44
|
+
payload_format: json
|
|
45
|
+
broker_queue_name: ${SOLACE_AGENT_MESH_NAMESPACE}agent_slack_monitor_events
|
|
46
|
+
broker_subscriptions:
|
|
47
|
+
- topic: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1/>
|
|
48
|
+
qos: 1
|
|
49
|
+
- topic: "!${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1/register/>"
|
|
50
|
+
qos: 1
|
|
51
|
+
|
|
52
|
+
# Process events
|
|
53
|
+
- component_name: event_processor
|
|
54
|
+
component_base_path: .
|
|
55
|
+
component_module: src.monitors.stim_and_errors.stim_and_error_monitor
|
|
56
|
+
component_config:
|
|
57
|
+
notification_flow_name: slack_notification
|
|
58
|
+
stimulus_ttl: 300
|
|
59
|
+
error_format: slack
|
|
60
|
+
|
|
61
|
+
# Send notifications - this is called directly by the monitor
|
|
62
|
+
- name: slack_notification
|
|
63
|
+
put_errors_in_error_queue: false
|
|
64
|
+
components:
|
|
65
|
+
|
|
66
|
+
# Output to the broker to call the appropriate agent's action
|
|
67
|
+
- component_name: broker_output
|
|
68
|
+
component_module: broker_output
|
|
69
|
+
component_config:
|
|
70
|
+
<<: *broker_connection
|
|
71
|
+
payload_encoding: utf-8
|
|
72
|
+
payload_format: json
|
|
73
|
+
copy_user_properties: true
|
|
74
|
+
input_transforms:
|
|
75
|
+
- type: copy
|
|
76
|
+
source_expression: input.payload:is_last
|
|
77
|
+
dest_expression: user_data.output:payload.action_params.last_post_to_thread
|
|
78
|
+
- type: copy
|
|
79
|
+
source_expression: input.payload:correlation_id
|
|
80
|
+
dest_expression: user_data.output:payload.action_params.thread_correlation_id
|
|
81
|
+
- type: copy
|
|
82
|
+
source_expression: input.payload:text
|
|
83
|
+
dest_expression: user_data.output:payload.action_params.text
|
|
84
|
+
- type: copy
|
|
85
|
+
source_expression: input.payload:blocks
|
|
86
|
+
dest_expression: user_data.output:payload.action_params.blocks
|
|
87
|
+
- type: copy
|
|
88
|
+
source_expression: input.payload:files
|
|
89
|
+
dest_expression: user_data.output:payload.action_params.files
|
|
90
|
+
- type: copy
|
|
91
|
+
source_value: ${MONITOR_SLACK_STATUS_CHANNEL}
|
|
92
|
+
dest_expression: user_data.output:payload.action_params.channel
|
|
93
|
+
- type: copy
|
|
94
|
+
source_value: slack
|
|
95
|
+
dest_expression: user_data.output:payload.agent_name
|
|
96
|
+
- type: copy
|
|
97
|
+
source_value: post_message
|
|
98
|
+
dest_expression: user_data.output:payload.action_name
|
|
99
|
+
- type: copy
|
|
100
|
+
source_value: '0'
|
|
101
|
+
dest_expression: user_data.output:payload.action_idx
|
|
102
|
+
- type: copy
|
|
103
|
+
source_expression: template:${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1/actionRequest/monitor/x/slack/post_message/{{text://input.payload:correlation_id}}
|
|
104
|
+
dest_expression: user_data.output:topic
|
|
105
|
+
input_selection:
|
|
106
|
+
source_expression: user_data.output
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Configuration for the Slack Monitor Agent
|
|
2
|
+
#
|
|
3
|
+
# This sets up:
|
|
4
|
+
# 1. Agent registration flow
|
|
5
|
+
# 2. Action request processing flow
|
|
6
|
+
# 3. Event monitoring flow for tracking all solace agent mesh events
|
|
7
|
+
#
|
|
8
|
+
# Required environment variables:
|
|
9
|
+
# - SOLACE_BROKER_URL
|
|
10
|
+
# - SOLACE_BROKER_USERNAME
|
|
11
|
+
# - SOLACE_BROKER_PASSWORD
|
|
12
|
+
# - SOLACE_BROKER_VPN
|
|
13
|
+
# - SOLACE_AGENT_MESH_NAMESPACE
|
|
14
|
+
# - MONITOR_SLACK_STATUS_CHANNEL
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
log:
|
|
18
|
+
stdout_log_level: INFO
|
|
19
|
+
log_file_level: INFO
|
|
20
|
+
log_file: solace_ai_connector.log
|
|
21
|
+
|
|
22
|
+
shared_config:
|
|
23
|
+
- broker_config: &broker_connection
|
|
24
|
+
broker_connection_share: ${SOLACE_BROKER_URL}
|
|
25
|
+
dev_mode: ${SOLACE_DEV_MODE, false}
|
|
26
|
+
broker_url: ${SOLACE_BROKER_URL}
|
|
27
|
+
broker_username: ${SOLACE_BROKER_USERNAME}
|
|
28
|
+
broker_password: ${SOLACE_BROKER_PASSWORD}
|
|
29
|
+
broker_vpn: ${SOLACE_BROKER_VPN}
|
|
30
|
+
temporary_queue: ${USE_TEMPORARY_QUEUES, false}
|
|
31
|
+
|
|
32
|
+
flows:
|
|
33
|
+
|
|
34
|
+
# Feedback monitoring flow
|
|
35
|
+
- name: feedback_monitor
|
|
36
|
+
put_errors_in_error_queue: false
|
|
37
|
+
components:
|
|
38
|
+
# Input from broker - subscribe to all solace agent mesh events
|
|
39
|
+
- component_name: broker_input
|
|
40
|
+
component_module: broker_input
|
|
41
|
+
component_config:
|
|
42
|
+
<<: *broker_connection
|
|
43
|
+
payload_encoding: utf-8
|
|
44
|
+
payload_format: json
|
|
45
|
+
broker_queue_name: ${SOLACE_AGENT_MESH_NAMESPACE}user_feedback_monitor
|
|
46
|
+
broker_subscriptions:
|
|
47
|
+
- topic: ${SOLACE_AGENT_MESH_NAMESPACE}solace-agent-mesh/v1/feedback
|
|
48
|
+
qos: 1
|
|
49
|
+
|
|
50
|
+
# Process events
|
|
51
|
+
- component_name: user_feedback_processor
|
|
52
|
+
component_base_path: .
|
|
53
|
+
component_module: src.monitors.feedback.user_feedback_monitor
|
|
54
|
+
component_config: {}
|
|
55
|
+
component_input:
|
|
56
|
+
source_expression: input.payload
|
|
57
|
+
|
|
58
|
+
|