rasa-pro 3.13.11__py3-none-any.whl → 3.14.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 rasa-pro might be problematic. Click here for more details.
- rasa/__main__.py +15 -3
- rasa/agents/__init__.py +0 -0
- rasa/agents/agent_factory.py +122 -0
- rasa/agents/agent_manager.py +213 -0
- rasa/agents/constants.py +43 -0
- rasa/agents/core/__init__.py +0 -0
- rasa/agents/core/agent_protocol.py +107 -0
- rasa/agents/core/types.py +81 -0
- rasa/agents/exceptions.py +38 -0
- rasa/agents/protocol/__init__.py +5 -0
- rasa/agents/protocol/a2a/__init__.py +0 -0
- rasa/agents/protocol/a2a/a2a_agent.py +889 -0
- rasa/agents/protocol/mcp/__init__.py +0 -0
- rasa/agents/protocol/mcp/mcp_base_agent.py +778 -0
- rasa/agents/protocol/mcp/mcp_open_agent.py +327 -0
- rasa/agents/protocol/mcp/mcp_task_agent.py +522 -0
- rasa/agents/schemas/__init__.py +13 -0
- rasa/agents/schemas/agent_input.py +38 -0
- rasa/agents/schemas/agent_output.py +26 -0
- rasa/agents/schemas/agent_tool_result.py +65 -0
- rasa/agents/schemas/agent_tool_schema.py +186 -0
- rasa/agents/templates/__init__.py +0 -0
- rasa/agents/templates/mcp_open_agent_prompt_template.jinja2 +20 -0
- rasa/agents/templates/mcp_task_agent_prompt_template.jinja2 +22 -0
- rasa/agents/utils.py +228 -0
- rasa/agents/validation.py +538 -0
- rasa/api.py +23 -9
- rasa/builder/README.md +120 -0
- rasa/builder/__init__.py +0 -0
- rasa/builder/auth.py +176 -0
- rasa/builder/config.py +96 -0
- rasa/builder/copilot/__init__.py +0 -0
- rasa/builder/copilot/constants.py +38 -0
- rasa/builder/copilot/copilot.py +562 -0
- rasa/builder/copilot/copilot_response_handler.py +522 -0
- rasa/builder/copilot/copilot_templated_message_provider.py +81 -0
- rasa/builder/copilot/exceptions.py +32 -0
- rasa/builder/copilot/models.py +690 -0
- rasa/builder/copilot/prompts/__init__.py +0 -0
- rasa/builder/copilot/prompts/copilot_system_prompt.jinja2 +787 -0
- rasa/builder/copilot/prompts/copilot_training_error_handler_prompt.jinja2 +53 -0
- rasa/builder/copilot/prompts/latest_user_message_context_prompt.jinja2 +91 -0
- rasa/builder/copilot/signing.py +305 -0
- rasa/builder/copilot/telemetry.py +234 -0
- rasa/builder/copilot/templated_messages/__init__.py +0 -0
- rasa/builder/copilot/templated_messages/copilot_internal_messages_templates.yml +16 -0
- rasa/builder/copilot/templated_messages/copilot_templated_responses.yml +41 -0
- rasa/builder/copilot/templated_messages/copilot_welcome_messages.yml +56 -0
- rasa/builder/document_retrieval/__init__.py +0 -0
- rasa/builder/document_retrieval/constants.py +15 -0
- rasa/builder/document_retrieval/inkeep-rag-response-schema.json +64 -0
- rasa/builder/document_retrieval/inkeep_document_retrieval.py +238 -0
- rasa/builder/document_retrieval/models.py +62 -0
- rasa/builder/download.py +140 -0
- rasa/builder/exceptions.py +91 -0
- rasa/builder/guardrails/__init__.py +1 -0
- rasa/builder/guardrails/clients.py +256 -0
- rasa/builder/guardrails/constants.py +12 -0
- rasa/builder/guardrails/exceptions.py +4 -0
- rasa/builder/guardrails/models.py +266 -0
- rasa/builder/guardrails/policy_checker.py +324 -0
- rasa/builder/guardrails/store.py +238 -0
- rasa/builder/guardrails/utils.py +94 -0
- rasa/builder/job_manager.py +87 -0
- rasa/builder/jobs.py +609 -0
- rasa/builder/llm_service.py +273 -0
- rasa/builder/logging_utils.py +265 -0
- rasa/builder/main.py +234 -0
- rasa/builder/models.py +229 -0
- rasa/builder/project_generator.py +463 -0
- rasa/builder/project_info.py +72 -0
- rasa/builder/service.py +1367 -0
- rasa/builder/shared/tracker_context.py +212 -0
- rasa/builder/skill_to_bot_prompt.jinja2 +164 -0
- rasa/builder/template_cache.py +69 -0
- rasa/builder/training_service.py +188 -0
- rasa/builder/validation_service.py +101 -0
- rasa/cli/arguments/data.py +9 -0
- rasa/cli/arguments/default_arguments.py +12 -0
- rasa/cli/arguments/run.py +2 -0
- rasa/cli/arguments/train.py +2 -0
- rasa/cli/data.py +78 -10
- rasa/cli/dialogue_understanding_test.py +11 -7
- rasa/cli/e2e_test.py +10 -6
- rasa/cli/evaluate.py +4 -2
- rasa/cli/export.py +5 -2
- rasa/cli/inspect.py +9 -4
- rasa/cli/interactive.py +8 -4
- rasa/cli/llm_fine_tuning.py +12 -6
- rasa/cli/project_templates/basic/README.md +23 -0
- rasa/cli/project_templates/basic/actions/__init__ +0 -0
- rasa/cli/project_templates/basic/actions/action_human_handoff.py +40 -0
- rasa/cli/project_templates/basic/actions/actions.md +10 -0
- rasa/cli/project_templates/basic/config.yml +29 -0
- rasa/cli/project_templates/basic/credentials.yml +33 -0
- rasa/cli/project_templates/basic/data/data.md +8 -0
- rasa/cli/project_templates/basic/data/general/feedback.yml +21 -0
- rasa/cli/project_templates/basic/data/general/goodbye.yml +6 -0
- rasa/cli/project_templates/basic/data/general/hello.yml +6 -0
- rasa/cli/project_templates/basic/data/general/help.yml +6 -0
- rasa/cli/project_templates/basic/data/general/human_handoff.yml +16 -0
- rasa/cli/project_templates/basic/data/general/show_faqs.yml +6 -0
- rasa/cli/project_templates/basic/data/system/patterns/pattern_cannot_handle.yml +7 -0
- rasa/cli/project_templates/basic/data/system/patterns/pattern_completed.yml +7 -0
- rasa/cli/project_templates/basic/data/system/patterns/pattern_correction.yml +7 -0
- rasa/cli/project_templates/basic/data/system/patterns/pattern_search.yml +8 -0
- rasa/cli/project_templates/basic/data/system/patterns/pattern_session_start.yml +8 -0
- rasa/cli/project_templates/basic/docs/docs.md +5 -0
- rasa/cli/project_templates/basic/docs/template.txt +28 -0
- rasa/cli/project_templates/basic/domain/domain.md +11 -0
- rasa/cli/project_templates/basic/domain/general/feedback.yml +25 -0
- rasa/cli/project_templates/basic/domain/general/goodbye.yml +9 -0
- rasa/cli/project_templates/basic/domain/general/hello.yml +7 -0
- rasa/cli/project_templates/basic/domain/general/help.yml +21 -0
- rasa/cli/project_templates/basic/domain/general/human_handoff.yml +32 -0
- rasa/cli/project_templates/basic/domain/general/show_faqs.yml +14 -0
- rasa/cli/project_templates/basic/domain/system/patterns/pattern_cannot_handle.yml +5 -0
- rasa/cli/project_templates/basic/domain/system/patterns/pattern_session_start.yml +19 -0
- rasa/cli/project_templates/basic/endpoints.yml +67 -0
- rasa/cli/project_templates/basic/prompts/rephraser_demo_personality_prompt.jinja2 +38 -0
- rasa/cli/project_templates/basic/tests/e2e_test_cases/without_stub/general/feedback.yml +46 -0
- rasa/cli/project_templates/basic/tests/e2e_test_cases/without_stub/general/goodbye.yml +9 -0
- rasa/cli/project_templates/basic/tests/e2e_test_cases/without_stub/general/hello.yml +8 -0
- rasa/cli/project_templates/basic/tests/e2e_test_cases/without_stub/general/help.yml +8 -0
- rasa/cli/project_templates/basic/tests/e2e_test_cases/without_stub/general/human_handoff.yml +41 -0
- rasa/cli/project_templates/basic/tests/e2e_test_cases/without_stub/general/patterns.yml +32 -0
- rasa/cli/project_templates/basic/tests/e2e_test_cases/without_stub/general/show_faqs.yml +8 -0
- rasa/cli/project_templates/default/config.yml +4 -0
- rasa/cli/project_templates/default/endpoints.yml +4 -0
- rasa/cli/project_templates/defaults.py +1 -0
- rasa/cli/project_templates/finance/README.md +26 -0
- rasa/cli/project_templates/finance/actions/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/accounts/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/accounts/check_balance.py +18 -0
- rasa/cli/project_templates/finance/actions/actions.md +15 -0
- rasa/cli/project_templates/finance/actions/cards/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/cards/check_that_card_exists.py +21 -0
- rasa/cli/project_templates/finance/actions/cards/list_cards.py +22 -0
- rasa/cli/project_templates/finance/actions/contacts/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/contacts/add_contact.py +30 -0
- rasa/cli/project_templates/finance/actions/contacts/list_contacts.py +22 -0
- rasa/cli/project_templates/finance/actions/contacts/remove_contact.py +35 -0
- rasa/cli/project_templates/finance/actions/db.py +117 -0
- rasa/cli/project_templates/finance/actions/general/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/general/action_human_handoff.py +49 -0
- rasa/cli/project_templates/finance/actions/transfers/__init__.py +0 -0
- rasa/cli/project_templates/finance/actions/transfers/check_transfer_funds.py +27 -0
- rasa/cli/project_templates/finance/actions/transfers/check_transfer_limit.py +36 -0
- rasa/cli/project_templates/finance/actions/transfers/execute_recurrent_payment.py +20 -0
- rasa/cli/project_templates/finance/actions/transfers/execute_transfer.py +45 -0
- rasa/cli/project_templates/finance/actions/transfers/list_transactions.py +32 -0
- rasa/cli/project_templates/finance/config.yml +29 -0
- rasa/cli/project_templates/finance/credentials.yml +33 -0
- rasa/cli/project_templates/finance/data/accounts/check_balance.yml +9 -0
- rasa/cli/project_templates/finance/data/accounts/download_statements.yml +26 -0
- rasa/cli/project_templates/finance/data/bills/bill_pay_reminder.yml +25 -0
- rasa/cli/project_templates/finance/data/cards/activate_card.yml +35 -0
- rasa/cli/project_templates/finance/data/cards/block_card.yml +45 -0
- rasa/cli/project_templates/finance/data/cards/list_cards.yml +14 -0
- rasa/cli/project_templates/finance/data/cards/replace_card.yml +16 -0
- rasa/cli/project_templates/finance/data/cards/replace_eligible_card.yml +29 -0
- rasa/cli/project_templates/finance/data/contacts/add_contact.yml +33 -0
- rasa/cli/project_templates/finance/data/contacts/list_contacts.yml +14 -0
- rasa/cli/project_templates/finance/data/contacts/remove_contact.yml +31 -0
- rasa/cli/project_templates/finance/data/data.md +14 -0
- rasa/cli/project_templates/finance/data/general/bot_challenge.yml +6 -0
- rasa/cli/project_templates/finance/data/general/feedback.yml +20 -0
- rasa/cli/project_templates/finance/data/general/goodbye.yml +6 -0
- rasa/cli/project_templates/finance/data/general/hello.yml +6 -0
- rasa/cli/project_templates/finance/data/general/help.yml +9 -0
- rasa/cli/project_templates/finance/data/general/human_handoff.yml +16 -0
- rasa/cli/project_templates/finance/data/general/welcome.yml +9 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_completed.yml +7 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_correction.yml +7 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_search.yml +8 -0
- rasa/cli/project_templates/finance/data/system/patterns/pattern_session_start.yml +8 -0
- rasa/cli/project_templates/finance/data/transfers/check_transfer_limit.yml +18 -0
- rasa/cli/project_templates/finance/data/transfers/list_transactions.yml +46 -0
- rasa/cli/project_templates/finance/data/transfers/move_money_between_accounts.yml +51 -0
- rasa/cli/project_templates/finance/data/transfers/transfer_money.yml +34 -0
- rasa/cli/project_templates/finance/data/transfers/transfer_money_to_a_third_party.yml +175 -0
- rasa/cli/project_templates/finance/db/cards.json +18 -0
- rasa/cli/project_templates/finance/db/contacts.json +10 -0
- rasa/cli/project_templates/finance/db/my_account.json +6 -0
- rasa/cli/project_templates/finance/db/transactions.json +22 -0
- rasa/cli/project_templates/finance/docs/docs.md +8 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/budgeting_analytics.txt +22 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/multi_currency_accounts.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/account_features/premium_benefits.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/contactless_limits.txt +16 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/freeze_unfreeze_card.txt +16 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/card_management/lost_stolen_card.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/instant_payments.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/money_transfers/international_transfers.txt +19 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/fraud_protection.txt +22 -0
- rasa/cli/project_templates/finance/docs/fenlo_banking_faq/security_fraud/secure_payments.txt +22 -0
- rasa/cli/project_templates/finance/domain/accounts/check_balance.yml +15 -0
- rasa/cli/project_templates/finance/domain/accounts/download_statements.yml +40 -0
- rasa/cli/project_templates/finance/domain/bills/bill_pay_reminder.yml +49 -0
- rasa/cli/project_templates/finance/domain/cards/activate_card.yml +24 -0
- rasa/cli/project_templates/finance/domain/cards/block_card.yml +44 -0
- rasa/cli/project_templates/finance/domain/cards/list_cards.yml +16 -0
- rasa/cli/project_templates/finance/domain/cards/replace_card.yml +43 -0
- rasa/cli/project_templates/finance/domain/cards/shared.yml +15 -0
- rasa/cli/project_templates/finance/domain/contacts/add_contact.yml +37 -0
- rasa/cli/project_templates/finance/domain/contacts/list_contacts.yml +16 -0
- rasa/cli/project_templates/finance/domain/contacts/remove_contact.yml +32 -0
- rasa/cli/project_templates/finance/domain/domain.md +18 -0
- rasa/cli/project_templates/finance/domain/general/_shared.yml +39 -0
- rasa/cli/project_templates/finance/domain/general/bot_challenge.yml +4 -0
- rasa/cli/project_templates/finance/domain/general/cannot_handle.yml +8 -0
- rasa/cli/project_templates/finance/domain/general/feedback.yml +25 -0
- rasa/cli/project_templates/finance/domain/general/goodbye.yml +7 -0
- rasa/cli/project_templates/finance/domain/general/help.yml +0 -0
- rasa/cli/project_templates/finance/domain/general/human_handoff.yml +31 -0
- rasa/cli/project_templates/finance/domain/general/welcome.yml +39 -0
- rasa/cli/project_templates/finance/domain/transfers/check_transfer_limit.yml +32 -0
- rasa/cli/project_templates/finance/domain/transfers/list_transactions.yml +44 -0
- rasa/cli/project_templates/finance/domain/transfers/shared.yml +17 -0
- rasa/cli/project_templates/finance/domain/transfers/transfer_money.yml +221 -0
- rasa/cli/project_templates/finance/endpoints.yml +67 -0
- rasa/cli/project_templates/finance/prompts/rephraser_demo_personality_prompt.jinja2 +38 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/accounts/check_balance.yml +9 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/accounts/download_statements.yml +43 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/cards/block_card.yml +55 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/general/bot_challenge.yml +8 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/general/feedback.yml +46 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/general/goodbye.yml +9 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/general/hello.yml +8 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/general/human_handoff.yml +35 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/general/patterns.yml +22 -0
- rasa/cli/project_templates/finance/tests/e2e_test_cases/without_stub/transfers/transfer_money.yml +56 -0
- rasa/cli/project_templates/telco/README.md +25 -0
- rasa/cli/project_templates/telco/actions/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/actions.md +12 -0
- rasa/cli/project_templates/telco/actions/billing/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/billing/actions_billing.py +204 -0
- rasa/cli/project_templates/telco/actions/general/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/general/action_human_handoff.py +49 -0
- rasa/cli/project_templates/telco/actions/network/__init__.py +0 -0
- rasa/cli/project_templates/telco/actions/network/actions_get_data_from_db.py +48 -0
- rasa/cli/project_templates/telco/actions/network/actions_run_diagnostics.py +28 -0
- rasa/cli/project_templates/telco/actions/network/actions_session_start.py +18 -0
- rasa/cli/project_templates/telco/config.yml +29 -0
- rasa/cli/project_templates/telco/credentials.yml +33 -0
- rasa/cli/project_templates/telco/csvs/billing.csv +19 -0
- rasa/cli/project_templates/telco/csvs/customers.csv +5 -0
- rasa/cli/project_templates/telco/data/billing/flow_understand_bill.yml +45 -0
- rasa/cli/project_templates/telco/data/data.md +11 -0
- rasa/cli/project_templates/telco/data/general/bot_challenge.yml +6 -0
- rasa/cli/project_templates/telco/data/general/feedback.yml +20 -0
- rasa/cli/project_templates/telco/data/general/goodbye.yml +6 -0
- rasa/cli/project_templates/telco/data/general/hello.yml +6 -0
- rasa/cli/project_templates/telco/data/general/human_handoff.yml +16 -0
- rasa/cli/project_templates/telco/data/general/patterns.yml +30 -0
- rasa/cli/project_templates/telco/data/network/flow_reboot_router.yml +8 -0
- rasa/cli/project_templates/telco/data/network/flow_reset_router.yml +7 -0
- rasa/cli/project_templates/telco/data/network/flow_solve_internet_issue.yml +73 -0
- rasa/cli/project_templates/telco/docs/docs.md +8 -0
- rasa/cli/project_templates/telco/docs/network/reset_vs_rboot_router.txt +1 -0
- rasa/cli/project_templates/telco/docs/network/restart_router.txt +6 -0
- rasa/cli/project_templates/telco/docs/network/run_speed_test.txt +6 -0
- rasa/cli/project_templates/telco/domain/billing/understand_bill.yml +102 -0
- rasa/cli/project_templates/telco/domain/domain.md +13 -0
- rasa/cli/project_templates/telco/domain/general/bot_challenge.yml +4 -0
- rasa/cli/project_templates/telco/domain/general/feedback.yml +25 -0
- rasa/cli/project_templates/telco/domain/general/goodbye.yml +7 -0
- rasa/cli/project_templates/telco/domain/general/hello.yml +5 -0
- rasa/cli/project_templates/telco/domain/general/human_handoff.yml +26 -0
- rasa/cli/project_templates/telco/domain/general/patterns.yml +33 -0
- rasa/cli/project_templates/telco/domain/network/reboot_router.yml +21 -0
- rasa/cli/project_templates/telco/domain/network/reset_router.yml +12 -0
- rasa/cli/project_templates/telco/domain/network/run_speed_test.yml +25 -0
- rasa/cli/project_templates/telco/domain/network/solve_internet_issue.yml +74 -0
- rasa/cli/project_templates/telco/domain/shared.yml +129 -0
- rasa/cli/project_templates/telco/endpoints.yml +67 -0
- rasa/cli/project_templates/telco/prompts/rephraser_demo_personality_prompt.jinja2 +40 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/with_stub/network/solve_internet_not_slow.yml +33 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/with_stub/network/solve_internet_slow.yml +47 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/without_stub/billing/understand_bill.yml +67 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/without_stub/general/bot_challenge.yml +8 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/without_stub/general/feedback.yml +46 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/without_stub/general/goodbye.yml +9 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/without_stub/general/hello.yml +8 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/without_stub/general/human_handoff.yml +35 -0
- rasa/cli/project_templates/telco/tests/e2e_test_cases/without_stub/general/patterns.yml +23 -0
- rasa/cli/project_templates/tutorial/config.yml +2 -1
- rasa/cli/project_templates/tutorial/credentials.yml +10 -0
- rasa/cli/run.py +8 -10
- rasa/cli/scaffold.py +50 -6
- rasa/cli/shell.py +10 -5
- rasa/cli/studio/studio.py +1 -1
- rasa/cli/test.py +34 -14
- rasa/cli/train.py +44 -30
- rasa/cli/utils.py +1 -393
- rasa/cli/validation/__init__.py +0 -0
- rasa/cli/validation/bot_config.py +232 -0
- rasa/cli/validation/config_path_validation.py +257 -0
- rasa/cli/x.py +8 -4
- rasa/constants.py +7 -1
- rasa/core/actions/action.py +53 -13
- rasa/core/actions/action_exceptions.py +1 -1
- rasa/core/actions/action_run_slot_rejections.py +1 -1
- rasa/core/actions/direct_custom_actions_executor.py +9 -2
- rasa/core/actions/grpc_custom_action_executor.py +1 -1
- rasa/core/agent.py +22 -2
- rasa/core/available_agents.py +239 -0
- rasa/core/brokers/broker.py +1 -1
- rasa/core/brokers/kafka.py +56 -8
- rasa/core/channels/__init__.py +82 -35
- rasa/core/channels/channel.py +4 -3
- rasa/core/channels/constants.py +3 -0
- rasa/core/channels/development_inspector.py +29 -16
- rasa/core/channels/hangouts.py +2 -2
- rasa/core/channels/inspector/README.md +25 -13
- rasa/core/channels/inspector/dist/assets/{arc-0b11fe30.js → arc-6177260a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{blockDiagram-38ab4fdb-9eef30a7.js → blockDiagram-38ab4fdb-b054f038.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{c4Diagram-3d4e48cf-03e94f28.js → c4Diagram-3d4e48cf-f25427d5.js} +1 -1
- rasa/core/channels/inspector/dist/assets/channel-bf9cbb34.js +1 -0
- rasa/core/channels/inspector/dist/assets/{classDiagram-70f12bd4-95c09eba.js → classDiagram-70f12bd4-c7a2af53.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{classDiagram-v2-f2320105-38e8446c.js → classDiagram-v2-f2320105-58db65c0.js} +1 -1
- rasa/core/channels/inspector/dist/assets/clone-8f9083bb.js +1 -0
- rasa/core/channels/inspector/dist/assets/{createText-2e5e7dd3-57dc3038.js → createText-2e5e7dd3-088372e2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{edges-e0da2a9e-4bac0545.js → edges-e0da2a9e-58676240.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{erDiagram-9861fffd-81795c90.js → erDiagram-9861fffd-0c14d7c6.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDb-956e92f1-89489ae6.js → flowDb-956e92f1-ea63f85c.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{flowDiagram-66a62f08-cd152627.js → flowDiagram-66a62f08-a2af48cd.js} +1 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-9ecd5b59.js +1 -0
- rasa/core/channels/inspector/dist/assets/{flowchart-elk-definition-4a651766-3da369bc.js → flowchart-elk-definition-4a651766-6937abe7.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{ganttDiagram-c361ad54-85ec16f8.js → ganttDiagram-c361ad54-7473f357.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{gitGraphDiagram-72cf32ee-495bc140.js → gitGraphDiagram-72cf32ee-d0c9405e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{graph-1ec4d266.js → graph-0a6f8466.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{index-3862675e-0a0e97c9.js → index-3862675e-7610671a.js} +1 -1
- rasa/core/channels/inspector/dist/assets/index-74e01d94.js +1354 -0
- rasa/core/channels/inspector/dist/assets/{infoDiagram-f8f76790-4d54bcde.js → infoDiagram-f8f76790-be397dc7.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{journeyDiagram-49397b02-dc097114.js → journeyDiagram-49397b02-4cefbf62.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{layout-1a08981e.js → layout-e7fbc2bf.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{line-95f7f1d3.js → line-a8aa457c.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{linear-97e69543.js → linear-3351e0d2.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{mindmap-definition-fc14e90a-8c71ff03.js → mindmap-definition-fc14e90a-b8cbf605.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{pieDiagram-8a3498a8-f14c71c7.js → pieDiagram-8a3498a8-f327f774.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{quadrantDiagram-120e2f19-f1d3c9ff.js → quadrantDiagram-120e2f19-2854c591.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{requirementDiagram-deff3bca-bfa2412f.js → requirementDiagram-deff3bca-964985d5.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sankeyDiagram-04a897e0-53f2c97b.js → sankeyDiagram-04a897e0-edeb4f33.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{sequenceDiagram-704730f1-319d7c0e.js → sequenceDiagram-704730f1-fcf70125.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-587899a1-76a09418.js → stateDiagram-587899a1-0e770395.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{stateDiagram-v2-d93cdb3a-a67f15d4.js → stateDiagram-v2-d93cdb3a-af8dcd22.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-6aaf32cf-0654e7c3.js → styles-6aaf32cf-36a9e70d.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-9a916d00-1394bb9d.js → styles-9a916d00-884a8b5b.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{styles-c10674c1-e4c5bdae.js → styles-c10674c1-dc097813.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{svgDrawCommon-08f97a94-50957104.js → svgDrawCommon-08f97a94-5a2c7eed.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{timeline-definition-85554ec2-b0885a6a.js → timeline-definition-85554ec2-e89c4f6e.js} +1 -1
- rasa/core/channels/inspector/dist/assets/{xychartDiagram-e933f94c-79e6541a.js → xychartDiagram-e933f94c-afb6fe56.js} +1 -1
- rasa/core/channels/inspector/dist/index.html +1 -1
- rasa/core/channels/inspector/package.json +18 -18
- rasa/core/channels/inspector/src/App.tsx +56 -12
- rasa/core/channels/inspector/src/components/DiagramFlow.tsx +1 -1
- rasa/core/channels/inspector/src/components/DialogueAgentStack.tsx +108 -0
- rasa/core/channels/inspector/src/components/{DialogueStack.tsx → DialogueHistoryStack.tsx} +4 -2
- rasa/core/channels/inspector/src/components/DialogueInformation.tsx +20 -3
- rasa/core/channels/inspector/src/components/LatencyDisplay.tsx +296 -0
- rasa/core/channels/inspector/src/components/LoadingSpinner.tsx +6 -2
- rasa/core/channels/inspector/src/helpers/audio/audiostream.ts +26 -4
- rasa/core/channels/inspector/src/helpers/formatters.test.ts +4 -0
- rasa/core/channels/inspector/src/helpers/formatters.ts +24 -3
- rasa/core/channels/inspector/src/helpers/utils.test.ts +127 -0
- rasa/core/channels/inspector/src/helpers/utils.ts +66 -1
- rasa/core/channels/inspector/src/theme/base/styles.ts +19 -1
- rasa/core/channels/inspector/src/types.ts +55 -1
- rasa/core/channels/inspector/yarn.lock +336 -189
- rasa/core/channels/socketio.py +212 -51
- rasa/core/channels/studio_chat.py +82 -32
- rasa/core/channels/telegram.py +4 -9
- rasa/core/channels/voice_ready/twilio_voice.py +1 -1
- rasa/core/channels/voice_stream/asr/asr_event.py +1 -1
- rasa/core/channels/voice_stream/asr/azure.py +6 -3
- rasa/core/channels/voice_stream/asr/deepgram.py +1 -1
- rasa/core/channels/voice_stream/audiocodes.py +11 -6
- rasa/core/channels/voice_stream/browser_audio.py +91 -4
- rasa/core/channels/voice_stream/call_state.py +13 -2
- rasa/core/channels/voice_stream/genesys.py +19 -15
- rasa/core/channels/voice_stream/jambonz.py +22 -12
- rasa/core/channels/voice_stream/tts/deepgram.py +140 -0
- rasa/core/channels/voice_stream/twilio_media_streams.py +35 -14
- rasa/core/channels/voice_stream/util.py +11 -1
- rasa/core/channels/voice_stream/voice_channel.py +170 -32
- rasa/core/concurrent_lock_store.py +83 -16
- rasa/core/config/__init__.py +0 -0
- rasa/core/{available_endpoints.py → config/available_endpoints.py} +56 -18
- rasa/core/config/configuration.py +295 -0
- rasa/core/config/credentials.py +19 -0
- rasa/core/config/message_procesing_config.py +34 -0
- rasa/core/constants.py +17 -0
- rasa/core/exceptions.py +1 -1
- rasa/core/featurizers/tracker_featurizers.py +3 -2
- rasa/core/iam_credentials_providers/__init__.py +0 -0
- rasa/core/iam_credentials_providers/aws_iam_credentials_providers.py +291 -0
- rasa/core/iam_credentials_providers/credentials_provider_protocol.py +91 -0
- rasa/core/lock_store.py +50 -10
- rasa/core/nlg/contextual_response_rephraser.py +5 -0
- rasa/core/nlg/generator.py +1 -1
- rasa/core/persistor.py +7 -7
- rasa/core/policies/enterprise_search_policy.py +9 -10
- rasa/core/policies/flow_policy.py +4 -4
- rasa/core/policies/flows/agent_executor.py +720 -0
- rasa/core/policies/flows/flow_exceptions.py +5 -2
- rasa/core/policies/flows/flow_executor.py +146 -77
- rasa/core/policies/flows/mcp_tool_executor.py +304 -0
- rasa/core/policies/intentless_policy.py +1 -1
- rasa/core/policies/rule_policy.py +1 -1
- rasa/core/policies/ted_policy.py +20 -12
- rasa/core/policies/unexpected_intent_policy.py +6 -0
- rasa/core/processor.py +100 -44
- rasa/core/redis_connection_factory.py +474 -0
- rasa/core/run.py +49 -10
- rasa/core/test.py +4 -0
- rasa/core/tracker_stores/redis_tracker_store.py +36 -14
- rasa/core/tracker_stores/sql_tracker_store.py +59 -1
- rasa/core/tracker_stores/tracker_store.py +3 -7
- rasa/core/train.py +1 -1
- rasa/core/training/interactive.py +20 -18
- rasa/core/training/story_conflict.py +5 -5
- rasa/core/utils.py +22 -23
- rasa/dialogue_understanding/commands/__init__.py +8 -0
- rasa/dialogue_understanding/commands/cancel_flow_command.py +20 -6
- rasa/dialogue_understanding/commands/chit_chat_answer_command.py +21 -2
- rasa/dialogue_understanding/commands/clarify_command.py +20 -2
- rasa/dialogue_understanding/commands/continue_agent_command.py +91 -0
- rasa/dialogue_understanding/commands/knowledge_answer_command.py +21 -2
- rasa/dialogue_understanding/commands/restart_agent_command.py +162 -0
- rasa/dialogue_understanding/commands/start_flow_command.py +75 -7
- rasa/dialogue_understanding/commands/utils.py +135 -2
- rasa/dialogue_understanding/generator/command_parser.py +4 -0
- rasa/dialogue_understanding/generator/flow_retrieval.py +0 -9
- rasa/dialogue_understanding/generator/llm_based_command_generator.py +52 -12
- rasa/dialogue_understanding/generator/llm_command_generator.py +1 -1
- rasa/dialogue_understanding/generator/multi_step/multi_step_llm_command_generator.py +1 -1
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_claude_3_5_sonnet_20240620_template.jinja2 +66 -0
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v2_gpt_4o_2024_11_20_template.jinja2 +66 -0
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_claude_3_5_sonnet_20240620_template.jinja2 +89 -0
- rasa/dialogue_understanding/generator/prompt_templates/agent_command_prompt_v3_gpt_4o_2024_11_20_template.jinja2 +88 -0
- rasa/dialogue_understanding/generator/single_step/compact_llm_command_generator.py +42 -7
- rasa/dialogue_understanding/generator/single_step/search_ready_llm_command_generator.py +40 -3
- rasa/dialogue_understanding/generator/single_step/single_step_based_llm_command_generator.py +20 -3
- rasa/dialogue_understanding/patterns/cancel.py +27 -6
- rasa/dialogue_understanding/patterns/clarify.py +3 -14
- rasa/dialogue_understanding/patterns/continue_interrupted.py +239 -6
- rasa/dialogue_understanding/patterns/default_flows_for_patterns.yml +49 -9
- rasa/dialogue_understanding/processor/command_processor.py +136 -15
- rasa/dialogue_understanding/stack/dialogue_stack.py +98 -2
- rasa/dialogue_understanding/stack/frames/flow_stack_frame.py +57 -0
- rasa/dialogue_understanding/stack/utils.py +57 -3
- rasa/dialogue_understanding/utils.py +24 -4
- rasa/dialogue_understanding_test/du_test_runner.py +8 -3
- rasa/e2e_test/e2e_test_runner.py +13 -3
- rasa/engine/caching.py +2 -2
- rasa/engine/constants.py +1 -1
- rasa/engine/graph.py +5 -1
- rasa/engine/loader.py +12 -0
- rasa/engine/recipes/default_components.py +138 -49
- rasa/engine/recipes/default_recipe.py +108 -11
- rasa/engine/runner/dask.py +8 -5
- rasa/engine/validation.py +25 -8
- rasa/graph_components/validators/default_recipe_validator.py +86 -28
- rasa/hooks.py +5 -5
- rasa/llm_fine_tuning/utils.py +2 -2
- rasa/model_manager/model_api.py +4 -5
- rasa/model_manager/runner_service.py +2 -2
- rasa/model_manager/socket_bridge.py +21 -17
- rasa/model_manager/trainer_service.py +12 -9
- rasa/model_manager/utils.py +1 -29
- rasa/model_manager/warm_rasa_process.py +13 -3
- rasa/model_training.py +60 -47
- rasa/nlu/classifiers/diet_classifier.py +198 -98
- rasa/nlu/classifiers/logistic_regression_classifier.py +1 -4
- rasa/nlu/classifiers/mitie_intent_classifier.py +3 -0
- rasa/nlu/classifiers/sklearn_intent_classifier.py +1 -3
- rasa/nlu/extractors/crf_entity_extractor.py +9 -10
- rasa/nlu/extractors/mitie_entity_extractor.py +3 -0
- rasa/nlu/extractors/spacy_entity_extractor.py +3 -0
- rasa/nlu/featurizers/dense_featurizer/convert_featurizer.py +4 -0
- rasa/nlu/featurizers/dense_featurizer/lm_featurizer.py +5 -0
- rasa/nlu/featurizers/dense_featurizer/mitie_featurizer.py +2 -0
- rasa/nlu/featurizers/dense_featurizer/spacy_featurizer.py +3 -0
- rasa/nlu/featurizers/sparse_featurizer/count_vectors_featurizer.py +4 -2
- rasa/nlu/featurizers/sparse_featurizer/lexical_syntactic_featurizer.py +4 -0
- rasa/nlu/selectors/response_selector.py +10 -2
- rasa/nlu/tokenizers/jieba_tokenizer.py +3 -4
- rasa/nlu/tokenizers/mitie_tokenizer.py +3 -2
- rasa/nlu/tokenizers/spacy_tokenizer.py +3 -2
- rasa/nlu/utils/mitie_utils.py +3 -0
- rasa/nlu/utils/spacy_utils.py +3 -2
- rasa/plugin.py +8 -8
- rasa/privacy/privacy_config.py +1 -1
- rasa/privacy/privacy_manager.py +12 -3
- rasa/server.py +15 -3
- rasa/shared/agents/__init__.py +0 -0
- rasa/shared/agents/auth/__init__.py +0 -0
- rasa/shared/agents/auth/agent_auth_factory.py +105 -0
- rasa/shared/agents/auth/agent_auth_manager.py +92 -0
- rasa/shared/agents/auth/auth_strategy/__init__.py +19 -0
- rasa/shared/agents/auth/auth_strategy/agent_auth_strategy.py +52 -0
- rasa/shared/agents/auth/auth_strategy/api_key_auth_strategy.py +42 -0
- rasa/shared/agents/auth/auth_strategy/bearer_token_auth_strategy.py +28 -0
- rasa/shared/agents/auth/auth_strategy/oauth2_auth_strategy.py +170 -0
- rasa/shared/agents/auth/constants.py +13 -0
- rasa/shared/agents/auth/types.py +12 -0
- rasa/shared/agents/auth/utils.py +85 -0
- rasa/shared/agents/utils.py +35 -0
- rasa/shared/constants.py +11 -0
- rasa/shared/core/constants.py +17 -1
- rasa/shared/core/domain.py +62 -22
- rasa/shared/core/events.py +329 -0
- rasa/shared/core/flows/constants.py +5 -0
- rasa/shared/core/flows/flow.py +1 -1
- rasa/shared/core/flows/flow_step.py +7 -1
- rasa/shared/core/flows/flows_list.py +21 -5
- rasa/shared/core/flows/flows_yaml_schema.json +119 -184
- rasa/shared/core/flows/steps/call.py +57 -6
- rasa/shared/core/flows/steps/collect.py +98 -13
- rasa/shared/core/flows/validation.py +372 -8
- rasa/shared/core/flows/yaml_flows_io.py +19 -10
- rasa/shared/core/slots.py +6 -2
- rasa/shared/core/trackers.py +5 -2
- rasa/shared/core/training_data/story_reader/story_reader.py +1 -1
- rasa/shared/exceptions.py +39 -2
- rasa/shared/importers/importer.py +6 -0
- rasa/shared/importers/rasa.py +1 -1
- rasa/shared/importers/utils.py +86 -4
- rasa/shared/nlu/training_data/schemas/responses.yml +3 -0
- rasa/shared/providers/llm/_base_litellm_client.py +41 -9
- rasa/shared/providers/llm/litellm_router_llm_client.py +10 -6
- rasa/shared/providers/llm/llm_client.py +7 -3
- rasa/shared/providers/llm/llm_response.py +66 -0
- rasa/shared/providers/llm/self_hosted_llm_client.py +8 -4
- rasa/shared/utils/common.py +26 -1
- rasa/shared/utils/health_check/health_check.py +7 -3
- rasa/shared/utils/llm.py +92 -19
- rasa/shared/utils/mcp/__init__.py +0 -0
- rasa/shared/utils/mcp/server_connection.py +250 -0
- rasa/shared/utils/mcp/utils.py +20 -0
- rasa/shared/utils/schemas/events.py +42 -0
- rasa/shared/utils/yaml.py +3 -1
- rasa/studio/download.py +3 -0
- rasa/studio/prompts.py +1 -0
- rasa/studio/pull/pull.py +3 -2
- rasa/studio/train.py +8 -7
- rasa/studio/upload.py +19 -52
- rasa/telemetry.py +166 -28
- rasa/tracing/config.py +45 -12
- rasa/tracing/constants.py +14 -0
- rasa/tracing/instrumentation/attribute_extractors.py +142 -9
- rasa/tracing/instrumentation/instrumentation.py +626 -21
- rasa/tracing/instrumentation/intentless_policy_instrumentation.py +4 -4
- rasa/tracing/instrumentation/metrics.py +32 -0
- rasa/tracing/metric_instrument_provider.py +68 -0
- rasa/utils/common.py +92 -1
- rasa/utils/endpoints.py +11 -2
- rasa/utils/io.py +27 -9
- rasa/utils/json_utils.py +6 -1
- rasa/utils/licensing.py +21 -10
- rasa/utils/log_utils.py +121 -7
- rasa/utils/ml_utils.py +1 -1
- rasa/utils/openapi.py +144 -0
- rasa/utils/plotting.py +1 -1
- rasa/utils/pypred.py +45 -0
- rasa/utils/tensorflow/__init__.py +7 -0
- rasa/utils/tensorflow/callback.py +136 -101
- rasa/utils/tensorflow/crf.py +1 -1
- rasa/utils/tensorflow/data_generator.py +21 -8
- rasa/utils/tensorflow/layers.py +21 -11
- rasa/utils/tensorflow/metrics.py +7 -3
- rasa/utils/tensorflow/models.py +56 -8
- rasa/utils/tensorflow/rasa_layers.py +8 -6
- rasa/utils/tensorflow/transformer.py +2 -3
- rasa/utils/train_utils.py +54 -24
- rasa/validator.py +149 -16
- rasa/version.py +1 -1
- rasa_pro-3.14.0.dist-info/METADATA +212 -0
- {rasa_pro-3.13.11.dist-info → rasa_pro-3.14.0.dist-info}/RECORD +583 -271
- rasa/core/channels/inspector/dist/assets/channel-51d02e9e.js +0 -1
- rasa/core/channels/inspector/dist/assets/clone-cc738fa6.js +0 -1
- rasa/core/channels/inspector/dist/assets/flowDiagram-v2-96b9c2cf-0c716443.js +0 -1
- rasa/core/channels/inspector/dist/assets/index-c804b295.js +0 -1335
- rasa_pro-3.13.11.dist-info/METADATA +0 -192
- {rasa_pro-3.13.11.dist-info → rasa_pro-3.14.0.dist-info}/NOTICE +0 -0
- {rasa_pro-3.13.11.dist-info → rasa_pro-3.14.0.dist-info}/WHEEL +0 -0
- {rasa_pro-3.13.11.dist-info → rasa_pro-3.14.0.dist-info}/entry_points.txt +0 -0
rasa/tracing/config.py
CHANGED
|
@@ -6,7 +6,6 @@ import os
|
|
|
6
6
|
from typing import Any, Dict, Optional, Text
|
|
7
7
|
|
|
8
8
|
import grpc
|
|
9
|
-
from opentelemetry.exporter.jaeger.thrift import JaegerExporter
|
|
10
9
|
from opentelemetry.exporter.otlp.proto.grpc.metric_exporter import OTLPMetricExporter
|
|
11
10
|
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
|
|
12
11
|
from opentelemetry.metrics import set_meter_provider
|
|
@@ -16,6 +15,9 @@ from opentelemetry.sdk.resources import SERVICE_NAME, Resource
|
|
|
16
15
|
from opentelemetry.sdk.trace import TracerProvider
|
|
17
16
|
from opentelemetry.sdk.trace.export import BatchSpanProcessor
|
|
18
17
|
|
|
18
|
+
from rasa.agents.protocol.a2a.a2a_agent import A2AAgent
|
|
19
|
+
from rasa.agents.protocol.mcp.mcp_open_agent import MCPOpenAgent
|
|
20
|
+
from rasa.agents.protocol.mcp.mcp_task_agent import MCPTaskAgent
|
|
19
21
|
from rasa.core.actions.custom_action_executor import (
|
|
20
22
|
CustomActionExecutor,
|
|
21
23
|
RetryCustomActionExecutor,
|
|
@@ -93,6 +95,9 @@ def configure_tracing(tracer_provider: Optional[TracerProvider]) -> None:
|
|
|
93
95
|
if custom_action_executor_class != RetryCustomActionExecutor:
|
|
94
96
|
custom_action_executor_subclasses.append(custom_action_executor_class)
|
|
95
97
|
|
|
98
|
+
# All agent classes to instrument (protocol agent classes)
|
|
99
|
+
agent_classes = [MCPOpenAgent, MCPTaskAgent, A2AAgent]
|
|
100
|
+
|
|
96
101
|
instrumentation.instrument(
|
|
97
102
|
tracer_provider=tracer_provider,
|
|
98
103
|
agent_class=Agent,
|
|
@@ -114,6 +119,7 @@ def configure_tracing(tracer_provider: Optional[TracerProvider]) -> None:
|
|
|
114
119
|
multi_step_llm_command_generator_class=MultiStepLLMCommandGenerator,
|
|
115
120
|
custom_action_executor_subclasses=custom_action_executor_subclasses,
|
|
116
121
|
flow_retrieval_class=FlowRetrieval,
|
|
122
|
+
subagent_classes=agent_classes,
|
|
117
123
|
)
|
|
118
124
|
|
|
119
125
|
|
|
@@ -172,19 +178,35 @@ class TracerConfigurer(abc.ABC):
|
|
|
172
178
|
|
|
173
179
|
|
|
174
180
|
class JaegerTracerConfigurer(TracerConfigurer):
|
|
175
|
-
"""The `TracerConfigurer` for a Jaeger backend.
|
|
181
|
+
"""The `TracerConfigurer` for a Jaeger backend.
|
|
182
|
+
|
|
183
|
+
This class maintains backward compatibility with the old Jaeger configuration format
|
|
184
|
+
while internally using OTLP to avoid protobuf compatibility issues.
|
|
185
|
+
"""
|
|
176
186
|
|
|
177
187
|
@classmethod
|
|
178
188
|
def configure_from_endpoint_config(cls, cfg: EndpointConfig) -> TracerProvider:
|
|
179
|
-
"""Configure tracing for Jaeger.
|
|
189
|
+
"""Configure tracing for Jaeger using OTLP under the hood.
|
|
180
190
|
|
|
181
|
-
This
|
|
182
|
-
|
|
183
|
-
backend.
|
|
191
|
+
This maintains backward compatibility with the old Jaeger configuration format
|
|
192
|
+
while using OTLP internally to avoid protobuf compatibility issues.
|
|
184
193
|
|
|
185
194
|
:param cfg: The configuration to be read for configuring tracing.
|
|
186
195
|
:return: The configured `TracerProvider`.
|
|
187
196
|
"""
|
|
197
|
+
# Extract Jaeger-specific configuration
|
|
198
|
+
jaeger_config = cls._extract_config(cfg)
|
|
199
|
+
|
|
200
|
+
# Map Jaeger configuration to OTLP endpoint
|
|
201
|
+
otlp_endpoint = f"http://{jaeger_config['agent_host_name']}:{jaeger_config.get('agent_port', 4317)}" # noqa: E501
|
|
202
|
+
|
|
203
|
+
# Create OTLP exporter with Jaeger-compatible configuration
|
|
204
|
+
otlp_exporter = OTLPSpanExporter(
|
|
205
|
+
endpoint=otlp_endpoint,
|
|
206
|
+
insecure=True, # Jaeger typically runs without TLS in development
|
|
207
|
+
headers=cls._build_headers(jaeger_config),
|
|
208
|
+
)
|
|
209
|
+
|
|
188
210
|
provider = TracerProvider(
|
|
189
211
|
resource=Resource.create(
|
|
190
212
|
{
|
|
@@ -195,19 +217,17 @@ class JaegerTracerConfigurer(TracerConfigurer):
|
|
|
195
217
|
)
|
|
196
218
|
)
|
|
197
219
|
|
|
198
|
-
jaeger_exporter = JaegerExporter(
|
|
199
|
-
**cls._extract_config(cfg), udp_split_oversized_batches=True
|
|
200
|
-
)
|
|
201
220
|
logger.info(
|
|
202
|
-
f"Registered {cfg.type} endpoint for tracing
|
|
203
|
-
f" {
|
|
221
|
+
f"Registered {cfg.type} endpoint for tracing using OTLP. "
|
|
222
|
+
f"Traces will be exported to {otlp_endpoint}."
|
|
204
223
|
)
|
|
205
|
-
provider.add_span_processor(BatchSpanProcessor(
|
|
224
|
+
provider.add_span_processor(BatchSpanProcessor(otlp_exporter))
|
|
206
225
|
|
|
207
226
|
return provider
|
|
208
227
|
|
|
209
228
|
@classmethod
|
|
210
229
|
def _extract_config(cls, cfg: EndpointConfig) -> Dict[str, Any]:
|
|
230
|
+
"""Extract Jaeger configuration parameters."""
|
|
211
231
|
return {
|
|
212
232
|
"agent_host_name": (cfg.kwargs.get("host", "localhost")),
|
|
213
233
|
"agent_port": (cfg.kwargs.get("port", 6831)),
|
|
@@ -215,6 +235,19 @@ class JaegerTracerConfigurer(TracerConfigurer):
|
|
|
215
235
|
"password": cfg.kwargs.get("password"),
|
|
216
236
|
}
|
|
217
237
|
|
|
238
|
+
@classmethod
|
|
239
|
+
def _build_headers(cls, jaeger_config: Dict[str, Any]) -> Optional[Dict[str, str]]:
|
|
240
|
+
"""Build OTLP headers from Jaeger authentication config."""
|
|
241
|
+
headers = {}
|
|
242
|
+
if jaeger_config.get("username") and jaeger_config.get("password"):
|
|
243
|
+
import base64
|
|
244
|
+
|
|
245
|
+
credentials = base64.b64encode(
|
|
246
|
+
f"{jaeger_config['username']}:{jaeger_config['password']}".encode()
|
|
247
|
+
).decode()
|
|
248
|
+
headers["Authorization"] = f"Basic {credentials}"
|
|
249
|
+
return headers if headers else None
|
|
250
|
+
|
|
218
251
|
|
|
219
252
|
class OTLPCollectorConfigurer(TracerConfigurer):
|
|
220
253
|
"""The `TracerConfigurer` for an OTLP collector backend."""
|
rasa/tracing/constants.py
CHANGED
|
@@ -11,6 +11,11 @@ ENDPOINTS_OTLP_BACKEND_TYPE = "otlp"
|
|
|
11
11
|
PROMPT_TOKEN_LENGTH_ATTRIBUTE_NAME = "len_prompt_tokens"
|
|
12
12
|
REQUEST_BODY_SIZE_IN_BYTES_ATTRIBUTE_NAME = "request_body_size_in_bytes"
|
|
13
13
|
|
|
14
|
+
# Tool output value truncation
|
|
15
|
+
# Truncate slot values to prevent excessive memory usage in traces
|
|
16
|
+
# while preserving enough context for debugging
|
|
17
|
+
TOOL_OUTPUT_VALUE_MAX_LENGTH = 500
|
|
18
|
+
|
|
14
19
|
# metrics constants
|
|
15
20
|
LLM_COMMAND_GENERATOR_CPU_USAGE_METRIC_NAME = "llm_command_generator_cpu_usage"
|
|
16
21
|
LLM_COMMAND_GENERATOR_MEMORY_USAGE_METRIC_NAME = "llm_command_generator_memory_usage"
|
|
@@ -88,5 +93,14 @@ CONTEXTUAL_RESPONSE_REPHRASER_LLM_RESPONSE_DURATION_METRIC_NAME = (
|
|
|
88
93
|
RASA_CLIENT_REQUEST_DURATION_METRIC_NAME = "rasa_client_request_duration"
|
|
89
94
|
RASA_CLIENT_REQUEST_BODY_SIZE_METRIC_NAME = "rasa_client_request_body_size"
|
|
90
95
|
|
|
96
|
+
# Agent and MCP tool execution duration metrics
|
|
97
|
+
AGENT_EXECUTION_DURATION_METRIC_NAME = "agent_execution_duration"
|
|
98
|
+
MCP_TOOL_EXECUTION_DURATION_METRIC_NAME = "mcp_tool_execution_duration"
|
|
99
|
+
|
|
100
|
+
# MCP Agent LLM metrics
|
|
101
|
+
MCP_AGENT_LLM_CPU_USAGE_METRIC_NAME = "mcp_agent_llm_cpu_usage"
|
|
102
|
+
MCP_AGENT_LLM_MEMORY_USAGE_METRIC_NAME = "mcp_agent_llm_memory_usage"
|
|
103
|
+
MCP_AGENT_LLM_PROMPT_TOKEN_USAGE_METRIC_NAME = "mcp_agent_llm_prompt_token_usage"
|
|
104
|
+
MCP_AGENT_LLM_RESPONSE_DURATION_METRIC_NAME = "mcp_agent_llm_response_duration"
|
|
91
105
|
LLM_BASED_COMMAND_GENERATOR_CPU_MEMORY_USAGE_UNIT_NAME = "percentage"
|
|
92
106
|
DURATION_UNIT_NAME = "ms"
|
|
@@ -3,6 +3,12 @@ import logging
|
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Text, Tuple, Union
|
|
5
5
|
|
|
6
|
+
if TYPE_CHECKING:
|
|
7
|
+
from rasa.agents.protocol.a2a.a2a_agent import A2AAgent
|
|
8
|
+
from rasa.agents.protocol.mcp.mcp_base_agent import MCPBaseAgent
|
|
9
|
+
from rasa.agents.schemas import AgentInput
|
|
10
|
+
from rasa.core.agent import Agent
|
|
11
|
+
|
|
6
12
|
import tiktoken
|
|
7
13
|
from numpy import ndarray
|
|
8
14
|
from rasa_sdk.grpc_py import action_webhook_pb2
|
|
@@ -10,7 +16,8 @@ from rasa_sdk.grpc_py import action_webhook_pb2
|
|
|
10
16
|
from rasa.core.actions.action import DirectCustomActionExecutor
|
|
11
17
|
from rasa.core.actions.grpc_custom_action_executor import GRPCCustomActionExecutor
|
|
12
18
|
from rasa.core.actions.http_custom_action_executor import HTTPCustomActionExecutor
|
|
13
|
-
|
|
19
|
+
|
|
20
|
+
# Import moved inside function to avoid circular import
|
|
14
21
|
from rasa.core.brokers.broker import EventBroker
|
|
15
22
|
from rasa.core.channels import UserMessage
|
|
16
23
|
from rasa.core.lock_store import LOCK_LIFETIME, LockStore
|
|
@@ -60,10 +67,13 @@ from rasa.shared.core.constants import REQUESTED_SLOT
|
|
|
60
67
|
from rasa.shared.core.domain import Domain
|
|
61
68
|
from rasa.shared.core.events import DialogueStackUpdated, Event
|
|
62
69
|
from rasa.shared.core.flows import Flow, FlowsList, FlowStep
|
|
70
|
+
from rasa.shared.core.flows.steps import CallFlowStep
|
|
71
|
+
from rasa.shared.core.slots import Slot
|
|
63
72
|
from rasa.shared.core.trackers import DialogueStateTracker
|
|
64
73
|
from rasa.shared.core.training_data.structures import StoryGraph
|
|
65
74
|
from rasa.shared.importers.importer import TrainingDataImporter
|
|
66
75
|
from rasa.shared.nlu.constants import INTENT_NAME_KEY, SET_SLOT_COMMAND
|
|
76
|
+
from rasa.shared.utils.health_check.health_check import is_api_health_check_enabled
|
|
67
77
|
from rasa.shared.utils.llm import (
|
|
68
78
|
combine_custom_and_default_config,
|
|
69
79
|
resolve_model_client_config,
|
|
@@ -92,7 +102,7 @@ logger = logging.getLogger(__name__)
|
|
|
92
102
|
|
|
93
103
|
|
|
94
104
|
def extract_attrs_for_agent(
|
|
95
|
-
self: Agent,
|
|
105
|
+
self: "Agent",
|
|
96
106
|
message: UserMessage,
|
|
97
107
|
) -> Dict[str, Any]:
|
|
98
108
|
"""Extract the attributes for `Agent.handle_message`.
|
|
@@ -335,8 +345,12 @@ def extract_llm_config(
|
|
|
335
345
|
# ContextualResponseRephraser is not a graph component, so it's
|
|
336
346
|
# not having a full config.
|
|
337
347
|
config = {"llm": self.llm_config}
|
|
338
|
-
|
|
348
|
+
elif hasattr(self, "config"):
|
|
339
349
|
config = self.config
|
|
350
|
+
else:
|
|
351
|
+
# For MCP agents and other components without a config attribute,
|
|
352
|
+
# create a config from the available llm_config
|
|
353
|
+
config = {"llm": getattr(self, "_llm_config", None)}
|
|
340
354
|
|
|
341
355
|
llm_config = resolve_model_client_config(config.get(LLM_CONFIG_KEY))
|
|
342
356
|
llm_property = combine_custom_and_default_config(llm_config, default_llm_config)
|
|
@@ -446,8 +460,6 @@ def extract_attrs_for_performing_health_check(
|
|
|
446
460
|
log_source_method: str,
|
|
447
461
|
log_source_component: str,
|
|
448
462
|
) -> Dict[str, Any]:
|
|
449
|
-
from rasa.shared.utils.health_check.health_check import is_api_health_check_enabled
|
|
450
|
-
|
|
451
463
|
attrs = {
|
|
452
464
|
"api_health_check_enabled": is_api_health_check_enabled(),
|
|
453
465
|
"health_check_trigger_component": log_source_component,
|
|
@@ -460,6 +472,29 @@ def extract_attrs_for_performing_health_check(
|
|
|
460
472
|
return attrs
|
|
461
473
|
|
|
462
474
|
|
|
475
|
+
def extract_attrs_for_a2a_agent_perform_health_check(
|
|
476
|
+
self: "A2AAgent",
|
|
477
|
+
) -> Dict[str, Any]:
|
|
478
|
+
"""Extract attributes for A2A agent health check method."""
|
|
479
|
+
attrs = {
|
|
480
|
+
"api_health_check_enabled": is_api_health_check_enabled(),
|
|
481
|
+
"health_check_trigger_component": "A2AAgent",
|
|
482
|
+
"health_check_trigger_method": "_perform_health_check",
|
|
483
|
+
"health_check_type": "a2a_agent_connectivity",
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
# A2A agents don't have config in the same way as LLM components,
|
|
487
|
+
# but we can include basic agent info for consistency
|
|
488
|
+
if is_api_health_check_enabled():
|
|
489
|
+
attrs["agent_name"] = getattr(self, "_name", "unknown")
|
|
490
|
+
agent_url = "unknown"
|
|
491
|
+
if hasattr(self, "agent_card") and self.agent_card:
|
|
492
|
+
agent_url = str(getattr(self.agent_card, "url", "unknown"))
|
|
493
|
+
attrs["agent_url"] = agent_url
|
|
494
|
+
|
|
495
|
+
return attrs
|
|
496
|
+
|
|
497
|
+
|
|
463
498
|
def extract_attrs_for_execute_commands(
|
|
464
499
|
tracker: DialogueStateTracker,
|
|
465
500
|
all_flows: FlowsList,
|
|
@@ -585,7 +620,10 @@ def extract_attrs_for_check_commands_against_startable_flows(
|
|
|
585
620
|
|
|
586
621
|
|
|
587
622
|
def extract_attrs_for_advance_flows(
|
|
588
|
-
tracker: DialogueStateTracker,
|
|
623
|
+
tracker: DialogueStateTracker,
|
|
624
|
+
available_actions: List[str],
|
|
625
|
+
flows: FlowsList,
|
|
626
|
+
slots: List[Slot],
|
|
589
627
|
) -> Dict[str, Any]:
|
|
590
628
|
from rasa.tracing.instrumentation.instrumentation import FLOW_EXECUTOR_MODULE_NAME
|
|
591
629
|
|
|
@@ -602,8 +640,10 @@ def extract_attrs_for_du_print_test_results(
|
|
|
602
640
|
test_suite_result: DialogueUnderstandingTestSuiteResult,
|
|
603
641
|
output_prompt: bool,
|
|
604
642
|
) -> Dict[str, Any]:
|
|
605
|
-
"""Extract the attributes for
|
|
606
|
-
|
|
643
|
+
"""Extract the attributes for print_test_results function.
|
|
644
|
+
|
|
645
|
+
This function extracts tracing attributes for the dialogue understanding
|
|
646
|
+
test results printing functionality.
|
|
607
647
|
"""
|
|
608
648
|
from rasa.tracing.instrumentation.instrumentation import (
|
|
609
649
|
DIALOG_UNDERSTANDING_TEST_IO_MODULE_NAME,
|
|
@@ -683,6 +723,35 @@ def extract_attrs_for_du_print_test_results(
|
|
|
683
723
|
return attributes_dict
|
|
684
724
|
|
|
685
725
|
|
|
726
|
+
def extract_call_flow_step_attributes(step: "CallFlowStep") -> Dict[str, Any]:
|
|
727
|
+
"""Extract common CallFlowStep attributes for tracing.
|
|
728
|
+
|
|
729
|
+
Args:
|
|
730
|
+
step: CallFlowStep instance
|
|
731
|
+
|
|
732
|
+
Returns:
|
|
733
|
+
Dictionary of CallFlowStep attributes for tracing
|
|
734
|
+
"""
|
|
735
|
+
attrs = {
|
|
736
|
+
"step_type": "CallFlowStep",
|
|
737
|
+
"call_target": step.call,
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
# Add MCP server if present (for direct MCP tool calls)
|
|
741
|
+
if step.mcp_server:
|
|
742
|
+
attrs["mcp_server"] = step.mcp_server
|
|
743
|
+
|
|
744
|
+
# Add mapping configuration if present (for MCP tool calls)
|
|
745
|
+
if step.mapping:
|
|
746
|
+
attrs["mapping_config"] = json.dumps(step.mapping, sort_keys=True)
|
|
747
|
+
|
|
748
|
+
# Add exit conditions if present (for agent calls)
|
|
749
|
+
if step.exit_if:
|
|
750
|
+
attrs["exit_if_conditions"] = json.dumps(step.exit_if, sort_keys=True)
|
|
751
|
+
|
|
752
|
+
return attrs
|
|
753
|
+
|
|
754
|
+
|
|
686
755
|
def extract_attrs_for_run_step(
|
|
687
756
|
step: FlowStep,
|
|
688
757
|
flow: Flow,
|
|
@@ -691,10 +760,11 @@ def extract_attrs_for_run_step(
|
|
|
691
760
|
available_actions: List[str],
|
|
692
761
|
flows: FlowsList,
|
|
693
762
|
previous_step_id: Text,
|
|
763
|
+
slots: List[Slot],
|
|
694
764
|
) -> Dict[str, Any]:
|
|
695
765
|
current_context = extract_current_context_attribute(stack)
|
|
696
766
|
|
|
697
|
-
|
|
767
|
+
attrs = {
|
|
698
768
|
"step_custom_id": step.custom_id if step.custom_id else "None",
|
|
699
769
|
"step_description": step.description if step.description else "None",
|
|
700
770
|
"current_flow_id": flow.id,
|
|
@@ -702,6 +772,12 @@ def extract_attrs_for_run_step(
|
|
|
702
772
|
"previous_step_id": previous_step_id,
|
|
703
773
|
}
|
|
704
774
|
|
|
775
|
+
# Add CallFlowStep specific attributes if this is a CallFlowStep
|
|
776
|
+
if hasattr(step, "call"):
|
|
777
|
+
attrs.update(extract_call_flow_step_attributes(step))
|
|
778
|
+
|
|
779
|
+
return attrs
|
|
780
|
+
|
|
705
781
|
|
|
706
782
|
def extract_attrs_for_policy_prediction(
|
|
707
783
|
self: Any,
|
|
@@ -894,3 +970,60 @@ def extract_attrs_for_grpc_custom_action_executor_request(
|
|
|
894
970
|
)
|
|
895
971
|
|
|
896
972
|
return attrs
|
|
973
|
+
|
|
974
|
+
|
|
975
|
+
def extract_attrs_for_mcp_agent_llm_call(
|
|
976
|
+
self: "MCPBaseAgent",
|
|
977
|
+
agent_input: "AgentInput",
|
|
978
|
+
) -> Dict[str, Any]:
|
|
979
|
+
"""Extract attributes for MCP agent LLM calls.
|
|
980
|
+
|
|
981
|
+
This function extracts tracing attributes specifically for MCP agent LLM calls,
|
|
982
|
+
including LLM configuration, prompt messages, and token counts.
|
|
983
|
+
"""
|
|
984
|
+
# Extract LLM configuration using the actual resolved config from the LLM client
|
|
985
|
+
attributes = extract_llm_config(
|
|
986
|
+
self,
|
|
987
|
+
default_llm_config=self.llm_client.config,
|
|
988
|
+
default_embeddings_config={}, # MCP agents don't use embeddings
|
|
989
|
+
)
|
|
990
|
+
|
|
991
|
+
# Build messages
|
|
992
|
+
messages = self.build_messages_for_llm_request(agent_input)
|
|
993
|
+
|
|
994
|
+
attributes.update(
|
|
995
|
+
{
|
|
996
|
+
"prompt_messages_count": len(messages),
|
|
997
|
+
}
|
|
998
|
+
)
|
|
999
|
+
|
|
1000
|
+
# Count tokens directly from messages
|
|
1001
|
+
attributes = extend_attributes_with_prompt_tokens_length_for_mcp_agent(
|
|
1002
|
+
self, attributes, messages
|
|
1003
|
+
)
|
|
1004
|
+
|
|
1005
|
+
return attributes
|
|
1006
|
+
|
|
1007
|
+
|
|
1008
|
+
def extend_attributes_with_prompt_tokens_length_for_mcp_agent(
|
|
1009
|
+
self: Any,
|
|
1010
|
+
attributes: Dict[str, Any],
|
|
1011
|
+
messages: List[Dict[str, Any]],
|
|
1012
|
+
) -> Dict[str, Any]:
|
|
1013
|
+
"""Extend attributes with prompt tokens length for MCP agents."""
|
|
1014
|
+
# Count tokens for each message content and sum them up
|
|
1015
|
+
total_tokens = 0
|
|
1016
|
+
for message in messages:
|
|
1017
|
+
content = message.get("content", "")
|
|
1018
|
+
if content:
|
|
1019
|
+
message_tokens = compute_prompt_tokens_length(
|
|
1020
|
+
model_type=attributes["llm_type"],
|
|
1021
|
+
model_name=attributes["llm_model"],
|
|
1022
|
+
prompt=content,
|
|
1023
|
+
)
|
|
1024
|
+
if message_tokens is not None:
|
|
1025
|
+
total_tokens += message_tokens
|
|
1026
|
+
|
|
1027
|
+
attributes[PROMPT_TOKEN_LENGTH_ATTRIBUTE_NAME] = str(total_tokens)
|
|
1028
|
+
|
|
1029
|
+
return attributes
|