mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-25 08:08:14 +00:00
Fixing guardarils implementation
This commit is contained in:
@@ -305,17 +305,25 @@ class Task(BaseModel):
|
|||||||
)
|
)
|
||||||
|
|
||||||
self.retry_count += 1
|
self.retry_count += 1
|
||||||
context = f"Previous attempt failed validation: {guardrail_result.error}\nPlease try again."
|
context = (
|
||||||
|
f"### Previous attempt failed validation: {guardrail_result.error}\n\n\n"
|
||||||
|
f"### Previous result:\n{task_output.raw}\n\n\n"
|
||||||
|
"Try again, making sure to address the validation error."
|
||||||
|
)
|
||||||
return self._execute_core(agent, context, tools)
|
return self._execute_core(agent, context, tools)
|
||||||
|
|
||||||
if guardrail_result.result is None:
|
if guardrail_result.result is None:
|
||||||
raise Exception(
|
raise Exception(
|
||||||
"Task guardrail returned None as result. This is not allowed."
|
"Task guardrail returned None as result. This is not allowed."
|
||||||
)
|
)
|
||||||
task_output.raw = guardrail_result.result
|
|
||||||
pydantic_output, json_output = self._export_output(guardrail_result.result)
|
if isinstance(guardrail_result.result, str):
|
||||||
task_output.pydantic = pydantic_output
|
task_output.raw = guardrail_result.result
|
||||||
task_output.json_dict = json_output
|
pydantic_output, json_output = self._export_output(guardrail_result.result)
|
||||||
|
task_output.pydantic = pydantic_output
|
||||||
|
task_output.json_dict = json_output
|
||||||
|
elif isinstance(guardrail_result.result, TaskOutput):
|
||||||
|
task_output = guardrail_result.result
|
||||||
|
|
||||||
self.output = task_output
|
self.output = task_output
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user