rasa-pro 3.14.0.dev3__py3-none-any.whl → 3.14.0.dev5__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 rasa-pro might be problematic. Click here for more details.

Files changed (437) hide show
  1. rasa/api.py +0 -5
  2. rasa/builder/README.md +120 -0
  3. rasa/builder/auth.py +176 -0
  4. rasa/builder/config.py +115 -0
  5. rasa/builder/copilot/constants.py +25 -0
  6. rasa/builder/copilot/copilot.py +372 -0
  7. rasa/builder/copilot/copilot_response_handler.py +487 -0
  8. rasa/builder/copilot/copilot_templated_message_provider.py +58 -0
  9. rasa/builder/copilot/exceptions.py +20 -0
  10. rasa/builder/copilot/models.py +431 -0
  11. rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +726 -0
  12. rasa/builder/copilot/telemetry.py +195 -0
  13. rasa/builder/copilot/templated_messages/copilot_internal_messages_templates.yml +16 -0
  14. rasa/builder/copilot/templated_messages/copilot_templated_responses.yml +26 -0
  15. rasa/builder/document_retrieval/constants.py +15 -0
  16. rasa/builder/document_retrieval/inkeep-rag-response-schema.json +64 -0
  17. rasa/builder/document_retrieval/inkeep_document_retrieval.py +238 -0
  18. rasa/builder/document_retrieval/models.py +62 -0
  19. rasa/builder/download.py +140 -0
  20. rasa/builder/exceptions.py +55 -0
  21. rasa/builder/guardrails/__init__.py +1 -0
  22. rasa/builder/guardrails/constants.py +3 -0
  23. rasa/builder/guardrails/exceptions.py +4 -0
  24. rasa/builder/guardrails/lakera.py +206 -0
  25. rasa/builder/guardrails/models.py +199 -0
  26. rasa/builder/guardrails/utils.py +305 -0
  27. rasa/builder/job_manager.py +87 -0
  28. rasa/builder/jobs.py +234 -0
  29. rasa/builder/llm_service.py +246 -0
  30. rasa/builder/logging_utils.py +209 -0
  31. rasa/builder/main.py +174 -0
  32. rasa/builder/models.py +197 -0
  33. rasa/builder/project_generator.py +450 -0
  34. rasa/builder/project_info.py +72 -0
  35. rasa/builder/scrape_rasa_docs.py +97 -0
  36. rasa/builder/service.py +1142 -0
  37. rasa/builder/shared/tracker_context.py +212 -0
  38. rasa/builder/skill_to_bot_prompt.jinja2 +164 -0
  39. rasa/builder/training_service.py +132 -0
  40. rasa/builder/validation_service.py +93 -0
  41. rasa/cli/arguments/default_arguments.py +0 -12
  42. rasa/cli/arguments/run.py +0 -2
  43. rasa/cli/dialogue_understanding_test.py +0 -4
  44. rasa/cli/e2e_test.py +0 -4
  45. rasa/cli/inspect.py +0 -3
  46. rasa/cli/llm_fine_tuning.py +0 -5
  47. rasa/cli/project_templates/basic/actions/action_api.py +15 -0
  48. rasa/cli/project_templates/basic/actions/action_human_handoff.py +44 -0
  49. rasa/cli/project_templates/basic/config.yml +23 -0
  50. rasa/cli/project_templates/basic/credentials.yml +34 -0
  51. rasa/cli/project_templates/basic/data/general/feedback.yml +20 -0
  52. rasa/cli/project_templates/basic/data/general/goodbye.yml +6 -0
  53. rasa/cli/project_templates/basic/data/general/hello.yml +7 -0
  54. rasa/cli/project_templates/basic/data/general/help.yml +6 -0
  55. rasa/cli/project_templates/basic/data/general/human_handoff.yml +16 -0
  56. rasa/cli/project_templates/basic/data/general/welcome.yml +9 -0
  57. rasa/cli/project_templates/basic/data/system/pattern_completed.yml +7 -0
  58. rasa/cli/project_templates/basic/data/system/pattern_correction.yml +7 -0
  59. rasa/cli/project_templates/basic/data/system/pattern_search.yml +8 -0
  60. rasa/cli/project_templates/basic/data/system/pattern_session_start.yml +8 -0
  61. rasa/cli/project_templates/basic/docs/rasa_assistant_qa.txt +65 -0
  62. rasa/cli/project_templates/basic/docs/template.txt +7 -0
  63. rasa/cli/project_templates/basic/domain/general/assistant_details.yml +12 -0
  64. rasa/cli/project_templates/basic/domain/general/bot_identity.yml +5 -0
  65. rasa/cli/project_templates/basic/domain/general/cannot_handle.yml +5 -0
  66. rasa/cli/project_templates/basic/domain/general/feedback.yml +28 -0
  67. rasa/cli/project_templates/basic/domain/general/goodbye.yml +7 -0
  68. rasa/cli/project_templates/basic/domain/general/help.yml +5 -0
  69. rasa/cli/project_templates/basic/domain/general/human_handoff_domain.yml +35 -0
  70. rasa/cli/project_templates/basic/domain/general/utils.yml +13 -0
  71. rasa/cli/project_templates/basic/domain/general/welcome.yml +7 -0
  72. rasa/cli/project_templates/basic/endpoints.yml +73 -0
  73. rasa/cli/project_templates/basic/prompts/rephraser_demo_personality_prompt.jinja2 +19 -0
  74. rasa/cli/project_templates/finance/actions/__init__.py +46 -0
  75. rasa/cli/project_templates/finance/actions/accounts/action_ask_account.py +47 -0
  76. rasa/cli/project_templates/finance/actions/accounts/action_check_balance.py +40 -0
  77. rasa/cli/project_templates/finance/actions/action_session_start.py +74 -0
  78. rasa/cli/project_templates/finance/actions/cards/action_ask_card.py +48 -0
  79. rasa/cli/project_templates/finance/actions/cards/action_check_card_existence.py +36 -0
  80. rasa/cli/project_templates/finance/actions/cards/action_update_card_status.py +54 -0
  81. rasa/cli/project_templates/finance/actions/database.py +277 -0
  82. rasa/cli/project_templates/finance/actions/transfers/__init__.py +0 -0
  83. rasa/cli/project_templates/finance/actions/transfers/action_add_payee.py +52 -0
  84. rasa/cli/project_templates/finance/actions/transfers/action_ask_account_from.py +51 -0
  85. rasa/cli/project_templates/finance/actions/transfers/action_check_payee_existence.py +40 -0
  86. rasa/cli/project_templates/finance/actions/transfers/action_check_sufficient_funds.py +40 -0
  87. rasa/cli/project_templates/finance/actions/transfers/action_list_payees.py +46 -0
  88. rasa/cli/project_templates/finance/actions/transfers/action_process_immediate_payment.py +18 -0
  89. rasa/cli/project_templates/finance/actions/transfers/action_remove_payee.py +49 -0
  90. rasa/cli/project_templates/finance/actions/transfers/action_schedule_payment.py +19 -0
  91. rasa/cli/project_templates/finance/actions/transfers/action_validate_payment_date.py +36 -0
  92. rasa/cli/project_templates/finance/config.yml +21 -0
  93. rasa/cli/project_templates/finance/credentials.yml +32 -0
  94. rasa/cli/project_templates/finance/csvs/accounts.csv +8 -0
  95. rasa/cli/project_templates/finance/csvs/advisors.csv +7 -0
  96. rasa/cli/project_templates/finance/csvs/appointments.csv +211 -0
  97. rasa/cli/project_templates/finance/csvs/branches.csv +10 -0
  98. rasa/cli/project_templates/finance/csvs/cards.csv +11 -0
  99. rasa/cli/project_templates/finance/csvs/payees.csv +11 -0
  100. rasa/cli/project_templates/finance/csvs/transactions.csv +71 -0
  101. rasa/cli/project_templates/finance/csvs/users.csv +4 -0
  102. rasa/cli/project_templates/finance/data/accounts/check_balance.yml +10 -0
  103. rasa/cli/project_templates/finance/data/cards/block_card.yml +66 -0
  104. rasa/cli/project_templates/finance/data/cards/select_card.yml +12 -0
  105. rasa/cli/project_templates/finance/data/general/bot_identity.yml +6 -0
  106. rasa/cli/project_templates/finance/data/general/feedback.yml +20 -0
  107. rasa/cli/project_templates/finance/data/general/goodbye.yml +6 -0
  108. rasa/cli/project_templates/finance/data/general/hello.yml +7 -0
  109. rasa/cli/project_templates/finance/data/general/help.yml +9 -0
  110. rasa/cli/project_templates/finance/data/general/human_handoff.yml +16 -0
  111. rasa/cli/project_templates/finance/data/general/welcome.yml +9 -0
  112. rasa/cli/project_templates/finance/data/system/patterns/pattern_chitchat.yml +5 -0
  113. rasa/cli/project_templates/finance/data/system/patterns/pattern_completed.yml +7 -0
  114. rasa/cli/project_templates/finance/data/system/patterns/pattern_correction.yml +7 -0
  115. rasa/cli/project_templates/finance/data/system/patterns/pattern_search.yml +8 -0
  116. rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +8 -0
  117. rasa/cli/project_templates/finance/data/system/source/accounts.json +51 -0
  118. rasa/cli/project_templates/finance/data/system/source/advisors.json +44 -0
  119. rasa/cli/project_templates/finance/data/system/source/appointments.json +1474 -0
  120. rasa/cli/project_templates/finance/data/system/source/branches.json +47 -0
  121. rasa/cli/project_templates/finance/data/system/source/cards.json +72 -0
  122. rasa/cli/project_templates/finance/data/system/source/payees.json +74 -0
  123. rasa/cli/project_templates/finance/data/system/source/transactions.json +492 -0
  124. rasa/cli/project_templates/finance/data/system/source/users.json +29 -0
  125. rasa/cli/project_templates/finance/data/transfers/add_payee.yml +29 -0
  126. rasa/cli/project_templates/finance/data/transfers/list_payees.yml +5 -0
  127. rasa/cli/project_templates/finance/data/transfers/remove_payee.yml +21 -0
  128. rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +67 -0
  129. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/consequences_of_blocking_card.txt +8 -0
  130. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/reasons_to_block_card.txt +8 -0
  131. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/recovering_from_card_fraud.txt +8 -0
  132. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/tips_for_card_security.txt +8 -0
  133. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/block_card/what_to_do_if_card_is_lost.txt +8 -0
  134. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/account_balance_security.txt +7 -0
  135. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/common_balance_inquiries.txt +8 -0
  136. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/methods_to_check_balance.txt +8 -0
  137. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/understanding_balance_updates.txt +8 -0
  138. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/check_balance/what_to_do_if_balance_is_incorrect.txt +8 -0
  139. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/benefits_of_authorised_payees.txt +8 -0
  140. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/common_issues_with_payees.txt +8 -0
  141. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/general_payee_information.txt +8 -0
  142. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/payee_management_tips.txt +8 -0
  143. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/manage_payees/understanding_payee_types.txt +8 -0
  144. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/common_transfer_errors.txt +8 -0
  145. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/fees_for_transfers.txt +8 -0
  146. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/general_transfer_information.txt +8 -0
  147. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/security_tips_for_transfers.txt +8 -0
  148. rasa/cli/project_templates/finance/docs/bank_of_rasa_faq/transfer_money/transfer_processing_times.txt +8 -0
  149. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part1.txt +50 -0
  150. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part10.txt +50 -0
  151. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part11.txt +48 -0
  152. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part12.txt +50 -0
  153. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part13.txt +50 -0
  154. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part14.txt +47 -0
  155. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part15.txt +50 -0
  156. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part16.txt +50 -0
  157. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part17.txt +47 -0
  158. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part18.txt +50 -0
  159. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part19.txt +50 -0
  160. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part2.txt +50 -0
  161. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part20.txt +47 -0
  162. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part21.txt +50 -0
  163. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part22.txt +50 -0
  164. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part23.txt +47 -0
  165. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part24.txt +50 -0
  166. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part25.txt +50 -0
  167. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part26.txt +47 -0
  168. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part27.txt +50 -0
  169. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part28.txt +50 -0
  170. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part29.txt +47 -0
  171. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part3.txt +47 -0
  172. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part30.txt +50 -0
  173. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part31.txt +50 -0
  174. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part32.txt +47 -0
  175. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part33.txt +50 -0
  176. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part34.txt +50 -0
  177. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part35.txt +47 -0
  178. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part36.txt +50 -0
  179. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part37.txt +50 -0
  180. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part38.txt +47 -0
  181. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part39.txt +50 -0
  182. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part4.txt +50 -0
  183. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part40.txt +50 -0
  184. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part41.txt +47 -0
  185. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part42.txt +50 -0
  186. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part43.txt +50 -0
  187. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part44.txt +47 -0
  188. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part45.txt +50 -0
  189. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part46.txt +50 -0
  190. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part47.txt +47 -0
  191. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part48.txt +50 -0
  192. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part49.txt +50 -0
  193. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part5.txt +50 -0
  194. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part50.txt +47 -0
  195. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part51.txt +50 -0
  196. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part52.txt +50 -0
  197. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part53.txt +47 -0
  198. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part54.txt +50 -0
  199. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part55.txt +50 -0
  200. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part56.txt +47 -0
  201. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part57.txt +50 -0
  202. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part58.txt +50 -0
  203. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part59.txt +47 -0
  204. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part6.txt +47 -0
  205. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part60.txt +50 -0
  206. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part61.txt +50 -0
  207. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part7.txt +50 -0
  208. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part8.txt +50 -0
  209. rasa/cli/project_templates/finance/docs/huggingface_alpaca_dataset/questions_part9.txt +47 -0
  210. rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +11 -0
  211. rasa/cli/project_templates/finance/domain/cards/block_card.yml +101 -0
  212. rasa/cli/project_templates/finance/domain/cards/select_card.yml +12 -0
  213. rasa/cli/project_templates/finance/domain/general/assistant_details.yml +12 -0
  214. rasa/cli/project_templates/finance/domain/general/bot_identity.yml +5 -0
  215. rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +5 -0
  216. rasa/cli/project_templates/finance/domain/general/defaults.yml +24 -0
  217. rasa/cli/project_templates/finance/domain/general/feedback.yml +28 -0
  218. rasa/cli/project_templates/finance/domain/general/goodbye.yml +7 -0
  219. rasa/cli/project_templates/finance/domain/general/help.yml +5 -0
  220. rasa/cli/project_templates/finance/domain/general/human_handoff.yml +30 -0
  221. rasa/cli/project_templates/finance/domain/general/utils.yml +13 -0
  222. rasa/cli/project_templates/finance/domain/general/welcome.yml +8 -0
  223. rasa/cli/project_templates/finance/domain/transfers/add_payee.yml +47 -0
  224. rasa/cli/project_templates/finance/domain/transfers/list_payees.yml +4 -0
  225. rasa/cli/project_templates/finance/domain/transfers/remove_payee.yml +16 -0
  226. rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +79 -0
  227. rasa/cli/project_templates/finance/endpoints.yml +63 -0
  228. rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +19 -0
  229. rasa/cli/project_templates/telco/actions/__init__.py +0 -0
  230. rasa/cli/project_templates/telco/actions/actions_billing.py +204 -0
  231. rasa/cli/project_templates/telco/actions/actions_get_data_from_db.py +48 -0
  232. rasa/cli/project_templates/telco/actions/actions_run_diagnostics.py +28 -0
  233. rasa/cli/project_templates/telco/actions/actions_session_start.py +18 -0
  234. rasa/cli/project_templates/telco/config.yml +25 -0
  235. rasa/cli/project_templates/telco/credentials.yml +33 -0
  236. rasa/cli/project_templates/telco/csvs/billing.csv +10 -0
  237. rasa/cli/project_templates/telco/csvs/customers.csv +5 -0
  238. rasa/cli/project_templates/telco/data/flows/flow_global.yml +5 -0
  239. rasa/cli/project_templates/telco/data/flows/flow_reboot_router.yml +8 -0
  240. rasa/cli/project_templates/telco/data/flows/flow_reset_router.yml +7 -0
  241. rasa/cli/project_templates/telco/data/flows/flow_solve_internet_issue.yml +73 -0
  242. rasa/cli/project_templates/telco/data/flows/flow_undertand_bill.yml +45 -0
  243. rasa/cli/project_templates/telco/data/patterns/pattern_completed.yml +7 -0
  244. rasa/cli/project_templates/telco/data/patterns/pattern_human_handoff.yml +6 -0
  245. rasa/cli/project_templates/telco/data/patterns/pattern_search.yml +7 -0
  246. rasa/cli/project_templates/telco/data/patterns/pattern_session_start.yml +9 -0
  247. rasa/cli/project_templates/telco/docs/reset_vs_rboot_router.txt +1 -0
  248. rasa/cli/project_templates/telco/docs/restart_router.txt +6 -0
  249. rasa/cli/project_templates/telco/docs/run_speed_test.txt +6 -0
  250. rasa/cli/project_templates/telco/domain/domain_global.yml +29 -0
  251. rasa/cli/project_templates/telco/domain/domain_patterns.yml +17 -0
  252. rasa/cli/project_templates/telco/domain/domain_reboot_router.yml +20 -0
  253. rasa/cli/project_templates/telco/domain/domain_reset_router.yml +11 -0
  254. rasa/cli/project_templates/telco/domain/domain_run_speed_test.yml +24 -0
  255. rasa/cli/project_templates/telco/domain/domain_solve_internet_issue.yml +74 -0
  256. rasa/cli/project_templates/telco/domain/domain_undertand_bill.yml +102 -0
  257. rasa/cli/project_templates/telco/endpoints.yml +60 -0
  258. rasa/{dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_gpt_4o_2024_11_20_template.jinja2 → cli/project_templates/telco/prompts/command-generator.jinja2} +3 -7
  259. rasa/cli/project_templates/telco/tests/e2e_results_failed.yml +62 -0
  260. rasa/cli/project_templates/telco/tests/e2e_results_passed.yml +130 -0
  261. rasa/cli/project_templates/telco/tests/e2e_test_cases/billing_test_cases.yml +68 -0
  262. rasa/cli/project_templates/telco/tests/e2e_test_cases/global_test_cases.yml +13 -0
  263. rasa/cli/project_templates/telco/tests/e2e_test_cases/internet_slow_test_case.yml +47 -0
  264. rasa/cli/project_templates/telco/tests/e2e_test_cases/out_of_scope_test_case.yml +21 -0
  265. rasa/cli/project_templates/telco/tests/e2e_test_cases/patterns_test_cases.yml +15 -0
  266. rasa/cli/project_templates/tutorial/config.yml +2 -1
  267. rasa/cli/run.py +0 -4
  268. rasa/cli/scaffold.py +46 -2
  269. rasa/cli/shell.py +0 -3
  270. rasa/constants.py +0 -6
  271. rasa/core/actions/action.py +2 -43
  272. rasa/core/agent.py +0 -16
  273. rasa/core/available_endpoints.py +0 -30
  274. rasa/core/channels/channel.py +4 -3
  275. rasa/core/channels/constants.py +3 -0
  276. rasa/core/channels/development_inspector.py +1 -1
  277. rasa/core/channels/inspector/dist/assets/{arc-2e78c586.js → arc-18042c22.js} +1 -1
  278. rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-806b712e.js → blockDiagram-38ab4fdb-fdd6bcfa.js} +1 -1
  279. rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-0745efa9.js → c4Diagram-3d4e48cf-f5ae6786.js} +1 -1
  280. rasa/core/channels/inspector/dist/assets/channel-b9b536fc.js +1 -0
  281. rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-7bd1082b.js → classDiagram-70f12bd4-81efba3e.js} +1 -1
  282. rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-d937ba49.js → classDiagram-v2-f2320105-3b6b6a92.js} +1 -1
  283. rasa/core/channels/inspector/dist/assets/clone-78d2ddcf.js +1 -0
  284. rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-a2a564ca.js → createText-2e5e7dd3-31422447.js} +1 -1
  285. rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-b5256940.js → edges-e0da2a9e-518a90db.js} +1 -1
  286. rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-e6883ad2.js → erDiagram-9861fffd-a6d3c25a.js} +1 -1
  287. rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-e576fc02.js → flowDb-956e92f1-e048c2be.js} +1 -1
  288. rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-2e298d01.js → flowDiagram-66a62f08-c7474c91.js} +1 -1
  289. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-8b09c060.js +1 -0
  290. rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-dd7b150a.js → flowchart-elk-definition-4a651766-cb4d8723.js} +1 -1
  291. rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-5b79575c.js → ganttDiagram-c361ad54-346636a2.js} +1 -1
  292. rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-3016f40a.js → gitGraphDiagram-72cf32ee-7c508874.js} +1 -1
  293. rasa/core/channels/inspector/dist/assets/{graph-3e19170f.js → graph-14702d8a.js} +1 -1
  294. rasa/core/channels/inspector/dist/assets/{index-3862675e-eb9c86de.js → index-3862675e-f18b534b.js} +1 -1
  295. rasa/core/channels/inspector/dist/assets/index-4d4bdf3a.js +1335 -0
  296. rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-b4280e4d.js → infoDiagram-f8f76790-64154b83.js} +1 -1
  297. rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-556091f8.js → journeyDiagram-49397b02-833a5f95.js} +1 -1
  298. rasa/core/channels/inspector/dist/assets/{layout-08436411.js → layout-5a3b2123.js} +1 -1
  299. rasa/core/channels/inspector/dist/assets/{line-683c4f3b.js → line-2272a8c7.js} +1 -1
  300. rasa/core/channels/inspector/dist/assets/{linear-cee6d791.js → linear-35bcf273.js} +1 -1
  301. rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-a0bf0b1a.js → mindmap-definition-fc14e90a-92dcb0e9.js} +1 -1
  302. rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-3730d5c4.js → pieDiagram-8a3498a8-94dbc900.js} +1 -1
  303. rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-12a20fed.js → quadrantDiagram-120e2f19-8b7a9c33.js} +1 -1
  304. rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-b9732102.js → requirementDiagram-deff3bca-6f7eab81.js} +1 -1
  305. rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-a2e72776.js → sankeyDiagram-04a897e0-f43e581d.js} +1 -1
  306. rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-8b7a76bb.js → sequenceDiagram-704730f1-0bcbefc3.js} +1 -1
  307. rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-e65853ac.js → stateDiagram-587899a1-b8a74083.js} +1 -1
  308. rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-6f58a44b.js → stateDiagram-v2-d93cdb3a-2070218f.js} +1 -1
  309. rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-df25b934.js → styles-6aaf32cf-f1d54e34.js} +1 -1
  310. rasa/core/channels/inspector/dist/assets/{styles-9a916d00-88357141.js → styles-9a916d00-980de489.js} +1 -1
  311. rasa/core/channels/inspector/dist/assets/{styles-c10674c1-d600174d.js → styles-c10674c1-3c03abde.js} +1 -1
  312. rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-4adc3e0b.js → svgDrawCommon-08f97a94-46ba068f.js} +1 -1
  313. rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-42816fa1.js → timeline-definition-85554ec2-901f5e3d.js} +1 -1
  314. rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-621eb66a.js → xychartDiagram-e933f94c-acbc628a.js} +1 -1
  315. rasa/core/channels/inspector/dist/index.html +2 -2
  316. rasa/core/channels/inspector/index.html +1 -1
  317. rasa/core/channels/inspector/src/App.tsx +10 -11
  318. rasa/core/channels/inspector/src/components/DialogueInformation.tsx +12 -3
  319. rasa/core/channels/inspector/src/components/DialogueStack.tsx +5 -7
  320. rasa/core/channels/inspector/src/helpers/formatters.ts +3 -24
  321. rasa/core/channels/inspector/src/theme/base/styles.ts +1 -19
  322. rasa/core/channels/inspector/src/types.ts +0 -4
  323. rasa/core/channels/socketio.py +212 -51
  324. rasa/core/channels/studio_chat.py +43 -23
  325. rasa/core/channels/voice_stream/voice_channel.py +5 -3
  326. rasa/core/constants.py +0 -4
  327. rasa/core/policies/enterprise_search_policy.py +6 -11
  328. rasa/core/policies/flow_policy.py +4 -4
  329. rasa/core/policies/flows/flow_executor.py +45 -415
  330. rasa/core/processor.py +1 -6
  331. rasa/core/run.py +14 -11
  332. rasa/core/utils.py +1 -21
  333. rasa/dialogue_understanding/commands/__init__.py +0 -8
  334. rasa/dialogue_understanding/commands/cancel_flow_command.py +4 -97
  335. rasa/dialogue_understanding/commands/chit_chat_answer_command.py +0 -11
  336. rasa/dialogue_understanding/commands/clarify_command.py +0 -10
  337. rasa/dialogue_understanding/commands/knowledge_answer_command.py +0 -11
  338. rasa/dialogue_understanding/commands/start_flow_command.py +8 -164
  339. rasa/dialogue_understanding/commands/utils.py +2 -6
  340. rasa/dialogue_understanding/generator/command_parser.py +0 -4
  341. rasa/dialogue_understanding/generator/flow_retrieval.py +10 -9
  342. rasa/dialogue_understanding/generator/llm_based_command_generator.py +12 -50
  343. rasa/dialogue_understanding/generator/single_step/compact_llm_command_generator.py +6 -7
  344. rasa/dialogue_understanding/generator/single_step/search_ready_llm_command_generator.py +6 -7
  345. rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +2 -41
  346. rasa/dialogue_understanding/patterns/continue_interrupted.py +1 -163
  347. rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +8 -52
  348. rasa/dialogue_understanding/processor/command_processor.py +15 -31
  349. rasa/dialogue_understanding/stack/dialogue_stack.py +2 -123
  350. rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +0 -57
  351. rasa/dialogue_understanding/stack/utils.py +2 -17
  352. rasa/dialogue_understanding_test/du_test_runner.py +2 -7
  353. rasa/e2e_test/e2e_test_runner.py +0 -5
  354. rasa/engine/storage/local_model_storage.py +45 -2
  355. rasa/model_manager/model_api.py +4 -5
  356. rasa/model_manager/runner_service.py +1 -1
  357. rasa/model_manager/socket_bridge.py +20 -14
  358. rasa/model_manager/trainer_service.py +12 -9
  359. rasa/model_manager/utils.py +1 -29
  360. rasa/server.py +0 -10
  361. rasa/shared/constants.py +0 -5
  362. rasa/shared/core/constants.py +1 -12
  363. rasa/shared/core/domain.py +58 -11
  364. rasa/shared/core/events.py +0 -319
  365. rasa/shared/core/flows/flow_step.py +7 -1
  366. rasa/shared/core/flows/flows_list.py +2 -2
  367. rasa/shared/core/flows/flows_yaml_schema.json +186 -112
  368. rasa/shared/core/flows/steps/call.py +5 -53
  369. rasa/shared/core/flows/validation.py +7 -46
  370. rasa/shared/core/flows/yaml_flows_io.py +16 -8
  371. rasa/shared/core/slots.py +4 -0
  372. rasa/shared/importers/importer.py +6 -0
  373. rasa/shared/importers/utils.py +77 -1
  374. rasa/shared/providers/_utils.py +60 -44
  375. rasa/shared/providers/embedding/default_litellm_embedding_client.py +2 -0
  376. rasa/shared/providers/llm/_base_litellm_client.py +7 -39
  377. rasa/shared/providers/llm/default_litellm_llm_client.py +2 -0
  378. rasa/shared/providers/llm/litellm_router_llm_client.py +4 -8
  379. rasa/shared/providers/llm/llm_client.py +3 -7
  380. rasa/shared/providers/llm/llm_response.py +0 -49
  381. rasa/shared/providers/llm/self_hosted_llm_client.py +4 -8
  382. rasa/shared/utils/llm.py +5 -28
  383. rasa/shared/utils/schemas/events.py +0 -42
  384. rasa/studio/upload.py +16 -47
  385. rasa/telemetry.py +97 -23
  386. rasa/tracing/instrumentation/instrumentation.py +2 -4
  387. rasa/utils/common.py +0 -79
  388. rasa/utils/io.py +27 -9
  389. rasa/utils/json_utils.py +6 -1
  390. rasa/utils/log_utils.py +5 -1
  391. rasa/utils/openapi.py +144 -0
  392. rasa/validator.py +7 -3
  393. rasa/version.py +1 -1
  394. {rasa_pro-3.14.0.dev3.dist-info → rasa_pro-3.14.0.dev5.dist-info}/METADATA +3 -3
  395. {rasa_pro-3.14.0.dev3.dist-info → rasa_pro-3.14.0.dev5.dist-info}/RECORD +405 -174
  396. rasa/agents/agent_factory.py +0 -122
  397. rasa/agents/agent_manager.py +0 -162
  398. rasa/agents/constants.py +0 -32
  399. rasa/agents/core/agent_protocol.py +0 -108
  400. rasa/agents/core/types.py +0 -70
  401. rasa/agents/exceptions.py +0 -8
  402. rasa/agents/protocol/__init__.py +0 -5
  403. rasa/agents/protocol/a2a/a2a_agent.py +0 -51
  404. rasa/agents/protocol/mcp/mcp_base_agent.py +0 -674
  405. rasa/agents/protocol/mcp/mcp_open_agent.py +0 -276
  406. rasa/agents/protocol/mcp/mcp_task_agent.py +0 -469
  407. rasa/agents/schemas/__init__.py +0 -12
  408. rasa/agents/schemas/agent_input.py +0 -38
  409. rasa/agents/schemas/agent_output.py +0 -26
  410. rasa/agents/schemas/agent_tool_result.py +0 -51
  411. rasa/agents/schemas/agent_tool_schema.py +0 -134
  412. rasa/agents/templates/mcp_open_agent_prompt_template.jinja2 +0 -15
  413. rasa/agents/templates/mcp_task_agent_prompt_template.jinja2 +0 -17
  414. rasa/agents/utils.py +0 -72
  415. rasa/core/available_agents.py +0 -196
  416. rasa/core/channels/inspector/dist/assets/channel-c436ca7c.js +0 -1
  417. rasa/core/channels/inspector/dist/assets/clone-50dd656b.js +0 -1
  418. rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-2b2aeaf8.js +0 -1
  419. rasa/core/channels/inspector/dist/assets/index-1bd9135e.js +0 -1353
  420. rasa/core/policies/flows/mcp_tool_executor.py +0 -277
  421. rasa/dialogue_understanding/commands/continue_agent_command.py +0 -91
  422. rasa/dialogue_understanding/commands/restart_agent_command.py +0 -162
  423. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +0 -61
  424. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_claude_3_5_sonnet_20240620_template.jinja2 +0 -81
  425. rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +0 -81
  426. rasa/shared/agents/utils.py +0 -35
  427. rasa/shared/utils/mcp/server_connection.py +0 -157
  428. /rasa/{agents → builder}/__init__.py +0 -0
  429. /rasa/{agents/core → builder/copilot}/__init__.py +0 -0
  430. /rasa/{agents/protocol/a2a → builder/copilot/prompts}/__init__.py +0 -0
  431. /rasa/{agents/protocol/mcp → builder/copilot/templated_messages}/__init__.py +0 -0
  432. /rasa/{agents/templates → builder/document_retrieval}/__init__.py +0 -0
  433. /rasa/{shared/agents → cli/project_templates/finance/actions/accounts}/__init__.py +0 -0
  434. /rasa/{shared/utils/mcp → cli/project_templates/finance/actions/cards}/__init__.py +0 -0
  435. {rasa_pro-3.14.0.dev3.dist-info → rasa_pro-3.14.0.dev5.dist-info}/NOTICE +0 -0
  436. {rasa_pro-3.14.0.dev3.dist-info → rasa_pro-3.14.0.dev5.dist-info}/WHEEL +0 -0
  437. {rasa_pro-3.14.0.dev3.dist-info → rasa_pro-3.14.0.dev5.dist-info}/entry_points.txt +0 -0
@@ -1,122 +0,0 @@
1
- from typing import Any, ClassVar, Dict, List, Type
2
-
3
- import structlog
4
-
5
- from rasa.agents.core.agent_protocol import AgentProtocol
6
- from rasa.agents.core.types import ProtocolType
7
- from rasa.agents.protocol import A2AAgent, MCPOpenAgent, MCPTaskAgent
8
- from rasa.core.available_agents import AgentConfig
9
- from rasa.shared.utils.common import class_from_module_path
10
-
11
- structlogger = structlog.get_logger()
12
-
13
-
14
- class AgentFactory:
15
- """Factory for creating agent instances based on the protocol type."""
16
-
17
- _protocols: ClassVar[Dict[ProtocolType, Type[AgentProtocol]]] = {
18
- ProtocolType.A2A: A2AAgent,
19
- ProtocolType.MCP_OPEN: MCPOpenAgent,
20
- ProtocolType.MCP_TASK: MCPTaskAgent,
21
- }
22
-
23
- @classmethod
24
- def create_client(
25
- cls, protocol_type: ProtocolType, config: AgentConfig
26
- ) -> AgentProtocol:
27
- """Create an agent instance based on the protocol type.
28
-
29
- Args:
30
- protocol_type: The protocol type of the agent.
31
- config: The configuration for the agent as an AgentConfig object.
32
-
33
- Returns:
34
- An instance of the agent.
35
- """
36
- # If the agent is a custom agent, we need to create it from the module
37
- if config.configuration and config.configuration.module:
38
- agent_class: Type[AgentProtocol] = class_from_module_path(
39
- config.configuration.module
40
- )
41
- if not cls._is_valid_custom_agent(agent_class, protocol_type):
42
- raise ValueError(
43
- f"Agent class {agent_class} does not subclass the "
44
- f"{cls._get_agent_class_from_protocol(protocol_type).__name__} "
45
- f"agent class."
46
- )
47
- structlogger.debug(
48
- "agent_factory.create_client.custom_agent",
49
- event_info=(
50
- f"Initializing `{agent_class.__name__}` for agent "
51
- f"`{config.agent.name}` with protocol `{protocol_type.value}`"
52
- ),
53
- agent_name=config.agent.name,
54
- protocol_type=protocol_type.value,
55
- agent_class=agent_class.__name__,
56
- )
57
- return agent_class.from_config(config)
58
-
59
- # If the agent is a built-in agent, we need to create it from the protocol class
60
- protocol_class = cls._get_agent_class_from_protocol(protocol_type)
61
- if protocol_class is None:
62
- raise ValueError(
63
- f"Unsupported protocol: {protocol_type}. "
64
- f"Supported protocols: {cls.get_supported_protocols()}"
65
- )
66
-
67
- structlogger.debug(
68
- "agent_factory.create_client",
69
- event_info=(
70
- f"Initializing `{protocol_class.__name__}` for agent "
71
- f"`{config.agent.name}` with protocol `{protocol_type.value}`"
72
- ),
73
- agent_name=config.agent.name,
74
- protocol_type=protocol_type.value,
75
- agent_class=protocol_class.__name__,
76
- )
77
- return protocol_class.from_config(config)
78
-
79
- @classmethod
80
- def register_protocol(
81
- cls, protocol_type: ProtocolType, protocol_class: Type[AgentProtocol]
82
- ) -> None:
83
- """Register new protocol implementation.
84
-
85
- Args:
86
- protocol_type: The protocol type of the agent.
87
- protocol_class: The class that implements the protocol.
88
- """
89
- if cls.is_protocol_supported(protocol_type):
90
- raise ValueError(f"Protocol {protocol_type} already registered.")
91
- cls._protocols[protocol_type] = protocol_class
92
-
93
- @classmethod
94
- def get_supported_protocols(cls) -> List[ProtocolType]:
95
- """Get all supported protocol types."""
96
- return list(cls._protocols.keys())
97
-
98
- @classmethod
99
- def _get_agent_class_from_protocol(
100
- cls, protocol_type: ProtocolType
101
- ) -> Type[AgentProtocol]:
102
- """Get the class that implements the protocol."""
103
- if not cls.is_protocol_supported(protocol_type):
104
- raise ValueError(
105
- f"Unsupported protocol: {protocol_type}. "
106
- f"Supported protocols: {cls.get_supported_protocols()}"
107
- )
108
- return cls._protocols[protocol_type]
109
-
110
- @classmethod
111
- def is_protocol_supported(cls, protocol_type: ProtocolType) -> bool:
112
- """Check if the protocol is supported."""
113
- return protocol_type in cls._protocols
114
-
115
- @classmethod
116
- def _is_valid_custom_agent(
117
- cls, agent_class: Any, protocol_type: ProtocolType
118
- ) -> bool:
119
- """Check if the agent class is valid."""
120
- return issubclass(
121
- agent_class, cls._get_agent_class_from_protocol(protocol_type)
122
- )
@@ -1,162 +0,0 @@
1
- from typing import ClassVar, Dict
2
-
3
- import structlog
4
-
5
- from rasa.agents.agent_factory import AgentFactory
6
- from rasa.agents.core.agent_protocol import AgentProtocol
7
- from rasa.agents.core.types import AgentIdentifier, ProtocolType
8
- from rasa.agents.schemas import AgentInput, AgentOutput
9
- from rasa.core.available_agents import AgentConfig
10
- from rasa.shared.agents.utils import make_agent_identifier
11
- from rasa.utils.singleton import Singleton
12
-
13
- structlogger = structlog.get_logger()
14
-
15
-
16
- class AgentManager(metaclass=Singleton):
17
- """High-level agent management with protocol abstraction"""
18
-
19
- agents: ClassVar[Dict[AgentIdentifier, AgentProtocol]] = {}
20
-
21
- def _add_agent(
22
- self, agent_identifier: AgentIdentifier, agent: AgentProtocol
23
- ) -> None:
24
- """Add an agent to the manager.
25
-
26
- Args:
27
- agent_identifier: The identifier of the agent.
28
- agent: The agent to add.
29
- """
30
- if agent_identifier in self.agents:
31
- raise ValueError(f"Agent {agent_identifier} already exists")
32
- self.agents[agent_identifier] = agent
33
-
34
- def _remove_agent(self, agent_identifier: AgentIdentifier) -> None:
35
- """Remove an agent from the manager.
36
-
37
- Args:
38
- agent_identifier: The identifier of the agent.
39
-
40
- Raises:
41
- ValueError: If the agent is not connected.
42
- """
43
- if agent_identifier not in self.agents:
44
- raise ValueError(f"Agent {agent_identifier} not connected")
45
- del self.agents[agent_identifier]
46
-
47
- def get_agent(self, agent_name: str, protocol_type: ProtocolType) -> AgentProtocol:
48
- """Retrieve connected agent instance.
49
-
50
- Args:
51
- agent_name: The name of the agent.
52
- protocol_type: The protocol type of the agent.
53
-
54
- Returns:
55
- The agent.
56
-
57
- Raises:
58
- ValueError: If the agent is not connected.
59
- """
60
- agent_identifier = make_agent_identifier(agent_name, protocol_type)
61
- if agent_identifier not in self.agents:
62
- raise ValueError(f"Agent {agent_identifier} not connected")
63
- return self.agents[agent_identifier]
64
-
65
- async def connect_agent(
66
- self, agent_name: str, protocol_type: ProtocolType, config: AgentConfig
67
- ) -> None:
68
- """Connect to agent using specified protocol, load the default resources
69
- and persist the agent to the manager in a ready-to-use state so that
70
- it can be used immediately to send messages to the agent.
71
-
72
- Args:
73
- agent_name: The name of the agent.
74
- protocol_type: The protocol type of the agent.
75
- config: The configuration for the agent as an AgentConfig object.
76
-
77
- Raises:
78
- ConnectionError: If the agent connection fails.
79
- """
80
- # Add the agent to the manager
81
- agent_identifier = make_agent_identifier(agent_name, protocol_type)
82
- try:
83
- # Create the agent client
84
- client = AgentFactory.create_client(protocol_type, config)
85
-
86
- # Connect the agent client
87
- await client.connect()
88
-
89
- self._add_agent(agent_identifier, client)
90
- structlogger.info(
91
- "agent_manager.connect_agent.success",
92
- agent_id=str(agent_identifier),
93
- agent_name=agent_name,
94
- event_info=f"Connected to agent - `{agent_identifier}` successfully",
95
- )
96
- except Exception as e:
97
- event_info = f"Failed to connect agent {agent_identifier}"
98
- structlogger.error(
99
- "agent_manager.connect_agent.failed_to_connect",
100
- agent_id=str(agent_identifier),
101
- event_info=event_info,
102
- )
103
- raise ConnectionError(e)
104
-
105
- async def run_agent(
106
- self, agent_name: str, protocol_type: ProtocolType, context: AgentInput
107
- ) -> AgentOutput:
108
- """Run an agent, send the input to the agent and return the agent response.
109
-
110
- Args:
111
- agent_name: The name of the agent.
112
- protocol_type: The protocol type of the agent.
113
- context: The input to the agent as an AgentInput object.
114
-
115
- Returns:
116
- The response from the agent.
117
- """
118
- agent = self.get_agent(agent_name, protocol_type)
119
-
120
- # Process input before sending
121
- processed_input = await agent.process_input(context)
122
-
123
- # Send message to agent
124
- output = await agent.run(processed_input)
125
-
126
- # Process output before returning
127
- processed_output = await agent.process_output(output)
128
-
129
- return processed_output
130
-
131
- async def disconnect_agent(
132
- self, agent_name: str, protocol_type: ProtocolType
133
- ) -> None:
134
- """Disconnect agent and remove from agent manager.
135
-
136
- Args:
137
- agent_name: The name of the agent.
138
- protocol_type: The protocol type of the agent.
139
-
140
- Raises:
141
- ValueError: If the agent is not connected.
142
- ConnectionError: If the agent disconnection fails.
143
- """
144
- agent_identifier = make_agent_identifier(agent_name, protocol_type)
145
- if agent_identifier not in self.agents:
146
- raise ValueError(f"Agent {agent_identifier} not connected")
147
- try:
148
- await self.get_agent(agent_name, protocol_type).disconnect()
149
- self._remove_agent(agent_identifier)
150
- structlogger.info(
151
- "agent_manager.disconnect_agent.success",
152
- agent_id=str(agent_identifier),
153
- event_info=f"Disconnected from agent - {agent_identifier} successfully",
154
- )
155
- except Exception as e:
156
- event_info = f"Failed to disconnect agent {agent_identifier}"
157
- structlogger.error(
158
- "agent_manager.disconnect_agent.failed_to_disconnect",
159
- agent_id=str(agent_identifier),
160
- event_info=event_info,
161
- )
162
- raise ConnectionError(e)
rasa/agents/constants.py DELETED
@@ -1,32 +0,0 @@
1
- # MCP Tool related constants (primary)
2
- TOOL_TYPE_KEY = "type"
3
- TOOL_NAME_KEY = "name"
4
- TOOL_DESCRIPTION_KEY = "description"
5
- TOOL_PARAMETERS_KEY = "parameters"
6
- TOOL_STRICT_KEY = "strict"
7
- TOOL_TYPE_FUNCTION_KEY = "function"
8
- TOOL_EXECUTOR_KEY = "tool_executor"
9
-
10
- # MCP Tool related constants (secondary)
11
- TOOL_ADDITIONAL_PROPERTIES_KEY = "additionalProperties"
12
- TOOL_PROPERTIES_KEY = "properties"
13
- TOOL_REQUIRED_KEY = "required"
14
- TOOL_PROPERTY_TYPE_KEY = "type"
15
-
16
- # MCP Message related constants
17
- KEY_ROLE = "role"
18
- KEY_CONTENT = "content"
19
-
20
- # MCP Tool call related constants
21
- KEY_TOOL_CALL_ID = "tool_call_id"
22
- KEY_FUNCTION = "function"
23
- KEY_NAME = "name"
24
- KEY_ARGUMENTS = "arguments"
25
- KEY_ID = "id"
26
- KEY_TYPE = "type"
27
- KEY_TOOL_CALLS = "tool_calls"
28
-
29
- # Agent output metadata related constants
30
- AGENT_METADATA_AGENT_RESPONSE_KEY = "agent_response"
31
- AGENT_METADATA_TOOL_RESULTS_KEY = "tool_results"
32
- AGENT_METADATA_EXIT_IF_KEY = "exit_if"
@@ -1,108 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from typing import TYPE_CHECKING, Protocol, runtime_checkable
4
-
5
- if TYPE_CHECKING:
6
- from rasa.agents.core.types import ProtocolType
7
- from rasa.agents.schemas.agent_input import AgentInput
8
- from rasa.agents.schemas.agent_output import AgentOutput
9
- from rasa.core.available_agents import AgentConfig
10
-
11
-
12
- @runtime_checkable
13
- class AgentProtocol(Protocol):
14
- """
15
- Python protocol for interfacing with agent clients that implement the
16
- agent communication protocols like MCP, A2A, ACP, etc.
17
- """
18
-
19
- @classmethod
20
- def from_config(cls, config: AgentConfig) -> AgentProtocol:
21
- """
22
- Initialize the Agent with the given configuration.
23
-
24
- This class method should be implemented to parse the given
25
- configuration and create an instance of an agent.
26
-
27
- Args:
28
- config: The configuration for the agent as an AgentConfig object.
29
-
30
- Returns:
31
- An instance of the agent.
32
- """
33
- ...
34
-
35
- @property
36
- def protocol_type(self) -> "ProtocolType":
37
- """
38
- Returns the protocol type of the agent.
39
-
40
- This property should be implemented to return the protocol type of the agent.
41
- This is used to determine the type of agent to create in the AgentFactory.
42
- """
43
- ...
44
-
45
- async def connect(self) -> None:
46
- """
47
- Establish connection to agent/server.
48
-
49
- This method should be implemented to establish a connection to the agent/server
50
- and load any necessary resources.
51
- """
52
- ...
53
-
54
- async def disconnect(self) -> None:
55
- """
56
- Close connection to agent/server.
57
-
58
- This method should be implemented to close the connection to the agent/server
59
- and release any necessary resources.
60
- """
61
- ...
62
-
63
- async def process_input(self, input: "AgentInput") -> "AgentInput":
64
- """
65
- Pre-process the input before sending it to the agent.
66
-
67
- This method should be implemented to pre-process the input before sending it
68
- to the agent. This can be used to add any necessary metadata or context to the
69
- input, or to filter the input.
70
-
71
- Args:
72
- input: The input to the agent as an AgentInput object.
73
-
74
- Returns:
75
- The processed input to the agent as an AgentInput object.
76
- """
77
- ...
78
-
79
- async def run(self, input: "AgentInput") -> "AgentOutput":
80
- """
81
- Send a message to Agent/server and return response.
82
-
83
- This method should be implemented to send a message to the agent/server and
84
- return the response in an AgentOutput object.
85
-
86
- Args:
87
- input: The input to the agent as an AgentInput object.
88
-
89
- Returns:
90
- The output from the agent as an AgentOutput object.
91
- """
92
- ...
93
-
94
- async def process_output(self, output: "AgentOutput") -> "AgentOutput":
95
- """
96
- Post-process the output before returning it to Rasa.
97
-
98
- This method should be implemented to post-process the output before returning
99
- it to Rasa. This can be used to add any necessary metadata or context to the
100
- output, or to filter the output.
101
-
102
- Args:
103
- output: The output from the agent as an AgentOutput object.
104
-
105
- Returns:
106
- The processed output from the agent as an AgentOutput object.
107
- """
108
- ...
rasa/agents/core/types.py DELETED
@@ -1,70 +0,0 @@
1
- """Fundamental types for the agent protocol."""
2
-
3
- from enum import Enum
4
-
5
-
6
- class ProtocolType(Enum):
7
- """An Enum class that represents the supported protocol types."""
8
-
9
- MCP_OPEN = "mcp_open"
10
- MCP_TASK = "mcp_task"
11
- A2A = "a2a"
12
-
13
-
14
- class AgentIdentifier:
15
- """Represents a unique agent identifier combining agent_id and protocol_type."""
16
-
17
- SEPARATOR = "::"
18
-
19
- def __init__(self, agent_name: str, protocol_type: ProtocolType):
20
- self.agent_name = agent_name
21
- self.protocol_type = protocol_type
22
-
23
- def __str__(self) -> str:
24
- return f"{self.agent_name}{self.SEPARATOR}{self.protocol_type.value}"
25
-
26
- def __repr__(self) -> str:
27
- return (
28
- f"AgentIdentifier(agent_name='{self.agent_name}', "
29
- f"protocol_type='{self.protocol_type.value}')"
30
- )
31
-
32
- def __eq__(self, other: object) -> bool:
33
- if isinstance(other, AgentIdentifier):
34
- return (
35
- self.agent_name == other.agent_name
36
- and self.protocol_type == other.protocol_type
37
- )
38
- elif isinstance(other, str):
39
- return str(self) == other
40
- return False
41
-
42
- def __hash__(self) -> int:
43
- return hash((self.agent_name, self.protocol_type))
44
-
45
- @classmethod
46
- def from_string(cls, identifier: str) -> "AgentIdentifier":
47
- """Create an AgentIdentifier from a string representation."""
48
- if cls.SEPARATOR not in identifier:
49
- raise ValueError(f"Invalid agent identifier format: {identifier}")
50
-
51
- parts = identifier.split(cls.SEPARATOR, 1)
52
- if len(parts) != 2:
53
- raise ValueError(f"Invalid agent identifier format: {identifier}")
54
-
55
- agent_name, protocol_str = parts
56
- try:
57
- protocol_type = ProtocolType(protocol_str)
58
- except ValueError:
59
- raise ValueError(f"Invalid protocol type: {protocol_str}")
60
-
61
- return cls(agent_name, protocol_type)
62
-
63
-
64
- class AgentStatus(Enum):
65
- """A Enum class that represents the status of the agent."""
66
-
67
- COMPLETED = "completed"
68
- INPUT_REQUIRED = "input_required"
69
- FATAL_ERROR = "fatal_error"
70
- RECOVERABLE_ERROR = "recoverable_error"
rasa/agents/exceptions.py DELETED
@@ -1,8 +0,0 @@
1
- from rasa.exceptions import RasaException
2
-
3
-
4
- class AgentNotFoundException(RasaException):
5
- """Raised when an agent is not found."""
6
-
7
- def __init__(self, agent_name: str):
8
- super().__init__(f"The agent {agent_name} is not defined.")
@@ -1,5 +0,0 @@
1
- from rasa.agents.protocol.a2a.a2a_agent import A2AAgent
2
- from rasa.agents.protocol.mcp.mcp_open_agent import MCPOpenAgent
3
- from rasa.agents.protocol.mcp.mcp_task_agent import MCPTaskAgent
4
-
5
- __all__ = ["A2AAgent", "MCPOpenAgent", "MCPTaskAgent"]
@@ -1,51 +0,0 @@
1
- from typing import Any, Dict, Optional
2
-
3
- import httpx
4
-
5
- from rasa.agents.core.agent_protocol import AgentProtocol
6
- from rasa.agents.core.types import ProtocolType
7
- from rasa.agents.schemas import AgentInput, AgentOutput
8
- from rasa.core.available_agents import AgentConfig
9
-
10
-
11
- class A2AAgent(AgentProtocol):
12
- """A2A client implementation"""
13
-
14
- def __init__(self, config: Dict[str, Any]) -> None:
15
- self.client: Optional[httpx.AsyncClient] = None
16
- self.agent_card = None
17
- self.url = None
18
- self.config = config
19
-
20
- @classmethod
21
- def from_config(cls, config: AgentConfig) -> AgentProtocol:
22
- """Initialize the A2A Agent with the given configuration."""
23
- return cls(config)
24
-
25
- @property
26
- def protocol_type(self) -> ProtocolType:
27
- return ProtocolType.A2A
28
-
29
- async def connect(self) -> None:
30
- # A2A-specific connection logic
31
- # Fetch agent card, establish HTTP connection
32
- return
33
-
34
- async def disconnect(self) -> None:
35
- # A2A-specific disconnection logic
36
- return
37
-
38
- async def process_input(self, input: AgentInput) -> AgentInput:
39
- """Pre-process the input before sending it to the agent."""
40
- # A2A-specific input processing logic
41
- return input
42
-
43
- async def run(self, input: AgentInput) -> AgentOutput:
44
- """Send a message to Agent/server and return response."""
45
- # A2A-specific message sending logic
46
- return AgentOutput()
47
-
48
- async def process_output(self, output: AgentOutput) -> AgentOutput:
49
- """Post-process the output before returning it to Rasa."""
50
- # A2A-specific output processing logic
51
- return output