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.

Files changed (172) hide show
  1. solace_agent_mesh/__init__.py +0 -3
  2. solace_agent_mesh/agents/__init__.py +0 -0
  3. solace_agent_mesh/agents/base_agent_component.py +224 -0
  4. solace_agent_mesh/agents/global/__init__.py +0 -0
  5. solace_agent_mesh/agents/global/actions/__init__.py +0 -0
  6. solace_agent_mesh/agents/global/actions/agent_state_change.py +54 -0
  7. solace_agent_mesh/agents/global/actions/clear_history.py +32 -0
  8. solace_agent_mesh/agents/global/actions/convert_file_to_markdown.py +160 -0
  9. solace_agent_mesh/agents/global/actions/create_file.py +70 -0
  10. solace_agent_mesh/agents/global/actions/error_action.py +45 -0
  11. solace_agent_mesh/agents/global/actions/plantuml_diagram.py +93 -0
  12. solace_agent_mesh/agents/global/actions/plotly_graph.py +117 -0
  13. solace_agent_mesh/agents/global/actions/retrieve_file.py +51 -0
  14. solace_agent_mesh/agents/global/global_agent_component.py +38 -0
  15. solace_agent_mesh/agents/image_processing/__init__.py +0 -0
  16. solace_agent_mesh/agents/image_processing/actions/__init__.py +0 -0
  17. solace_agent_mesh/agents/image_processing/actions/create_image.py +75 -0
  18. solace_agent_mesh/agents/image_processing/actions/describe_image.py +115 -0
  19. solace_agent_mesh/agents/image_processing/image_processing_agent_component.py +23 -0
  20. solace_agent_mesh/agents/slack/__init__.py +1 -0
  21. solace_agent_mesh/agents/slack/actions/__init__.py +1 -0
  22. solace_agent_mesh/agents/slack/actions/post_message.py +177 -0
  23. solace_agent_mesh/agents/slack/slack_agent_component.py +59 -0
  24. solace_agent_mesh/agents/web_request/__init__.py +0 -0
  25. solace_agent_mesh/agents/web_request/actions/__init__.py +0 -0
  26. solace_agent_mesh/agents/web_request/actions/do_image_search.py +84 -0
  27. solace_agent_mesh/agents/web_request/actions/do_news_search.py +47 -0
  28. solace_agent_mesh/agents/web_request/actions/do_suggestion_search.py +34 -0
  29. solace_agent_mesh/agents/web_request/actions/do_web_request.py +134 -0
  30. solace_agent_mesh/agents/web_request/actions/download_file.py +69 -0
  31. solace_agent_mesh/agents/web_request/web_request_agent_component.py +33 -0
  32. solace_agent_mesh/cli/__init__.py +1 -0
  33. solace_agent_mesh/cli/commands/__init__.py +0 -0
  34. solace_agent_mesh/cli/commands/add/__init__.py +3 -0
  35. solace_agent_mesh/cli/commands/add/add.py +88 -0
  36. solace_agent_mesh/cli/commands/add/agent.py +110 -0
  37. solace_agent_mesh/cli/commands/add/copy_from_plugin.py +90 -0
  38. solace_agent_mesh/cli/commands/add/gateway.py +221 -0
  39. solace_agent_mesh/cli/commands/build.py +631 -0
  40. solace_agent_mesh/cli/commands/chat/__init__.py +3 -0
  41. solace_agent_mesh/cli/commands/chat/chat.py +361 -0
  42. solace_agent_mesh/cli/commands/config.py +29 -0
  43. solace_agent_mesh/cli/commands/init/__init__.py +3 -0
  44. solace_agent_mesh/cli/commands/init/ai_provider_step.py +76 -0
  45. solace_agent_mesh/cli/commands/init/broker_step.py +102 -0
  46. solace_agent_mesh/cli/commands/init/builtin_agent_step.py +88 -0
  47. solace_agent_mesh/cli/commands/init/check_if_already_done.py +13 -0
  48. solace_agent_mesh/cli/commands/init/create_config_file_step.py +52 -0
  49. solace_agent_mesh/cli/commands/init/create_other_project_files_step.py +96 -0
  50. solace_agent_mesh/cli/commands/init/file_service_step.py +73 -0
  51. solace_agent_mesh/cli/commands/init/init.py +114 -0
  52. solace_agent_mesh/cli/commands/init/project_structure_step.py +45 -0
  53. solace_agent_mesh/cli/commands/init/rest_api_step.py +50 -0
  54. solace_agent_mesh/cli/commands/init/web_ui_step.py +40 -0
  55. solace_agent_mesh/cli/commands/plugin/__init__.py +3 -0
  56. solace_agent_mesh/cli/commands/plugin/add.py +98 -0
  57. solace_agent_mesh/cli/commands/plugin/build.py +217 -0
  58. solace_agent_mesh/cli/commands/plugin/create.py +117 -0
  59. solace_agent_mesh/cli/commands/plugin/plugin.py +109 -0
  60. solace_agent_mesh/cli/commands/plugin/remove.py +71 -0
  61. solace_agent_mesh/cli/commands/run.py +68 -0
  62. solace_agent_mesh/cli/commands/visualizer.py +138 -0
  63. solace_agent_mesh/cli/config.py +81 -0
  64. solace_agent_mesh/cli/main.py +306 -0
  65. solace_agent_mesh/cli/utils.py +246 -0
  66. solace_agent_mesh/common/__init__.py +0 -0
  67. solace_agent_mesh/common/action.py +91 -0
  68. solace_agent_mesh/common/action_list.py +37 -0
  69. solace_agent_mesh/common/action_response.py +327 -0
  70. solace_agent_mesh/common/constants.py +3 -0
  71. solace_agent_mesh/common/mysql_database.py +40 -0
  72. solace_agent_mesh/common/postgres_database.py +79 -0
  73. solace_agent_mesh/common/prompt_templates.py +30 -0
  74. solace_agent_mesh/common/prompt_templates_unused_delete.py +161 -0
  75. solace_agent_mesh/common/stimulus_utils.py +152 -0
  76. solace_agent_mesh/common/time.py +24 -0
  77. solace_agent_mesh/common/utils.py +638 -0
  78. solace_agent_mesh/configs/agent_global.yaml +74 -0
  79. solace_agent_mesh/configs/agent_image_processing.yaml +82 -0
  80. solace_agent_mesh/configs/agent_slack.yaml +64 -0
  81. solace_agent_mesh/configs/agent_web_request.yaml +75 -0
  82. solace_agent_mesh/configs/conversation_to_file.yaml +56 -0
  83. solace_agent_mesh/configs/error_catcher.yaml +56 -0
  84. solace_agent_mesh/configs/monitor.yaml +0 -0
  85. solace_agent_mesh/configs/monitor_stim_and_errors_to_slack.yaml +106 -0
  86. solace_agent_mesh/configs/monitor_user_feedback.yaml +58 -0
  87. solace_agent_mesh/configs/orchestrator.yaml +241 -0
  88. solace_agent_mesh/configs/service_embedding.yaml +81 -0
  89. solace_agent_mesh/configs/service_llm.yaml +265 -0
  90. solace_agent_mesh/configs/visualize_websocket.yaml +55 -0
  91. solace_agent_mesh/gateway/__init__.py +0 -0
  92. solace_agent_mesh/gateway/components/__init__.py +0 -0
  93. solace_agent_mesh/gateway/components/gateway_base.py +41 -0
  94. solace_agent_mesh/gateway/components/gateway_input.py +265 -0
  95. solace_agent_mesh/gateway/components/gateway_output.py +289 -0
  96. solace_agent_mesh/gateway/identity/bamboohr_identity.py +18 -0
  97. solace_agent_mesh/gateway/identity/identity_base.py +10 -0
  98. solace_agent_mesh/gateway/identity/identity_provider.py +60 -0
  99. solace_agent_mesh/gateway/identity/no_identity.py +9 -0
  100. solace_agent_mesh/gateway/identity/passthru_identity.py +9 -0
  101. solace_agent_mesh/monitors/base_monitor_component.py +26 -0
  102. solace_agent_mesh/monitors/feedback/user_feedback_monitor.py +75 -0
  103. solace_agent_mesh/monitors/stim_and_errors/stim_and_error_monitor.py +560 -0
  104. solace_agent_mesh/orchestrator/__init__.py +0 -0
  105. solace_agent_mesh/orchestrator/action_manager.py +225 -0
  106. solace_agent_mesh/orchestrator/components/__init__.py +0 -0
  107. solace_agent_mesh/orchestrator/components/orchestrator_action_manager_timeout_component.py +54 -0
  108. solace_agent_mesh/orchestrator/components/orchestrator_action_response_component.py +179 -0
  109. solace_agent_mesh/orchestrator/components/orchestrator_register_component.py +107 -0
  110. solace_agent_mesh/orchestrator/components/orchestrator_stimulus_processor_component.py +477 -0
  111. solace_agent_mesh/orchestrator/components/orchestrator_streaming_output_component.py +246 -0
  112. solace_agent_mesh/orchestrator/orchestrator_main.py +166 -0
  113. solace_agent_mesh/orchestrator/orchestrator_prompt.py +410 -0
  114. solace_agent_mesh/services/__init__.py +0 -0
  115. solace_agent_mesh/services/authorization/providers/base_authorization_provider.py +56 -0
  116. solace_agent_mesh/services/bamboo_hr_service/__init__.py +3 -0
  117. solace_agent_mesh/services/bamboo_hr_service/bamboo_hr.py +182 -0
  118. solace_agent_mesh/services/common/__init__.py +4 -0
  119. solace_agent_mesh/services/common/auto_expiry.py +45 -0
  120. solace_agent_mesh/services/common/singleton.py +18 -0
  121. solace_agent_mesh/services/file_service/__init__.py +14 -0
  122. solace_agent_mesh/services/file_service/file_manager/__init__.py +0 -0
  123. solace_agent_mesh/services/file_service/file_manager/bucket_file_manager.py +149 -0
  124. solace_agent_mesh/services/file_service/file_manager/file_manager_base.py +162 -0
  125. solace_agent_mesh/services/file_service/file_manager/memory_file_manager.py +64 -0
  126. solace_agent_mesh/services/file_service/file_manager/volume_file_manager.py +106 -0
  127. solace_agent_mesh/services/file_service/file_service.py +432 -0
  128. solace_agent_mesh/services/file_service/file_service_constants.py +54 -0
  129. solace_agent_mesh/services/file_service/file_transformations.py +131 -0
  130. solace_agent_mesh/services/file_service/file_utils.py +322 -0
  131. solace_agent_mesh/services/file_service/transformers/__init__.py +5 -0
  132. solace_agent_mesh/services/history_service/__init__.py +3 -0
  133. solace_agent_mesh/services/history_service/history_providers/__init__.py +0 -0
  134. solace_agent_mesh/services/history_service/history_providers/base_history_provider.py +78 -0
  135. solace_agent_mesh/services/history_service/history_providers/memory_history_provider.py +167 -0
  136. solace_agent_mesh/services/history_service/history_providers/redis_history_provider.py +163 -0
  137. solace_agent_mesh/services/history_service/history_service.py +139 -0
  138. solace_agent_mesh/services/llm_service/components/llm_request_component.py +293 -0
  139. solace_agent_mesh/services/llm_service/components/llm_service_component_base.py +152 -0
  140. solace_agent_mesh/services/middleware_service/__init__.py +0 -0
  141. solace_agent_mesh/services/middleware_service/middleware_service.py +20 -0
  142. solace_agent_mesh/templates/action.py +38 -0
  143. solace_agent_mesh/templates/agent.py +29 -0
  144. solace_agent_mesh/templates/agent.yaml +70 -0
  145. solace_agent_mesh/templates/gateway-config-template.yaml +6 -0
  146. solace_agent_mesh/templates/gateway-default-config.yaml +28 -0
  147. solace_agent_mesh/templates/gateway-flows.yaml +81 -0
  148. solace_agent_mesh/templates/gateway-header.yaml +16 -0
  149. solace_agent_mesh/templates/gateway_base.py +15 -0
  150. solace_agent_mesh/templates/gateway_input.py +98 -0
  151. solace_agent_mesh/templates/gateway_output.py +71 -0
  152. solace_agent_mesh/templates/plugin-pyproject.toml +30 -0
  153. solace_agent_mesh/templates/rest-api-default-config.yaml +23 -0
  154. solace_agent_mesh/templates/rest-api-flows.yaml +80 -0
  155. solace_agent_mesh/templates/slack-default-config.yaml +9 -0
  156. solace_agent_mesh/templates/slack-flows.yaml +90 -0
  157. solace_agent_mesh/templates/solace-agent-mesh-default.yaml +77 -0
  158. solace_agent_mesh/templates/solace-agent-mesh-plugin-default.yaml +8 -0
  159. solace_agent_mesh/templates/web-default-config.yaml +5 -0
  160. solace_agent_mesh/templates/web-flows.yaml +86 -0
  161. solace_agent_mesh/tools/__init__.py +0 -0
  162. solace_agent_mesh/tools/components/__init__.py +0 -0
  163. solace_agent_mesh/tools/components/conversation_formatter.py +111 -0
  164. solace_agent_mesh/tools/components/file_resolver_component.py +58 -0
  165. solace_agent_mesh/tools/config/runtime_config.py +26 -0
  166. solace_agent_mesh-0.1.0.dist-info/METADATA +179 -0
  167. solace_agent_mesh-0.1.0.dist-info/RECORD +170 -0
  168. solace_agent_mesh-0.1.0.dist-info/entry_points.txt +3 -0
  169. solace_agent_mesh-0.0.1.dist-info/licenses/LICENSE.txt → solace_agent_mesh-0.1.0.dist-info/licenses/LICENSE +1 -2
  170. solace_agent_mesh-0.0.1.dist-info/METADATA +0 -51
  171. solace_agent_mesh-0.0.1.dist-info/RECORD +0 -5
  172. {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
+