diff --git a/lib/crewai-tools/src/crewai_tools/tools/crewai_platform_tools/crewai_platform_action_tool.py b/lib/crewai-tools/src/crewai_tools/tools/crewai_platform_tools/crewai_platform_action_tool.py index 9ef21b30c..0756a5226 100644 --- a/lib/crewai-tools/src/crewai_tools/tools/crewai_platform_tools/crewai_platform_action_tool.py +++ b/lib/crewai-tools/src/crewai_tools/tools/crewai_platform_tools/crewai_platform_action_tool.py @@ -17,6 +17,7 @@ from crewai_tools.tools.crewai_platform_tools.misc import ( class CrewAIPlatformActionTool(BaseTool): + app: str = Field(description="The integration slug for this action") action_name: str = Field(default="", description="The name of the action") action_schema: dict[str, Any] = Field( default_factory=dict, description="The schema of the action" @@ -25,6 +26,7 @@ class CrewAIPlatformActionTool(BaseTool): def __init__( self, description: str, + app: str, action_name: str, action_schema: dict[str, Any], ): @@ -46,7 +48,9 @@ class CrewAIPlatformActionTool(BaseTool): name=action_name.lower().replace(" ", "_"), description=description, args_schema=args_schema, + app=app, ) + self.app = app self.action_name = action_name self.action_schema = action_schema diff --git a/lib/crewai-tools/src/crewai_tools/tools/crewai_platform_tools/crewai_platform_tool_builder.py b/lib/crewai-tools/src/crewai_tools/tools/crewai_platform_tools/crewai_platform_tool_builder.py index e9cc8c3e6..04ec5451e 100644 --- a/lib/crewai-tools/src/crewai_tools/tools/crewai_platform_tools/crewai_platform_tool_builder.py +++ b/lib/crewai-tools/src/crewai_tools/tools/crewai_platform_tools/crewai_platform_tool_builder.py @@ -89,6 +89,7 @@ class CrewaiPlatformToolBuilder: tool = CrewAIPlatformActionTool( description=description, + app=function_details["app"], action_name=action_name, action_schema=action_schema, ) diff --git a/lib/crewai-tools/tests/tools/crewai_platform_tools/test_crewai_platform_action_tool.py b/lib/crewai-tools/tests/tools/crewai_platform_tools/test_crewai_platform_action_tool.py index 92b7f19f0..7737baf80 100644 --- a/lib/crewai-tools/tests/tools/crewai_platform_tools/test_crewai_platform_action_tool.py +++ b/lib/crewai-tools/tests/tools/crewai_platform_tools/test_crewai_platform_action_tool.py @@ -28,6 +28,7 @@ class TestCrewAIPlatformActionToolVerify: def create_test_tool(self): return CrewAIPlatformActionTool( description="Test action tool", + app="test_app", action_name="test_action", action_schema=self.action_schema ) diff --git a/lib/crewai-tools/tests/tools/crewai_platform_tools/test_crewai_platform_tool_builder.py b/lib/crewai-tools/tests/tools/crewai_platform_tools/test_crewai_platform_tool_builder.py index 7703f2104..03904a840 100644 --- a/lib/crewai-tools/tests/tools/crewai_platform_tools/test_crewai_platform_tool_builder.py +++ b/lib/crewai-tools/tests/tools/crewai_platform_tools/test_crewai_platform_tool_builder.py @@ -171,6 +171,10 @@ class TestCrewaiPlatformToolBuilder(unittest.TestCase): tool_names = [tool.action_name for tool in tools] assert "create_issue" in tool_names assert "send_message" in tool_names + assert {tool.action_name: tool.app for tool in tools} == { + "create_issue": "github", + "send_message": "slack", + } github_tool = next((t for t in tools if t.action_name == "create_issue"), None) slack_tool = next((t for t in tools if t.action_name == "send_message"), None) diff --git a/lib/crewai/tests/tools/test_tool_failure.py b/lib/crewai/tests/tools/test_tool_failure.py index a44b6916c..3e9e5f82e 100644 --- a/lib/crewai/tests/tools/test_tool_failure.py +++ b/lib/crewai/tests/tools/test_tool_failure.py @@ -1698,6 +1698,7 @@ class TestPlatformActionTool: return mod.CrewAIPlatformActionTool( description="Send a Slack message", + app="slack", action_name="slackbot_send_message", action_schema={ "function": {