feat: support to define a guardrail task no-code

This commit is contained in:
Lucas Gomide
2025-04-21 18:59:56 -03:00
parent 685d20f46c
commit 91b618b4e0
9 changed files with 1307 additions and 15 deletions

View File

@@ -9,6 +9,10 @@ from .crew_events import (
CrewTestCompletedEvent,
CrewTestFailedEvent,
)
from .guardrail_task_events import (
GuardrailTaskCompletedEvent,
GuardrailTaskStartedEvent,
)
from .agent_events import (
AgentExecutionStartedEvent,
AgentExecutionCompletedEvent,

View File

@@ -23,6 +23,10 @@ from .flow_events import (
MethodExecutionFinishedEvent,
MethodExecutionStartedEvent,
)
from .guardrail_task_events import (
GuardrailTaskCompletedEvent,
GuardrailTaskStartedEvent,
)
from .llm_events import (
LLMCallCompletedEvent,
LLMCallFailedEvent,
@@ -68,4 +72,6 @@ EventTypes = Union[
LLMCallCompletedEvent,
LLMCallFailedEvent,
LLMStreamChunkEvent,
GuardrailTaskStartedEvent,
GuardrailTaskCompletedEvent,
]

View File

@@ -0,0 +1,28 @@
from typing import Any, Callable, Optional, Union
from pydantic import BaseModel
from crewai.utilities.events.base_events import BaseEvent
class GuardrailTaskStartedEvent(BaseEvent):
"""Event emitted when a guardrail task starts
Attributes:
messages: Content can be either a string or a list of dictionaries that support
multimodal content (text, images, etc.)
"""
type: str = "guardrail_task_started"
guardrail: Union[str, Callable]
retry_count: int
class GuardrailTaskCompletedEvent(BaseEvent):
"""Event emitted when a guardrail task completes"""
type: str = "guardrail_task_completed"
success: bool
result: Any
error: Optional[str] = None
retry_count: int