rasa-pro 3.14.0.dev9__py3-none-any.whl → 3.14.0.dev10__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/agents/agent_factory.py +2 -2
- rasa/agents/protocol/a2a/a2a_agent.py +31 -12
- rasa/agents/protocol/mcp/mcp_base_agent.py +15 -0
- rasa/agents/protocol/mcp/mcp_task_agent.py +4 -0
- rasa/agents/schemas/__init__.py +2 -1
- rasa/agents/templates/mcp_open_agent_prompt_template.jinja2 +5 -0
- rasa/agents/templates/mcp_task_agent_prompt_template.jinja2 +5 -0
- rasa/agents/validation.py +4 -4
- rasa/core/available_agents.py +7 -5
- rasa/core/policies/flows/flow_executor.py +1 -2
- rasa/core/policies/flows/mcp_tool_executor.py +3 -2
- rasa/shared/agents/auth/agent_auth_manager.py +6 -3
- rasa/shared/agents/auth/auth_strategy/oauth2_auth_strategy.py +13 -5
- rasa/shared/core/constants.py +5 -1
- rasa/shared/utils/mcp/server_connection.py +1 -1
- rasa/version.py +1 -1
- {rasa_pro-3.14.0.dev9.dist-info → rasa_pro-3.14.0.dev10.dist-info}/METADATA +1 -1
- {rasa_pro-3.14.0.dev9.dist-info → rasa_pro-3.14.0.dev10.dist-info}/RECORD +21 -21
- {rasa_pro-3.14.0.dev9.dist-info → rasa_pro-3.14.0.dev10.dist-info}/NOTICE +0 -0
- {rasa_pro-3.14.0.dev9.dist-info → rasa_pro-3.14.0.dev10.dist-info}/WHEEL +0 -0
- {rasa_pro-3.14.0.dev9.dist-info → rasa_pro-3.14.0.dev10.dist-info}/entry_points.txt +0 -0
rasa/agents/agent_factory.py
CHANGED
|
@@ -40,7 +40,7 @@ class AgentFactory:
|
|
|
40
40
|
)
|
|
41
41
|
if not cls._is_valid_custom_agent(agent_class, protocol_type):
|
|
42
42
|
raise ValueError(
|
|
43
|
-
f"Agent class {agent_class} does not subclass the "
|
|
43
|
+
f"Agent class `{agent_class}` does not subclass the "
|
|
44
44
|
f"{cls._get_agent_class_from_protocol(protocol_type).__name__} "
|
|
45
45
|
f"agent class."
|
|
46
46
|
)
|
|
@@ -87,7 +87,7 @@ class AgentFactory:
|
|
|
87
87
|
protocol_class: The class that implements the protocol.
|
|
88
88
|
"""
|
|
89
89
|
if cls.is_protocol_supported(protocol_type):
|
|
90
|
-
raise ValueError(f"Protocol {protocol_type} already registered.")
|
|
90
|
+
raise ValueError(f"Protocol {protocol_type.name} already registered.")
|
|
91
91
|
cls._protocols[protocol_type] = protocol_class
|
|
92
92
|
|
|
93
93
|
@classmethod
|
|
@@ -50,6 +50,7 @@ from rasa.agents.core.agent_protocol import AgentProtocol
|
|
|
50
50
|
from rasa.agents.core.types import AgentStatus, ProtocolType
|
|
51
51
|
from rasa.agents.schemas import AgentInput, AgentOutput
|
|
52
52
|
from rasa.core.available_agents import AgentConfig
|
|
53
|
+
from rasa.shared.agents.auth.agent_auth_manager import AgentAuthManager
|
|
53
54
|
from rasa.shared.exceptions import (
|
|
54
55
|
AgentInitializationException,
|
|
55
56
|
InvalidParameterException,
|
|
@@ -78,12 +79,14 @@ class A2AAgent(AgentProtocol):
|
|
|
78
79
|
agent_card_path: str,
|
|
79
80
|
timeout: int,
|
|
80
81
|
max_retries: int,
|
|
82
|
+
auth_config: Optional[Dict[str, Any]] = None,
|
|
81
83
|
) -> None:
|
|
82
84
|
self._name = name
|
|
83
85
|
self._description = description
|
|
84
86
|
self._agent_card_path = agent_card_path
|
|
85
87
|
self._timeout = timeout
|
|
86
88
|
self._max_retries = max_retries
|
|
89
|
+
self._auth_config = auth_config
|
|
87
90
|
|
|
88
91
|
self.agent_card: Optional[AgentCard] = None
|
|
89
92
|
self._client: Optional[Client] = None
|
|
@@ -111,12 +114,14 @@ class A2AAgent(AgentProtocol):
|
|
|
111
114
|
else AGENT_DEFAULT_MAX_RETRIES
|
|
112
115
|
)
|
|
113
116
|
|
|
117
|
+
_auth_config = config.configuration.auth if config.configuration else None
|
|
114
118
|
return cls(
|
|
115
119
|
name=config.agent.name,
|
|
116
120
|
description=config.agent.description,
|
|
117
121
|
agent_card_path=agent_card_path,
|
|
118
122
|
timeout=timeout,
|
|
119
123
|
max_retries=max_retries,
|
|
124
|
+
auth_config=_auth_config,
|
|
120
125
|
)
|
|
121
126
|
|
|
122
127
|
@property
|
|
@@ -442,6 +447,16 @@ class A2AAgent(AgentProtocol):
|
|
|
442
447
|
elif state == TaskState.submitted or state == TaskState.working:
|
|
443
448
|
# The task is still in progress, return None to continue waiting for updates
|
|
444
449
|
return None
|
|
450
|
+
elif state == TaskState.unknown:
|
|
451
|
+
# The task has an unknown state. Perhaps this is a transient condition.
|
|
452
|
+
# Return None to continue waiting for updates
|
|
453
|
+
structlogger.warning(
|
|
454
|
+
"a2a_agent.run_streaming_agent.unknown_task_state",
|
|
455
|
+
event_info="Task is in unknown state, continuing to wait for updates",
|
|
456
|
+
agent_name=self._name,
|
|
457
|
+
state=state,
|
|
458
|
+
)
|
|
459
|
+
return None
|
|
445
460
|
else:
|
|
446
461
|
structlogger.error(
|
|
447
462
|
"a2a_agent.run_streaming_agent.unexpected_task_state",
|
|
@@ -606,21 +621,21 @@ class A2AAgent(AgentProtocol):
|
|
|
606
621
|
In case of completed tasks, the final message might be in
|
|
607
622
|
the task status message or in the artifacts (or both).
|
|
608
623
|
"""
|
|
609
|
-
|
|
624
|
+
# We need to preserve the order of the message,
|
|
625
|
+
# but also make sure to remove any duplicates.
|
|
626
|
+
result: List[str] = []
|
|
610
627
|
if task.status.message:
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
task.status.message.parts
|
|
614
|
-
)
|
|
615
|
-
+ "\n"
|
|
628
|
+
message = A2AAgent._generate_response_message_from_parts(
|
|
629
|
+
task.status.message.parts
|
|
616
630
|
)
|
|
631
|
+
if message and message not in result:
|
|
632
|
+
result.append(message)
|
|
617
633
|
if task.artifacts:
|
|
618
634
|
for artifact in task.artifacts:
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
return result.strip()
|
|
635
|
+
message = A2AAgent._generate_response_message_from_parts(artifact.parts)
|
|
636
|
+
if message and message not in result:
|
|
637
|
+
result.append(message)
|
|
638
|
+
return "\n".join(result)
|
|
624
639
|
|
|
625
640
|
@staticmethod
|
|
626
641
|
def _generate_structured_results_from_artifacts(
|
|
@@ -746,9 +761,13 @@ class A2AAgent(AgentProtocol):
|
|
|
746
761
|
)
|
|
747
762
|
|
|
748
763
|
def _init_client(self) -> Client:
|
|
764
|
+
_agent_manager = AgentAuthManager.load_auth(self._auth_config)
|
|
765
|
+
auth_strategy = _agent_manager.get_auth() if _agent_manager else None
|
|
749
766
|
factory = ClientFactory(
|
|
750
767
|
config=ClientConfig(
|
|
751
|
-
httpx_client=httpx.AsyncClient(
|
|
768
|
+
httpx_client=httpx.AsyncClient(
|
|
769
|
+
timeout=self._timeout, auth=auth_strategy
|
|
770
|
+
),
|
|
752
771
|
streaming=True,
|
|
753
772
|
supported_transports=[
|
|
754
773
|
TransportProtocol.jsonrpc,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
from abc import abstractmethod
|
|
3
|
+
from datetime import datetime
|
|
3
4
|
from inspect import isawaitable
|
|
4
5
|
from typing import Any, Dict, List, Optional, Tuple
|
|
5
6
|
|
|
@@ -493,11 +494,25 @@ class MCPBaseAgent(AgentProtocol):
|
|
|
493
494
|
# LLM & Prompt Management
|
|
494
495
|
# ============================================================================
|
|
495
496
|
|
|
497
|
+
def _get_current_date_time_day(self) -> Tuple[str, str, str]:
|
|
498
|
+
"""Get the current date, time, and day in standard formats."""
|
|
499
|
+
now = datetime.now()
|
|
500
|
+
current_date = now.strftime("%Y-%m-%d") # e.g. 2025-09-14
|
|
501
|
+
current_time = now.strftime("%H:%M:%S") # e.g. 16:45:12
|
|
502
|
+
current_day = now.strftime("%A") # e.g. Sunday
|
|
503
|
+
return current_date, current_time, current_day
|
|
504
|
+
|
|
496
505
|
def render_prompt_template(self, context: AgentInput) -> str:
|
|
497
506
|
"""Render the prompt template with the provided inputs."""
|
|
507
|
+
# Current date, time, and weekday in standard formats
|
|
508
|
+
current_date, current_time, current_day = self._get_current_date_time_day()
|
|
509
|
+
|
|
498
510
|
return Template(self.prompt_template).render(
|
|
499
511
|
**context.model_dump(exclude={"id", "timestamp", "events"}),
|
|
500
512
|
description=self._description,
|
|
513
|
+
current_date=current_date,
|
|
514
|
+
current_time=current_time,
|
|
515
|
+
current_day=current_day,
|
|
501
516
|
)
|
|
502
517
|
|
|
503
518
|
def build_messages_for_llm_request(
|
|
@@ -253,11 +253,15 @@ class MCPTaskAgent(MCPBaseAgent):
|
|
|
253
253
|
def render_prompt_template(self, context: AgentInput) -> str:
|
|
254
254
|
"""Render the prompt template with the provided inputs."""
|
|
255
255
|
slot_names = self._get_slot_names_from_exit_conditions(context)
|
|
256
|
+
current_date, current_time, current_day = self._get_current_date_time_day()
|
|
256
257
|
|
|
257
258
|
return Template(self.prompt_template).render(
|
|
258
259
|
**context.model_dump(exclude={"id", "timestamp", "events"}),
|
|
259
260
|
description=self._description,
|
|
260
261
|
slot_names=slot_names,
|
|
262
|
+
current_date=current_date,
|
|
263
|
+
current_time=current_time,
|
|
264
|
+
current_day=current_day,
|
|
261
265
|
)
|
|
262
266
|
|
|
263
267
|
async def send_message(self, agent_input: AgentInput) -> AgentOutput:
|
rasa/agents/schemas/__init__.py
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
from rasa.agents.schemas.agent_input import AgentInput
|
|
1
|
+
from rasa.agents.schemas.agent_input import AgentInput, AgentInputSlot
|
|
2
2
|
from rasa.agents.schemas.agent_output import AgentOutput
|
|
3
3
|
from rasa.agents.schemas.agent_tool_result import AgentToolResult
|
|
4
4
|
from rasa.agents.schemas.agent_tool_schema import AgentToolSchema, CustomToolSchema
|
|
5
5
|
|
|
6
6
|
__all__ = [
|
|
7
7
|
"AgentInput",
|
|
8
|
+
"AgentInputSlot",
|
|
8
9
|
"AgentOutput",
|
|
9
10
|
"AgentToolSchema",
|
|
10
11
|
"AgentToolResult",
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
You are a helpful assistant that should assist the user in the best possible way.
|
|
2
2
|
|
|
3
|
+
### Context
|
|
4
|
+
- Current date: {{ current_date }} (YYYY-MM-DD)
|
|
5
|
+
- Current time: {{ current_time }} (HH:MM:SS, 24-hour format)
|
|
6
|
+
- Current day: {{ current_day }} (Day of week)
|
|
7
|
+
|
|
3
8
|
### Primary Task
|
|
4
9
|
{{ description }}
|
|
5
10
|
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
You are a helpful assistant that should assist the user in the best possible way.
|
|
2
2
|
|
|
3
|
+
### Context
|
|
4
|
+
- Current date: {{ current_date }} (YYYY-MM-DD)
|
|
5
|
+
- Current time: {{ current_time }} (HH:MM:SS, 24-hour format)
|
|
6
|
+
- Current day: {{ current_day }} (Day of week)
|
|
7
|
+
|
|
3
8
|
### Description of your capabilities
|
|
4
9
|
{{ description }}
|
|
5
10
|
|
rasa/agents/validation.py
CHANGED
|
@@ -84,7 +84,7 @@ def _validate_mcp_config(agent_config: AgentConfig) -> None:
|
|
|
84
84
|
if agent_config.connections is None or agent_config.connections.mcp_servers is None:
|
|
85
85
|
raise ValidationError(
|
|
86
86
|
code="agent.validation.mcp.missing_connections",
|
|
87
|
-
event_info=f"For protocol '
|
|
87
|
+
event_info=f"For protocol 'RASA', agent '{agent_name}' must have "
|
|
88
88
|
"'connections.mcp_servers' configured.",
|
|
89
89
|
)
|
|
90
90
|
|
|
@@ -92,7 +92,7 @@ def _validate_mcp_config(agent_config: AgentConfig) -> None:
|
|
|
92
92
|
if not agent_config.connections.mcp_servers:
|
|
93
93
|
raise ValidationError(
|
|
94
94
|
code="agent.validation.mcp.empty_servers_list",
|
|
95
|
-
event_info=f"For protocol '
|
|
95
|
+
event_info=f"For protocol 'RASA', agent '{agent_name}' must have "
|
|
96
96
|
"at least one MCP server configured in 'connections.mcp_servers'.",
|
|
97
97
|
)
|
|
98
98
|
|
|
@@ -101,7 +101,7 @@ def _validate_mcp_config(agent_config: AgentConfig) -> None:
|
|
|
101
101
|
if not server.name:
|
|
102
102
|
raise ValidationError(
|
|
103
103
|
code="agent.validation.mcp.server_missing_name",
|
|
104
|
-
event_info=f"For protocol '
|
|
104
|
+
event_info=f"For protocol 'RASA', agent '{agent_name}' MCP server "
|
|
105
105
|
f"at index {i} must have a 'name' field.",
|
|
106
106
|
)
|
|
107
107
|
|
|
@@ -400,7 +400,7 @@ def validate_agent_config(agent_config: AgentConfig) -> None:
|
|
|
400
400
|
protocol = agent_config.agent.protocol
|
|
401
401
|
|
|
402
402
|
# Run protocol-specific validation
|
|
403
|
-
if protocol == ProtocolConfig.
|
|
403
|
+
if protocol == ProtocolConfig.RASA:
|
|
404
404
|
_validate_mcp_config(agent_config)
|
|
405
405
|
elif protocol == ProtocolConfig.A2A:
|
|
406
406
|
_validate_a2a_config(agent_config)
|
rasa/core/available_agents.py
CHANGED
|
@@ -19,7 +19,7 @@ structlogger = structlog.get_logger()
|
|
|
19
19
|
class ProtocolConfig(str, Enum):
|
|
20
20
|
"""Supported protocols for agents."""
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
RASA = "RASA"
|
|
23
23
|
A2A = "A2A"
|
|
24
24
|
|
|
25
25
|
|
|
@@ -28,7 +28,8 @@ class AgentInfo(BaseModel):
|
|
|
28
28
|
|
|
29
29
|
name: str = Field(..., description="Agent name")
|
|
30
30
|
protocol: ProtocolConfig = Field(
|
|
31
|
-
|
|
31
|
+
default=ProtocolConfig.RASA,
|
|
32
|
+
description="Protocol used to communicate with the agent.",
|
|
32
33
|
)
|
|
33
34
|
description: str = Field(..., description="Agent description")
|
|
34
35
|
|
|
@@ -41,9 +42,9 @@ class AgentInfo(BaseModel):
|
|
|
41
42
|
if isinstance(protocol_value, str):
|
|
42
43
|
# Map lowercase protocol names to uppercase enum values
|
|
43
44
|
protocol_mapping = {
|
|
44
|
-
"
|
|
45
|
+
"rasa": ProtocolConfig.RASA,
|
|
45
46
|
"a2a": ProtocolConfig.A2A,
|
|
46
|
-
"
|
|
47
|
+
"RASA": ProtocolConfig.RASA,
|
|
47
48
|
"A2A": ProtocolConfig.A2A,
|
|
48
49
|
}
|
|
49
50
|
|
|
@@ -65,6 +66,7 @@ class AgentConfiguration(BaseModel):
|
|
|
65
66
|
timeout: Optional[int] = None # timeout in seconds
|
|
66
67
|
max_retries: Optional[int] = None
|
|
67
68
|
agent_card: Optional[str] = None
|
|
69
|
+
auth: Optional[Dict[str, Any]] = None
|
|
68
70
|
|
|
69
71
|
|
|
70
72
|
class AgentConnections(BaseModel):
|
|
@@ -122,7 +124,7 @@ class AvailableAgents(metaclass=Singleton):
|
|
|
122
124
|
return cls(agents)
|
|
123
125
|
|
|
124
126
|
# First, load all agent configs into a temporary list for validation
|
|
125
|
-
agent_configs = []
|
|
127
|
+
agent_configs: List[AgentConfig] = []
|
|
126
128
|
for agent_name in os.listdir(agent_folder):
|
|
127
129
|
config_path = os.path.join(agent_folder, agent_name, "config.yml")
|
|
128
130
|
if not os.path.isfile(config_path):
|
|
@@ -77,8 +77,8 @@ from rasa.shared.core.constants import (
|
|
|
77
77
|
ACTION_METADATA_MESSAGE_KEY,
|
|
78
78
|
ACTION_METADATA_TEXT_KEY,
|
|
79
79
|
ACTION_SEND_TEXT_NAME,
|
|
80
|
-
FLOW_HASHES_SLOT,
|
|
81
80
|
SILENCE_TIMEOUT_SLOT,
|
|
81
|
+
SLOTS_EXCLUDED_FOR_AGENT,
|
|
82
82
|
)
|
|
83
83
|
from rasa.shared.core.events import (
|
|
84
84
|
AgentCancelled,
|
|
@@ -120,7 +120,6 @@ MAX_NUMBER_OF_STEPS = 250
|
|
|
120
120
|
MAX_AGENT_RETRIES = 3
|
|
121
121
|
|
|
122
122
|
# Slots that should not be forwarded to sub-agents via AgentInput
|
|
123
|
-
SLOTS_EXCLUDED_FOR_AGENT = [FLOW_HASHES_SLOT]
|
|
124
123
|
|
|
125
124
|
|
|
126
125
|
def render_template_variables(text: str, context: Dict[Text, Any]) -> str:
|
|
@@ -195,8 +195,9 @@ async def _connect_to_mcp_server(
|
|
|
195
195
|
return None
|
|
196
196
|
|
|
197
197
|
mcp_server_config = mcp_server_configs[0]
|
|
198
|
-
|
|
199
|
-
|
|
198
|
+
|
|
199
|
+
mcp_server_connection = MCPServerConnection.from_config(
|
|
200
|
+
mcp_server_config.model_dump()
|
|
200
201
|
)
|
|
201
202
|
|
|
202
203
|
# Ensure the connection is established and return the connection object
|
|
@@ -51,7 +51,9 @@ class AgentAuthManager:
|
|
|
51
51
|
)
|
|
52
52
|
|
|
53
53
|
@classmethod
|
|
54
|
-
def load_auth(
|
|
54
|
+
def load_auth(
|
|
55
|
+
cls, config: Optional[Dict[str, Any]]
|
|
56
|
+
) -> Optional["AgentAuthManager"]:
|
|
55
57
|
"""Connect to authentication using specified strategy type and persist
|
|
56
58
|
the auth instance to the manager in a ready-to-use state.
|
|
57
59
|
|
|
@@ -61,7 +63,8 @@ class AgentAuthManager:
|
|
|
61
63
|
Raises:
|
|
62
64
|
AgentAuthInitializationException: If the authentication connection fails.
|
|
63
65
|
"""
|
|
64
|
-
|
|
66
|
+
if not config:
|
|
67
|
+
return None
|
|
65
68
|
try:
|
|
66
69
|
auth_type = AgentAuthManager.detect_auth_type(config)
|
|
67
70
|
|
|
@@ -83,4 +86,4 @@ class AgentAuthManager:
|
|
|
83
86
|
event_info=event_info,
|
|
84
87
|
config=config,
|
|
85
88
|
)
|
|
86
|
-
raise AgentAuthInitializationException(e)
|
|
89
|
+
raise AgentAuthInitializationException(e) from e
|
|
@@ -10,6 +10,7 @@ from rasa.shared.agents.auth.auth_strategy import AgentAuthStrategy
|
|
|
10
10
|
from rasa.shared.agents.auth.constants import (
|
|
11
11
|
CONFIG_CLIENT_ID_KEY,
|
|
12
12
|
CONFIG_CLIENT_SECRET_KEY,
|
|
13
|
+
CONFIG_OAUTH_KEY,
|
|
13
14
|
CONFIG_SCOPE_KEY,
|
|
14
15
|
CONFIG_TIMEOUT_KEY,
|
|
15
16
|
CONFIG_TOKEN_URL_KEY,
|
|
@@ -56,11 +57,18 @@ class OAuth2AuthStrategy(AgentAuthStrategy):
|
|
|
56
57
|
@classmethod
|
|
57
58
|
def from_config(cls, config: Dict[str, Any]) -> "OAuth2AuthStrategy":
|
|
58
59
|
"""Create OAuth2AuthStrategy from configuration dictionary."""
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
# Extract OAuth2 config from nested "oauth" key if present
|
|
61
|
+
oauth_config = config.get(CONFIG_OAUTH_KEY, config)
|
|
62
|
+
if not oauth_config:
|
|
63
|
+
raise ValueError("OAuth2 configuration is required")
|
|
64
|
+
|
|
65
|
+
token_url = oauth_config.get(CONFIG_TOKEN_URL_KEY)
|
|
66
|
+
client_id = oauth_config.get(CONFIG_CLIENT_ID_KEY)
|
|
67
|
+
client_secret = oauth_config.get(CONFIG_CLIENT_SECRET_KEY)
|
|
68
|
+
scope = oauth_config.get(CONFIG_SCOPE_KEY)
|
|
69
|
+
timeout = (
|
|
70
|
+
oauth_config.get(CONFIG_TIMEOUT_KEY) or cls.DEFAULT_ACCESS_TOKEN_TIMEOUT
|
|
71
|
+
)
|
|
64
72
|
|
|
65
73
|
if not token_url:
|
|
66
74
|
raise ValueError("Token URL is required for OAuth2 authentication")
|
rasa/shared/core/constants.py
CHANGED
|
@@ -129,7 +129,7 @@ GLOBAL_SILENCE_TIMEOUT_KEY = "global_silence_timeout"
|
|
|
129
129
|
SILENCE_TIMEOUT_SLOT = "silence_timeout"
|
|
130
130
|
SLOT_CONSECUTIVE_SILENCE_TIMEOUTS = "consecutive_silence_timeouts"
|
|
131
131
|
GLOBAL_SILENCE_TIMEOUT_DEFAULT_VALUE = 7.0
|
|
132
|
-
SILENCE_SLOTS =
|
|
132
|
+
SILENCE_SLOTS = {SILENCE_TIMEOUT_SLOT, SLOT_CONSECUTIVE_SILENCE_TIMEOUTS}
|
|
133
133
|
# slots for knowledge base
|
|
134
134
|
SLOT_LISTED_ITEMS = "knowledge_base_listed_objects"
|
|
135
135
|
SLOT_LAST_OBJECT = "knowledge_base_last_object"
|
|
@@ -148,6 +148,10 @@ DEFAULT_SLOT_NAMES = {
|
|
|
148
148
|
FLOW_HASHES_SLOT,
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
+
SLOTS_EXCLUDED_FOR_AGENT = (
|
|
152
|
+
SILENCE_SLOTS | DEFAULT_SLOT_NAMES | KNOWLEDGE_BASE_SLOT_NAMES
|
|
153
|
+
)
|
|
154
|
+
|
|
151
155
|
SLOT_MAPPINGS = "mappings"
|
|
152
156
|
MAPPING_CONDITIONS = "conditions"
|
|
153
157
|
KEY_MAPPING_TYPE = "type"
|
|
@@ -67,7 +67,7 @@ class MCPServerConnection:
|
|
|
67
67
|
def from_config(cls, server_config: Dict[str, Any]) -> "MCPServerConnection":
|
|
68
68
|
"""Initialize the MCP server connection from a configuration dictionary."""
|
|
69
69
|
auth_config = server_config.get("additional_params")
|
|
70
|
-
_auth_manager = AgentAuthManager.load_auth(auth_config)
|
|
70
|
+
_auth_manager = AgentAuthManager.load_auth(auth_config)
|
|
71
71
|
return cls(
|
|
72
72
|
server_config["name"],
|
|
73
73
|
server_config["url"],
|
rasa/version.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: rasa-pro
|
|
3
|
-
Version: 3.14.0.
|
|
3
|
+
Version: 3.14.0.dev10
|
|
4
4
|
Summary: State-of-the-art open-core Conversational AI framework for Enterprises that natively leverages generative AI for effortless assistant development.
|
|
5
5
|
Keywords: nlp,machine-learning,machine-learning-library,bot,bots,botkit,rasa conversational-agents,conversational-ai,chatbot,chatbot-framework,bot-framework
|
|
6
6
|
Author: Rasa Technologies GmbH
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
rasa/__init__.py,sha256=YXG8RzVxiSJ__v-AewtV453YoCbmzWlHsU_4S0O2XpE,206
|
|
2
2
|
rasa/__main__.py,sha256=TVYPpDdKKnTxC9RRaPxAaoDosH8-UDMBPfd-UP7YBGg,6645
|
|
3
3
|
rasa/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
-
rasa/agents/agent_factory.py,sha256=
|
|
4
|
+
rasa/agents/agent_factory.py,sha256=JNYSowiznY3Ua4xH1IgnxcGlUMLCywlfhO2YQk4SuQQ,4682
|
|
5
5
|
rasa/agents/agent_manager.py,sha256=VbGiow--R9kFqZJ2_STvgbyo_b0pw3WJDOc-jOHEaWY,6050
|
|
6
6
|
rasa/agents/constants.py,sha256=9pJ_HRYZYMtNk5-1ThdmDuVKrhS9wJeLRYbDqGRnDwk,1157
|
|
7
7
|
rasa/agents/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -10,21 +10,21 @@ rasa/agents/core/types.py,sha256=5Ht6m5lgaNAtdmeCybBTA6MUoNeGPWaGgQgPsBCoYUw,216
|
|
|
10
10
|
rasa/agents/exceptions.py,sha256=gde7ty-InaeVRIXSbuJoxCFZK6DZSCqGcDBBrxtEVfo,1214
|
|
11
11
|
rasa/agents/protocol/__init__.py,sha256=rDR_QdaWuHvkHTKF1MmgzjIk7T8m__KJIK9wtjQnGQ8,242
|
|
12
12
|
rasa/agents/protocol/a2a/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
-
rasa/agents/protocol/a2a/a2a_agent.py,sha256=
|
|
13
|
+
rasa/agents/protocol/a2a/a2a_agent.py,sha256=YYul61KcPcxiCWtlkGsSZCz3l44oUDhm99IbTGwdFz4,32460
|
|
14
14
|
rasa/agents/protocol/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
-
rasa/agents/protocol/mcp/mcp_base_agent.py,sha256=
|
|
15
|
+
rasa/agents/protocol/mcp/mcp_base_agent.py,sha256=koXIs4VN-eBEGFAVp8nDMjVTNd8KUTwTks7yL8DReu8,28195
|
|
16
16
|
rasa/agents/protocol/mcp/mcp_open_agent.py,sha256=6llNPbLSQxE4N2GKy4kXnZjxXYww2vqAIOAbX54VUok,12680
|
|
17
|
-
rasa/agents/protocol/mcp/mcp_task_agent.py,sha256=
|
|
18
|
-
rasa/agents/schemas/__init__.py,sha256=
|
|
17
|
+
rasa/agents/protocol/mcp/mcp_task_agent.py,sha256=tTPRlJwRPKLc1XGmbp19CdLplJWjMBs8oOXLt4DkgrY,21184
|
|
18
|
+
rasa/agents/schemas/__init__.py,sha256=ubFluIAybA-uGoUMOYQOVrHfqK0Ol4SExJC0lEs4tBA,422
|
|
19
19
|
rasa/agents/schemas/agent_input.py,sha256=11LK0cMnuU29gwZD-zs0BOepnVfxxeWuY0Ax4nb6LPE,970
|
|
20
20
|
rasa/agents/schemas/agent_output.py,sha256=NzsjnsQhcahxSMIV9NzoJRhIUD2zNEpSBwt0r92Tbx0,790
|
|
21
21
|
rasa/agents/schemas/agent_tool_result.py,sha256=Kc66JPvvGOuRP4UESkXSzLPwGb7yErNNGOqD2ZHZhhw,2376
|
|
22
22
|
rasa/agents/schemas/agent_tool_schema.py,sha256=V79xiei2Dkkuy_ivBKkoA7R3Z_bR7VbfvULguFP7JAk,4586
|
|
23
23
|
rasa/agents/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
|
-
rasa/agents/templates/mcp_open_agent_prompt_template.jinja2,sha256=
|
|
25
|
-
rasa/agents/templates/mcp_task_agent_prompt_template.jinja2,sha256=
|
|
24
|
+
rasa/agents/templates/mcp_open_agent_prompt_template.jinja2,sha256=cPzyOET3-7Rrx8uRB3pVgrua8a1pmPggBinZE8bYfnM,1317
|
|
25
|
+
rasa/agents/templates/mcp_task_agent_prompt_template.jinja2,sha256=HhYhdKbhF-v2LwDB_Xb1j0b6ZDOCpgQKE1lckWuV2e4,1056
|
|
26
26
|
rasa/agents/utils.py,sha256=k_kCRNpAh_zyPyBtxyR9ySSqe2MpT6ZBwV_9eLD1LkQ,5467
|
|
27
|
-
rasa/agents/validation.py,sha256=
|
|
27
|
+
rasa/agents/validation.py,sha256=pni2OSn6g5nnuxV6SIvbV46EMkxvlE3I30D3aWmxQ1I,17495
|
|
28
28
|
rasa/api.py,sha256=hojQLbFoKMtQdwK-kgPTPL7E1HHDeAzrxcLXdvNDrCE,6658
|
|
29
29
|
rasa/builder/README.md,sha256=7WYioSzBHFY25h1QCFellv7bIOW9VLH7Gf7dwQEc1k0,3715
|
|
30
30
|
rasa/builder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -416,7 +416,7 @@ rasa/core/actions/http_custom_action_executor.py,sha256=oC5OM-p11wHOXXVl7vrTUjhw
|
|
|
416
416
|
rasa/core/actions/loops.py,sha256=3-kt_Sn_Y05PLYoYMsnuIn9e5mxYp31DJIx2omqy0dU,3531
|
|
417
417
|
rasa/core/actions/two_stage_fallback.py,sha256=k8PkD25fvH3kThG9lpC6oLMK7o15kV4yEbv2E2nyans,6065
|
|
418
418
|
rasa/core/agent.py,sha256=9355XYsXPeOZhIpuwJQdFaFtq0N69otseeXUnI7CcZ0,22543
|
|
419
|
-
rasa/core/available_agents.py,sha256=
|
|
419
|
+
rasa/core/available_agents.py,sha256=IDPpRLE3f4Sg-tJ7E6PqzQsMTX-Ar4XyFDfX0pykYFs,7936
|
|
420
420
|
rasa/core/available_endpoints.py,sha256=AUkOMP49k7bo-l2NUSL6ke7gYS1WqLFwoTxMsB5ulZE,7259
|
|
421
421
|
rasa/core/brokers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
422
422
|
rasa/core/brokers/broker.py,sha256=ff6qgy3-Xy7PFUgfwdMQddpY09DIi48yRT6B4TvTJ4s,4399
|
|
@@ -654,9 +654,9 @@ rasa/core/policies/enterprise_search_prompt_with_relevancy_check_and_citation_te
|
|
|
654
654
|
rasa/core/policies/flow_policy.py,sha256=Ulh3pjc1Yi4oJ4oLdmMgv9_SxcqO39m2AohhZaOEJgM,7510
|
|
655
655
|
rasa/core/policies/flows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
656
656
|
rasa/core/policies/flows/flow_exceptions.py,sha256=_FQuN-cerQDM1pivce9bz4zylh5UYkljvYS1gjDukHI,1527
|
|
657
|
-
rasa/core/policies/flows/flow_executor.py,sha256=
|
|
657
|
+
rasa/core/policies/flows/flow_executor.py,sha256=zePM0npAlU-cSt4NLDnycyPcr0ma1KGF_tAQiR8Lk3I,46108
|
|
658
658
|
rasa/core/policies/flows/flow_step_result.py,sha256=agjPrD6lahGSe2ViO5peBeoMdI9ngVGRSgtytgxmJmg,1360
|
|
659
|
-
rasa/core/policies/flows/mcp_tool_executor.py,sha256=
|
|
659
|
+
rasa/core/policies/flows/mcp_tool_executor.py,sha256=HmJ45voYI3Hr0DR_in4D5BGdmsjLE8yui-7rBufWAx0,9358
|
|
660
660
|
rasa/core/policies/intentless_policy.py,sha256=14jQ3D6yXxzYXhlmr1ffO7RKgW5DFUJOgP906L_tKCE,38048
|
|
661
661
|
rasa/core/policies/intentless_prompt_template.jinja2,sha256=KhIL3cruMmkxhrs5oVbqgSvK6ZiN_6TQ_jXrgtEB-ZY,677
|
|
662
662
|
rasa/core/policies/memoization.py,sha256=CX2d3yP7FehSMW92Wi9NYLZei7tBzoT3T6yybu-Nb5s,19377
|
|
@@ -977,19 +977,19 @@ rasa/shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
977
977
|
rasa/shared/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
978
978
|
rasa/shared/agents/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
979
979
|
rasa/shared/agents/auth/agent_auth_factory.py,sha256=k1LFYs_Os9Uxv4VRdf-_AdP_NgpiBFXlknyVAxE4ptc,2669
|
|
980
|
-
rasa/shared/agents/auth/agent_auth_manager.py,sha256=
|
|
980
|
+
rasa/shared/agents/auth/agent_auth_manager.py,sha256=YdgmOeE4RzqDSf4VngHqy80W0y4AvWCiTXTUwYWKGGE,3106
|
|
981
981
|
rasa/shared/agents/auth/auth_strategy/__init__.py,sha256=XjTLRSWzcHB0S2_bA8lewqjiPZBF_-T0fJiTnle8mZA,568
|
|
982
982
|
rasa/shared/agents/auth/auth_strategy/agent_auth_strategy.py,sha256=EmWtNe6ubGCaIg11L9nYbdwmp-zmswj2D60YfYnGz6c,1609
|
|
983
983
|
rasa/shared/agents/auth/auth_strategy/api_key_auth_strategy.py,sha256=K44K0FioGNbFeZHjjynEXHV4fUrrqlkPZvryCiWS7ac,1454
|
|
984
984
|
rasa/shared/agents/auth/auth_strategy/bearer_token_auth_strategy.py,sha256=PXbNbRb246jQqMOu_92FyTaTlCbTtH9uLN3wI361IiQ,965
|
|
985
|
-
rasa/shared/agents/auth/auth_strategy/oauth2_auth_strategy.py,sha256=
|
|
985
|
+
rasa/shared/agents/auth/auth_strategy/oauth2_auth_strategy.py,sha256=bW41A78Nj4heAaok3aMCBI8y1SLb9eSgvrUMwfMzKQ0,6126
|
|
986
986
|
rasa/shared/agents/auth/constants.py,sha256=ivyeKUG0h5Pyt8IHWbloSNZNksMiQRU-k5S4thdEXNo,375
|
|
987
987
|
rasa/shared/agents/auth/types.py,sha256=VZwUhRX8sAoUCPNRXp9hiER_Q0jDFnUaDbaiGwQqarg,272
|
|
988
988
|
rasa/shared/agents/utils.py,sha256=Dux_STACmYlni-c4c8EpdBX9SmcFofaJI8prwsKlNeM,1011
|
|
989
989
|
rasa/shared/constants.py,sha256=HMHc0UKJKWpZYP98lDU7vk034gPunXoKzHXt_jxYoJA,13066
|
|
990
990
|
rasa/shared/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
991
991
|
rasa/shared/core/command_payload_reader.py,sha256=aWmEe6NyGdGZ8qaCPxGZu1frLROv04SFbwPpZNrtj7Q,3741
|
|
992
|
-
rasa/shared/core/constants.py,sha256=
|
|
992
|
+
rasa/shared/core/constants.py,sha256=tS9KFgugebij53XAUsbUFyZoyG3fahVnaWA2znWaIeY,7000
|
|
993
993
|
rasa/shared/core/conversation.py,sha256=0nUhcbQkPDnO3_Rig7oiinrWmPy5fsVQs_U6Fx1hG5c,1384
|
|
994
994
|
rasa/shared/core/domain.py,sha256=_0rYtm9m_NJGadFOoq2SsJvSGZj4F_owXxdQTXXIyI0,88498
|
|
995
995
|
rasa/shared/core/events.py,sha256=0sjB89ONNtybSZJ2_LQwMhAzMn4gSpD1488Hl7Zowpo,100824
|
|
@@ -1122,7 +1122,7 @@ rasa/shared/utils/health_check/llm_health_check_mixin.py,sha256=ANP5Q68TRX8p4wWk
|
|
|
1122
1122
|
rasa/shared/utils/io.py,sha256=AhuECoXGO367NvWRCBu99utEtTQnyxWVJyKOOpLePpg,15917
|
|
1123
1123
|
rasa/shared/utils/llm.py,sha256=TgbtTxLS3EB9s4TvjgswCoNlzwwgHyGBME-rdbZJRhs,41536
|
|
1124
1124
|
rasa/shared/utils/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1125
|
-
rasa/shared/utils/mcp/server_connection.py,sha256=
|
|
1125
|
+
rasa/shared/utils/mcp/server_connection.py,sha256=PnNgBfLYBxeMC3VsbxoR9EenMWCnKQ_IvzFh7_I2EuI,9399
|
|
1126
1126
|
rasa/shared/utils/mcp/utils.py,sha256=2HC2BT0jY9kCdw33jKJoyOfD_9r2978aEVfIWO8u2JI,580
|
|
1127
1127
|
rasa/shared/utils/pykwalify_extensions.py,sha256=g3BUbL1gbV8_6oCvCkinqUfA7ybu5w9QlC4RpxQ0JhM,1487
|
|
1128
1128
|
rasa/shared/utils/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -1196,9 +1196,9 @@ rasa/utils/train_utils.py,sha256=LJO7mM6ptYvLMZr4HDl3fBkPHb7-BVFXuuZseh4Pp68,224
|
|
|
1196
1196
|
rasa/utils/url_tools.py,sha256=dZ1HGkVdWTJB7zYEdwoDIrEuyX9HE5WsxKKFVsXBLE0,1218
|
|
1197
1197
|
rasa/utils/yaml.py,sha256=KjbZq5C94ZP7Jdsw8bYYF7HASI6K4-C_kdHfrnPLpSI,2000
|
|
1198
1198
|
rasa/validator.py,sha256=1abU_NTP0UTRBNwmSr1Ba0f3tj-rrJdKzeIknF9pynI,83298
|
|
1199
|
-
rasa/version.py,sha256=
|
|
1200
|
-
rasa_pro-3.14.0.
|
|
1201
|
-
rasa_pro-3.14.0.
|
|
1202
|
-
rasa_pro-3.14.0.
|
|
1203
|
-
rasa_pro-3.14.0.
|
|
1204
|
-
rasa_pro-3.14.0.
|
|
1199
|
+
rasa/version.py,sha256=yXwCzejVXDKbJgygAyKKBvUCuFrknyBsAEulO6npjIY,123
|
|
1200
|
+
rasa_pro-3.14.0.dev10.dist-info/METADATA,sha256=zGxMTPraaZLOnGNwP-bUtZ3qN80cvpqDMoJWg6qo8ho,12106
|
|
1201
|
+
rasa_pro-3.14.0.dev10.dist-info/NOTICE,sha256=7HlBoMHJY9CL2GlYSfTQ-PZsVmLmVkYmMiPlTjhuCqA,218
|
|
1202
|
+
rasa_pro-3.14.0.dev10.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
|
1203
|
+
rasa_pro-3.14.0.dev10.dist-info/entry_points.txt,sha256=ckJ2SfEyTPgBqj_I6vm_tqY9dZF_LAPJZA335Xp0Q9U,43
|
|
1204
|
+
rasa_pro-3.14.0.dev10.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|