diff --git a/src/crewai/agent.py b/src/crewai/agent.py index 903304362..80f995de8 100644 --- a/src/crewai/agent.py +++ b/src/crewai/agent.py @@ -53,6 +53,7 @@ from crewai.utilities.converter import generate_model_description from crewai.utilities.llm_utils import create_llm from crewai.utilities.token_counter_callback import TokenCalcHandler from crewai.utilities.training_handler import CrewTrainingHandler +from crewai.utilities.types import LLMMessage class Agent(BaseAgent): @@ -347,15 +348,16 @@ class Agent(BaseAgent): ) if self.knowledge or (self.crew and self.crew.knowledge): - crewai_event_bus.emit( - self, - event=KnowledgeRetrievalStartedEvent( - agent=self, - ), - ) try: self.knowledge_search_query = self._get_knowledge_search_query( - task_prompt + task_prompt, task + ) + crewai_event_bus.emit( + self, + event=KnowledgeRetrievalStartedEvent( + from_task=task, + from_agent=self, + ), ) if self.knowledge_search_query: # Quering agent specific knowledge @@ -385,7 +387,8 @@ class Agent(BaseAgent): self, event=KnowledgeRetrievalCompletedEvent( query=self.knowledge_search_query, - agent=self, + from_task=task, + from_agent=self, retrieved_knowledge=( (self.agent_knowledge_context or "") + ( @@ -403,8 +406,9 @@ class Agent(BaseAgent): self, event=KnowledgeSearchQueryFailedEvent( query=self.knowledge_search_query or "", - agent=self, error=str(e), + from_task=task, + from_agent=self, ), ) @@ -728,13 +732,14 @@ class Agent(BaseAgent): def set_fingerprint(self, fingerprint: Fingerprint): self.security_config.fingerprint = fingerprint - def _get_knowledge_search_query(self, task_prompt: str) -> str | None: + def _get_knowledge_search_query(self, task_prompt: str, task: Task) -> str | None: """Generate a search query for the knowledge base based on the task description.""" crewai_event_bus.emit( self, event=KnowledgeQueryStartedEvent( task_prompt=task_prompt, - agent=self, + from_task=task, + from_agent=self, ), ) query = self.i18n.slice("knowledge_search_query").format( @@ -749,8 +754,9 @@ class Agent(BaseAgent): crewai_event_bus.emit( self, event=KnowledgeQueryFailedEvent( - agent=self, error="LLM is not compatible with knowledge search queries", + from_task=task, + from_agent=self, ), ) return None @@ -769,7 +775,8 @@ class Agent(BaseAgent): self, event=KnowledgeQueryCompletedEvent( query=query, - agent=self, + from_task=task, + from_agent=self, ), ) return rewritten_query @@ -777,15 +784,16 @@ class Agent(BaseAgent): crewai_event_bus.emit( self, event=KnowledgeQueryFailedEvent( - agent=self, error=str(e), + from_task=task, + from_agent=self, ), ) return None def kickoff( self, - messages: str | list[dict[str, str]], + messages: str | list[LLMMessage], response_format: type[Any] | None = None, ) -> LiteAgentOutput: """ @@ -825,7 +833,7 @@ class Agent(BaseAgent): async def kickoff_async( self, - messages: str | list[dict[str, str]], + messages: str | list[LLMMessage], response_format: type[Any] | None = None, ) -> LiteAgentOutput: """ @@ -855,6 +863,7 @@ class Agent(BaseAgent): response_format=response_format, i18n=self.i18n, original_agent=self, + guardrail=self.guardrail, ) return await lite_agent.kickoff_async(messages) diff --git a/src/crewai/events/listeners/tracing/trace_listener.py b/src/crewai/events/listeners/tracing/trace_listener.py index a2a39bcac..cef3bb6ee 100644 --- a/src/crewai/events/listeners/tracing/trace_listener.py +++ b/src/crewai/events/listeners/tracing/trace_listener.py @@ -32,6 +32,13 @@ from crewai.events.types.flow_events import ( MethodExecutionFinishedEvent, MethodExecutionStartedEvent, ) +from crewai.events.types.knowledge_events import ( + KnowledgeQueryCompletedEvent, + KnowledgeQueryFailedEvent, + KnowledgeQueryStartedEvent, + KnowledgeRetrievalCompletedEvent, + KnowledgeRetrievalStartedEvent, +) from crewai.events.types.llm_events import ( LLMCallCompletedEvent, LLMCallFailedEvent, @@ -310,6 +317,26 @@ class TraceCollectionListener(BaseEventListener): def on_agent_reasoning_failed(source, event): self._handle_action_event("agent_reasoning_failed", source, event) + @event_bus.on(KnowledgeRetrievalStartedEvent) + def on_knowledge_retrieval_started(source, event): + self._handle_action_event("knowledge_retrieval_started", source, event) + + @event_bus.on(KnowledgeRetrievalCompletedEvent) + def on_knowledge_retrieval_completed(source, event): + self._handle_action_event("knowledge_retrieval_completed", source, event) + + @event_bus.on(KnowledgeQueryStartedEvent) + def on_knowledge_query_started(source, event): + self._handle_action_event("knowledge_query_started", source, event) + + @event_bus.on(KnowledgeQueryCompletedEvent) + def on_knowledge_query_completed(source, event): + self._handle_action_event("knowledge_query_completed", source, event) + + @event_bus.on(KnowledgeQueryFailedEvent) + def on_knowledge_query_failed(source, event): + self._handle_action_event("knowledge_query_failed", source, event) + def _initialize_crew_batch(self, source: Any, event: Any): """Initialize trace batch""" user_context = self._get_user_context() diff --git a/src/crewai/events/types/knowledge_events.py b/src/crewai/events/types/knowledge_events.py index c90eeb14a..14a08aef2 100644 --- a/src/crewai/events/types/knowledge_events.py +++ b/src/crewai/events/types/knowledge_events.py @@ -1,51 +1,60 @@ -from crewai.agents.agent_builder.base_agent import BaseAgent +from typing import Any + from crewai.events.base_events import BaseEvent -class KnowledgeRetrievalStartedEvent(BaseEvent): +class KnowledgeEventBase(BaseEvent): + task_id: str | None = None + task_name: str | None = None + from_task: Any | None = None + from_agent: Any | None = None + agent_role: str | None = None + agent_id: str | None = None + + def __init__(self, **data): + super().__init__(**data) + self._set_agent_params(data) + self._set_task_params(data) + + +class KnowledgeRetrievalStartedEvent(KnowledgeEventBase): """Event emitted when a knowledge retrieval is started.""" type: str = "knowledge_search_query_started" - agent: BaseAgent -class KnowledgeRetrievalCompletedEvent(BaseEvent): +class KnowledgeRetrievalCompletedEvent(KnowledgeEventBase): """Event emitted when a knowledge retrieval is completed.""" query: str type: str = "knowledge_search_query_completed" - agent: BaseAgent retrieved_knowledge: str -class KnowledgeQueryStartedEvent(BaseEvent): +class KnowledgeQueryStartedEvent(KnowledgeEventBase): """Event emitted when a knowledge query is started.""" task_prompt: str type: str = "knowledge_query_started" - agent: BaseAgent -class KnowledgeQueryFailedEvent(BaseEvent): +class KnowledgeQueryFailedEvent(KnowledgeEventBase): """Event emitted when a knowledge query fails.""" type: str = "knowledge_query_failed" - agent: BaseAgent error: str -class KnowledgeQueryCompletedEvent(BaseEvent): +class KnowledgeQueryCompletedEvent(KnowledgeEventBase): """Event emitted when a knowledge query is completed.""" query: str type: str = "knowledge_query_completed" - agent: BaseAgent -class KnowledgeSearchQueryFailedEvent(BaseEvent): +class KnowledgeSearchQueryFailedEvent(KnowledgeEventBase): """Event emitted when a knowledge search query fails.""" query: str type: str = "knowledge_search_query_failed" - agent: BaseAgent error: str diff --git a/src/crewai/events/types/llm_guardrail_events.py b/src/crewai/events/types/llm_guardrail_events.py index 31f03ad89..895ac3ad3 100644 --- a/src/crewai/events/types/llm_guardrail_events.py +++ b/src/crewai/events/types/llm_guardrail_events.py @@ -5,7 +5,21 @@ from typing import Any from crewai.events.base_events import BaseEvent -class LLMGuardrailStartedEvent(BaseEvent): +class LLMGuardrailBaseEvent(BaseEvent): + task_id: str | None = None + task_name: str | None = None + from_task: Any | None = None + from_agent: Any | None = None + agent_role: str | None = None + agent_id: str | None = None + + def __init__(self, **data): + super().__init__(**data) + self._set_agent_params(data) + self._set_task_params(data) + + +class LLMGuardrailStartedEvent(LLMGuardrailBaseEvent): """Event emitted when a guardrail task starts Attributes: @@ -29,7 +43,7 @@ class LLMGuardrailStartedEvent(BaseEvent): self.guardrail = getsource(self.guardrail).strip() -class LLMGuardrailCompletedEvent(BaseEvent): +class LLMGuardrailCompletedEvent(LLMGuardrailBaseEvent): """Event emitted when a guardrail task completes Attributes: @@ -44,3 +58,16 @@ class LLMGuardrailCompletedEvent(BaseEvent): result: Any error: str | None = None retry_count: int + + +class LLMGuardrailFailedEvent(LLMGuardrailBaseEvent): + """Event emitted when a guardrail task fails + + Attributes: + error: The error message + retry_count: The number of times the guardrail has been retried + """ + + type: str = "llm_guardrail_failed" + error: str + retry_count: int diff --git a/src/crewai/lite_agent.py b/src/crewai/lite_agent.py index e658bca1c..b80f499b4 100644 --- a/src/crewai/lite_agent.py +++ b/src/crewai/lite_agent.py @@ -4,6 +4,7 @@ import uuid from collections.abc import Callable from typing import ( Any, + Literal, cast, get_args, get_origin, @@ -62,6 +63,7 @@ from crewai.utilities.llm_utils import create_llm from crewai.utilities.printer import Printer from crewai.utilities.token_counter_callback import TokenCalcHandler from crewai.utilities.tool_utils import execute_tool_and_check_finality +from crewai.utilities.types import LLMMessage class LiteAgentOutput(BaseModel): @@ -180,7 +182,7 @@ class LiteAgent(FlowTrackable, BaseModel): _token_process: TokenProcess = PrivateAttr(default_factory=TokenProcess) _cache_handler: CacheHandler = PrivateAttr(default_factory=CacheHandler) _key: str = PrivateAttr(default_factory=lambda: str(uuid.uuid4())) - _messages: list[dict[str, str]] = PrivateAttr(default_factory=list) + _messages: list[LLMMessage] = PrivateAttr(default_factory=list) _iterations: int = PrivateAttr(default=0) _printer: Printer = PrivateAttr(default_factory=Printer) _guardrail: Callable | None = PrivateAttr(default=None) @@ -219,7 +221,6 @@ class LiteAgent(FlowTrackable, BaseModel): raise TypeError( f"Guardrail requires LLM instance of type BaseLLM, got {type(self.llm).__name__}" ) - self._guardrail = LLMGuardrail(description=self.guardrail, llm=self.llm) return self @@ -276,7 +277,7 @@ class LiteAgent(FlowTrackable, BaseModel): """Return the original role for compatibility with tool interfaces.""" return self.role - def kickoff(self, messages: str | list[dict[str, str]]) -> LiteAgentOutput: + def kickoff(self, messages: str | list[LLMMessage]) -> LiteAgentOutput: """ Execute the agent with the given messages. @@ -368,6 +369,7 @@ class LiteAgent(FlowTrackable, BaseModel): guardrail=self._guardrail, retry_count=self._guardrail_retry_count, event_source=self, + from_agent=self, ) if not guardrail_result.success: @@ -414,9 +416,7 @@ class LiteAgent(FlowTrackable, BaseModel): return output - async def kickoff_async( - self, messages: str | list[dict[str, str]] - ) -> LiteAgentOutput: + async def kickoff_async(self, messages: str | list[LLMMessage]) -> LiteAgentOutput: """ Execute the agent asynchronously with the given messages. @@ -461,9 +461,7 @@ class LiteAgent(FlowTrackable, BaseModel): return base_prompt - def _format_messages( - self, messages: str | list[dict[str, str]] - ) -> list[dict[str, str]]: + def _format_messages(self, messages: str | list[LLMMessage]) -> list[LLMMessage]: """Format messages for the LLM.""" if isinstance(messages, str): messages = [{"role": "user", "content": messages}] @@ -471,7 +469,9 @@ class LiteAgent(FlowTrackable, BaseModel): system_prompt = self._get_default_system_prompt() # Add system message at the beginning - formatted_messages = [{"role": "system", "content": system_prompt}] + formatted_messages: list[LLMMessage] = [ + {"role": "system", "content": system_prompt} + ] # Add the rest of the messages formatted_messages.extend(messages) @@ -583,6 +583,8 @@ class LiteAgent(FlowTrackable, BaseModel): ), ) - def _append_message(self, text: str, role: str = "assistant") -> None: + def _append_message( + self, text: str, role: Literal["user", "assistant", "system"] = "assistant" + ) -> None: """Append a message to the message list with the given role.""" - self._messages.append(format_message_for_llm(text, role=role)) + self._messages.append(cast(LLMMessage, format_message_for_llm(text, role=role))) diff --git a/src/crewai/task.py b/src/crewai/task.py index dc8e0f3eb..ebf284317 100644 --- a/src/crewai/task.py +++ b/src/crewai/task.py @@ -462,6 +462,8 @@ class Task(BaseModel): guardrail=self._guardrail, retry_count=self.retry_count, event_source=self, + from_task=self, + from_agent=agent, ) if not guardrail_result.success: if self.retry_count >= self.guardrail_max_retries: diff --git a/src/crewai/utilities/agent_utils.py b/src/crewai/utilities/agent_utils.py index 5bc2bcb7f..003e8b7d1 100644 --- a/src/crewai/utilities/agent_utils.py +++ b/src/crewai/utilities/agent_utils.py @@ -31,6 +31,7 @@ from crewai.utilities.types import LLMMessage if TYPE_CHECKING: from crewai.agent import Agent + from crewai.lite_agent import LiteAgent from crewai.task import Task @@ -222,7 +223,7 @@ def get_llm_response( callbacks: list[Callable[..., Any]], printer: Printer, from_task: Task | None = None, - from_agent: Agent | None = None, + from_agent: Agent | LiteAgent | None = None, ) -> str: """Call the LLM and return the response, handling any invalid responses. diff --git a/src/crewai/utilities/converter.py b/src/crewai/utilities/converter.py index 8e8aa94af..07f6f7ea3 100644 --- a/src/crewai/utilities/converter.py +++ b/src/crewai/utilities/converter.py @@ -14,6 +14,7 @@ from crewai.utilities.pydantic_schema_parser import PydanticSchemaParser if TYPE_CHECKING: from crewai.agent import Agent + from crewai.agents.agent_builder.base_agent import BaseAgent from crewai.llm import LLM from crewai.llms.base_llm import BaseLLM @@ -143,7 +144,7 @@ def convert_to_model( result: str, output_pydantic: type[BaseModel] | None, output_json: type[BaseModel] | None, - agent: Agent | None = None, + agent: Agent | BaseAgent | None = None, converter_cls: type[Converter] | None = None, ) -> dict[str, Any] | BaseModel | str: """Convert a result string to a Pydantic model or JSON. @@ -215,7 +216,7 @@ def handle_partial_json( result: str, model: type[BaseModel], is_json_output: bool, - agent: Agent | None, + agent: Agent | BaseAgent | None, converter_cls: type[Converter] | None = None, ) -> dict[str, Any] | BaseModel | str: """Handle partial JSON in a result string and convert to Pydantic model or dict. @@ -260,7 +261,7 @@ def convert_with_instructions( result: str, model: type[BaseModel], is_json_output: bool, - agent: Agent | None, + agent: Agent | BaseAgent | None, converter_cls: type[Converter] | None = None, ) -> dict | BaseModel | str: """Convert a result string to a Pydantic model or JSON using instructions. @@ -283,7 +284,12 @@ def convert_with_instructions( """ if agent is None: raise TypeError("Agent must be provided if converter_cls is not specified.") - llm = agent.function_calling_llm or agent.llm + + llm = getattr(agent, "function_calling_llm", None) or agent.llm + + if llm is None: + raise ValueError("Agent must have a valid LLM instance for conversion") + instructions = get_conversion_instructions(model=model, llm=llm) converter = create_converter( agent=agent, @@ -299,7 +305,7 @@ def convert_with_instructions( if isinstance(exported_result, ConverterError): Printer().print( - content=f"{exported_result.message} Using raw output instead.", + content=f"Failed to convert result to model: {exported_result}", color="red", ) return result @@ -308,7 +314,7 @@ def convert_with_instructions( def get_conversion_instructions( - model: type[BaseModel], llm: BaseLLM | LLM | str + model: type[BaseModel], llm: BaseLLM | LLM | str | Any ) -> str: """Generate conversion instructions based on the model and LLM capabilities. @@ -357,7 +363,7 @@ class CreateConverterKwargs(TypedDict, total=False): def create_converter( - agent: Agent | None = None, + agent: Agent | BaseAgent | None = None, converter_cls: type[Converter] | None = None, *args: Any, **kwargs: Unpack[CreateConverterKwargs], diff --git a/src/crewai/utilities/guardrail.py b/src/crewai/utilities/guardrail.py index 837ffad8c..6846bf0e6 100644 --- a/src/crewai/utilities/guardrail.py +++ b/src/crewai/utilities/guardrail.py @@ -7,7 +7,9 @@ from pydantic import BaseModel, Field, field_validator from typing_extensions import Self if TYPE_CHECKING: - from crewai.lite_agent import LiteAgentOutput + from crewai.agents.agent_builder.base_agent import BaseAgent + from crewai.lite_agent import LiteAgent, LiteAgentOutput + from crewai.task import Task from crewai.tasks.task_output import TaskOutput @@ -79,6 +81,8 @@ def process_guardrail( guardrail: Callable[[Any], tuple[bool, Any | str]], retry_count: int, event_source: Any | None = None, + from_agent: BaseAgent | LiteAgent | None = None, + from_task: Task | None = None, ) -> GuardrailResult: """Process the guardrail for the agent output. @@ -95,14 +99,6 @@ def process_guardrail( TypeError: If output is not a TaskOutput or LiteAgentOutput ValueError: If guardrail is None """ - from crewai.lite_agent import LiteAgentOutput - from crewai.tasks.task_output import TaskOutput - - if not isinstance(output, (TaskOutput, LiteAgentOutput)): - raise TypeError("Output must be a TaskOutput or LiteAgentOutput") - if guardrail is None: - raise ValueError("Guardrail must not be None") - from crewai.events.event_bus import crewai_event_bus from crewai.events.types.llm_guardrail_events import ( LLMGuardrailCompletedEvent, @@ -111,7 +107,12 @@ def process_guardrail( crewai_event_bus.emit( event_source, - LLMGuardrailStartedEvent(guardrail=guardrail, retry_count=retry_count), + LLMGuardrailStartedEvent( + guardrail=guardrail, + retry_count=retry_count, + from_agent=from_agent, + from_task=from_task, + ), ) result = guardrail(output) @@ -124,6 +125,8 @@ def process_guardrail( result=guardrail_result.result, error=guardrail_result.error, retry_count=retry_count, + from_agent=from_agent, + from_task=from_task, ), ) diff --git a/src/crewai/utilities/tool_utils.py b/src/crewai/utilities/tool_utils.py index 851492a04..5506dde64 100644 --- a/src/crewai/utilities/tool_utils.py +++ b/src/crewai/utilities/tool_utils.py @@ -12,6 +12,7 @@ from crewai.utilities.i18n import I18N if TYPE_CHECKING: from crewai.agent import Agent + from crewai.agents.agent_builder.base_agent import BaseAgent from crewai.llm import LLM from crewai.llms.base_llm import BaseLLM from crewai.task import Task @@ -25,7 +26,7 @@ def execute_tool_and_check_finality( agent_role: str | None = None, tools_handler: ToolsHandler | None = None, task: Task | None = None, - agent: Agent | None = None, + agent: Agent | BaseAgent | None = None, function_calling_llm: BaseLLM | LLM | None = None, fingerprint_context: dict[str, str] | None = None, ) -> ToolResult: diff --git a/tests/agents/test_agent.py b/tests/agents/test_agent.py index e7d0526c8..f17d4d161 100644 --- a/tests/agents/test_agent.py +++ b/tests/agents/test_agent.py @@ -2299,10 +2299,10 @@ def test_get_knowledge_search_query(): crew = Crew(agents=[agent], tasks=[task]) crew.kickoff() - mock_get_query.assert_called_once_with(task_prompt) + mock_get_query.assert_called_once_with(task_prompt, task) with patch.object(agent.llm, "call") as mock_llm_call: - agent._get_knowledge_search_query(task_prompt) + agent._get_knowledge_search_query(task_prompt, task) mock_llm_call.assert_called_once_with( [ diff --git a/tests/cassettes/test_agent_error_on_parsing_tool.yaml b/tests/cassettes/test_agent_error_on_parsing_tool.yaml index ec6df0200..b79db90bd 100644 --- a/tests/cassettes/test_agent_error_on_parsing_tool.yaml +++ b/tests/cassettes/test_agent_error_on_parsing_tool.yaml @@ -1852,4 +1852,1709 @@ interactions: - req_f3e522c8e419cab62842ddcee0e80b7b http_version: HTTP/1.1 status_code: 200 +- request: + body: '{"trace_id": "f547ec24-65a2-4e61-af1f-56a272147fff", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "crew", "flow_name": null, "crewai_version": "0.201.1", "privacy_level": + "standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count": + 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-10-08T18:16:43.606547+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '428' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"b8e9c37f-0704-4e28-bd7d-def0ecc17a38","trace_id":"f547ec24-65a2-4e61-af1f-56a272147fff","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:16:44.029Z","updated_at":"2025-10-08T18:16:44.029Z"}' + headers: + Content-Length: + - '480' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"f7ef4a09307b1f22afe599e654f4b364" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.21, sql.active_record;dur=32.18, cache_generate.active_support;dur=12.04, + cache_write.active_support;dur=0.23, cache_read_multi.active_support;dur=0.34, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=1.17, + feature_operation.flipper;dur=0.11, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=16.34, process_action.action_controller;dur=345.81 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 805c96e3-5b48-4958-a7b4-5b4269eb624f + x-runtime: + - '0.414250' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created +- request: + body: '{"events": [{"event_id": "16a8f4da-5401-4181-a47d-e04135331203", "timestamp": + "2025-10-08T18:16:44.057758+00:00", "type": "crew_kickoff_started", "event_data": + {"timestamp": "2025-10-08T18:16:43.605145+00:00", "type": "crew_kickoff_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "inputs": null}}, {"event_id": "f91353c4-d5ea-43d0-b227-533b62ee85e5", + "timestamp": "2025-10-08T18:16:44.064866+00:00", "type": "task_started", "event_data": + {"task_description": "Use the get_final_answer tool.", "expected_output": "The + final answer", "task_name": "Use the get_final_answer tool.", "context": "", + "agent_role": "test role", "task_id": "3515212f-6267-4b3d-a775-2cc602a9e8c3"}}, + {"event_id": "5a640158-996c-4f85-87ff-21ad7ea2fe20", "timestamp": "2025-10-08T18:16:44.065943+00:00", + "type": "agent_execution_started", "event_data": {"agent_role": "test role", + "agent_goal": "test goal", "agent_backstory": "test backstory"}}, {"event_id": + "a1160342-bb58-4eb7-85ad-c996b7096c93", "timestamp": "2025-10-08T18:16:44.067807+00:00", + "type": "llm_call_started", "event_data": {"timestamp": "2025-10-08T18:16:44.067549+00:00", + "type": "llm_call_started", "source_fingerprint": null, "source_type": null, + "fingerprint_metadata": null, "task_name": "Use the get_final_answer tool.", + "task_id": "3515212f-6267-4b3d-a775-2cc602a9e8c3", "agent_id": "163c48fa-466e-4470-b238-acbbfe263776", + "agent_role": "test role", "from_task": null, "from_agent": null, "model": "gpt-4o-mini", + "messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\ntool non-stop.\n\nIMPORTANT: Use the following format in your + response:\n\n```\nThought: you should always think about what to do\nAction: + the action to take, only one name of [get_final_answer], just the name, exactly + as it''s written.\nAction Input: the input to the action, just a simple JSON + object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: + the result of the action\n```\n\nOnce all necessary information is gathered, + return the following format:\n\n```\nThought: I now know the final answer\nFinal + Answer: the final answer to the original input question\n```"}, {"role": "user", + "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis is the expected + criteria for your final answer: The final answer\nyou MUST return the actual + complete content as the final answer, not a summary.\n\nBegin! This is VERY + important to you, use the tools available and give your best Final Answer, your + job depends on it!\n\nThought:"}], "tools": null, "callbacks": [""], "available_functions": null}}, {"event_id": "a14ce9ee-7832-4ccc-b78c-0d48da271f1e", + "timestamp": "2025-10-08T18:16:44.072905+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:16:44.072815+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Use the get_final_answer tool.", "task_id": "3515212f-6267-4b3d-a775-2cc602a9e8c3", + "agent_id": "163c48fa-466e-4470-b238-acbbfe263776", "agent_role": "test role", + "from_task": null, "from_agent": null, "messages": [{"role": "system", "content": + "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY + have access to the following tools, and should NEVER make up tools that are + not listed here:\n\nTool Name: get_final_answer\nTool Arguments: {}\nTool Description: + Get the final answer but don''t give it yet, just re-use this\ntool non-stop.\n\nIMPORTANT: + Use the following format in your response:\n\n```\nThought: you should always + think about what to do\nAction: the action to take, only one name of [get_final_answer], + just the name, exactly as it''s written.\nAction Input: the input to the action, + just a simple JSON object, enclosed in curly braces, using \" to wrap keys and + values.\nObservation: the result of the action\n```\n\nOnce all necessary information + is gathered, return the following format:\n\n```\nThought: I now know the final + answer\nFinal Answer: the final answer to the original input question\n```"}, + {"role": "user", "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis + is the expected criteria for your final answer: The final answer\nyou MUST return + the actual complete content as the final answer, not a summary.\n\nBegin! This + is VERY important to you, use the tools available and give your best Final Answer, + your job depends on it!\n\nThought:"}], "response": "I need to determine what + action to take next to retrieve the final answer. \nAction: get_final_answer \nAction + Input: {} ", "call_type": "", "model": + "gpt-4o-mini"}}, {"event_id": "03ff68fd-169c-42ed-a466-546b50aa24bf", "timestamp": + "2025-10-08T18:16:44.078248+00:00", "type": "llm_call_started", "event_data": + {"timestamp": "2025-10-08T18:16:44.078102+00:00", "type": "llm_call_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": null, "task_id": null, "agent_id": null, "agent_role": null, "from_task": + null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role": "system", + "content": "You are test role. test backstory\nYour personal goal is: test goal\nYou + ONLY have access to the following tools, and should NEVER make up tools that + are not listed here:\n\nTool Name: get_final_answer\nTool Arguments: {}\nTool + Description: Get the final answer but don''t give it yet, just re-use this\ntool + non-stop.\n\nIMPORTANT: Use the following format in your response:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, only one + name of [get_final_answer], just the name, exactly as it''s written.\nAction + Input: the input to the action, just a simple JSON object, enclosed in curly + braces, using \" to wrap keys and values.\nObservation: the result of the action\n```\n\nOnce + all necessary information is gathered, return the following format:\n\n```\nThought: + I now know the final answer\nFinal Answer: the final answer to the original + input question\n```"}, {"role": "user", "content": "\nCurrent Task: Use the + get_final_answer tool.\n\nThis is the expected criteria for your final answer: + The final answer\nyou MUST return the actual complete content as the final answer, + not a summary.\n\nBegin! This is VERY important to you, use the tools available + and give your best Final Answer, your job depends on it!\n\nThought:"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "tools": null, "callbacks": [""], "available_functions": null}}, {"event_id": "9bc61f86-cf57-4971-aa11-5344a7015e23", + "timestamp": "2025-10-08T18:16:44.081687+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:16:44.081634+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": null, "task_id": null, "agent_id": null, "agent_role": null, "from_task": + null, "from_agent": null, "messages": [{"role": "system", "content": "You are + test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access + to the following tools, and should NEVER make up tools that are not listed here:\n\nTool + Name: get_final_answer\nTool Arguments: {}\nTool Description: Get the final + answer but don''t give it yet, just re-use this\ntool non-stop.\n\nIMPORTANT: + Use the following format in your response:\n\n```\nThought: you should always + think about what to do\nAction: the action to take, only one name of [get_final_answer], + just the name, exactly as it''s written.\nAction Input: the input to the action, + just a simple JSON object, enclosed in curly braces, using \" to wrap keys and + values.\nObservation: the result of the action\n```\n\nOnce all necessary information + is gathered, return the following format:\n\n```\nThought: I now know the final + answer\nFinal Answer: the final answer to the original input question\n```"}, + {"role": "user", "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis + is the expected criteria for your final answer: The final answer\nyou MUST return + the actual complete content as the final answer, not a summary.\n\nBegin! This + is VERY important to you, use the tools available and give your best Final Answer, + your job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}], "response": "```\nThought: + I now know the final answer\nFinal Answer: I must follow the predefined structure + and utilize the get_final_answer tool to extract the necessary information.\n```", + "call_type": "", "model": "gpt-4o-mini"}}, + {"event_id": "781c93ff-cf05-4a5e-81b8-0170f889ee5b", "timestamp": "2025-10-08T18:16:44.081795+00:00", + "type": "llm_call_started", "event_data": {"timestamp": "2025-10-08T18:16:44.081746+00:00", + "type": "llm_call_started", "source_fingerprint": null, "source_type": null, + "fingerprint_metadata": null, "task_name": "Use the get_final_answer tool.", + "task_id": "3515212f-6267-4b3d-a775-2cc602a9e8c3", "agent_id": "163c48fa-466e-4470-b238-acbbfe263776", + "agent_role": "test role", "from_task": null, "from_agent": null, "model": "gpt-4o-mini", + "messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\ntool non-stop.\n\nIMPORTANT: Use the following format in your + response:\n\n```\nThought: you should always think about what to do\nAction: + the action to take, only one name of [get_final_answer], just the name, exactly + as it''s written.\nAction Input: the input to the action, just a simple JSON + object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: + the result of the action\n```\n\nOnce all necessary information is gathered, + return the following format:\n\n```\nThought: I now know the final answer\nFinal + Answer: the final answer to the original input question\n```"}, {"role": "user", + "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis is the expected + criteria for your final answer: The final answer\nyou MUST return the actual + complete content as the final answer, not a summary.\n\nBegin! This is VERY + important to you, use the tools available and give your best Final Answer, your + job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I need to + determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}], "tools": null, "callbacks": + [""], + "available_functions": null}}, {"event_id": "91dbc997-a5bb-4a55-91e2-31f601fff95a", + "timestamp": "2025-10-08T18:16:44.085678+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:16:44.085617+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Use the get_final_answer tool.", "task_id": "3515212f-6267-4b3d-a775-2cc602a9e8c3", + "agent_id": "163c48fa-466e-4470-b238-acbbfe263776", "agent_role": "test role", + "from_task": null, "from_agent": null, "messages": [{"role": "system", "content": + "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY + have access to the following tools, and should NEVER make up tools that are + not listed here:\n\nTool Name: get_final_answer\nTool Arguments: {}\nTool Description: + Get the final answer but don''t give it yet, just re-use this\ntool non-stop.\n\nIMPORTANT: + Use the following format in your response:\n\n```\nThought: you should always + think about what to do\nAction: the action to take, only one name of [get_final_answer], + just the name, exactly as it''s written.\nAction Input: the input to the action, + just a simple JSON object, enclosed in curly braces, using \" to wrap keys and + values.\nObservation: the result of the action\n```\n\nOnce all necessary information + is gathered, return the following format:\n\n```\nThought: I now know the final + answer\nFinal Answer: the final answer to the original input question\n```"}, + {"role": "user", "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis + is the expected criteria for your final answer: The final answer\nyou MUST return + the actual complete content as the final answer, not a summary.\n\nBegin! This + is VERY important to you, use the tools available and give your best Final Answer, + your job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}], "response": "```\nThought: + you should always think about what to do\nAction: get_final_answer\nAction Input: + {}", "call_type": "", "model": "gpt-4o-mini"}}, + {"event_id": "5472e69e-83de-41f7-9406-69823552ff2f", "timestamp": "2025-10-08T18:16:44.087638+00:00", + "type": "llm_call_started", "event_data": {"timestamp": "2025-10-08T18:16:44.087510+00:00", + "type": "llm_call_started", "source_fingerprint": null, "source_type": null, + "fingerprint_metadata": null, "task_name": null, "task_id": null, "agent_id": + null, "agent_role": null, "from_task": null, "from_agent": null, "model": "gpt-4o-mini", + "messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\ntool non-stop.\n\nIMPORTANT: Use the following format in your + response:\n\n```\nThought: you should always think about what to do\nAction: + the action to take, only one name of [get_final_answer], just the name, exactly + as it''s written.\nAction Input: the input to the action, just a simple JSON + object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: + the result of the action\n```\n\nOnce all necessary information is gathered, + return the following format:\n\n```\nThought: I now know the final answer\nFinal + Answer: the final answer to the original input question\n```"}, {"role": "user", + "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis is the expected + criteria for your final answer: The final answer\nyou MUST return the actual + complete content as the final answer, not a summary.\n\nBegin! This is VERY + important to you, use the tools available and give your best Final Answer, your + job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I need to + determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: you should always think about what to do\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "tools": null, "callbacks": [""], "available_functions": null}}, {"event_id": "b72092ce-ceda-4f82-9393-a80f9dcf0c09", + "timestamp": "2025-10-08T18:16:44.090720+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:16:44.090679+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": null, "task_id": null, "agent_id": null, "agent_role": null, "from_task": + null, "from_agent": null, "messages": [{"role": "system", "content": "You are + test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access + to the following tools, and should NEVER make up tools that are not listed here:\n\nTool + Name: get_final_answer\nTool Arguments: {}\nTool Description: Get the final + answer but don''t give it yet, just re-use this\ntool non-stop.\n\nIMPORTANT: + Use the following format in your response:\n\n```\nThought: you should always + think about what to do\nAction: the action to take, only one name of [get_final_answer], + just the name, exactly as it''s written.\nAction Input: the input to the action, + just a simple JSON object, enclosed in curly braces, using \" to wrap keys and + values.\nObservation: the result of the action\n```\n\nOnce all necessary information + is gathered, return the following format:\n\n```\nThought: I now know the final + answer\nFinal Answer: the final answer to the original input question\n```"}, + {"role": "user", "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis + is the expected criteria for your final answer: The final answer\nyou MUST return + the actual complete content as the final answer, not a summary.\n\nBegin! This + is VERY important to you, use the tools available and give your best Final Answer, + your job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: you should always think about what to do\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "response": "```\nThought: I need to determine how to proceed + in order to get the final answer.\nAction: get_final_answer\nAction Input: {}", + "call_type": "", "model": "gpt-4o-mini"}}, + {"event_id": "a4709344-ef62-4836-ac7e-29e66fe56e9b", "timestamp": "2025-10-08T18:16:44.090828+00:00", + "type": "llm_call_started", "event_data": {"timestamp": "2025-10-08T18:16:44.090787+00:00", + "type": "llm_call_started", "source_fingerprint": null, "source_type": null, + "fingerprint_metadata": null, "task_name": "Use the get_final_answer tool.", + "task_id": "3515212f-6267-4b3d-a775-2cc602a9e8c3", "agent_id": "163c48fa-466e-4470-b238-acbbfe263776", + "agent_role": "test role", "from_task": null, "from_agent": null, "model": "gpt-4o-mini", + "messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\ntool non-stop.\n\nIMPORTANT: Use the following format in your + response:\n\n```\nThought: you should always think about what to do\nAction: + the action to take, only one name of [get_final_answer], just the name, exactly + as it''s written.\nAction Input: the input to the action, just a simple JSON + object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: + the result of the action\n```\n\nOnce all necessary information is gathered, + return the following format:\n\n```\nThought: I now know the final answer\nFinal + Answer: the final answer to the original input question\n```"}, {"role": "user", + "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis is the expected + criteria for your final answer: The final answer\nyou MUST return the actual + complete content as the final answer, not a summary.\n\nBegin! This is VERY + important to you, use the tools available and give your best Final Answer, your + job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I need to + determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: you should always think about what to do\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "tools": null, "callbacks": [""], "available_functions": null}}, {"event_id": "01a16383-a9d3-4257-8fe6-cf644c9bfcdb", + "timestamp": "2025-10-08T18:16:44.093691+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:16:44.093657+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Use the get_final_answer tool.", "task_id": "3515212f-6267-4b3d-a775-2cc602a9e8c3", + "agent_id": "163c48fa-466e-4470-b238-acbbfe263776", "agent_role": "test role", + "from_task": null, "from_agent": null, "messages": [{"role": "system", "content": + "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY + have access to the following tools, and should NEVER make up tools that are + not listed here:\n\nTool Name: get_final_answer\nTool Arguments: {}\nTool Description: + Get the final answer but don''t give it yet, just re-use this\ntool non-stop.\n\nIMPORTANT: + Use the following format in your response:\n\n```\nThought: you should always + think about what to do\nAction: the action to take, only one name of [get_final_answer], + just the name, exactly as it''s written.\nAction Input: the input to the action, + just a simple JSON object, enclosed in curly braces, using \" to wrap keys and + values.\nObservation: the result of the action\n```\n\nOnce all necessary information + is gathered, return the following format:\n\n```\nThought: I now know the final + answer\nFinal Answer: the final answer to the original input question\n```"}, + {"role": "user", "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis + is the expected criteria for your final answer: The final answer\nyou MUST return + the actual complete content as the final answer, not a summary.\n\nBegin! This + is VERY important to you, use the tools available and give your best Final Answer, + your job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: you should always think about what to do\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "response": "```\nThought: I need to pursue the action to + get the final answer.\nAction: get_final_answer\nAction Input: {}", "call_type": + "", "model": "gpt-4o-mini"}}, {"event_id": + "9290fb66-22c5-49fe-bc4c-0edef3213baf", "timestamp": "2025-10-08T18:16:44.095930+00:00", + "type": "llm_call_started", "event_data": {"timestamp": "2025-10-08T18:16:44.095245+00:00", + "type": "llm_call_started", "source_fingerprint": null, "source_type": null, + "fingerprint_metadata": null, "task_name": null, "task_id": null, "agent_id": + null, "agent_role": null, "from_task": null, "from_agent": null, "model": "gpt-4o-mini", + "messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\ntool non-stop.\n\nIMPORTANT: Use the following format in your + response:\n\n```\nThought: you should always think about what to do\nAction: + the action to take, only one name of [get_final_answer], just the name, exactly + as it''s written.\nAction Input: the input to the action, just a simple JSON + object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: + the result of the action\n```\n\nOnce all necessary information is gathered, + return the following format:\n\n```\nThought: I now know the final answer\nFinal + Answer: the final answer to the original input question\n```"}, {"role": "user", + "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis is the expected + criteria for your final answer: The final answer\nyou MUST return the actual + complete content as the final answer, not a summary.\n\nBegin! This is VERY + important to you, use the tools available and give your best Final Answer, your + job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I need to + determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: you should always think about what to do\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "```\nThought: I need to pursue + the action to get the final answer.\nAction: get_final_answer\nAction Input: + {}\nObservation: I encountered an error: Error on parsing tool.\nMoving on then. + I MUST either use a tool (use one at time) OR give my best final answer not + both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "```\nThought: + I need to pursue the action to get the final answer.\nAction: get_final_answer\nAction + Input: {}\nObservation: I encountered an error: Error on parsing tool.\nMoving + on then. I MUST either use a tool (use one at time) OR give my best final answer + not both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}], "tools": null, "callbacks": + [""], + "available_functions": null}}, {"event_id": "e3c09cf8-7e54-4b7c-a941-48e40d11d482", + "timestamp": "2025-10-08T18:16:44.098722+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:16:44.098680+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": null, "task_id": null, "agent_id": null, "agent_role": null, "from_task": + null, "from_agent": null, "messages": [{"role": "system", "content": "You are + test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access + to the following tools, and should NEVER make up tools that are not listed here:\n\nTool + Name: get_final_answer\nTool Arguments: {}\nTool Description: Get the final + answer but don''t give it yet, just re-use this\ntool non-stop.\n\nIMPORTANT: + Use the following format in your response:\n\n```\nThought: you should always + think about what to do\nAction: the action to take, only one name of [get_final_answer], + just the name, exactly as it''s written.\nAction Input: the input to the action, + just a simple JSON object, enclosed in curly braces, using \" to wrap keys and + values.\nObservation: the result of the action\n```\n\nOnce all necessary information + is gathered, return the following format:\n\n```\nThought: I now know the final + answer\nFinal Answer: the final answer to the original input question\n```"}, + {"role": "user", "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis + is the expected criteria for your final answer: The final answer\nyou MUST return + the actual complete content as the final answer, not a summary.\n\nBegin! This + is VERY important to you, use the tools available and give your best Final Answer, + your job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: you should always think about what to do\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "```\nThought: I need to pursue + the action to get the final answer.\nAction: get_final_answer\nAction Input: + {}\nObservation: I encountered an error: Error on parsing tool.\nMoving on then. + I MUST either use a tool (use one at time) OR give my best final answer not + both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "```\nThought: + I need to pursue the action to get the final answer.\nAction: get_final_answer\nAction + Input: {}\nObservation: I encountered an error: Error on parsing tool.\nMoving + on then. I MUST either use a tool (use one at time) OR give my best final answer + not both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}], "response": "```\nThought: + I need to pursue the action to get the final answer.\nAction: get_final_answer\nAction + Input: {}", "call_type": "", "model": "gpt-4o-mini"}}, + {"event_id": "ec342da7-248c-4fb5-b7a9-c7fb90ec4e3a", "timestamp": "2025-10-08T18:16:44.098808+00:00", + "type": "llm_call_started", "event_data": {"timestamp": "2025-10-08T18:16:44.098774+00:00", + "type": "llm_call_started", "source_fingerprint": null, "source_type": null, + "fingerprint_metadata": null, "task_name": "Use the get_final_answer tool.", + "task_id": "3515212f-6267-4b3d-a775-2cc602a9e8c3", "agent_id": "163c48fa-466e-4470-b238-acbbfe263776", + "agent_role": "test role", "from_task": null, "from_agent": null, "model": "gpt-4o-mini", + "messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\ntool non-stop.\n\nIMPORTANT: Use the following format in your + response:\n\n```\nThought: you should always think about what to do\nAction: + the action to take, only one name of [get_final_answer], just the name, exactly + as it''s written.\nAction Input: the input to the action, just a simple JSON + object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: + the result of the action\n```\n\nOnce all necessary information is gathered, + return the following format:\n\n```\nThought: I now know the final answer\nFinal + Answer: the final answer to the original input question\n```"}, {"role": "user", + "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis is the expected + criteria for your final answer: The final answer\nyou MUST return the actual + complete content as the final answer, not a summary.\n\nBegin! This is VERY + important to you, use the tools available and give your best Final Answer, your + job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I need to + determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: you should always think about what to do\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "```\nThought: I need to pursue + the action to get the final answer.\nAction: get_final_answer\nAction Input: + {}\nObservation: I encountered an error: Error on parsing tool.\nMoving on then. + I MUST either use a tool (use one at time) OR give my best final answer not + both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "```\nThought: + I need to pursue the action to get the final answer.\nAction: get_final_answer\nAction + Input: {}\nObservation: I encountered an error: Error on parsing tool.\nMoving + on then. I MUST either use a tool (use one at time) OR give my best final answer + not both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}], "tools": null, "callbacks": + [""], + "available_functions": null}}, {"event_id": "fcfab733-e239-4781-81e8-bbee191c3cce", + "timestamp": "2025-10-08T18:16:44.101471+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:16:44.101441+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Use the get_final_answer tool.", "task_id": "3515212f-6267-4b3d-a775-2cc602a9e8c3", + "agent_id": "163c48fa-466e-4470-b238-acbbfe263776", "agent_role": "test role", + "from_task": null, "from_agent": null, "messages": [{"role": "system", "content": + "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY + have access to the following tools, and should NEVER make up tools that are + not listed here:\n\nTool Name: get_final_answer\nTool Arguments: {}\nTool Description: + Get the final answer but don''t give it yet, just re-use this\ntool non-stop.\n\nIMPORTANT: + Use the following format in your response:\n\n```\nThought: you should always + think about what to do\nAction: the action to take, only one name of [get_final_answer], + just the name, exactly as it''s written.\nAction Input: the input to the action, + just a simple JSON object, enclosed in curly braces, using \" to wrap keys and + values.\nObservation: the result of the action\n```\n\nOnce all necessary information + is gathered, return the following format:\n\n```\nThought: I now know the final + answer\nFinal Answer: the final answer to the original input question\n```"}, + {"role": "user", "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis + is the expected criteria for your final answer: The final answer\nyou MUST return + the actual complete content as the final answer, not a summary.\n\nBegin! This + is VERY important to you, use the tools available and give your best Final Answer, + your job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: you should always think about what to do\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "```\nThought: I need to pursue + the action to get the final answer.\nAction: get_final_answer\nAction Input: + {}\nObservation: I encountered an error: Error on parsing tool.\nMoving on then. + I MUST either use a tool (use one at time) OR give my best final answer not + both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "```\nThought: + I need to pursue the action to get the final answer.\nAction: get_final_answer\nAction + Input: {}\nObservation: I encountered an error: Error on parsing tool.\nMoving + on then. I MUST either use a tool (use one at time) OR give my best final answer + not both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}], "response": "```\nThought: + I need to pursue the action to get the final answer.\nAction: get_final_answer\nAction + Input: {}", "call_type": "", "model": "gpt-4o-mini"}}, + {"event_id": "a3b55181-2cc1-4c0c-8ef6-dd91b7da3cea", "timestamp": "2025-10-08T18:16:44.103430+00:00", + "type": "llm_call_started", "event_data": {"timestamp": "2025-10-08T18:16:44.102860+00:00", + "type": "llm_call_started", "source_fingerprint": null, "source_type": null, + "fingerprint_metadata": null, "task_name": null, "task_id": null, "agent_id": + null, "agent_role": null, "from_task": null, "from_agent": null, "model": "gpt-4o-mini", + "messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\ntool non-stop.\n\nIMPORTANT: Use the following format in your + response:\n\n```\nThought: you should always think about what to do\nAction: + the action to take, only one name of [get_final_answer], just the name, exactly + as it''s written.\nAction Input: the input to the action, just a simple JSON + object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: + the result of the action\n```\n\nOnce all necessary information is gathered, + return the following format:\n\n```\nThought: I now know the final answer\nFinal + Answer: the final answer to the original input question\n```"}, {"role": "user", + "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis is the expected + criteria for your final answer: The final answer\nyou MUST return the actual + complete content as the final answer, not a summary.\n\nBegin! This is VERY + important to you, use the tools available and give your best Final Answer, your + job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I need to + determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: you should always think about what to do\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "```\nThought: I need to pursue + the action to get the final answer.\nAction: get_final_answer\nAction Input: + {}\nObservation: I encountered an error: Error on parsing tool.\nMoving on then. + I MUST either use a tool (use one at time) OR give my best final answer not + both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "```\nThought: + I need to pursue the action to get the final answer.\nAction: get_final_answer\nAction + Input: {}\nObservation: I encountered an error: Error on parsing tool.\nMoving + on then. I MUST either use a tool (use one at time) OR give my best final answer + not both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: I need to pursue the action to get the final answer.\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "tools": null, "callbacks": [""], "available_functions": null}}, {"event_id": "7ce3a4d9-329c-4e03-97ee-1e7ff09b9e8a", + "timestamp": "2025-10-08T18:16:44.106320+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:16:44.106287+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": null, "task_id": null, "agent_id": null, "agent_role": null, "from_task": + null, "from_agent": null, "messages": [{"role": "system", "content": "You are + test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access + to the following tools, and should NEVER make up tools that are not listed here:\n\nTool + Name: get_final_answer\nTool Arguments: {}\nTool Description: Get the final + answer but don''t give it yet, just re-use this\ntool non-stop.\n\nIMPORTANT: + Use the following format in your response:\n\n```\nThought: you should always + think about what to do\nAction: the action to take, only one name of [get_final_answer], + just the name, exactly as it''s written.\nAction Input: the input to the action, + just a simple JSON object, enclosed in curly braces, using \" to wrap keys and + values.\nObservation: the result of the action\n```\n\nOnce all necessary information + is gathered, return the following format:\n\n```\nThought: I now know the final + answer\nFinal Answer: the final answer to the original input question\n```"}, + {"role": "user", "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis + is the expected criteria for your final answer: The final answer\nyou MUST return + the actual complete content as the final answer, not a summary.\n\nBegin! This + is VERY important to you, use the tools available and give your best Final Answer, + your job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: you should always think about what to do\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "```\nThought: I need to pursue + the action to get the final answer.\nAction: get_final_answer\nAction Input: + {}\nObservation: I encountered an error: Error on parsing tool.\nMoving on then. + I MUST either use a tool (use one at time) OR give my best final answer not + both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "```\nThought: + I need to pursue the action to get the final answer.\nAction: get_final_answer\nAction + Input: {}\nObservation: I encountered an error: Error on parsing tool.\nMoving + on then. I MUST either use a tool (use one at time) OR give my best final answer + not both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: I need to pursue the action to get the final answer.\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "response": "```\nThought: I need to take action to get the + final answer.\nAction: get_final_answer\nAction Input: {}", "call_type": "", "model": "gpt-4o-mini"}}, {"event_id": "6973d64a-9c0e-451d-aa6b-a460364d290e", + "timestamp": "2025-10-08T18:16:44.106404+00:00", "type": "llm_call_started", + "event_data": {"timestamp": "2025-10-08T18:16:44.106372+00:00", "type": "llm_call_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Use the get_final_answer tool.", "task_id": "3515212f-6267-4b3d-a775-2cc602a9e8c3", + "agent_id": "163c48fa-466e-4470-b238-acbbfe263776", "agent_role": "test role", + "from_task": null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role": + "system", "content": "You are test role. test backstory\nYour personal goal + is: test goal\nYou ONLY have access to the following tools, and should NEVER + make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\ntool non-stop.\n\nIMPORTANT: Use the following format in your + response:\n\n```\nThought: you should always think about what to do\nAction: + the action to take, only one name of [get_final_answer], just the name, exactly + as it''s written.\nAction Input: the input to the action, just a simple JSON + object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: + the result of the action\n```\n\nOnce all necessary information is gathered, + return the following format:\n\n```\nThought: I now know the final answer\nFinal + Answer: the final answer to the original input question\n```"}, {"role": "user", + "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis is the expected + criteria for your final answer: The final answer\nyou MUST return the actual + complete content as the final answer, not a summary.\n\nBegin! This is VERY + important to you, use the tools available and give your best Final Answer, your + job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I need to + determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: you should always think about what to do\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "```\nThought: I need to pursue + the action to get the final answer.\nAction: get_final_answer\nAction Input: + {}\nObservation: I encountered an error: Error on parsing tool.\nMoving on then. + I MUST either use a tool (use one at time) OR give my best final answer not + both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "```\nThought: + I need to pursue the action to get the final answer.\nAction: get_final_answer\nAction + Input: {}\nObservation: I encountered an error: Error on parsing tool.\nMoving + on then. I MUST either use a tool (use one at time) OR give my best final answer + not both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: I need to pursue the action to get the final answer.\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "tools": null, "callbacks": [""], "available_functions": null}}, {"event_id": "79ebf739-db33-4fc4-ad3b-f3f1be07b3b6", + "timestamp": "2025-10-08T18:16:44.109198+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:16:44.109164+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Use the get_final_answer tool.", "task_id": "3515212f-6267-4b3d-a775-2cc602a9e8c3", + "agent_id": "163c48fa-466e-4470-b238-acbbfe263776", "agent_role": "test role", + "from_task": null, "from_agent": null, "messages": [{"role": "system", "content": + "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY + have access to the following tools, and should NEVER make up tools that are + not listed here:\n\nTool Name: get_final_answer\nTool Arguments: {}\nTool Description: + Get the final answer but don''t give it yet, just re-use this\ntool non-stop.\n\nIMPORTANT: + Use the following format in your response:\n\n```\nThought: you should always + think about what to do\nAction: the action to take, only one name of [get_final_answer], + just the name, exactly as it''s written.\nAction Input: the input to the action, + just a simple JSON object, enclosed in curly braces, using \" to wrap keys and + values.\nObservation: the result of the action\n```\n\nOnce all necessary information + is gathered, return the following format:\n\n```\nThought: I now know the final + answer\nFinal Answer: the final answer to the original input question\n```"}, + {"role": "user", "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis + is the expected criteria for your final answer: The final answer\nyou MUST return + the actual complete content as the final answer, not a summary.\n\nBegin! This + is VERY important to you, use the tools available and give your best Final Answer, + your job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: you should always think about what to do\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "```\nThought: I need to pursue + the action to get the final answer.\nAction: get_final_answer\nAction Input: + {}\nObservation: I encountered an error: Error on parsing tool.\nMoving on then. + I MUST either use a tool (use one at time) OR give my best final answer not + both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "```\nThought: + I need to pursue the action to get the final answer.\nAction: get_final_answer\nAction + Input: {}\nObservation: I encountered an error: Error on parsing tool.\nMoving + on then. I MUST either use a tool (use one at time) OR give my best final answer + not both at the same time. When responding, I must use the following format:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, should + be one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```\nNow it''s time you MUST give your absolute + best final answer. You''ll ignore all previous instructions, stop using any + tools, and just return your absolute BEST Final answer."}, {"role": "assistant", + "content": "```\nThought: I need to pursue the action to get the final answer.\nAction: + get_final_answer\nAction Input: {}\nObservation: I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "response": "```\nThought: I now know the final answer\nFinal + Answer: I am unable to provide a final answer due to a continuous error when + trying to retrieve it using the get_final_answer tool.\n```", "call_type": "", "model": "gpt-4o-mini"}}, {"event_id": "3001082e-221b-47a0-9c15-4ac1f31e3b98", + "timestamp": "2025-10-08T18:16:44.109826+00:00", "type": "agent_execution_completed", + "event_data": {"agent_role": "test role", "agent_goal": "test goal", "agent_backstory": + "test backstory"}}, {"event_id": "6f921a6b-e3c2-45d2-a266-3658800dda49", "timestamp": + "2025-10-08T18:16:44.111015+00:00", "type": "task_completed", "event_data": + {"task_description": "Use the get_final_answer tool.", "task_name": "Use the + get_final_answer tool.", "task_id": "3515212f-6267-4b3d-a775-2cc602a9e8c3", + "output_raw": "I am unable to provide a final answer due to a continuous error + when trying to retrieve it using the get_final_answer tool.", "output_format": + "OutputFormat.RAW", "agent_role": "test role"}}, {"event_id": "ca83f844-3173-41eb-85b2-18ce4f3f2abd", + "timestamp": "2025-10-08T18:16:44.112376+00:00", "type": "crew_kickoff_completed", + "event_data": {"timestamp": "2025-10-08T18:16:44.111998+00:00", "type": "crew_kickoff_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "output": {"description": "Use the get_final_answer + tool.", "name": "Use the get_final_answer tool.", "expected_output": "The final + answer", "summary": "Use the get_final_answer tool....", "raw": "I am unable + to provide a final answer due to a continuous error when trying to retrieve + it using the get_final_answer tool.", "pydantic": null, "json_dict": null, "agent": + "test role", "output_format": "raw"}, "total_tokens": 14744}}], "batch_metadata": + {"events_count": 24, "batch_sequence": 1, "is_final_batch": false}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '118521' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/f547ec24-65a2-4e61-af1f-56a272147fff/events + response: + body: + string: '{"events_created":24,"trace_batch_id":"b8e9c37f-0704-4e28-bd7d-def0ecc17a38"}' + headers: + Content-Length: + - '77' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"8e091a3dffc34d9e84715a532d84af27" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.09, sql.active_record;dur=154.27, cache_generate.active_support;dur=1.90, + cache_write.active_support;dur=0.16, cache_read_multi.active_support;dur=0.12, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.96, + start_transaction.active_record;dur=0.03, transaction.active_record;dur=339.87, + process_action.action_controller;dur=949.34 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 0df136af-5a98-4324-9881-acb0dc2cf793 + x-runtime: + - '1.011949' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{"status": "completed", "duration_ms": 1536, "final_event_count": 24}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '69' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: PATCH + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/f547ec24-65a2-4e61-af1f-56a272147fff/finalize + response: + body: + string: '{"id":"b8e9c37f-0704-4e28-bd7d-def0ecc17a38","trace_id":"f547ec24-65a2-4e61-af1f-56a272147fff","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":1536,"crewai_version":"0.201.1","privacy_level":"standard","total_events":24,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.201.1","crew_fingerprint":null},"created_at":"2025-10-08T18:16:44.029Z","updated_at":"2025-10-08T18:16:45.517Z"}' + headers: + Content-Length: + - '483' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"d6a1d638049d3f206886a9e77884c925" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.05, sql.active_record;dur=25.66, cache_generate.active_support;dur=4.16, + cache_write.active_support;dur=0.16, cache_read_multi.active_support;dur=0.11, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=1.95, + unpermitted_parameters.action_controller;dur=0.01, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=6.63, process_action.action_controller;dur=309.37 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 4ebe01f5-9359-4ce1-be3a-e67d91130a7c + x-runtime: + - '0.371201' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK version: 1 diff --git a/tests/cassettes/test_agent_execute_task_with_tool.yaml b/tests/cassettes/test_agent_execute_task_with_tool.yaml index 609cff462..a36161061 100644 --- a/tests/cassettes/test_agent_execute_task_with_tool.yaml +++ b/tests/cassettes/test_agent_execute_task_with_tool.yaml @@ -237,4 +237,94 @@ interactions: - req_cdc7b25a3877bb9a7cb7c6d2645ff447 http_version: HTTP/1.1 status_code: 200 +- request: + body: '{"trace_id": "1581aff1-2567-43f4-a1f2-a2816533eb7d", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.201.1", + "privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate": + 300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": + "2025-10-08T18:11:28.008595+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '436' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"30844ebe-8ac6-4f67-939a-7a072d792654","trace_id":"1581aff1-2567-43f4-a1f2-a2816533eb7d","execution_type":"crew","crew_name":"Unknown + Crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"Unknown + Crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:11:28.353Z","updated_at":"2025-10-08T18:11:28.353Z"}' + headers: + Content-Length: + - '496' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"a548892c6a8a52833595a42b35b10009" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.05, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.12, start_processing.action_controller;dur=0.00, + sql.active_record;dur=30.46, instantiation.active_record;dur=0.38, feature_operation.flipper;dur=0.03, + start_transaction.active_record;dur=0.01, transaction.active_record;dur=16.78, + process_action.action_controller;dur=309.67 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 7ec132be-e871-4b0a-93f7-81f8d7c0ccae + x-runtime: + - '0.358533' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created version: 1 diff --git a/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml b/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml index 994bfd855..89542783c 100644 --- a/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml +++ b/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml @@ -446,4 +446,401 @@ interactions: status: code: 200 message: OK +- request: + body: '{"trace_id": "920c6df4-4c8c-4199-a9ec-a7dddd002f1e", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "crew", "flow_name": null, "crewai_version": "0.201.1", "privacy_level": + "standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count": + 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-10-08T18:11:24.930733+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '428' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"52004179-3853-49d5-8e6d-929a42954539","trace_id":"920c6df4-4c8c-4199-a9ec-a7dddd002f1e","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:11:25.572Z","updated_at":"2025-10-08T18:11:25.572Z"}' + headers: + Content-Length: + - '480' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"3204246527f006a887ccdd0e87295092" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.07, sql.active_record;dur=35.64, cache_generate.active_support;dur=4.83, + cache_write.active_support;dur=0.19, cache_read_multi.active_support;dur=0.36, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.72, + feature_operation.flipper;dur=0.06, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=17.92, process_action.action_controller;dur=588.60 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 4125f6d9-09cd-45ee-b1cb-ac005cc418b4 + x-runtime: + - '0.649438' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created +- request: + body: '{"events": [{"event_id": "80d329ad-093e-4fbb-88d2-bd3e6674ffee", "timestamp": + "2025-10-08T18:11:25.586379+00:00", "type": "crew_kickoff_started", "event_data": + {"timestamp": "2025-10-08T18:11:24.929237+00:00", "type": "crew_kickoff_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "inputs": null}}, {"event_id": "2e1865fd-3eb9-423c-a745-3b4f6f3b1dec", + "timestamp": "2025-10-08T18:11:25.645331+00:00", "type": "task_started", "event_data": + {"task_description": "What is Brandon''s favorite color?", "expected_output": + "Brandon''s favorite color.", "task_name": "What is Brandon''s favorite color?", + "context": "", "agent_role": "Information Agent", "task_id": "57890b12-0b91-4bb0-8e5b-76388a3114fd"}}, + {"event_id": "5be689ff-5df4-49eb-9bb0-9d8b1fbf2143", "timestamp": "2025-10-08T18:11:25.645469+00:00", + "type": "knowledge_query_started", "event_data": {"timestamp": "2025-10-08T18:11:25.645419+00:00", + "type": "knowledge_query_started", "source_fingerprint": null, "source_type": + null, "fingerprint_metadata": null, "task_id": "57890b12-0b91-4bb0-8e5b-76388a3114fd", + "task_name": "What is Brandon''s favorite color?", "from_task": null, "from_agent": + null, "agent_role": "Information Agent", "agent_id": "0c25bfd4-9ec0-467a-b855-235cfeda9f91", + "task_prompt": "What is Brandon''s favorite color?\n\nThis is the expected criteria + for your final answer: Brandon''s favorite color.\nyou MUST return the actual + complete content as the final answer, not a summary."}}, {"event_id": "fb4d5350-3344-42e9-b0e6-0720a857ab1a", + "timestamp": "2025-10-08T18:11:25.645562+00:00", "type": "llm_call_started", + "event_data": {"timestamp": "2025-10-08T18:11:25.645528+00:00", "type": "llm_call_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": null, "task_id": null, "agent_id": null, "agent_role": null, "from_task": + null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role": "system", + "content": "Your goal is to rewrite the user query so that it is optimized for + retrieval from a vector database. Consider how the query will be used to find + relevant documents, and aim to make it more specific and context-aware. \n\n + Do not include any other text than the rewritten query, especially any preamble + or postamble and only add expected output format if its relevant to the rewritten + query. \n\n Focus on the key words of the intended task and to retrieve the + most relevant information. \n\n There will be some extra context provided that + might need to be removed such as expected_output formats structured_outputs + and other instructions."}, {"role": "user", "content": "The original query is: + What is Brandon''s favorite color?\n\nThis is the expected criteria for your + final answer: Brandon''s favorite color.\nyou MUST return the actual complete + content as the final answer, not a summary.."}], "tools": null, "callbacks": + null, "available_functions": null}}, {"event_id": "8bf17648-9f35-485a-852b-823909b9a698", + "timestamp": "2025-10-08T18:11:25.647652+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:11:25.647614+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": null, "task_id": null, "agent_id": null, "agent_role": null, "from_task": + null, "from_agent": null, "messages": [{"role": "system", "content": "Your goal + is to rewrite the user query so that it is optimized for retrieval from a vector + database. Consider how the query will be used to find relevant documents, and + aim to make it more specific and context-aware. \n\n Do not include any other + text than the rewritten query, especially any preamble or postamble and only + add expected output format if its relevant to the rewritten query. \n\n Focus + on the key words of the intended task and to retrieve the most relevant information. + \n\n There will be some extra context provided that might need to be removed + such as expected_output formats structured_outputs and other instructions."}, + {"role": "user", "content": "The original query is: What is Brandon''s favorite + color?\n\nThis is the expected criteria for your final answer: Brandon''s favorite + color.\nyou MUST return the actual complete content as the final answer, not + a summary.."}], "response": "Brandon''s favorite color", "call_type": "", "model": "gpt-4o-mini"}}, {"event_id": "17f8523a-ca84-4d03-bbe0-e68cdf586cff", + "timestamp": "2025-10-08T18:11:25.647752+00:00", "type": "knowledge_query_completed", + "event_data": {"timestamp": "2025-10-08T18:11:25.647704+00:00", "type": "knowledge_query_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_id": "57890b12-0b91-4bb0-8e5b-76388a3114fd", "task_name": "What is Brandon''s + favorite color?", "from_task": null, "from_agent": null, "agent_role": "Information + Agent", "agent_id": "0c25bfd4-9ec0-467a-b855-235cfeda9f91", "query": "The original + query is: What is Brandon''s favorite color?\n\nThis is the expected criteria + for your final answer: Brandon''s favorite color.\nyou MUST return the actual + complete content as the final answer, not a summary.."}}, {"event_id": "db797e69-140d-4c15-a2a1-0fd8dbea69ff", + "timestamp": "2025-10-08T18:11:25.647835+00:00", "type": "knowledge_retrieval_started", + "event_data": {"timestamp": "2025-10-08T18:11:25.647794+00:00", "type": "knowledge_search_query_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_id": "57890b12-0b91-4bb0-8e5b-76388a3114fd", "task_name": "What is Brandon''s + favorite color?", "from_task": null, "from_agent": null, "agent_role": "Information + Agent", "agent_id": "0c25bfd4-9ec0-467a-b855-235cfeda9f91"}}, {"event_id": "35d9e94d-07b5-42c3-9b95-c319c14a4ece", + "timestamp": "2025-10-08T18:11:25.648079+00:00", "type": "knowledge_retrieval_completed", + "event_data": {"timestamp": "2025-10-08T18:11:25.648034+00:00", "type": "knowledge_search_query_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_id": "57890b12-0b91-4bb0-8e5b-76388a3114fd", "task_name": "What is Brandon''s + favorite color?", "from_task": null, "from_agent": null, "agent_role": "Information + Agent", "agent_id": "0c25bfd4-9ec0-467a-b855-235cfeda9f91", "query": "Brandon''s + favorite color", "retrieved_knowledge": ""}}, {"event_id": "4f749722-c991-46fd-a5dc-6cc9474481ac", + "timestamp": "2025-10-08T18:11:25.648768+00:00", "type": "agent_execution_started", + "event_data": {"agent_role": "Information Agent", "agent_goal": "Provide information + based on knowledge sources", "agent_backstory": "You have access to specific + knowledge sources."}}, {"event_id": "588108e1-b49d-4807-806b-db00340c3997", + "timestamp": "2025-10-08T18:11:25.648869+00:00", "type": "llm_call_started", + "event_data": {"timestamp": "2025-10-08T18:11:25.648853+00:00", "type": "llm_call_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "What is Brandon''s favorite color?", "task_id": "57890b12-0b91-4bb0-8e5b-76388a3114fd", + "agent_id": "0c25bfd4-9ec0-467a-b855-235cfeda9f91", "agent_role": "Information + Agent", "from_task": null, "from_agent": null, "model": "gpt-4o-mini", "messages": + [{"role": "system", "content": "You are Information Agent. You have access to + specific knowledge sources.\nYour personal goal is: Provide information based + on knowledge sources\nTo give my best complete final answer to the task respond + using the exact following format:\n\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described.\n\nI MUST use these formats, my job depends on + it!"}, {"role": "user", "content": "\nCurrent Task: What is Brandon''s favorite + color?\n\nThis is the expected criteria for your final answer: Brandon''s favorite + color.\nyou MUST return the actual complete content as the final answer, not + a summary.\n\nBegin! This is VERY important to you, use the tools available + and give your best Final Answer, your job depends on it!\n\nThought:"}], "tools": + null, "callbacks": [""], "available_functions": null}}, {"event_id": "a00425bc-254a-4d29-8b26-f180ec2778af", + "timestamp": "2025-10-08T18:11:25.650710+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:11:25.650691+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "What is Brandon''s favorite color?", "task_id": "57890b12-0b91-4bb0-8e5b-76388a3114fd", + "agent_id": "0c25bfd4-9ec0-467a-b855-235cfeda9f91", "agent_role": "Information + Agent", "from_task": null, "from_agent": null, "messages": [{"role": "system", + "content": "You are Information Agent. You have access to specific knowledge + sources.\nYour personal goal is: Provide information based on knowledge sources\nTo + give my best complete final answer to the task respond using the exact following + format:\n\nThought: I now can give a great answer\nFinal Answer: Your final + answer must be the great and the most complete as possible, it must be outcome + described.\n\nI MUST use these formats, my job depends on it!"}, {"role": "user", + "content": "\nCurrent Task: What is Brandon''s favorite color?\n\nThis is the + expected criteria for your final answer: Brandon''s favorite color.\nyou MUST + return the actual complete content as the final answer, not a summary.\n\nBegin! + This is VERY important to you, use the tools available and give your best Final + Answer, your job depends on it!\n\nThought:"}], "response": "I now can give + a great answer \nFinal Answer: Brandon''s favorite color is not publicly documented + in commonly available knowledge sources. For accurate information, it would + be best to ask Brandon directly or consult personal sources where this information + may be shared.", "call_type": "", "model": + "gpt-4o-mini"}}, {"event_id": "8671bdd3-8e82-466e-a674-ef109b8af888", "timestamp": + "2025-10-08T18:11:25.650825+00:00", "type": "agent_execution_completed", "event_data": + {"agent_role": "Information Agent", "agent_goal": "Provide information based + on knowledge sources", "agent_backstory": "You have access to specific knowledge + sources."}}, {"event_id": "2449c05a-ab8a-424f-920e-ecf48f00ae69", "timestamp": + "2025-10-08T18:11:25.650902+00:00", "type": "task_completed", "event_data": + {"task_description": "What is Brandon''s favorite color?", "task_name": "What + is Brandon''s favorite color?", "task_id": "57890b12-0b91-4bb0-8e5b-76388a3114fd", + "output_raw": "Brandon''s favorite color is not publicly documented in commonly + available knowledge sources. For accurate information, it would be best to ask + Brandon directly or consult personal sources where this information may be shared.", + "output_format": "OutputFormat.RAW", "agent_role": "Information Agent"}}, {"event_id": + "6d24e271-d58b-4045-8b0b-fc8474ad6035", "timestamp": "2025-10-08T18:11:25.651915+00:00", + "type": "crew_kickoff_completed", "event_data": {"timestamp": "2025-10-08T18:11:25.651898+00:00", + "type": "crew_kickoff_completed", "source_fingerprint": null, "source_type": + null, "fingerprint_metadata": null, "crew_name": "crew", "crew": null, "output": + {"description": "What is Brandon''s favorite color?", "name": "What is Brandon''s + favorite color?", "expected_output": "Brandon''s favorite color.", "summary": + "What is Brandon''s favorite color?...", "raw": "Brandon''s favorite color is + not publicly documented in commonly available knowledge sources. For accurate + information, it would be best to ask Brandon directly or consult personal sources + where this information may be shared.", "pydantic": null, "json_dict": null, + "agent": "Information Agent", "output_format": "raw"}, "total_tokens": 217}}], + "batch_metadata": {"events_count": 14, "batch_sequence": 1, "is_final_batch": + false}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '12007' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/920c6df4-4c8c-4199-a9ec-a7dddd002f1e/events + response: + body: + string: '{"events_created":14,"trace_batch_id":"52004179-3853-49d5-8e6d-929a42954539"}' + headers: + Content-Length: + - '77' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"7c42d4601276ccbd412a5a5c98fbafca" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.07, sql.active_record;dur=72.21, cache_generate.active_support;dur=2.81, + cache_write.active_support;dur=0.17, cache_read_multi.active_support;dur=0.09, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.41, + start_transaction.active_record;dur=0.01, transaction.active_record;dur=171.63, + process_action.action_controller;dur=568.89 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 16cec90d-b3a0-4aec-bbbb-9418fe55a733 + x-runtime: + - '0.621817' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{"status": "completed", "duration_ms": 1359, "final_event_count": 14}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '69' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: PATCH + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/920c6df4-4c8c-4199-a9ec-a7dddd002f1e/finalize + response: + body: + string: '{"id":"52004179-3853-49d5-8e6d-929a42954539","trace_id":"920c6df4-4c8c-4199-a9ec-a7dddd002f1e","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":1359,"crewai_version":"0.201.1","privacy_level":"standard","total_events":14,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.201.1","crew_fingerprint":null},"created_at":"2025-10-08T18:11:25.572Z","updated_at":"2025-10-08T18:11:26.681Z"}' + headers: + Content-Length: + - '483' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"9ad3c217f487881f66f53b4e1f370615" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.08, sql.active_record;dur=14.27, cache_generate.active_support;dur=1.77, + cache_write.active_support;dur=0.16, cache_read_multi.active_support;dur=0.14, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.59, + unpermitted_parameters.action_controller;dur=0.00, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=2.83, process_action.action_controller;dur=347.15 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 41d28da2-c08f-4563-bf03-b676652ea735 + x-runtime: + - '0.388611' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK version: 1 diff --git a/tests/cassettes/test_cache_hitting.yaml b/tests/cassettes/test_cache_hitting.yaml index cb4bedc50..bb9b2b46f 100644 --- a/tests/cassettes/test_cache_hitting.yaml +++ b/tests/cassettes/test_cache_hitting.yaml @@ -1020,4 +1020,94 @@ interactions: - req_83a900d075a98ab391c27c5d1cd4fbcb http_version: HTTP/1.1 status_code: 200 +- request: + body: '{"trace_id": "6aa59ffd-5c0f-4f55-ad5c-97bb5d893ed1", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.201.1", + "privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate": + 300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": + "2025-10-08T18:16:45.561840+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '436' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"9d9c5be4-2612-4721-b7d4-df616fb7dc65","trace_id":"6aa59ffd-5c0f-4f55-ad5c-97bb5d893ed1","execution_type":"crew","crew_name":"Unknown + Crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"Unknown + Crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:16:45.966Z","updated_at":"2025-10-08T18:16:45.966Z"}' + headers: + Content-Length: + - '496' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"fabe87dad5d5b75ee1a722775d110c28" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.06, sql.active_record;dur=20.50, cache_generate.active_support;dur=2.72, + cache_write.active_support;dur=0.16, cache_read_multi.active_support;dur=0.12, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.34, + feature_operation.flipper;dur=0.05, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=10.38, process_action.action_controller;dur=357.12 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 7acd0c51-080b-40ac-90df-b74125aaaa95 + x-runtime: + - '0.409345' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created version: 1 diff --git a/tests/cassettes/test_get_knowledge_search_query.yaml b/tests/cassettes/test_get_knowledge_search_query.yaml index 524498a0b..9979b507f 100644 --- a/tests/cassettes/test_get_knowledge_search_query.yaml +++ b/tests/cassettes/test_get_knowledge_search_query.yaml @@ -548,4 +548,430 @@ interactions: status: code: 200 message: OK +- request: + body: '{"trace_id": "04c7604e-e454-49eb-aef8-0f70652cdf97", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "crew", "flow_name": null, "crewai_version": "0.201.1", "privacy_level": + "standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count": + 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-10-08T18:09:42.470383+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '428' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"37925b6c-8b18-4170-8400-8866a3049741","trace_id":"04c7604e-e454-49eb-aef8-0f70652cdf97","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:09:43.416Z","updated_at":"2025-10-08T18:09:43.416Z"}' + headers: + Content-Length: + - '480' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"9d64cf64405d10b8b399880dbbfe0303" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.19, sql.active_record;dur=256.13, cache_generate.active_support;dur=188.47, + cache_write.active_support;dur=3.00, cache_read_multi.active_support;dur=4.24, + start_processing.action_controller;dur=0.01, instantiation.active_record;dur=1.56, + feature_operation.flipper;dur=0.09, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=21.63, process_action.action_controller;dur=665.44 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 1a8ff7c6-a105-4dbe-ac7f-9a53594313da + x-runtime: + - '0.952194' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created +- request: + body: '{"events": [{"event_id": "2a81ef7c-99e0-4abb-b42d-bd7c234bf73f", "timestamp": + "2025-10-08T18:09:43.437174+00:00", "type": "crew_kickoff_started", "event_data": + {"timestamp": "2025-10-08T18:09:42.469578+00:00", "type": "crew_kickoff_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "inputs": null}}, {"event_id": "ff3d4d33-1080-4401-9829-fc1940f330a3", + "timestamp": "2025-10-08T18:09:43.526001+00:00", "type": "task_started", "event_data": + {"task_description": "What is the capital of France?", "expected_output": "The + capital of France is Paris.", "task_name": "What is the capital of France?", + "context": "", "agent_role": "Information Agent", "task_id": "0ff5a428-9832-4e36-b952-d7abdceb6c81"}}, + {"event_id": "ca7200a3-f0a9-46c1-a71b-955aa27f4dec", "timestamp": "2025-10-08T18:09:43.526133+00:00", + "type": "knowledge_retrieval_started", "event_data": {"timestamp": "2025-10-08T18:09:43.526092+00:00", + "type": "knowledge_search_query_started", "source_fingerprint": null, "source_type": + null, "fingerprint_metadata": null, "task_id": "0ff5a428-9832-4e36-b952-d7abdceb6c81", + "task_name": "What is the capital of France?", "from_task": null, "from_agent": + null, "agent_role": "Information Agent", "agent_id": "6dcd58f3-16f6-423e-9c5d-572908eec4dd"}}, + {"event_id": "bf1f4ed4-c16c-4974-b7c2-e5437bffb688", "timestamp": "2025-10-08T18:09:43.526435+00:00", + "type": "knowledge_retrieval_completed", "event_data": {"timestamp": "2025-10-08T18:09:43.526390+00:00", + "type": "knowledge_search_query_completed", "source_fingerprint": null, "source_type": + null, "fingerprint_metadata": null, "task_id": "0ff5a428-9832-4e36-b952-d7abdceb6c81", + "task_name": "What is the capital of France?", "from_task": null, "from_agent": + null, "agent_role": "Information Agent", "agent_id": "6dcd58f3-16f6-423e-9c5d-572908eec4dd", + "query": "Capital of France", "retrieved_knowledge": ""}}, {"event_id": "670a0ab5-d71b-4949-b515-7af58fd6f280", + "timestamp": "2025-10-08T18:09:43.527093+00:00", "type": "agent_execution_started", + "event_data": {"agent_role": "Information Agent", "agent_goal": "Provide information + based on knowledge sources", "agent_backstory": "I have access to knowledge + sources"}}, {"event_id": "7de3d47e-489e-4d83-a498-c4d2d184260f", "timestamp": + "2025-10-08T18:09:43.527264+00:00", "type": "llm_call_started", "event_data": + {"timestamp": "2025-10-08T18:09:43.527199+00:00", "type": "llm_call_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "What is the capital of France?", "task_id": "0ff5a428-9832-4e36-b952-d7abdceb6c81", + "agent_id": "6dcd58f3-16f6-423e-9c5d-572908eec4dd", "agent_role": "Information + Agent", "from_task": null, "from_agent": null, "model": "gpt-4", "messages": + [{"role": "system", "content": "You are Information Agent. I have access to + knowledge sources\nYour personal goal is: Provide information based on knowledge + sources\nTo give my best complete final answer to the task respond using the + exact following format:\n\nThought: I now can give a great answer\nFinal Answer: + Your final answer must be the great and the most complete as possible, it must + be outcome described.\n\nI MUST use these formats, my job depends on it!"}, + {"role": "user", "content": "\nCurrent Task: What is the capital of France?\n\nThis + is the expected criteria for your final answer: The capital of France is Paris.\nyou + MUST return the actual complete content as the final answer, not a summary.\n\nBegin! + This is VERY important to you, use the tools available and give your best Final + Answer, your job depends on it!\n\nThought:"}], "tools": null, "callbacks": + [""], + "available_functions": null}}, {"event_id": "1834c053-e2fd-4c86-a398-b8438b0eb196", + "timestamp": "2025-10-08T18:09:43.654600+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:09:43.654212+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "What is the capital of France?", "task_id": "0ff5a428-9832-4e36-b952-d7abdceb6c81", + "agent_id": "6dcd58f3-16f6-423e-9c5d-572908eec4dd", "agent_role": "Information + Agent", "from_task": null, "from_agent": null, "messages": [{"role": "system", + "content": "You are Information Agent. I have access to knowledge sources\nYour + personal goal is: Provide information based on knowledge sources\nTo give my + best complete final answer to the task respond using the exact following format:\n\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described.\n\nI MUST use + these formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent + Task: What is the capital of France?\n\nThis is the expected criteria for your + final answer: The capital of France is Paris.\nyou MUST return the actual complete + content as the final answer, not a summary.\n\nBegin! This is VERY important + to you, use the tools available and give your best Final Answer, your job depends + on it!\n\nThought:"}], "response": "I cannot provide any other information as + the task clearly states the expected final answer and doesn''t require additional + information. I should provide the exact answer required.\n\nFinal Answer: The + capital of France is Paris.", "call_type": "", + "model": "gpt-4"}}, {"event_id": "4d6487a6-a292-4649-a163-9d26d166a213", "timestamp": + "2025-10-08T18:09:43.655025+00:00", "type": "agent_execution_completed", "event_data": + {"agent_role": "Information Agent", "agent_goal": "Provide information based + on knowledge sources", "agent_backstory": "I have access to knowledge sources"}}, + {"event_id": "7b164066-65d9-46ad-a393-7978682cb012", "timestamp": "2025-10-08T18:09:43.655121+00:00", + "type": "task_completed", "event_data": {"task_description": "What is the capital + of France?", "task_name": "What is the capital of France?", "task_id": "0ff5a428-9832-4e36-b952-d7abdceb6c81", + "output_raw": "The capital of France is Paris.", "output_format": "OutputFormat.RAW", + "agent_role": "Information Agent"}}, {"event_id": "783e8702-2beb-476b-8f30-faff0685efa0", + "timestamp": "2025-10-08T18:09:43.656056+00:00", "type": "crew_kickoff_completed", + "event_data": {"timestamp": "2025-10-08T18:09:43.656037+00:00", "type": "crew_kickoff_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "output": {"description": "What is the capital + of France?", "name": "What is the capital of France?", "expected_output": "The + capital of France is Paris.", "summary": "What is the capital of France?...", + "raw": "The capital of France is Paris.", "pydantic": null, "json_dict": null, + "agent": "Information Agent", "output_format": "raw"}, "total_tokens": 210}}], + "batch_metadata": {"events_count": 10, "batch_sequence": 1, "is_final_batch": + false}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '7035' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/04c7604e-e454-49eb-aef8-0f70652cdf97/events + response: + body: + string: '{"events_created":10,"trace_batch_id":"37925b6c-8b18-4170-8400-8866a3049741"}' + headers: + Content-Length: + - '77' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"08f66b5b040010c55ab131162a175762" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.08, sql.active_record;dur=61.09, cache_generate.active_support;dur=3.16, + cache_write.active_support;dur=0.20, cache_read_multi.active_support;dur=0.19, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.68, + start_transaction.active_record;dur=0.01, transaction.active_record;dur=134.05, + process_action.action_controller;dur=789.11 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 071cd7cd-6d07-4ed6-ad3e-aad1a04afd2d + x-runtime: + - '0.844586' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{"status": "completed", "duration_ms": 2034, "final_event_count": 10}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '69' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: PATCH + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/04c7604e-e454-49eb-aef8-0f70652cdf97/finalize + response: + body: + string: '{"id":"37925b6c-8b18-4170-8400-8866a3049741","trace_id":"04c7604e-e454-49eb-aef8-0f70652cdf97","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":2034,"crewai_version":"0.201.1","privacy_level":"standard","total_events":10,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.201.1","crew_fingerprint":null},"created_at":"2025-10-08T18:09:43.416Z","updated_at":"2025-10-08T18:09:45.276Z"}' + headers: + Content-Length: + - '483' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"866ee3e519ca13b55eb604b470e6a8f6" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.08, sql.active_record;dur=15.55, cache_generate.active_support;dur=3.43, + cache_write.active_support;dur=0.18, cache_read_multi.active_support;dur=0.29, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.85, + unpermitted_parameters.action_controller;dur=0.01, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=3.36, process_action.action_controller;dur=694.52 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - a4800ec1-3149-496b-bdac-ae3b18233262 + x-runtime: + - '0.774062' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{"trace_id": "0be1e00c-9655-42f8-ac6c-17bb6cb3fe74", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.201.1", + "privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate": + 300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": + "2025-10-08T18:11:17.411157+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '436' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"21a388a9-840f-4439-bcda-42b8ed450205","trace_id":"0be1e00c-9655-42f8-ac6c-17bb6cb3fe74","execution_type":"crew","crew_name":"Unknown + Crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"Unknown + Crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:11:17.863Z","updated_at":"2025-10-08T18:11:17.863Z"}' + headers: + Content-Length: + - '496' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"153768807d32f26c16c848c06a291813" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.19, sql.active_record;dur=49.81, cache_generate.active_support;dur=7.43, + cache_write.active_support;dur=1.22, cache_read_multi.active_support;dur=3.62, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=1.13, + feature_operation.flipper;dur=0.13, start_transaction.active_record;dur=0.00, + transaction.active_record;dur=6.97, process_action.action_controller;dur=360.59 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - bcb4ecff-6a0c-4fc0-b1b5-9cc86c7532f2 + x-runtime: + - '0.442980' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created version: 1 diff --git a/tests/cassettes/test_increment_delegations_for_sequential_process.yaml b/tests/cassettes/test_increment_delegations_for_sequential_process.yaml index 7f1e9367d..fb720006a 100644 --- a/tests/cassettes/test_increment_delegations_for_sequential_process.yaml +++ b/tests/cassettes/test_increment_delegations_for_sequential_process.yaml @@ -607,4 +607,654 @@ interactions: status: code: 200 message: OK +- request: + body: '{"trace_id": "be6be8ca-f4e4-44f1-9ac5-a28ab976b1a5", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "crew", "flow_name": null, "crewai_version": "0.201.1", "privacy_level": + "standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count": + 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-10-08T18:18:09.548632+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '428' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"75171e87-f189-49fe-a59f-01306ea262c7","trace_id":"be6be8ca-f4e4-44f1-9ac5-a28ab976b1a5","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:18:09.870Z","updated_at":"2025-10-08T18:18:09.870Z"}' + headers: + Content-Length: + - '480' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"2a4b9bd1c0d5e221c9300487fef6ca7c" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.05, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.12, start_processing.action_controller;dur=0.00, + sql.active_record;dur=10.20, instantiation.active_record;dur=0.39, feature_operation.flipper;dur=0.05, + start_transaction.active_record;dur=0.01, transaction.active_record;dur=9.99, + process_action.action_controller;dur=280.27 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 76e62b7b-1a83-4c14-9cd7-32e12c964853 + x-runtime: + - '0.327578' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created +- request: + body: '{"events": [{"event_id": "af21ca34-1bf9-43bb-bb2f-6ed4ec4b1731", "timestamp": + "2025-10-08T18:18:09.880380+00:00", "type": "crew_kickoff_started", "event_data": + {"timestamp": "2025-10-08T18:18:09.547458+00:00", "type": "crew_kickoff_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "inputs": null}}, {"event_id": "336951e8-e15f-46a2-a073-bd1d5d9c7dc0", + "timestamp": "2025-10-08T18:18:09.882849+00:00", "type": "task_started", "event_data": + {"task_description": "Give me an integer score between 1-5 for the following + title: ''The impact of AI in the future of work''", "expected_output": "The + score of the title.", "task_name": "Give me an integer score between 1-5 for + the following title: ''The impact of AI in the future of work''", "context": + "", "agent_role": "Manager", "task_id": "6b4c0d0e-1758-4dff-ac12-8464b155edb3"}}, + {"event_id": "b2737882-18f6-432f-afc6-fb709817223d", "timestamp": "2025-10-08T18:18:09.883466+00:00", + "type": "agent_execution_started", "event_data": {"agent_role": "Manager", "agent_goal": + "Coordinate scoring processes", "agent_backstory": "You''re great at delegating + work about scoring."}}, {"event_id": "5e8d70f1-c6bd-4f38-add1-ee84e272c35c", + "timestamp": "2025-10-08T18:18:09.883587+00:00", "type": "llm_call_started", + "event_data": {"timestamp": "2025-10-08T18:18:09.883547+00:00", "type": "llm_call_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "task_id": "6b4c0d0e-1758-4dff-ac12-8464b155edb3", + "agent_id": "7aaa26da-9c22-494d-95cd-bd0a8b650e43", "agent_role": "Manager", + "from_task": null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role": + "system", "content": "You are Manager. You''re great at delegating work about + scoring.\nYour personal goal is: Coordinate scoring processes\nYou ONLY have + access to the following tools, and should NEVER make up tools that are not listed + here:\n\nTool Name: Delegate work to coworker\nTool Arguments: {''task'': {''description'': + ''The task to delegate'', ''type'': ''str''}, ''context'': {''description'': + ''The context for the task'', ''type'': ''str''}, ''coworker'': {''description'': + ''The role/name of the coworker to delegate to'', ''type'': ''str''}}\nTool + Description: Delegate a specific task to one of the following coworkers: Scorer\nThe + input to this tool should be the coworker, the task you want them to do, and + ALL necessary context to execute the task, they know nothing about the task, + so share absolutely everything you know, don''t reference things but instead + explain them.\nTool Name: Ask question to coworker\nTool Arguments: {''question'': + {''description'': ''The question to ask'', ''type'': ''str''}, ''context'': + {''description'': ''The context for the question'', ''type'': ''str''}, ''coworker'': + {''description'': ''The role/name of the coworker to ask'', ''type'': ''str''}}\nTool + Description: Ask a specific question to one of the following coworkers: Scorer\nThe + input to this tool should be the coworker, the question you have for them, and + ALL necessary context to ask the question properly, they know nothing about + the question, so share absolutely everything you know, don''t reference things + but instead explain them.\n\nIMPORTANT: Use the following format in your response:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, only one + name of [Delegate work to coworker, Ask question to coworker], just the name, + exactly as it''s written.\nAction Input: the input to the action, just a simple + JSON object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: + the result of the action\n```\n\nOnce all necessary information is gathered, + return the following format:\n\n```\nThought: I now know the final answer\nFinal + Answer: the final answer to the original input question\n```"}, {"role": "user", + "content": "\nCurrent Task: Give me an integer score between 1-5 for the following + title: ''The impact of AI in the future of work''\n\nThis is the expected criteria + for your final answer: The score of the title.\nyou MUST return the actual complete + content as the final answer, not a summary.\n\nBegin! This is VERY important + to you, use the tools available and give your best Final Answer, your job depends + on it!\n\nThought:"}], "tools": null, "callbacks": [""], "available_functions": null}}, {"event_id": "b9a161b1-b991-40c4-82c9-ad0206df36ae", + "timestamp": "2025-10-08T18:18:09.887047+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:18:09.887005+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "task_id": "6b4c0d0e-1758-4dff-ac12-8464b155edb3", + "agent_id": "7aaa26da-9c22-494d-95cd-bd0a8b650e43", "agent_role": "Manager", + "from_task": null, "from_agent": null, "messages": [{"role": "system", "content": + "You are Manager. You''re great at delegating work about scoring.\nYour personal + goal is: Coordinate scoring processes\nYou ONLY have access to the following + tools, and should NEVER make up tools that are not listed here:\n\nTool Name: + Delegate work to coworker\nTool Arguments: {''task'': {''description'': ''The + task to delegate'', ''type'': ''str''}, ''context'': {''description'': ''The + context for the task'', ''type'': ''str''}, ''coworker'': {''description'': + ''The role/name of the coworker to delegate to'', ''type'': ''str''}}\nTool + Description: Delegate a specific task to one of the following coworkers: Scorer\nThe + input to this tool should be the coworker, the task you want them to do, and + ALL necessary context to execute the task, they know nothing about the task, + so share absolutely everything you know, don''t reference things but instead + explain them.\nTool Name: Ask question to coworker\nTool Arguments: {''question'': + {''description'': ''The question to ask'', ''type'': ''str''}, ''context'': + {''description'': ''The context for the question'', ''type'': ''str''}, ''coworker'': + {''description'': ''The role/name of the coworker to ask'', ''type'': ''str''}}\nTool + Description: Ask a specific question to one of the following coworkers: Scorer\nThe + input to this tool should be the coworker, the question you have for them, and + ALL necessary context to ask the question properly, they know nothing about + the question, so share absolutely everything you know, don''t reference things + but instead explain them.\n\nIMPORTANT: Use the following format in your response:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, only one + name of [Delegate work to coworker, Ask question to coworker], just the name, + exactly as it''s written.\nAction Input: the input to the action, just a simple + JSON object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: + the result of the action\n```\n\nOnce all necessary information is gathered, + return the following format:\n\n```\nThought: I now know the final answer\nFinal + Answer: the final answer to the original input question\n```"}, {"role": "user", + "content": "\nCurrent Task: Give me an integer score between 1-5 for the following + title: ''The impact of AI in the future of work''\n\nThis is the expected criteria + for your final answer: The score of the title.\nyou MUST return the actual complete + content as the final answer, not a summary.\n\nBegin! This is VERY important + to you, use the tools available and give your best Final Answer, your job depends + on it!\n\nThought:"}], "response": "Thought: To provide an accurate score for + the title \"The impact of AI in the future of work,\" I need to delegate the + task of scoring it to the Scorer, who is specialized in this activity.\n\nAction: + Delegate work to coworker\nAction Input: {\"coworker\": \"Scorer\", \"task\": + \"Give me an integer score between 1-5 for the following title: ''The impact + of AI in the future of work''\", \"context\": \"Your task is to evaluate the + provided title on a scale from 1 to 5 based on criteria such as relevance, clarity, + and intrigue.\"}\n\nObservation: The scorer has received the task to score the + title ''The impact of AI in the future of work''.", "call_type": "", "model": "gpt-4o-mini"}}, {"event_id": "7d7aec22-3674-46ef-b79f-a6dca2285d76", + "timestamp": "2025-10-08T18:18:09.887545+00:00", "type": "tool_usage_started", + "event_data": {"timestamp": "2025-10-08T18:18:09.887507+00:00", "type": "tool_usage_started", + "source_fingerprint": "003eb0d4-ed9a-4677-a8d3-dbd99803cd6c", "source_type": + "agent", "fingerprint_metadata": null, "agent_key": "89cf311b48b52169d42f3925c5be1c5a", + "agent_role": "Manager", "agent_id": null, "tool_name": "Delegate work to coworker", + "tool_args": "{\"coworker\": \"Scorer\", \"task\": \"Give me an integer score + between 1-5 for the following title: ''The impact of AI in the future of work''\", + \"context\": \"Your task is to evaluate the provided title on a scale from 1 + to 5 based on criteria such as relevance, clarity, and intrigue.\"}", "tool_class": + "Delegate work to coworker", "run_attempts": null, "delegations": null, "agent": + {"id": "7aaa26da-9c22-494d-95cd-bd0a8b650e43", "role": "Manager", "goal": "Coordinate + scoring processes", "backstory": "You''re great at delegating work about scoring.", + "cache": true, "verbose": false, "max_rpm": null, "allow_delegation": true, + "tools": [], "max_iter": 25, "agent_executor": "", "llm": "", "crew": + {"parent_flow": null, "name": "crew", "cache": true, "tasks": ["{''used_tools'': + 0, ''tools_errors'': 0, ''delegations'': 0, ''i18n'': {''prompt_file'': None}, + ''name'': None, ''prompt_context'': '''', ''description'': \"Give me an integer + score between 1-5 for the following title: ''The impact of AI in the future + of work''\", ''expected_output'': ''The score of the title.'', ''config'': None, + ''callback'': None, ''agent'': {''id'': UUID(''7aaa26da-9c22-494d-95cd-bd0a8b650e43''), + ''role'': ''Manager'', ''goal'': ''Coordinate scoring processes'', ''backstory'': + \"You''re great at delegating work about scoring.\", ''cache'': True, ''verbose'': + False, ''max_rpm'': None, ''allow_delegation'': True, ''tools'': [], ''max_iter'': + 25, ''agent_executor'': , ''llm'': , ''crew'': + Crew(id=61013208-0775-4375-a8db-a71cb4726895, process=Process.sequential, number_of_agents=2, + number_of_tasks=1), ''i18n'': {''prompt_file'': None}, ''cache_handler'': {}, + ''tools_handler'': , + ''tools_results'': [], ''max_tokens'': None, ''knowledge'': None, ''knowledge_sources'': + None, ''knowledge_storage'': None, ''security_config'': {''fingerprint'': {''metadata'': + {}}}, ''callbacks'': [], ''adapted_agent'': False, ''knowledge_config'': None}, + ''context'': NOT_SPECIFIED, ''async_execution'': False, ''output_json'': None, + ''output_pydantic'': None, ''output_file'': None, ''create_directory'': True, + ''output'': None, ''tools'': [], ''security_config'': {''fingerprint'': {''metadata'': + {}}}, ''id'': UUID(''6b4c0d0e-1758-4dff-ac12-8464b155edb3''), ''human_input'': + False, ''markdown'': False, ''converter_cls'': None, ''processed_by_agents'': + {''Manager''}, ''guardrail'': None, ''max_retries'': None, ''guardrail_max_retries'': + 3, ''retry_count'': 0, ''start_time'': datetime.datetime(2025, 10, 8, 11, 18, + 9, 882798), ''end_time'': None, ''allow_crewai_trigger_context'': None}"], "agents": + ["{''id'': UUID(''7aaa26da-9c22-494d-95cd-bd0a8b650e43''), ''role'': ''Manager'', + ''goal'': ''Coordinate scoring processes'', ''backstory'': \"You''re great at + delegating work about scoring.\", ''cache'': True, ''verbose'': False, ''max_rpm'': + None, ''allow_delegation'': True, ''tools'': [], ''max_iter'': 25, ''agent_executor'': + , + ''llm'': , ''crew'': Crew(id=61013208-0775-4375-a8db-a71cb4726895, + process=Process.sequential, number_of_agents=2, number_of_tasks=1), ''i18n'': + {''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': , ''tools_results'': [], ''max_tokens'': None, ''knowledge'': + None, ''knowledge_sources'': None, ''knowledge_storage'': None, ''security_config'': + {''fingerprint'': {''metadata'': {}}}, ''callbacks'': [], ''adapted_agent'': + False, ''knowledge_config'': None}", "{''id'': UUID(''6ce24ea1-6163-460b-bc95-fafba4c85116''), + ''role'': ''Scorer'', ''goal'': ''Score the title'', ''backstory'': \"You''re + an expert scorer, specialized in scoring titles.\", ''cache'': True, ''verbose'': + False, ''max_rpm'': None, ''allow_delegation'': True, ''tools'': [], ''max_iter'': + 25, ''agent_executor'': , ''llm'': , ''crew'': + Crew(id=61013208-0775-4375-a8db-a71cb4726895, process=Process.sequential, number_of_agents=2, + number_of_tasks=1), ''i18n'': {''prompt_file'': None}, ''cache_handler'': {}, + ''tools_handler'': , + ''tools_results'': [], ''max_tokens'': None, ''knowledge'': None, ''knowledge_sources'': + None, ''knowledge_storage'': None, ''security_config'': {''fingerprint'': {''metadata'': + {}}}, ''callbacks'': [], ''adapted_agent'': False, ''knowledge_config'': None}"], + "process": "sequential", "verbose": false, "memory": false, "short_term_memory": + null, "long_term_memory": null, "entity_memory": null, "external_memory": null, + "embedder": null, "usage_metrics": null, "manager_llm": null, "manager_agent": + null, "function_calling_llm": null, "config": null, "id": "61013208-0775-4375-a8db-a71cb4726895", + "share_crew": false, "step_callback": null, "task_callback": null, "before_kickoff_callbacks": + [], "after_kickoff_callbacks": [], "max_rpm": null, "prompt_file": null, "output_log_file": + null, "planning": false, "planning_llm": null, "task_execution_output_json_files": + null, "execution_logs": [], "knowledge_sources": null, "chat_llm": null, "knowledge": + null, "security_config": {"fingerprint": "{''metadata'': {}}"}, "token_usage": + null, "tracing": false}, "i18n": {"prompt_file": null}, "cache_handler": {}, + "tools_handler": "", + "tools_results": [], "max_tokens": null, "knowledge": null, "knowledge_sources": + null, "knowledge_storage": null, "security_config": {"fingerprint": {"metadata": + "{}"}}, "callbacks": [], "adapted_agent": false, "knowledge_config": null, "max_execution_time": + null, "agent_ops_agent_name": "Manager", "agent_ops_agent_id": null, "step_callback": + null, "use_system_prompt": true, "function_calling_llm": null, "system_template": + null, "prompt_template": null, "response_template": null, "allow_code_execution": + false, "respect_context_window": true, "max_retry_limit": 2, "multimodal": false, + "inject_date": false, "date_format": "%Y-%m-%d", "code_execution_mode": "safe", + "reasoning": false, "max_reasoning_attempts": null, "embedder": null, "agent_knowledge_context": + null, "crew_knowledge_context": null, "knowledge_search_query": null, "from_repository": + null, "guardrail": null, "guardrail_max_retries": 3}, "task_name": "Give me + an integer score between 1-5 for the following title: ''The impact of AI in + the future of work''", "task_id": "6b4c0d0e-1758-4dff-ac12-8464b155edb3", "from_task": + null, "from_agent": null}}, {"event_id": "265ae762-db20-4236-895b-07794490f475", + "timestamp": "2025-10-08T18:18:09.889221+00:00", "type": "agent_execution_started", + "event_data": {"agent_role": "Scorer", "agent_goal": "Score the title", "agent_backstory": + "You''re an expert scorer, specialized in scoring titles."}}, {"event_id": "0a5c9402-cafb-40e6-b6bf-6c280ebe6e50", + "timestamp": "2025-10-08T18:18:09.889307+00:00", "type": "llm_call_started", + "event_data": {"timestamp": "2025-10-08T18:18:09.889280+00:00", "type": "llm_call_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "task_id": "9343e3fa-e7dc-48d8-8a02-26e743e7c6bf", + "agent_id": "6ce24ea1-6163-460b-bc95-fafba4c85116", "agent_role": "Scorer", + "from_task": null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role": + "system", "content": "You are Scorer. You''re an expert scorer, specialized + in scoring titles.\nYour personal goal is: Score the title\nTo give my best + complete final answer to the task respond using the exact following format:\n\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described.\n\nI MUST use + these formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent + Task: Give me an integer score between 1-5 for the following title: ''The impact + of AI in the future of work''\n\nThis is the expected criteria for your final + answer: Your best answer to your coworker asking you this, accounting for the + context shared.\nyou MUST return the actual complete content as the final answer, + not a summary.\n\nThis is the context you''re working with:\nYour task is to + evaluate the provided title on a scale from 1 to 5 based on criteria such as + relevance, clarity, and intrigue.\n\nBegin! This is VERY important to you, use + the tools available and give your best Final Answer, your job depends on it!\n\nThought:"}], + "tools": null, "callbacks": [""], "available_functions": null}}, {"event_id": "b2cb8835-f3b5-4eb2-8a55-becac0899578", + "timestamp": "2025-10-08T18:18:09.893785+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:18:09.893752+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "task_id": "9343e3fa-e7dc-48d8-8a02-26e743e7c6bf", + "agent_id": "6ce24ea1-6163-460b-bc95-fafba4c85116", "agent_role": "Scorer", + "from_task": null, "from_agent": null, "messages": [{"role": "system", "content": + "You are Scorer. You''re an expert scorer, specialized in scoring titles.\nYour + personal goal is: Score the title\nTo give my best complete final answer to + the task respond using the exact following format:\n\nThought: I now can give + a great answer\nFinal Answer: Your final answer must be the great and the most + complete as possible, it must be outcome described.\n\nI MUST use these formats, + my job depends on it!"}, {"role": "user", "content": "\nCurrent Task: Give me + an integer score between 1-5 for the following title: ''The impact of AI in + the future of work''\n\nThis is the expected criteria for your final answer: + Your best answer to your coworker asking you this, accounting for the context + shared.\nyou MUST return the actual complete content as the final answer, not + a summary.\n\nThis is the context you''re working with:\nYour task is to evaluate + the provided title on a scale from 1 to 5 based on criteria such as relevance, + clarity, and intrigue.\n\nBegin! This is VERY important to you, use the tools + available and give your best Final Answer, your job depends on it!\n\nThought:"}], + "response": "Thought: I now can give a great answer\nFinal Answer: 4. The title + ''The impact of AI in the future of work'' is clear and directly addresses a + highly relevant and intriguing topic. It captures the essence of how AI could + shape the job market, which is a subject of significant interest. However, it + could be more specific or detailed to achieve a perfect score.", "call_type": + "", "model": "gpt-4o-mini"}}, {"event_id": + "935cc6c4-edbb-42bd-82a5-b904c7b14e5e", "timestamp": "2025-10-08T18:18:09.893917+00:00", + "type": "agent_execution_completed", "event_data": {"agent_role": "Scorer", + "agent_goal": "Score the title", "agent_backstory": "You''re an expert scorer, + specialized in scoring titles."}}, {"event_id": "80aef20e-1284-41c7-814b-f1c1609eb0b9", + "timestamp": "2025-10-08T18:18:09.894037+00:00", "type": "tool_usage_finished", + "event_data": {"timestamp": "2025-10-08T18:18:09.894006+00:00", "type": "tool_usage_finished", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "agent_key": "89cf311b48b52169d42f3925c5be1c5a", "agent_role": "Manager", "agent_id": + null, "tool_name": "Delegate work to coworker", "tool_args": {"coworker": "Scorer", + "task": "Give me an integer score between 1-5 for the following title: ''The + impact of AI in the future of work''", "context": "Your task is to evaluate + the provided title on a scale from 1 to 5 based on criteria such as relevance, + clarity, and intrigue."}, "tool_class": "CrewStructuredTool", "run_attempts": + 1, "delegations": 0, "agent": null, "task_name": "Give me an integer score between + 1-5 for the following title: ''The impact of AI in the future of work''", "task_id": + "6b4c0d0e-1758-4dff-ac12-8464b155edb3", "from_task": null, "from_agent": null, + "started_at": "2025-10-08T11:18:09.887804", "finished_at": "2025-10-08T11:18:09.893985", + "from_cache": false, "output": "4. The title ''The impact of AI in the future + of work'' is clear and directly addresses a highly relevant and intriguing topic. + It captures the essence of how AI could shape the job market, which is a subject + of significant interest. However, it could be more specific or detailed to achieve + a perfect score."}}, {"event_id": "2920d8bc-28f9-46cf-87df-113da77a6c34", "timestamp": + "2025-10-08T18:18:09.894139+00:00", "type": "llm_call_started", "event_data": + {"timestamp": "2025-10-08T18:18:09.894115+00:00", "type": "llm_call_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "task_id": "6b4c0d0e-1758-4dff-ac12-8464b155edb3", + "agent_id": "7aaa26da-9c22-494d-95cd-bd0a8b650e43", "agent_role": "Manager", + "from_task": null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role": + "system", "content": "You are Manager. You''re great at delegating work about + scoring.\nYour personal goal is: Coordinate scoring processes\nYou ONLY have + access to the following tools, and should NEVER make up tools that are not listed + here:\n\nTool Name: Delegate work to coworker\nTool Arguments: {''task'': {''description'': + ''The task to delegate'', ''type'': ''str''}, ''context'': {''description'': + ''The context for the task'', ''type'': ''str''}, ''coworker'': {''description'': + ''The role/name of the coworker to delegate to'', ''type'': ''str''}}\nTool + Description: Delegate a specific task to one of the following coworkers: Scorer\nThe + input to this tool should be the coworker, the task you want them to do, and + ALL necessary context to execute the task, they know nothing about the task, + so share absolutely everything you know, don''t reference things but instead + explain them.\nTool Name: Ask question to coworker\nTool Arguments: {''question'': + {''description'': ''The question to ask'', ''type'': ''str''}, ''context'': + {''description'': ''The context for the question'', ''type'': ''str''}, ''coworker'': + {''description'': ''The role/name of the coworker to ask'', ''type'': ''str''}}\nTool + Description: Ask a specific question to one of the following coworkers: Scorer\nThe + input to this tool should be the coworker, the question you have for them, and + ALL necessary context to ask the question properly, they know nothing about + the question, so share absolutely everything you know, don''t reference things + but instead explain them.\n\nIMPORTANT: Use the following format in your response:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, only one + name of [Delegate work to coworker, Ask question to coworker], just the name, + exactly as it''s written.\nAction Input: the input to the action, just a simple + JSON object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: + the result of the action\n```\n\nOnce all necessary information is gathered, + return the following format:\n\n```\nThought: I now know the final answer\nFinal + Answer: the final answer to the original input question\n```"}, {"role": "user", + "content": "\nCurrent Task: Give me an integer score between 1-5 for the following + title: ''The impact of AI in the future of work''\n\nThis is the expected criteria + for your final answer: The score of the title.\nyou MUST return the actual complete + content as the final answer, not a summary.\n\nBegin! This is VERY important + to you, use the tools available and give your best Final Answer, your job depends + on it!\n\nThought:"}, {"role": "assistant", "content": "Thought: To provide + an accurate score for the title \"The impact of AI in the future of work,\" + I need to delegate the task of scoring it to the Scorer, who is specialized + in this activity.\n\nAction: Delegate work to coworker\nAction Input: {\"coworker\": + \"Scorer\", \"task\": \"Give me an integer score between 1-5 for the following + title: ''The impact of AI in the future of work''\", \"context\": \"Your task + is to evaluate the provided title on a scale from 1 to 5 based on criteria such + as relevance, clarity, and intrigue.\"}\n\nObservation: The scorer has received + the task to score the title ''The impact of AI in the future of work''.\nObservation: + 4. The title ''The impact of AI in the future of work'' is clear and directly + addresses a highly relevant and intriguing topic. It captures the essence of + how AI could shape the job market, which is a subject of significant interest. + However, it could be more specific or detailed to achieve a perfect score."}], + "tools": null, "callbacks": [""], "available_functions": null}}, {"event_id": "c1561925-8100-4045-bfde-56c42bf1edab", + "timestamp": "2025-10-08T18:18:09.896686+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:18:09.896654+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "task_id": "6b4c0d0e-1758-4dff-ac12-8464b155edb3", + "agent_id": "7aaa26da-9c22-494d-95cd-bd0a8b650e43", "agent_role": "Manager", + "from_task": null, "from_agent": null, "messages": [{"role": "system", "content": + "You are Manager. You''re great at delegating work about scoring.\nYour personal + goal is: Coordinate scoring processes\nYou ONLY have access to the following + tools, and should NEVER make up tools that are not listed here:\n\nTool Name: + Delegate work to coworker\nTool Arguments: {''task'': {''description'': ''The + task to delegate'', ''type'': ''str''}, ''context'': {''description'': ''The + context for the task'', ''type'': ''str''}, ''coworker'': {''description'': + ''The role/name of the coworker to delegate to'', ''type'': ''str''}}\nTool + Description: Delegate a specific task to one of the following coworkers: Scorer\nThe + input to this tool should be the coworker, the task you want them to do, and + ALL necessary context to execute the task, they know nothing about the task, + so share absolutely everything you know, don''t reference things but instead + explain them.\nTool Name: Ask question to coworker\nTool Arguments: {''question'': + {''description'': ''The question to ask'', ''type'': ''str''}, ''context'': + {''description'': ''The context for the question'', ''type'': ''str''}, ''coworker'': + {''description'': ''The role/name of the coworker to ask'', ''type'': ''str''}}\nTool + Description: Ask a specific question to one of the following coworkers: Scorer\nThe + input to this tool should be the coworker, the question you have for them, and + ALL necessary context to ask the question properly, they know nothing about + the question, so share absolutely everything you know, don''t reference things + but instead explain them.\n\nIMPORTANT: Use the following format in your response:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, only one + name of [Delegate work to coworker, Ask question to coworker], just the name, + exactly as it''s written.\nAction Input: the input to the action, just a simple + JSON object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: + the result of the action\n```\n\nOnce all necessary information is gathered, + return the following format:\n\n```\nThought: I now know the final answer\nFinal + Answer: the final answer to the original input question\n```"}, {"role": "user", + "content": "\nCurrent Task: Give me an integer score between 1-5 for the following + title: ''The impact of AI in the future of work''\n\nThis is the expected criteria + for your final answer: The score of the title.\nyou MUST return the actual complete + content as the final answer, not a summary.\n\nBegin! This is VERY important + to you, use the tools available and give your best Final Answer, your job depends + on it!\n\nThought:"}, {"role": "assistant", "content": "Thought: To provide + an accurate score for the title \"The impact of AI in the future of work,\" + I need to delegate the task of scoring it to the Scorer, who is specialized + in this activity.\n\nAction: Delegate work to coworker\nAction Input: {\"coworker\": + \"Scorer\", \"task\": \"Give me an integer score between 1-5 for the following + title: ''The impact of AI in the future of work''\", \"context\": \"Your task + is to evaluate the provided title on a scale from 1 to 5 based on criteria such + as relevance, clarity, and intrigue.\"}\n\nObservation: The scorer has received + the task to score the title ''The impact of AI in the future of work''.\nObservation: + 4. The title ''The impact of AI in the future of work'' is clear and directly + addresses a highly relevant and intriguing topic. It captures the essence of + how AI could shape the job market, which is a subject of significant interest. + However, it could be more specific or detailed to achieve a perfect score."}], + "response": "Thought: I now know the final answer as the Scorer has provided + the score for the title based on the given criteria.\n\nFinal Answer: 4", "call_type": + "", "model": "gpt-4o-mini"}}, {"event_id": + "59b15482-befa-4430-8fd6-be9bd08cc5db", "timestamp": "2025-10-08T18:18:09.896803+00:00", + "type": "agent_execution_completed", "event_data": {"agent_role": "Manager", + "agent_goal": "Coordinate scoring processes", "agent_backstory": "You''re great + at delegating work about scoring."}}, {"event_id": "ee08a9e6-f8d1-4ec3-b8ce-8db5cae003d5", + "timestamp": "2025-10-08T18:18:09.896864+00:00", "type": "task_completed", "event_data": + {"task_description": "Give me an integer score between 1-5 for the following + title: ''The impact of AI in the future of work''", "task_name": "Give me an + integer score between 1-5 for the following title: ''The impact of AI in the + future of work''", "task_id": "6b4c0d0e-1758-4dff-ac12-8464b155edb3", "output_raw": + "4", "output_format": "OutputFormat.RAW", "agent_role": "Manager"}}, {"event_id": + "b42a5428-c309-48d3-9b4d-d2c677dfd00f", "timestamp": "2025-10-08T18:18:09.898429+00:00", + "type": "crew_kickoff_completed", "event_data": {"timestamp": "2025-10-08T18:18:09.898415+00:00", + "type": "crew_kickoff_completed", "source_fingerprint": null, "source_type": + null, "fingerprint_metadata": null, "crew_name": "crew", "crew": null, "output": + {"description": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "name": "Give me an integer score + between 1-5 for the following title: ''The impact of AI in the future of work''", + "expected_output": "The score of the title.", "summary": "Give me an integer + score between 1-5 for the following...", "raw": "4", "pydantic": null, "json_dict": + null, "agent": "Manager", "output_format": "raw"}, "total_tokens": 1877}}], + "batch_metadata": {"events_count": 16, "batch_sequence": 1, "is_final_batch": + false}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '32137' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/be6be8ca-f4e4-44f1-9ac5-a28ab976b1a5/events + response: + body: + string: '{"events_created":16,"trace_batch_id":"75171e87-f189-49fe-a59f-01306ea262c7"}' + headers: + Content-Length: + - '77' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"b165f8dea88d11f83754c72f73b8efb6" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.06, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.12, start_processing.action_controller;dur=0.00, + sql.active_record;dur=82.18, instantiation.active_record;dur=0.74, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=171.97, process_action.action_controller;dur=511.20 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - e21e9c74-f4df-4485-8d92-775ee5b972c6 + x-runtime: + - '0.559510' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{"status": "completed", "duration_ms": 919, "final_event_count": 16}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '68' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: PATCH + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/be6be8ca-f4e4-44f1-9ac5-a28ab976b1a5/finalize + response: + body: + string: '{"id":"75171e87-f189-49fe-a59f-01306ea262c7","trace_id":"be6be8ca-f4e4-44f1-9ac5-a28ab976b1a5","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":919,"crewai_version":"0.201.1","privacy_level":"standard","total_events":16,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.201.1","crew_fingerprint":null},"created_at":"2025-10-08T18:18:09.870Z","updated_at":"2025-10-08T18:18:10.961Z"}' + headers: + Content-Length: + - '482' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"b67654c67df1179eac2a9a79bbdf737f" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.05, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.08, start_processing.action_controller;dur=0.00, + sql.active_record;dur=20.84, instantiation.active_record;dur=0.67, unpermitted_parameters.action_controller;dur=0.01, + start_transaction.active_record;dur=0.01, transaction.active_record;dur=5.48, + process_action.action_controller;dur=452.72 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 6ad8ee19-55a0-467c-a2ff-c82f2dac7cd1 + x-runtime: + - '0.493951' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK version: 1 diff --git a/tests/cassettes/test_inject_date.yaml b/tests/cassettes/test_inject_date.yaml index c1945048c..89e794005 100644 --- a/tests/cassettes/test_inject_date.yaml +++ b/tests/cassettes/test_inject_date.yaml @@ -224,4 +224,326 @@ interactions: status: code: 200 message: OK +- request: + body: '{"trace_id": "9e29cf0f-0172-4e4b-ad63-a2a36f3c2d7f", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "crew", "flow_name": null, "crewai_version": "0.201.1", "privacy_level": + "standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count": + 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-10-08T18:18:11.026941+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '428' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"b44103f0-cd32-4754-8274-080d86c21b77","trace_id":"9e29cf0f-0172-4e4b-ad63-a2a36f3c2d7f","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:18:11.351Z","updated_at":"2025-10-08T18:18:11.351Z"}' + headers: + Content-Length: + - '480' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"73d0c52807c852d93864a56af30f75a8" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.07, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.33, start_processing.action_controller;dur=0.00, + sql.active_record;dur=20.29, instantiation.active_record;dur=1.34, feature_operation.flipper;dur=0.07, + start_transaction.active_record;dur=0.01, transaction.active_record;dur=12.34, + process_action.action_controller;dur=285.83 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 7e049107-e9cc-4684-bd18-813aa705a054 + x-runtime: + - '0.331307' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created +- request: + body: '{"events": [{"event_id": "357cb901-97dd-49cc-8751-6a264a1ac808", "timestamp": + "2025-10-08T18:18:11.363478+00:00", "type": "crew_kickoff_started", "event_data": + {"timestamp": "2025-10-08T18:18:11.025479+00:00", "type": "crew_kickoff_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "inputs": null}}, {"event_id": "ca54f930-8d49-4dc0-8199-bd4ad56a85a9", + "timestamp": "2025-10-08T18:18:11.365096+00:00", "type": "task_started", "event_data": + {"task_description": "What is the date today?", "expected_output": "The date + today as you were told, same format as the date you were told.", "task_name": + "What is the date today?", "context": "", "agent_role": "Reporter", "task_id": + "db8b8b82-005a-44bb-a050-518555011b70"}}, {"event_id": "b0dd7cd7-580e-463b-8faf-1cee16916431", + "timestamp": "2025-10-08T18:18:11.365522+00:00", "type": "agent_execution_started", + "event_data": {"agent_role": "Reporter", "agent_goal": "Report the date", "agent_backstory": + "You''re an expert reporter, specialized in reporting the date."}}, {"event_id": + "714f094e-47b6-489e-a0a7-33c0857b194f", "timestamp": "2025-10-08T18:18:11.365608+00:00", + "type": "llm_call_started", "event_data": {"timestamp": "2025-10-08T18:18:11.365579+00:00", + "type": "llm_call_started", "source_fingerprint": null, "source_type": null, + "fingerprint_metadata": null, "task_name": "What is the date today?\n\nCurrent + Date: 2025-10-08", "task_id": "db8b8b82-005a-44bb-a050-518555011b70", "agent_id": + "10058b89-7480-409b-af5d-1b46e90ded50", "agent_role": "Reporter", "from_task": + null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role": "system", + "content": "You are Reporter. You''re an expert reporter, specialized in reporting + the date.\nYour personal goal is: Report the date\nTo give my best complete + final answer to the task respond using the exact following format:\n\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described.\n\nI MUST use + these formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent + Task: What is the date today?\n\nCurrent Date: 2025-10-08\n\nThis is the expected + criteria for your final answer: The date today as you were told, same format + as the date you were told.\nyou MUST return the actual complete content as the + final answer, not a summary.\n\nBegin! This is VERY important to you, use the + tools available and give your best Final Answer, your job depends on it!\n\nThought:"}], + "tools": null, "callbacks": [""], "available_functions": null}}, {"event_id": "541765c5-3c58-4291-8d94-9b1a6471b0f9", + "timestamp": "2025-10-08T18:18:11.368580+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:18:11.368543+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "What is the date today?\n\nCurrent Date: 2025-10-08", "task_id": + "db8b8b82-005a-44bb-a050-518555011b70", "agent_id": "10058b89-7480-409b-af5d-1b46e90ded50", + "agent_role": "Reporter", "from_task": null, "from_agent": null, "messages": + [{"role": "system", "content": "You are Reporter. You''re an expert reporter, + specialized in reporting the date.\nYour personal goal is: Report the date\nTo + give my best complete final answer to the task respond using the exact following + format:\n\nThought: I now can give a great answer\nFinal Answer: Your final + answer must be the great and the most complete as possible, it must be outcome + described.\n\nI MUST use these formats, my job depends on it!"}, {"role": "user", + "content": "\nCurrent Task: What is the date today?\n\nCurrent Date: 2025-10-08\n\nThis + is the expected criteria for your final answer: The date today as you were told, + same format as the date you were told.\nyou MUST return the actual complete + content as the final answer, not a summary.\n\nBegin! This is VERY important + to you, use the tools available and give your best Final Answer, your job depends + on it!\n\nThought:"}], "response": "I now can give a great answer \nFinal Answer: + 2025-05-21", "call_type": "", "model": "gpt-4o-mini"}}, + {"event_id": "a3f8f3df-a936-433b-840a-0e954942dcc4", "timestamp": "2025-10-08T18:18:11.368711+00:00", + "type": "agent_execution_completed", "event_data": {"agent_role": "Reporter", + "agent_goal": "Report the date", "agent_backstory": "You''re an expert reporter, + specialized in reporting the date."}}, {"event_id": "5648e8f5-f933-48e8-a0f0-c63c6441033d", + "timestamp": "2025-10-08T18:18:11.368766+00:00", "type": "task_completed", "event_data": + {"task_description": "What is the date today?\n\nCurrent Date: 2025-10-08", + "task_name": "What is the date today?\n\nCurrent Date: 2025-10-08", "task_id": + "db8b8b82-005a-44bb-a050-518555011b70", "output_raw": "2025-05-21", "output_format": + "OutputFormat.RAW", "agent_role": "Reporter"}}, {"event_id": "3d2889c4-32fe-43bb-b557-89c553a97f7f", + "timestamp": "2025-10-08T18:18:11.370072+00:00", "type": "crew_kickoff_completed", + "event_data": {"timestamp": "2025-10-08T18:18:11.370057+00:00", "type": "crew_kickoff_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "output": {"description": "What is the date + today?\n\nCurrent Date: 2025-10-08", "name": "What is the date today?\n\nCurrent + Date: 2025-10-08", "expected_output": "The date today as you were told, same + format as the date you were told.", "summary": "What is the date today?\n\nCurrent + Date: 2025-10-08...", "raw": "2025-05-21", "pydantic": null, "json_dict": null, + "agent": "Reporter", "output_format": "raw"}, "total_tokens": 207}}], "batch_metadata": + {"events_count": 8, "batch_sequence": 1, "is_final_batch": false}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '5906' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/9e29cf0f-0172-4e4b-ad63-a2a36f3c2d7f/events + response: + body: + string: '{"events_created":8,"trace_batch_id":"b44103f0-cd32-4754-8274-080d86c21b77"}' + headers: + Content-Length: + - '76' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"295a6ddb279e61059e1ed3d18598fafa" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.04, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.09, start_processing.action_controller;dur=0.00, + sql.active_record;dur=56.17, instantiation.active_record;dur=0.66, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=89.62, process_action.action_controller;dur=445.82 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 3ddf8102-9e64-4ab5-8074-7dcb0b428898 + x-runtime: + - '0.492724' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{"status": "completed", "duration_ms": 846, "final_event_count": 8}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '67' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: PATCH + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/9e29cf0f-0172-4e4b-ad63-a2a36f3c2d7f/finalize + response: + body: + string: '{"id":"b44103f0-cd32-4754-8274-080d86c21b77","trace_id":"9e29cf0f-0172-4e4b-ad63-a2a36f3c2d7f","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":846,"crewai_version":"0.201.1","privacy_level":"standard","total_events":8,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.201.1","crew_fingerprint":null},"created_at":"2025-10-08T18:18:11.351Z","updated_at":"2025-10-08T18:18:12.214Z"}' + headers: + Content-Length: + - '481' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"2380ed0ea9c0d4781911f35fb1c14e51" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.09, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.13, start_processing.action_controller;dur=0.00, + sql.active_record;dur=19.78, instantiation.active_record;dur=0.64, unpermitted_parameters.action_controller;dur=0.01, + start_transaction.active_record;dur=0.01, transaction.active_record;dur=5.29, + process_action.action_controller;dur=286.35 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - a0c4c511-b4ff-4c84-ba41-f25cfa083475 + x-runtime: + - '0.337283' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK version: 1 diff --git a/tests/cassettes/test_lite_agent_returns_usage_metrics.yaml b/tests/cassettes/test_lite_agent_returns_usage_metrics.yaml index 4435a7c2b..970aebd04 100644 --- a/tests/cassettes/test_lite_agent_returns_usage_metrics.yaml +++ b/tests/cassettes/test_lite_agent_returns_usage_metrics.yaml @@ -242,4 +242,94 @@ interactions: - req_7a97be879488ab0dffe069cf25539bf6 http_version: HTTP/1.1 status_code: 200 +- request: + body: '{"trace_id": "62d55ec4-458b-4b53-a165-7771758fc550", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.201.1", + "privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate": + 300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": + "2025-10-08T18:00:51.131564+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '436' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"7460ec39-e7a6-4443-bbf7-33173e177cfd","trace_id":"62d55ec4-458b-4b53-a165-7771758fc550","execution_type":"crew","crew_name":"Unknown + Crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"Unknown + Crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:00:51.607Z","updated_at":"2025-10-08T18:00:51.607Z"}' + headers: + Content-Length: + - '496' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"2fba4497cf3e8b72b1b0403b13d58b39" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.06, sql.active_record;dur=18.98, cache_generate.active_support;dur=3.62, + cache_write.active_support;dur=0.12, cache_read_multi.active_support;dur=0.09, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.30, + feature_operation.flipper;dur=0.10, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=12.47, process_action.action_controller;dur=431.76 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 530fca3d-d2b3-4b38-ba00-6f60ea63a07a + x-runtime: + - '0.481872' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created version: 1 diff --git a/tests/cassettes/test_no_inject_date.yaml b/tests/cassettes/test_no_inject_date.yaml index 1dd70218d..a4d3081c5 100644 --- a/tests/cassettes/test_no_inject_date.yaml +++ b/tests/cassettes/test_no_inject_date.yaml @@ -223,4 +223,323 @@ interactions: status: code: 200 message: OK +- request: + body: '{"trace_id": "874c2616-847c-47e7-a0d1-25839021e790", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "crew", "flow_name": null, "crewai_version": "0.201.1", "privacy_level": + "standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count": + 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-10-08T18:18:05.331888+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '428' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"07db44f2-cd05-4a41-9e95-868bba731607","trace_id":"874c2616-847c-47e7-a0d1-25839021e790","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:18:05.666Z","updated_at":"2025-10-08T18:18:05.666Z"}' + headers: + Content-Length: + - '480' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"450d644658ec3acfa9dac33ff0433b7e" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.06, sql.active_record;dur=19.50, cache_generate.active_support;dur=2.40, + cache_write.active_support;dur=0.20, cache_read_multi.active_support;dur=0.12, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.29, + feature_operation.flipper;dur=0.07, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=9.28, process_action.action_controller;dur=288.29 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - dfe4369a-6a01-4886-87d0-5d502c805544 + x-runtime: + - '0.343051' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created +- request: + body: '{"events": [{"event_id": "9fd0722d-4e6d-49f0-9e9e-fa10c53b9928", "timestamp": + "2025-10-08T18:18:05.680854+00:00", "type": "crew_kickoff_started", "event_data": + {"timestamp": "2025-10-08T18:18:05.329875+00:00", "type": "crew_kickoff_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "inputs": null}}, {"event_id": "0bb97dd4-8283-4565-ab46-18e88b13be21", + "timestamp": "2025-10-08T18:18:05.685253+00:00", "type": "task_started", "event_data": + {"task_description": "What is the date today?", "expected_output": "The date + today.", "task_name": "What is the date today?", "context": "", "agent_role": + "Reporter", "task_id": "53a9cb6d-b44a-4138-90d8-b283b96896b1"}}, {"event_id": + "aa67e454-ba0b-421a-8346-413f3bd8cc7f", "timestamp": "2025-10-08T18:18:05.686194+00:00", + "type": "agent_execution_started", "event_data": {"agent_role": "Reporter", + "agent_goal": "Report the date", "agent_backstory": "You''re an expert reporter, + specialized in reporting the date."}}, {"event_id": "b243d48b-fed4-402d-843c-bb445fd8ac63", + "timestamp": "2025-10-08T18:18:05.686395+00:00", "type": "llm_call_started", + "event_data": {"timestamp": "2025-10-08T18:18:05.686341+00:00", "type": "llm_call_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "What is the date today?", "task_id": "53a9cb6d-b44a-4138-90d8-b283b96896b1", + "agent_id": "5c8b5b64-b13b-4328-9ddf-b640eeffc921", "agent_role": "Reporter", + "from_task": null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role": + "system", "content": "You are Reporter. You''re an expert reporter, specialized + in reporting the date.\nYour personal goal is: Report the date\nTo give my best + complete final answer to the task respond using the exact following format:\n\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described.\n\nI MUST use + these formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent + Task: What is the date today?\n\nThis is the expected criteria for your final + answer: The date today.\nyou MUST return the actual complete content as the + final answer, not a summary.\n\nBegin! This is VERY important to you, use the + tools available and give your best Final Answer, your job depends on it!\n\nThought:"}], + "tools": null, "callbacks": [""], "available_functions": null}}, {"event_id": "03c60039-86fb-46fb-8f8d-5e3f6360f3d6", + "timestamp": "2025-10-08T18:18:05.692055+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:18:05.691978+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "What is the date today?", "task_id": "53a9cb6d-b44a-4138-90d8-b283b96896b1", + "agent_id": "5c8b5b64-b13b-4328-9ddf-b640eeffc921", "agent_role": "Reporter", + "from_task": null, "from_agent": null, "messages": [{"role": "system", "content": + "You are Reporter. You''re an expert reporter, specialized in reporting the + date.\nYour personal goal is: Report the date\nTo give my best complete final + answer to the task respond using the exact following format:\n\nThought: I now + can give a great answer\nFinal Answer: Your final answer must be the great and + the most complete as possible, it must be outcome described.\n\nI MUST use these + formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task: + What is the date today?\n\nThis is the expected criteria for your final answer: + The date today.\nyou MUST return the actual complete content as the final answer, + not a summary.\n\nBegin! This is VERY important to you, use the tools available + and give your best Final Answer, your job depends on it!\n\nThought:"}], "response": + "I now can give a great answer \nFinal Answer: The date today is October 10, + 2023.", "call_type": "", "model": "gpt-4o-mini"}}, + {"event_id": "59a036ae-406e-4a7a-b3d8-56bf519f5146", "timestamp": "2025-10-08T18:18:05.692309+00:00", + "type": "agent_execution_completed", "event_data": {"agent_role": "Reporter", + "agent_goal": "Report the date", "agent_backstory": "You''re an expert reporter, + specialized in reporting the date."}}, {"event_id": "6c6475ff-f07b-4bc0-b754-c8b42c44d74d", + "timestamp": "2025-10-08T18:18:05.692392+00:00", "type": "task_completed", "event_data": + {"task_description": "What is the date today?", "task_name": "What is the date + today?", "task_id": "53a9cb6d-b44a-4138-90d8-b283b96896b1", "output_raw": "The + date today is October 10, 2023.", "output_format": "OutputFormat.RAW", "agent_role": + "Reporter"}}, {"event_id": "a72161b7-a226-40ae-b80d-ba30bb9cfd9a", "timestamp": + "2025-10-08T18:18:05.694941+00:00", "type": "crew_kickoff_completed", "event_data": + {"timestamp": "2025-10-08T18:18:05.694898+00:00", "type": "crew_kickoff_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "output": {"description": "What is the date + today?", "name": "What is the date today?", "expected_output": "The date today.", + "summary": "What is the date today?...", "raw": "The date today is October 10, + 2023.", "pydantic": null, "json_dict": null, "agent": "Reporter", "output_format": + "raw"}, "total_tokens": 188}}], "batch_metadata": {"events_count": 8, "batch_sequence": + 1, "is_final_batch": false}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '5505' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/874c2616-847c-47e7-a0d1-25839021e790/events + response: + body: + string: '{"events_created":8,"trace_batch_id":"07db44f2-cd05-4a41-9e95-868bba731607"}' + headers: + Content-Length: + - '76' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"f02a02802518030657a73ce20468cad2" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.10, sql.active_record;dur=48.31, cache_generate.active_support;dur=5.45, + cache_write.active_support;dur=0.12, cache_read_multi.active_support;dur=0.16, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.37, + start_transaction.active_record;dur=0.01, transaction.active_record;dur=87.31, + process_action.action_controller;dur=407.46 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 4abba833-f6ab-480d-aee6-c19971dfd2ac + x-runtime: + - '0.468998' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{"status": "completed", "duration_ms": 845, "final_event_count": 8}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '67' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: PATCH + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/874c2616-847c-47e7-a0d1-25839021e790/finalize + response: + body: + string: '{"id":"07db44f2-cd05-4a41-9e95-868bba731607","trace_id":"874c2616-847c-47e7-a0d1-25839021e790","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":845,"crewai_version":"0.201.1","privacy_level":"standard","total_events":8,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.201.1","crew_fingerprint":null},"created_at":"2025-10-08T18:18:05.666Z","updated_at":"2025-10-08T18:18:06.849Z"}' + headers: + Content-Length: + - '481' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"33272f2ea7a679a4a8cb8ca15423ff59" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.06, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.10, start_processing.action_controller;dur=0.01, + sql.active_record;dur=7.11, instantiation.active_record;dur=0.58, unpermitted_parameters.action_controller;dur=0.01, + start_transaction.active_record;dur=0.01, transaction.active_record;dur=3.43, + process_action.action_controller;dur=623.53 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - ed67c930-a05c-4dd3-91e0-268003ad8dc0 + x-runtime: + - '0.669194' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK version: 1 diff --git a/tests/cassettes/test_output_json_hierarchical.yaml b/tests/cassettes/test_output_json_hierarchical.yaml index bd1603de5..6a4e776ee 100644 --- a/tests/cassettes/test_output_json_hierarchical.yaml +++ b/tests/cassettes/test_output_json_hierarchical.yaml @@ -1232,4 +1232,785 @@ interactions: status: code: 200 message: OK +- request: + body: '{"trace_id": "1a5c71d1-4e28-4432-aa20-c7ef93a2657b", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "crew", "flow_name": null, "crewai_version": "0.201.1", "privacy_level": + "standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count": + 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-10-08T18:18:08.160521+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '428' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"6ce9315e-6cf2-47fc-8bbe-38f1ecfde6e0","trace_id":"1a5c71d1-4e28-4432-aa20-c7ef93a2657b","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:18:08.537Z","updated_at":"2025-10-08T18:18:08.537Z"}' + headers: + Content-Length: + - '480' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"2d7cdd2b5dfd9348b00b41c8d1949533" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.05, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.08, start_processing.action_controller;dur=0.00, + sql.active_record;dur=17.75, instantiation.active_record;dur=0.31, feature_operation.flipper;dur=0.03, + start_transaction.active_record;dur=0.00, transaction.active_record;dur=12.95, + process_action.action_controller;dur=339.15 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - c1055b9b-558b-454c-ad68-4a015818cb88 + x-runtime: + - '0.386365' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created +- request: + body: '{"events": [{"event_id": "0cc4e68a-6616-43f7-a52b-7850cbb49f5b", "timestamp": + "2025-10-08T18:18:08.551107+00:00", "type": "crew_kickoff_started", "event_data": + {"timestamp": "2025-10-08T18:18:08.159311+00:00", "type": "crew_kickoff_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "inputs": null}}, {"event_id": "4328757a-7427-4068-a5f8-8361d2e7a42e", + "timestamp": "2025-10-08T18:18:08.554388+00:00", "type": "task_started", "event_data": + {"task_description": "Give me an integer score between 1-5 for the following + title: ''The impact of AI in the future of work''", "expected_output": "The + score of the title.", "task_name": "Give me an integer score between 1-5 for + the following title: ''The impact of AI in the future of work''", "context": + "", "agent_role": "Crew Manager", "task_id": "5c23750c-affd-43fc-ad97-920bd15342e3"}}, + {"event_id": "9c6a75ec-0aa2-400b-95c5-7eb9812726f5", "timestamp": "2025-10-08T18:18:08.554839+00:00", + "type": "agent_execution_started", "event_data": {"agent_role": "Crew Manager", + "agent_goal": "Manage the team to complete the task in the best way possible.", + "agent_backstory": "You are a seasoned manager with a knack for getting the + best out of your team.\nYou are also known for your ability to delegate work + to the right people, and to ask the right questions to get the best out of your + team.\nEven though you don''t perform tasks by yourself, you have a lot of experience + in the field, which allows you to properly evaluate the work of your team members."}}, + {"event_id": "dfd6bc3a-7abd-4e12-ad0b-fa8589657dee", "timestamp": "2025-10-08T18:18:08.554930+00:00", + "type": "llm_call_started", "event_data": {"timestamp": "2025-10-08T18:18:08.554900+00:00", + "type": "llm_call_started", "source_fingerprint": null, "source_type": null, + "fingerprint_metadata": null, "task_name": "Give me an integer score between + 1-5 for the following title: ''The impact of AI in the future of work''", "task_id": + "5c23750c-affd-43fc-ad97-920bd15342e3", "agent_id": "2fee0a63-ccf0-408a-9368-1b95eb6d628e", + "agent_role": "Crew Manager", "from_task": null, "from_agent": null, "model": + "gpt-4o", "messages": [{"role": "system", "content": "You are Crew Manager. + You are a seasoned manager with a knack for getting the best out of your team.\nYou + are also known for your ability to delegate work to the right people, and to + ask the right questions to get the best out of your team.\nEven though you don''t + perform tasks by yourself, you have a lot of experience in the field, which + allows you to properly evaluate the work of your team members.\nYour personal + goal is: Manage the team to complete the task in the best way possible.\nYou + ONLY have access to the following tools, and should NEVER make up tools that + are not listed here:\n\nTool Name: Delegate work to coworker\nTool Arguments: + {''task'': {''description'': ''The task to delegate'', ''type'': ''str''}, ''context'': + {''description'': ''The context for the task'', ''type'': ''str''}, ''coworker'': + {''description'': ''The role/name of the coworker to delegate to'', ''type'': + ''str''}}\nTool Description: Delegate a specific task to one of the following + coworkers: Scorer\nThe input to this tool should be the coworker, the task you + want them to do, and ALL necessary context to execute the task, they know nothing + about the task, so share absolutely everything you know, don''t reference things + but instead explain them.\nTool Name: Ask question to coworker\nTool Arguments: + {''question'': {''description'': ''The question to ask'', ''type'': ''str''}, + ''context'': {''description'': ''The context for the question'', ''type'': ''str''}, + ''coworker'': {''description'': ''The role/name of the coworker to ask'', ''type'': + ''str''}}\nTool Description: Ask a specific question to one of the following + coworkers: Scorer\nThe input to this tool should be the coworker, the question + you have for them, and ALL necessary context to ask the question properly, they + know nothing about the question, so share absolutely everything you know, don''t + reference things but instead explain them.\n\nIMPORTANT: Use the following format + in your response:\n\n```\nThought: you should always think about what to do\nAction: + the action to take, only one name of [Delegate work to coworker, Ask question + to coworker], just the name, exactly as it''s written.\nAction Input: the input + to the action, just a simple JSON object, enclosed in curly braces, using \" + to wrap keys and values.\nObservation: the result of the action\n```\n\nOnce + all necessary information is gathered, return the following format:\n\n```\nThought: + I now know the final answer\nFinal Answer: the final answer to the original + input question\n```"}, {"role": "user", "content": "\nCurrent Task: Give me + an integer score between 1-5 for the following title: ''The impact of AI in + the future of work''\n\nThis is the expected criteria for your final answer: + The score of the title.\nyou MUST return the actual complete content as the + final answer, not a summary.\nEnsure your final answer contains only the content + in the following format: {\n \"score\": int\n}\n\nEnsure the final output does + not include any code block markers like ```json or ```python.\n\nBegin! This + is VERY important to you, use the tools available and give your best Final Answer, + your job depends on it!\n\nThought:"}], "tools": null, "callbacks": [""], "available_functions": null}}, {"event_id": "58f2ed18-74e9-4e55-a925-41a6186c4e03", + "timestamp": "2025-10-08T18:18:08.558164+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:18:08.558128+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "task_id": "5c23750c-affd-43fc-ad97-920bd15342e3", + "agent_id": "2fee0a63-ccf0-408a-9368-1b95eb6d628e", "agent_role": "Crew Manager", + "from_task": null, "from_agent": null, "messages": [{"role": "system", "content": + "You are Crew Manager. You are a seasoned manager with a knack for getting the + best out of your team.\nYou are also known for your ability to delegate work + to the right people, and to ask the right questions to get the best out of your + team.\nEven though you don''t perform tasks by yourself, you have a lot of experience + in the field, which allows you to properly evaluate the work of your team members.\nYour + personal goal is: Manage the team to complete the task in the best way possible.\nYou + ONLY have access to the following tools, and should NEVER make up tools that + are not listed here:\n\nTool Name: Delegate work to coworker\nTool Arguments: + {''task'': {''description'': ''The task to delegate'', ''type'': ''str''}, ''context'': + {''description'': ''The context for the task'', ''type'': ''str''}, ''coworker'': + {''description'': ''The role/name of the coworker to delegate to'', ''type'': + ''str''}}\nTool Description: Delegate a specific task to one of the following + coworkers: Scorer\nThe input to this tool should be the coworker, the task you + want them to do, and ALL necessary context to execute the task, they know nothing + about the task, so share absolutely everything you know, don''t reference things + but instead explain them.\nTool Name: Ask question to coworker\nTool Arguments: + {''question'': {''description'': ''The question to ask'', ''type'': ''str''}, + ''context'': {''description'': ''The context for the question'', ''type'': ''str''}, + ''coworker'': {''description'': ''The role/name of the coworker to ask'', ''type'': + ''str''}}\nTool Description: Ask a specific question to one of the following + coworkers: Scorer\nThe input to this tool should be the coworker, the question + you have for them, and ALL necessary context to ask the question properly, they + know nothing about the question, so share absolutely everything you know, don''t + reference things but instead explain them.\n\nIMPORTANT: Use the following format + in your response:\n\n```\nThought: you should always think about what to do\nAction: + the action to take, only one name of [Delegate work to coworker, Ask question + to coworker], just the name, exactly as it''s written.\nAction Input: the input + to the action, just a simple JSON object, enclosed in curly braces, using \" + to wrap keys and values.\nObservation: the result of the action\n```\n\nOnce + all necessary information is gathered, return the following format:\n\n```\nThought: + I now know the final answer\nFinal Answer: the final answer to the original + input question\n```"}, {"role": "user", "content": "\nCurrent Task: Give me + an integer score between 1-5 for the following title: ''The impact of AI in + the future of work''\n\nThis is the expected criteria for your final answer: + The score of the title.\nyou MUST return the actual complete content as the + final answer, not a summary.\nEnsure your final answer contains only the content + in the following format: {\n \"score\": int\n}\n\nEnsure the final output does + not include any code block markers like ```json or ```python.\n\nBegin! This + is VERY important to you, use the tools available and give your best Final Answer, + your job depends on it!\n\nThought:"}], "response": "To provide the score for + the title \"The impact of AI in the future of work,\" I need to ask Scorer to + evaluate this based on the criteria they use. \n\nAction: Ask question to coworker\nAction + Input: {\"question\": \"Can you provide an integer score between 1-5 for the + title ''The impact of AI in the future of work''?\", \"context\": \"We need + to evaluate this title based on your criteria for scoring titles. The context + for the scoring revolves entirely around the perceived impact of AI on the future + of work.\", \"coworker\": \"Scorer\"}", "call_type": "", "model": "gpt-4o"}}, {"event_id": "ad826003-5d03-4bcc-bdd9-6db229b0a419", + "timestamp": "2025-10-08T18:18:08.558720+00:00", "type": "tool_usage_started", + "event_data": {"timestamp": "2025-10-08T18:18:08.558636+00:00", "type": "tool_usage_started", + "source_fingerprint": "7ef5b626-3760-4b79-900f-65432b536f7c", "source_type": + "agent", "fingerprint_metadata": null, "agent_key": "6b5becc64d7e3c705a7d3784a5fab1d3", + "agent_role": "Crew Manager", "agent_id": null, "tool_name": "Ask question to + coworker", "tool_args": "{\"question\": \"Can you provide an integer score between + 1-5 for the title ''The impact of AI in the future of work''?\", \"context\": + \"We need to evaluate this title based on your criteria for scoring titles. + The context for the scoring revolves entirely around the perceived impact of + AI on the future of work.\", \"coworker\": \"Scorer\"}", "tool_class": "Ask + question to coworker", "run_attempts": null, "delegations": null, "agent": {"id": + "2fee0a63-ccf0-408a-9368-1b95eb6d628e", "role": "Crew Manager", "goal": "Manage + the team to complete the task in the best way possible.", "backstory": "You + are a seasoned manager with a knack for getting the best out of your team.\nYou + are also known for your ability to delegate work to the right people, and to + ask the right questions to get the best out of your team.\nEven though you don''t + perform tasks by yourself, you have a lot of experience in the field, which + allows you to properly evaluate the work of your team members.", "cache": true, + "verbose": false, "max_rpm": null, "allow_delegation": true, "tools": [{"name": + "''Delegate work to coworker''", "description": "\"Tool Name: Delegate work + to coworker\\nTool Arguments: {''task'': {''description'': ''The task to delegate'', + ''type'': ''str''}, ''context'': {''description'': ''The context for the task'', + ''type'': ''str''}, ''coworker'': {''description'': ''The role/name of the coworker + to delegate to'', ''type'': ''str''}}\\nTool Description: Delegate a specific + task to one of the following coworkers: Scorer\\nThe input to this tool should + be the coworker, the task you want them to do, and ALL necessary context to + execute the task, they know nothing about the task, so share absolutely everything + you know, don''t reference things but instead explain them.\"", "env_vars": + "[]", "args_schema": "", + "description_updated": "False", "cache_function": " + at 0x1127be8e0>", "result_as_answer": "False", "max_usage_count": "None", "current_usage_count": + "0"}, {"name": "''Ask question to coworker''", "description": "\"Tool Name: + Ask question to coworker\\nTool Arguments: {''question'': {''description'': + ''The question to ask'', ''type'': ''str''}, ''context'': {''description'': + ''The context for the question'', ''type'': ''str''}, ''coworker'': {''description'': + ''The role/name of the coworker to ask'', ''type'': ''str''}}\\nTool Description: + Ask a specific question to one of the following coworkers: Scorer\\nThe input + to this tool should be the coworker, the question you have for them, and ALL + necessary context to ask the question properly, they know nothing about the + question, so share absolutely everything you know, don''t reference things but + instead explain them.\"", "env_vars": "[]", "args_schema": "", + "description_updated": "False", "cache_function": " + at 0x1127be8e0>", "result_as_answer": "False", "max_usage_count": "None", "current_usage_count": + "0"}], "max_iter": 25, "agent_executor": "", "llm": "", "crew": + {"parent_flow": null, "name": "crew", "cache": true, "tasks": ["{''used_tools'': + 0, ''tools_errors'': 0, ''delegations'': 0, ''i18n'': {''prompt_file'': None}, + ''name'': None, ''prompt_context'': '''', ''description'': \"Give me an integer + score between 1-5 for the following title: ''The impact of AI in the future + of work''\", ''expected_output'': ''The score of the title.'', ''config'': None, + ''callback'': None, ''agent'': {''id'': UUID(''2fee0a63-ccf0-408a-9368-1b95eb6d628e''), + ''role'': ''Crew Manager'', ''goal'': ''Manage the team to complete the task + in the best way possible.'', ''backstory'': \"You are a seasoned manager with + a knack for getting the best out of your team.\\nYou are also known for your + ability to delegate work to the right people, and to ask the right questions + to get the best out of your team.\\nEven though you don''t perform tasks by + yourself, you have a lot of experience in the field, which allows you to properly + evaluate the work of your team members.\", ''cache'': True, ''verbose'': False, + ''max_rpm'': None, ''allow_delegation'': True, ''tools'': [{''name'': ''Delegate + work to coworker'', ''description'': \"Tool Name: Delegate work to coworker\\nTool + Arguments: {''task'': {''description'': ''The task to delegate'', ''type'': + ''str''}, ''context'': {''description'': ''The context for the task'', ''type'': + ''str''}, ''coworker'': {''description'': ''The role/name of the coworker to + delegate to'', ''type'': ''str''}}\\nTool Description: Delegate a specific task + to one of the following coworkers: Scorer\\nThe input to this tool should be + the coworker, the task you want them to do, and ALL necessary context to execute + the task, they know nothing about the task, so share absolutely everything you + know, don''t reference things but instead explain them.\", ''env_vars'': [], + ''args_schema'': , + ''description_updated'': False, ''cache_function'': + at 0x1127be8e0>, ''result_as_answer'': False, ''max_usage_count'': None, ''current_usage_count'': + 0}, {''name'': ''Ask question to coworker'', ''description'': \"Tool Name: Ask + question to coworker\\nTool Arguments: {''question'': {''description'': ''The + question to ask'', ''type'': ''str''}, ''context'': {''description'': ''The + context for the question'', ''type'': ''str''}, ''coworker'': {''description'': + ''The role/name of the coworker to ask'', ''type'': ''str''}}\\nTool Description: + Ask a specific question to one of the following coworkers: Scorer\\nThe input + to this tool should be the coworker, the question you have for them, and ALL + necessary context to ask the question properly, they know nothing about the + question, so share absolutely everything you know, don''t reference things but + instead explain them.\", ''env_vars'': [], ''args_schema'': , + ''description_updated'': False, ''cache_function'': + at 0x1127be8e0>, ''result_as_answer'': False, ''max_usage_count'': None, ''current_usage_count'': + 0}], ''max_iter'': 25, ''agent_executor'': , ''llm'': , ''crew'': + Crew(id=7237e268-30a9-4eca-b754-a6dea72b2dfc, process=Process.hierarchical, + number_of_agents=1, number_of_tasks=1), ''i18n'': {''prompt_file'': None}, ''cache_handler'': + {}, ''tools_handler'': , + ''tools_results'': [], ''max_tokens'': None, ''knowledge'': None, ''knowledge_sources'': + None, ''knowledge_storage'': None, ''security_config'': {''fingerprint'': {''metadata'': + {}}}, ''callbacks'': [], ''adapted_agent'': False, ''knowledge_config'': None}, + ''context'': NOT_SPECIFIED, ''async_execution'': False, ''output_json'': .ScoreOutput''>, ''output_pydantic'': + None, ''output_file'': None, ''create_directory'': True, ''output'': None, ''tools'': + [], ''security_config'': {''fingerprint'': {''metadata'': {}}}, ''id'': UUID(''5c23750c-affd-43fc-ad97-920bd15342e3''), + ''human_input'': False, ''markdown'': False, ''converter_cls'': None, ''processed_by_agents'': + {''Crew Manager''}, ''guardrail'': None, ''max_retries'': None, ''guardrail_max_retries'': + 3, ''retry_count'': 0, ''start_time'': datetime.datetime(2025, 10, 8, 11, 18, + 8, 554345), ''end_time'': None, ''allow_crewai_trigger_context'': None}"], "agents": + ["{''id'': UUID(''16778b49-13e6-4cfc-bc0c-c95ebc698cb5''), ''role'': ''Scorer'', + ''goal'': ''Score the title'', ''backstory'': \"You''re an expert scorer, specialized + in scoring titles.\", ''cache'': True, ''verbose'': False, ''max_rpm'': None, + ''allow_delegation'': False, ''tools'': [], ''max_iter'': 25, ''agent_executor'': + , + ''llm'': , ''crew'': Crew(id=7237e268-30a9-4eca-b754-a6dea72b2dfc, + process=Process.hierarchical, number_of_agents=1, number_of_tasks=1), ''i18n'': + {''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': , ''tools_results'': [], ''max_tokens'': None, ''knowledge'': + None, ''knowledge_sources'': None, ''knowledge_storage'': None, ''security_config'': + {''fingerprint'': {''metadata'': {}}}, ''callbacks'': [], ''adapted_agent'': + False, ''knowledge_config'': None}"], "process": "hierarchical", "verbose": + false, "memory": false, "short_term_memory": null, "long_term_memory": null, + "entity_memory": null, "external_memory": null, "embedder": null, "usage_metrics": + null, "manager_llm": "", "manager_agent": + {"id": "UUID(''2fee0a63-ccf0-408a-9368-1b95eb6d628e'')", "role": "''Crew Manager''", + "goal": "''Manage the team to complete the task in the best way possible.''", + "backstory": "\"You are a seasoned manager with a knack for getting the best + out of your team.\\nYou are also known for your ability to delegate work to + the right people, and to ask the right questions to get the best out of your + team.\\nEven though you don''t perform tasks by yourself, you have a lot of + experience in the field, which allows you to properly evaluate the work of your + team members.\"", "cache": "True", "verbose": "False", "max_rpm": "None", "allow_delegation": + "True", "tools": "[{''name'': ''Delegate work to coworker'', ''description'': + \"Tool Name: Delegate work to coworker\\nTool Arguments: {''task'': {''description'': + ''The task to delegate'', ''type'': ''str''}, ''context'': {''description'': + ''The context for the task'', ''type'': ''str''}, ''coworker'': {''description'': + ''The role/name of the coworker to delegate to'', ''type'': ''str''}}\\nTool + Description: Delegate a specific task to one of the following coworkers: Scorer\\nThe + input to this tool should be the coworker, the task you want them to do, and + ALL necessary context to execute the task, they know nothing about the task, + so share absolutely everything you know, don''t reference things but instead + explain them.\", ''env_vars'': [], ''args_schema'': , + ''description_updated'': False, ''cache_function'': + at 0x1127be8e0>, ''result_as_answer'': False, ''max_usage_count'': None, ''current_usage_count'': + 0}, {''name'': ''Ask question to coworker'', ''description'': \"Tool Name: Ask + question to coworker\\nTool Arguments: {''question'': {''description'': ''The + question to ask'', ''type'': ''str''}, ''context'': {''description'': ''The + context for the question'', ''type'': ''str''}, ''coworker'': {''description'': + ''The role/name of the coworker to ask'', ''type'': ''str''}}\\nTool Description: + Ask a specific question to one of the following coworkers: Scorer\\nThe input + to this tool should be the coworker, the question you have for them, and ALL + necessary context to ask the question properly, they know nothing about the + question, so share absolutely everything you know, don''t reference things but + instead explain them.\", ''env_vars'': [], ''args_schema'': , + ''description_updated'': False, ''cache_function'': + at 0x1127be8e0>, ''result_as_answer'': False, ''max_usage_count'': None, ''current_usage_count'': + 0}]", "max_iter": "25", "agent_executor": "", "llm": "", "crew": + "Crew(id=7237e268-30a9-4eca-b754-a6dea72b2dfc, process=Process.hierarchical, + number_of_agents=1, number_of_tasks=1)", "i18n": "{''prompt_file'': None}", + "cache_handler": "{}", "tools_handler": "", "tools_results": "[]", "max_tokens": "None", "knowledge": + "None", "knowledge_sources": "None", "knowledge_storage": "None", "security_config": + "{''fingerprint'': {''metadata'': {}}}", "callbacks": "[]", "adapted_agent": + "False", "knowledge_config": "None"}, "function_calling_llm": null, "config": + null, "id": "7237e268-30a9-4eca-b754-a6dea72b2dfc", "share_crew": false, "step_callback": + null, "task_callback": null, "before_kickoff_callbacks": [], "after_kickoff_callbacks": + [], "max_rpm": null, "prompt_file": null, "output_log_file": null, "planning": + false, "planning_llm": null, "task_execution_output_json_files": null, "execution_logs": + [], "knowledge_sources": null, "chat_llm": null, "knowledge": null, "security_config": + {"fingerprint": "{''metadata'': {}}"}, "token_usage": null, "tracing": false}, + "i18n": {"prompt_file": null}, "cache_handler": {}, "tools_handler": "", "tools_results": [], "max_tokens": null, "knowledge": + null, "knowledge_sources": null, "knowledge_storage": null, "security_config": + {"fingerprint": {"metadata": "{}"}}, "callbacks": [], "adapted_agent": false, + "knowledge_config": null, "max_execution_time": null, "agent_ops_agent_name": + "Crew Manager", "agent_ops_agent_id": null, "step_callback": null, "use_system_prompt": + true, "function_calling_llm": null, "system_template": null, "prompt_template": + null, "response_template": null, "allow_code_execution": false, "respect_context_window": + true, "max_retry_limit": 2, "multimodal": false, "inject_date": false, "date_format": + "%Y-%m-%d", "code_execution_mode": "safe", "reasoning": false, "max_reasoning_attempts": + null, "embedder": null, "agent_knowledge_context": null, "crew_knowledge_context": + null, "knowledge_search_query": null, "from_repository": null, "guardrail": + null, "guardrail_max_retries": 3}, "task_name": "Give me an integer score between + 1-5 for the following title: ''The impact of AI in the future of work''", "task_id": + "5c23750c-affd-43fc-ad97-920bd15342e3", "from_task": null, "from_agent": null}}, + {"event_id": "b666ec5d-63b6-4d97-86f9-7ce85babdadd", "timestamp": "2025-10-08T18:18:08.560511+00:00", + "type": "agent_execution_started", "event_data": {"agent_role": "Scorer", "agent_goal": + "Score the title", "agent_backstory": "You''re an expert scorer, specialized + in scoring titles."}}, {"event_id": "ab280ea3-e649-4ed5-87f1-00363f28a5c9", + "timestamp": "2025-10-08T18:18:08.560588+00:00", "type": "llm_call_started", + "event_data": {"timestamp": "2025-10-08T18:18:08.560564+00:00", "type": "llm_call_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Can you provide an integer score between 1-5 for the title ''The + impact of AI in the future of work''?", "task_id": "d249cc86-962d-45ff-848d-46ebf36fb14f", + "agent_id": "16778b49-13e6-4cfc-bc0c-c95ebc698cb5", "agent_role": "Scorer", + "from_task": null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role": + "system", "content": "You are Scorer. You''re an expert scorer, specialized + in scoring titles.\nYour personal goal is: Score the title\nTo give my best + complete final answer to the task respond using the exact following format:\n\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described.\n\nI MUST use + these formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent + Task: Can you provide an integer score between 1-5 for the title ''The impact + of AI in the future of work''?\n\nThis is the expected criteria for your final + answer: Your best answer to your coworker asking you this, accounting for the + context shared.\nyou MUST return the actual complete content as the final answer, + not a summary.\n\nThis is the context you''re working with:\nWe need to evaluate + this title based on your criteria for scoring titles. The context for the scoring + revolves entirely around the perceived impact of AI on the future of work.\n\nBegin! + This is VERY important to you, use the tools available and give your best Final + Answer, your job depends on it!\n\nThought:"}], "tools": null, "callbacks": + [""], + "available_functions": null}}, {"event_id": "4c9b120f-bed5-4398-8a53-7e581b552a04", + "timestamp": "2025-10-08T18:18:08.564442+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:18:08.564412+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Can you provide an integer score between 1-5 for the title ''The + impact of AI in the future of work''?", "task_id": "d249cc86-962d-45ff-848d-46ebf36fb14f", + "agent_id": "16778b49-13e6-4cfc-bc0c-c95ebc698cb5", "agent_role": "Scorer", + "from_task": null, "from_agent": null, "messages": [{"role": "system", "content": + "You are Scorer. You''re an expert scorer, specialized in scoring titles.\nYour + personal goal is: Score the title\nTo give my best complete final answer to + the task respond using the exact following format:\n\nThought: I now can give + a great answer\nFinal Answer: Your final answer must be the great and the most + complete as possible, it must be outcome described.\n\nI MUST use these formats, + my job depends on it!"}, {"role": "user", "content": "\nCurrent Task: Can you + provide an integer score between 1-5 for the title ''The impact of AI in the + future of work''?\n\nThis is the expected criteria for your final answer: Your + best answer to your coworker asking you this, accounting for the context shared.\nyou + MUST return the actual complete content as the final answer, not a summary.\n\nThis + is the context you''re working with:\nWe need to evaluate this title based on + your criteria for scoring titles. The context for the scoring revolves entirely + around the perceived impact of AI on the future of work.\n\nBegin! This is VERY + important to you, use the tools available and give your best Final Answer, your + job depends on it!\n\nThought:"}], "response": "Thought: I now can give a great + answer\nFinal Answer: 4 - The title ''The impact of AI in the future of work'' + is clear and directly addresses a timely and significant topic that is highly + relevant in today''s context. However, it could be made even more specific to + immediately hook the reader or audience.", "call_type": "", "model": "gpt-4o-mini"}}, {"event_id": "c3ab05fd-538f-43af-b3cf-459efac2e3f9", + "timestamp": "2025-10-08T18:18:08.564558+00:00", "type": "agent_execution_completed", + "event_data": {"agent_role": "Scorer", "agent_goal": "Score the title", "agent_backstory": + "You''re an expert scorer, specialized in scoring titles."}}, {"event_id": "ac4cb494-7cea-4335-8975-27afbe134b6f", + "timestamp": "2025-10-08T18:18:08.564704+00:00", "type": "tool_usage_finished", + "event_data": {"timestamp": "2025-10-08T18:18:08.564655+00:00", "type": "tool_usage_finished", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "agent_key": "6b5becc64d7e3c705a7d3784a5fab1d3", "agent_role": "Crew Manager", + "agent_id": null, "tool_name": "Ask question to coworker", "tool_args": {"question": + "Can you provide an integer score between 1-5 for the title ''The impact of + AI in the future of work''?", "context": "We need to evaluate this title based + on your criteria for scoring titles. The context for the scoring revolves entirely + around the perceived impact of AI on the future of work.", "coworker": "Scorer"}, + "tool_class": "CrewStructuredTool", "run_attempts": 1, "delegations": 1, "agent": + null, "task_name": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "task_id": "5c23750c-affd-43fc-ad97-920bd15342e3", + "from_task": null, "from_agent": null, "started_at": "2025-10-08T11:18:08.559118", + "finished_at": "2025-10-08T11:18:08.564633", "from_cache": false, "output": + "4 - The title ''The impact of AI in the future of work'' is clear and directly + addresses a timely and significant topic that is highly relevant in today''s + context. However, it could be made even more specific to immediately hook the + reader or audience."}}, {"event_id": "96c713d7-689d-430b-afbc-aa38998c1988", + "timestamp": "2025-10-08T18:18:08.564815+00:00", "type": "llm_call_started", + "event_data": {"timestamp": "2025-10-08T18:18:08.564794+00:00", "type": "llm_call_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "task_id": "5c23750c-affd-43fc-ad97-920bd15342e3", + "agent_id": "2fee0a63-ccf0-408a-9368-1b95eb6d628e", "agent_role": "Crew Manager", + "from_task": null, "from_agent": null, "model": "gpt-4o", "messages": [{"role": + "system", "content": "You are Crew Manager. You are a seasoned manager with + a knack for getting the best out of your team.\nYou are also known for your + ability to delegate work to the right people, and to ask the right questions + to get the best out of your team.\nEven though you don''t perform tasks by yourself, + you have a lot of experience in the field, which allows you to properly evaluate + the work of your team members.\nYour personal goal is: Manage the team to complete + the task in the best way possible.\nYou ONLY have access to the following tools, + and should NEVER make up tools that are not listed here:\n\nTool Name: Delegate + work to coworker\nTool Arguments: {''task'': {''description'': ''The task to + delegate'', ''type'': ''str''}, ''context'': {''description'': ''The context + for the task'', ''type'': ''str''}, ''coworker'': {''description'': ''The role/name + of the coworker to delegate to'', ''type'': ''str''}}\nTool Description: Delegate + a specific task to one of the following coworkers: Scorer\nThe input to this + tool should be the coworker, the task you want them to do, and ALL necessary + context to execute the task, they know nothing about the task, so share absolutely + everything you know, don''t reference things but instead explain them.\nTool + Name: Ask question to coworker\nTool Arguments: {''question'': {''description'': + ''The question to ask'', ''type'': ''str''}, ''context'': {''description'': + ''The context for the question'', ''type'': ''str''}, ''coworker'': {''description'': + ''The role/name of the coworker to ask'', ''type'': ''str''}}\nTool Description: + Ask a specific question to one of the following coworkers: Scorer\nThe input + to this tool should be the coworker, the question you have for them, and ALL + necessary context to ask the question properly, they know nothing about the + question, so share absolutely everything you know, don''t reference things but + instead explain them.\n\nIMPORTANT: Use the following format in your response:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, only one + name of [Delegate work to coworker, Ask question to coworker], just the name, + exactly as it''s written.\nAction Input: the input to the action, just a simple + JSON object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: + the result of the action\n```\n\nOnce all necessary information is gathered, + return the following format:\n\n```\nThought: I now know the final answer\nFinal + Answer: the final answer to the original input question\n```"}, {"role": "user", + "content": "\nCurrent Task: Give me an integer score between 1-5 for the following + title: ''The impact of AI in the future of work''\n\nThis is the expected criteria + for your final answer: The score of the title.\nyou MUST return the actual complete + content as the final answer, not a summary.\nEnsure your final answer contains + only the content in the following format: {\n \"score\": int\n}\n\nEnsure the + final output does not include any code block markers like ```json or ```python.\n\nBegin! + This is VERY important to you, use the tools available and give your best Final + Answer, your job depends on it!\n\nThought:"}, {"role": "assistant", "content": + "To provide the score for the title \"The impact of AI in the future of work,\" + I need to ask Scorer to evaluate this based on the criteria they use. \n\nAction: + Ask question to coworker\nAction Input: {\"question\": \"Can you provide an + integer score between 1-5 for the title ''The impact of AI in the future of + work''?\", \"context\": \"We need to evaluate this title based on your criteria + for scoring titles. The context for the scoring revolves entirely around the + perceived impact of AI on the future of work.\", \"coworker\": \"Scorer\"}\nObservation: + 4 - The title ''The impact of AI in the future of work'' is clear and directly + addresses a timely and significant topic that is highly relevant in today''s + context. However, it could be made even more specific to immediately hook the + reader or audience."}], "tools": null, "callbacks": [""], "available_functions": null}}, {"event_id": "d51c432f-8ae5-4c42-8b24-317a494ec4bd", + "timestamp": "2025-10-08T18:18:08.567836+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:18:08.567811+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "task_id": "5c23750c-affd-43fc-ad97-920bd15342e3", + "agent_id": "2fee0a63-ccf0-408a-9368-1b95eb6d628e", "agent_role": "Crew Manager", + "from_task": null, "from_agent": null, "messages": [{"role": "system", "content": + "You are Crew Manager. You are a seasoned manager with a knack for getting the + best out of your team.\nYou are also known for your ability to delegate work + to the right people, and to ask the right questions to get the best out of your + team.\nEven though you don''t perform tasks by yourself, you have a lot of experience + in the field, which allows you to properly evaluate the work of your team members.\nYour + personal goal is: Manage the team to complete the task in the best way possible.\nYou + ONLY have access to the following tools, and should NEVER make up tools that + are not listed here:\n\nTool Name: Delegate work to coworker\nTool Arguments: + {''task'': {''description'': ''The task to delegate'', ''type'': ''str''}, ''context'': + {''description'': ''The context for the task'', ''type'': ''str''}, ''coworker'': + {''description'': ''The role/name of the coworker to delegate to'', ''type'': + ''str''}}\nTool Description: Delegate a specific task to one of the following + coworkers: Scorer\nThe input to this tool should be the coworker, the task you + want them to do, and ALL necessary context to execute the task, they know nothing + about the task, so share absolutely everything you know, don''t reference things + but instead explain them.\nTool Name: Ask question to coworker\nTool Arguments: + {''question'': {''description'': ''The question to ask'', ''type'': ''str''}, + ''context'': {''description'': ''The context for the question'', ''type'': ''str''}, + ''coworker'': {''description'': ''The role/name of the coworker to ask'', ''type'': + ''str''}}\nTool Description: Ask a specific question to one of the following + coworkers: Scorer\nThe input to this tool should be the coworker, the question + you have for them, and ALL necessary context to ask the question properly, they + know nothing about the question, so share absolutely everything you know, don''t + reference things but instead explain them.\n\nIMPORTANT: Use the following format + in your response:\n\n```\nThought: you should always think about what to do\nAction: + the action to take, only one name of [Delegate work to coworker, Ask question + to coworker], just the name, exactly as it''s written.\nAction Input: the input + to the action, just a simple JSON object, enclosed in curly braces, using \" + to wrap keys and values.\nObservation: the result of the action\n```\n\nOnce + all necessary information is gathered, return the following format:\n\n```\nThought: + I now know the final answer\nFinal Answer: the final answer to the original + input question\n```"}, {"role": "user", "content": "\nCurrent Task: Give me + an integer score between 1-5 for the following title: ''The impact of AI in + the future of work''\n\nThis is the expected criteria for your final answer: + The score of the title.\nyou MUST return the actual complete content as the + final answer, not a summary.\nEnsure your final answer contains only the content + in the following format: {\n \"score\": int\n}\n\nEnsure the final output does + not include any code block markers like ```json or ```python.\n\nBegin! This + is VERY important to you, use the tools available and give your best Final Answer, + your job depends on it!\n\nThought:"}, {"role": "assistant", "content": "To + provide the score for the title \"The impact of AI in the future of work,\" + I need to ask Scorer to evaluate this based on the criteria they use. \n\nAction: + Ask question to coworker\nAction Input: {\"question\": \"Can you provide an + integer score between 1-5 for the title ''The impact of AI in the future of + work''?\", \"context\": \"We need to evaluate this title based on your criteria + for scoring titles. The context for the scoring revolves entirely around the + perceived impact of AI on the future of work.\", \"coworker\": \"Scorer\"}\nObservation: + 4 - The title ''The impact of AI in the future of work'' is clear and directly + addresses a timely and significant topic that is highly relevant in today''s + context. However, it could be made even more specific to immediately hook the + reader or audience."}], "response": "Thought: I have received the score from + Scorer.\n\nFinal Answer: 4 - The title ''The impact of AI in the future of work'' + is clear and directly addresses a timely and significant topic that is highly + relevant in today''s context. However, it could be made even more specific to + immediately hook the reader or audience.", "call_type": "", "model": "gpt-4o"}}, {"event_id": "6edb30ea-b452-4983-8442-d0fd34aadc6f", + "timestamp": "2025-10-08T18:18:08.567937+00:00", "type": "agent_execution_completed", + "event_data": {"agent_role": "Crew Manager", "agent_goal": "Manage the team + to complete the task in the best way possible.", "agent_backstory": "You are + a seasoned manager with a knack for getting the best out of your team.\nYou + are also known for your ability to delegate work to the right people, and to + ask the right questions to get the best out of your team.\nEven though you don''t + perform tasks by yourself, you have a lot of experience in the field, which + allows you to properly evaluate the work of your team members."}}, {"event_id": + "f365ca78-ddbf-43bd-ac3e-ce31457800b9", "timestamp": "2025-10-08T18:18:08.571375+00:00", + "type": "task_completed", "event_data": {"task_description": "Give me an integer + score between 1-5 for the following title: ''The impact of AI in the future + of work''", "task_name": "Give me an integer score between 1-5 for the following + title: ''The impact of AI in the future of work''", "task_id": "5c23750c-affd-43fc-ad97-920bd15342e3", + "output_raw": "4 - The title ''The impact of AI in the future of work'' is clear + and directly addresses a timely and significant topic that is highly relevant + in today''s context. However, it could be made even more specific to immediately + hook the reader or audience.", "output_format": "OutputFormat.JSON", "agent_role": + "Crew Manager"}}, {"event_id": "5e2ac85b-d76c-4b38-b2b6-fd0e06f0ad41", "timestamp": + "2025-10-08T18:18:08.572521+00:00", "type": "crew_kickoff_completed", "event_data": + {"timestamp": "2025-10-08T18:18:08.572500+00:00", "type": "crew_kickoff_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "output": {"description": "Give me an integer + score between 1-5 for the following title: ''The impact of AI in the future + of work''", "name": "Give me an integer score between 1-5 for the following + title: ''The impact of AI in the future of work''", "expected_output": "The + score of the title.", "summary": "Give me an integer score between 1-5 for the + following...", "raw": "4 - The title ''The impact of AI in the future of work'' + is clear and directly addresses a timely and significant topic that is highly + relevant in today''s context. However, it could be made even more specific to + immediately hook the reader or audience.", "pydantic": null, "json_dict": {"score": + 4}, "agent": "Crew Manager", "output_format": "json"}, "total_tokens": 1996}}], + "batch_metadata": {"events_count": 16, "batch_sequence": 1, "is_final_batch": + false}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '42639' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/1a5c71d1-4e28-4432-aa20-c7ef93a2657b/events + response: + body: + string: '{"events_created":16,"trace_batch_id":"6ce9315e-6cf2-47fc-8bbe-38f1ecfde6e0"}' + headers: + Content-Length: + - '77' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"3acf767046d524a3f23c35c4eea8012e" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.06, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.11, start_processing.action_controller;dur=0.00, + sql.active_record;dur=74.18, instantiation.active_record;dur=0.41, start_transaction.active_record;dur=0.00, + transaction.active_record;dur=173.74, process_action.action_controller;dur=538.57 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 5617642e-2f52-47be-8b68-5ed5ae18d869 + x-runtime: + - '0.589363' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{"status": "completed", "duration_ms": 1014, "final_event_count": 16}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '69' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: PATCH + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/1a5c71d1-4e28-4432-aa20-c7ef93a2657b/finalize + response: + body: + string: '{"id":"6ce9315e-6cf2-47fc-8bbe-38f1ecfde6e0","trace_id":"1a5c71d1-4e28-4432-aa20-c7ef93a2657b","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":1014,"crewai_version":"0.201.1","privacy_level":"standard","total_events":16,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.201.1","crew_fingerprint":null},"created_at":"2025-10-08T18:18:08.537Z","updated_at":"2025-10-08T18:18:09.514Z"}' + headers: + Content-Length: + - '483' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"b84badb75e9dd6b55f201454666620d6" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.04, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.07, start_processing.action_controller;dur=0.00, + sql.active_record;dur=10.32, instantiation.active_record;dur=0.40, unpermitted_parameters.action_controller;dur=0.01, + start_transaction.active_record;dur=0.01, transaction.active_record;dur=2.89, + process_action.action_controller;dur=302.38 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - d01f9af8-6a51-4e9a-bd04-30396c5323bf + x-runtime: + - '0.337087' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK version: 1 diff --git a/tests/cassettes/test_output_json_sequential.yaml b/tests/cassettes/test_output_json_sequential.yaml index fa5b1e497..2a89efefc 100644 --- a/tests/cassettes/test_output_json_sequential.yaml +++ b/tests/cassettes/test_output_json_sequential.yaml @@ -314,4 +314,337 @@ interactions: status: code: 200 message: OK +- request: + body: '{"trace_id": "77d64f31-0de2-472d-b80d-7400ebbd3709", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "crew", "flow_name": null, "crewai_version": "0.201.1", "privacy_level": + "standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count": + 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-10-08T18:18:06.867975+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '428' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"5caa2120-b693-4668-900f-78485fdb4d74","trace_id":"77d64f31-0de2-472d-b80d-7400ebbd3709","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:18:07.166Z","updated_at":"2025-10-08T18:18:07.166Z"}' + headers: + Content-Length: + - '480' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"7146973b561e6245f81e2463c808e03d" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.04, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.08, start_processing.action_controller;dur=0.01, + sql.active_record;dur=29.54, instantiation.active_record;dur=0.44, feature_operation.flipper;dur=0.13, + start_transaction.active_record;dur=0.01, transaction.active_record;dur=23.27, + process_action.action_controller;dur=276.52 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - bcebabb0-34bd-4df1-b4bd-2ac70fc8d1d3 + x-runtime: + - '0.320530' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created +- request: + body: '{"events": [{"event_id": "82d4cc27-145e-478c-a91b-62ba3ee35fe6", "timestamp": + "2025-10-08T18:18:07.198191+00:00", "type": "crew_kickoff_started", "event_data": + {"timestamp": "2025-10-08T18:18:06.866899+00:00", "type": "crew_kickoff_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "inputs": null}}, {"event_id": "ca22514b-58ee-43b6-bdf9-02f2e73f4db2", + "timestamp": "2025-10-08T18:18:07.202897+00:00", "type": "task_started", "event_data": + {"task_description": "Give me an integer score between 1-5 for the following + title: ''The impact of AI in the future of work''", "expected_output": "The + score of the title.", "task_name": "Give me an integer score between 1-5 for + the following title: ''The impact of AI in the future of work''", "context": + "", "agent_role": "Scorer", "task_id": "d4b3624f-bea6-49e9-be04-7acb6e17ff14"}}, + {"event_id": "1fce41eb-f584-4233-8550-d1e12d50d449", "timestamp": "2025-10-08T18:18:07.203668+00:00", + "type": "agent_execution_started", "event_data": {"agent_role": "Scorer", "agent_goal": + "Score the title", "agent_backstory": "You''re an expert scorer, specialized + in scoring titles."}}, {"event_id": "11cb4350-9d66-42f8-ac83-8a5b36dbe501", + "timestamp": "2025-10-08T18:18:07.203818+00:00", "type": "llm_call_started", + "event_data": {"timestamp": "2025-10-08T18:18:07.203767+00:00", "type": "llm_call_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "task_id": "d4b3624f-bea6-49e9-be04-7acb6e17ff14", + "agent_id": "80b90b31-64c1-47ad-a942-6786a833743f", "agent_role": "Scorer", + "from_task": null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role": + "system", "content": "You are Scorer. You''re an expert scorer, specialized + in scoring titles.\nYour personal goal is: Score the title\nTo give my best + complete final answer to the task respond using the exact following format:\n\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described.\n\nI MUST use + these formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent + Task: Give me an integer score between 1-5 for the following title: ''The impact + of AI in the future of work''\n\nThis is the expected criteria for your final + answer: The score of the title.\nyou MUST return the actual complete content + as the final answer, not a summary.\nEnsure your final answer contains only + the content in the following format: {\n \"score\": int\n}\n\nEnsure the final + output does not include any code block markers like ```json or ```python.\n\nBegin! + This is VERY important to you, use the tools available and give your best Final + Answer, your job depends on it!\n\nThought:"}], "tools": null, "callbacks": + [""], + "available_functions": null}}, {"event_id": "b325b1bb-c517-46fe-8667-6e95b1f14ff7", + "timestamp": "2025-10-08T18:18:07.208686+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:18:07.208630+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "task_id": "d4b3624f-bea6-49e9-be04-7acb6e17ff14", + "agent_id": "80b90b31-64c1-47ad-a942-6786a833743f", "agent_role": "Scorer", + "from_task": null, "from_agent": null, "messages": [{"role": "system", "content": + "You are Scorer. You''re an expert scorer, specialized in scoring titles.\nYour + personal goal is: Score the title\nTo give my best complete final answer to + the task respond using the exact following format:\n\nThought: I now can give + a great answer\nFinal Answer: Your final answer must be the great and the most + complete as possible, it must be outcome described.\n\nI MUST use these formats, + my job depends on it!"}, {"role": "user", "content": "\nCurrent Task: Give me + an integer score between 1-5 for the following title: ''The impact of AI in + the future of work''\n\nThis is the expected criteria for your final answer: + The score of the title.\nyou MUST return the actual complete content as the + final answer, not a summary.\nEnsure your final answer contains only the content + in the following format: {\n \"score\": int\n}\n\nEnsure the final output does + not include any code block markers like ```json or ```python.\n\nBegin! This + is VERY important to you, use the tools available and give your best Final Answer, + your job depends on it!\n\nThought:"}], "response": "I now can give a great + answer\nFinal Answer: 4", "call_type": "", + "model": "gpt-4o-mini"}}, {"event_id": "e674f9a3-5f11-4856-8782-7ab914a14b2f", + "timestamp": "2025-10-08T18:18:07.208869+00:00", "type": "agent_execution_completed", + "event_data": {"agent_role": "Scorer", "agent_goal": "Score the title", "agent_backstory": + "You''re an expert scorer, specialized in scoring titles."}}, {"event_id": "74e84e30-07c2-4b64-aaa3-5e6b199a40c6", + "timestamp": "2025-10-08T18:18:07.341942+00:00", "type": "task_completed", "event_data": + {"task_description": "Give me an integer score between 1-5 for the following + title: ''The impact of AI in the future of work''", "task_name": "Give me an + integer score between 1-5 for the following title: ''The impact of AI in the + future of work''", "task_id": "d4b3624f-bea6-49e9-be04-7acb6e17ff14", "output_raw": + "4", "output_format": "OutputFormat.JSON", "agent_role": "Scorer"}}, {"event_id": + "c4f5fdbe-922c-4033-9a6a-fc029936d9a3", "timestamp": "2025-10-08T18:18:07.342602+00:00", + "type": "crew_kickoff_completed", "event_data": {"timestamp": "2025-10-08T18:18:07.342591+00:00", + "type": "crew_kickoff_completed", "source_fingerprint": null, "source_type": + null, "fingerprint_metadata": null, "crew_name": "crew", "crew": null, "output": + {"description": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "name": "Give me an integer score + between 1-5 for the following title: ''The impact of AI in the future of work''", + "expected_output": "The score of the title.", "summary": "Give me an integer + score between 1-5 for the following...", "raw": "4", "pydantic": null, "json_dict": + {"score": 4}, "agent": "Scorer", "output_format": "json"}, "total_tokens": 199}}], + "batch_metadata": {"events_count": 8, "batch_sequence": 1, "is_final_batch": + false}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '6610' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/77d64f31-0de2-472d-b80d-7400ebbd3709/events + response: + body: + string: '{"events_created":8,"trace_batch_id":"5caa2120-b693-4668-900f-78485fdb4d74"}' + headers: + Content-Length: + - '76' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"9d89046203ab7b5d06c53813e05b7e27" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.04, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.08, start_processing.action_controller;dur=0.00, + sql.active_record;dur=33.94, instantiation.active_record;dur=0.64, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=77.16, process_action.action_controller;dur=464.62 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 3d03b2fc-b9f9-437f-934f-d996c24b90e0 + x-runtime: + - '0.511861' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{"status": "completed", "duration_ms": 997, "final_event_count": 8}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '67' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: PATCH + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/77d64f31-0de2-472d-b80d-7400ebbd3709/finalize + response: + body: + string: '{"id":"5caa2120-b693-4668-900f-78485fdb4d74","trace_id":"77d64f31-0de2-472d-b80d-7400ebbd3709","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":997,"crewai_version":"0.201.1","privacy_level":"standard","total_events":8,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.201.1","crew_fingerprint":null},"created_at":"2025-10-08T18:18:07.166Z","updated_at":"2025-10-08T18:18:08.136Z"}' + headers: + Content-Length: + - '481' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"989e5693780f5ae4a31631e25033a9e6" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.04, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.07, start_processing.action_controller;dur=0.00, + sql.active_record;dur=13.35, instantiation.active_record;dur=0.44, unpermitted_parameters.action_controller;dur=0.01, + start_transaction.active_record;dur=0.01, transaction.active_record;dur=4.31, + process_action.action_controller;dur=237.59 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 2cf10183-0a81-4d75-bf5b-90d37c13575e + x-runtime: + - '0.271205' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK version: 1 diff --git a/tests/cassettes/test_save_task_pydantic_output.yaml b/tests/cassettes/test_save_task_pydantic_output.yaml index b22f754eb..6d4eaa173 100644 --- a/tests/cassettes/test_save_task_pydantic_output.yaml +++ b/tests/cassettes/test_save_task_pydantic_output.yaml @@ -204,4 +204,330 @@ interactions: - req_d75a37a0ce046c6a74a19fb24a97be79 http_version: HTTP/1.1 status_code: 200 +- request: + body: '{"trace_id": "b4e722b9-c407-4653-ba06-1786963c9c4a", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "crew", "flow_name": null, "crewai_version": "0.201.1", "privacy_level": + "standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count": + 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-10-08T18:15:00.412875+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '428' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"1a36dd2f-483b-4934-a9b6-f7b95cee2824","trace_id":"b4e722b9-c407-4653-ba06-1786963c9c4a","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:15:00.934Z","updated_at":"2025-10-08T18:15:00.934Z"}' + headers: + Content-Length: + - '480' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"31db72e28a68dfa1c4f3568b388bc2f0" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.18, sql.active_record;dur=73.01, cache_generate.active_support;dur=16.53, + cache_write.active_support;dur=0.22, cache_read_multi.active_support;dur=0.33, + start_processing.action_controller;dur=0.01, instantiation.active_record;dur=1.29, + feature_operation.flipper;dur=0.50, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=21.52, process_action.action_controller;dur=459.22 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - ebc8e3ab-5979-48b7-8816-667a1fd98ce2 + x-runtime: + - '0.524429' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created +- request: + body: '{"events": [{"event_id": "4a27c1d9-f908-42e4-b4dc-7091db74915b", "timestamp": + "2025-10-08T18:15:00.950855+00:00", "type": "crew_kickoff_started", "event_data": + {"timestamp": "2025-10-08T18:15:00.412055+00:00", "type": "crew_kickoff_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "inputs": null}}, {"event_id": "eaa85c90-02d2-444c-bf52-1178d68bae6d", + "timestamp": "2025-10-08T18:15:00.952277+00:00", "type": "task_started", "event_data": + {"task_description": "Give me an integer score between 1-5 for the following + title: ''The impact of AI in the future of work''", "expected_output": "The + score of the title.", "task_name": "Give me an integer score between 1-5 for + the following title: ''The impact of AI in the future of work''", "context": + "", "agent_role": "Scorer", "task_id": "3dca2ae4-e374-42e6-a6de-ecae1e8ac310"}}, + {"event_id": "8f1cce5b-7a60-4b53-aac1-05a9d7c3335e", "timestamp": "2025-10-08T18:15:00.952865+00:00", + "type": "agent_execution_started", "event_data": {"agent_role": "Scorer", "agent_goal": + "Score the title", "agent_backstory": "You''re an expert scorer, specialized + in scoring titles."}}, {"event_id": "754a8fb5-bb3a-4204-839e-7b622eb3d6dd", + "timestamp": "2025-10-08T18:15:00.953005+00:00", "type": "llm_call_started", + "event_data": {"timestamp": "2025-10-08T18:15:00.952957+00:00", "type": "llm_call_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "task_id": "3dca2ae4-e374-42e6-a6de-ecae1e8ac310", + "agent_id": "2ba6f80d-a1da-409f-bd89-13a286b7dfb7", "agent_role": "Scorer", + "from_task": null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role": + "system", "content": "You are Scorer. You''re an expert scorer, specialized + in scoring titles.\nYour personal goal is: Score the title\nTo give my best + complete final answer to the task respond using the exact following format:\n\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described.\n\nI MUST use + these formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent + Task: Give me an integer score between 1-5 for the following title: ''The impact + of AI in the future of work''\n\nThis is the expected criteria for your final + answer: The score of the title.\nyou MUST return the actual complete content + as the final answer, not a summary.\nEnsure your final answer contains only + the content in the following format: {\n \"score\": int\n}\n\nEnsure the final + output does not include any code block markers like ```json or ```python.\n\nBegin! + This is VERY important to you, use the tools available and give your best Final + Answer, your job depends on it!\n\nThought:"}], "tools": null, "callbacks": + [""], + "available_functions": null}}, {"event_id": "1a15dcc3-8827-4803-ac61-ab70d5be90f3", + "timestamp": "2025-10-08T18:15:01.085142+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:15:01.084844+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Give me an integer score between 1-5 for the following title: + ''The impact of AI in the future of work''", "task_id": "3dca2ae4-e374-42e6-a6de-ecae1e8ac310", + "agent_id": "2ba6f80d-a1da-409f-bd89-13a286b7dfb7", "agent_role": "Scorer", + "from_task": null, "from_agent": null, "messages": [{"role": "system", "content": + "You are Scorer. You''re an expert scorer, specialized in scoring titles.\nYour + personal goal is: Score the title\nTo give my best complete final answer to + the task respond using the exact following format:\n\nThought: I now can give + a great answer\nFinal Answer: Your final answer must be the great and the most + complete as possible, it must be outcome described.\n\nI MUST use these formats, + my job depends on it!"}, {"role": "user", "content": "\nCurrent Task: Give me + an integer score between 1-5 for the following title: ''The impact of AI in + the future of work''\n\nThis is the expected criteria for your final answer: + The score of the title.\nyou MUST return the actual complete content as the + final answer, not a summary.\nEnsure your final answer contains only the content + in the following format: {\n \"score\": int\n}\n\nEnsure the final output does + not include any code block markers like ```json or ```python.\n\nBegin! This + is VERY important to you, use the tools available and give your best Final Answer, + your job depends on it!\n\nThought:"}], "response": "Thought: I now can give + a great answer\nFinal Answer: 4", "call_type": "", + "model": "gpt-4o-mini"}}, {"event_id": "c6742bd6-5a92-41e8-94f6-49ba267d785f", + "timestamp": "2025-10-08T18:15:01.085480+00:00", "type": "agent_execution_completed", + "event_data": {"agent_role": "Scorer", "agent_goal": "Score the title", "agent_backstory": + "You''re an expert scorer, specialized in scoring titles."}}, {"event_id": "486c254c-57b6-477b-aadc-d5be745613fb", + "timestamp": "2025-10-08T18:15:01.085639+00:00", "type": "task_failed", "event_data": + {"serialization_error": "Circular reference detected (id repeated)", "object_type": + "TaskFailedEvent"}}, {"event_id": "b2ce4ceb-74f6-4379-b65e-8d6dc371f956", "timestamp": + "2025-10-08T18:15:01.086242+00:00", "type": "crew_kickoff_failed", "event_data": + {"timestamp": "2025-10-08T18:15:01.086226+00:00", "type": "crew_kickoff_failed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "error": "Failed to convert text into a Pydantic + model due to error: ''NoneType'' object has no attribute ''supports_function_calling''"}}], + "batch_metadata": {"events_count": 8, "batch_sequence": 1, "is_final_batch": + false}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '5982' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/b4e722b9-c407-4653-ba06-1786963c9c4a/events + response: + body: + string: '{"events_created":8,"trace_batch_id":"1a36dd2f-483b-4934-a9b6-f7b95cee2824"}' + headers: + Content-Length: + - '76' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"ec084df3e365d72581f5734016786212" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.05, sql.active_record;dur=60.65, cache_generate.active_support;dur=2.12, + cache_write.active_support;dur=0.12, cache_read_multi.active_support;dur=0.09, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.51, + start_transaction.active_record;dur=0.00, transaction.active_record;dur=115.06, + process_action.action_controller;dur=475.82 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 96f38d13-8f41-4b6f-b41a-cc526f821efd + x-runtime: + - '0.520997' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{"status": "completed", "duration_ms": 1218, "final_event_count": 8}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '68' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: PATCH + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/b4e722b9-c407-4653-ba06-1786963c9c4a/finalize + response: + body: + string: '{"id":"1a36dd2f-483b-4934-a9b6-f7b95cee2824","trace_id":"b4e722b9-c407-4653-ba06-1786963c9c4a","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":1218,"crewai_version":"0.201.1","privacy_level":"standard","total_events":8,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.201.1","crew_fingerprint":null},"created_at":"2025-10-08T18:15:00.934Z","updated_at":"2025-10-08T18:15:02.539Z"}' + headers: + Content-Length: + - '482' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"f69bd753b6206f7d8f00bfae64391d7a" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.13, sql.active_record;dur=20.82, cache_generate.active_support;dur=2.02, + cache_write.active_support;dur=0.18, cache_read_multi.active_support;dur=0.08, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=1.08, + unpermitted_parameters.action_controller;dur=0.00, start_transaction.active_record;dur=0.00, + transaction.active_record;dur=2.90, process_action.action_controller;dur=844.67 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 80da6a7c-c07d-4a00-b5d9-fb85448ef76a + x-runtime: + - '0.904849' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK version: 1 diff --git a/tests/cassettes/test_task_interpolation_with_hyphens.yaml b/tests/cassettes/test_task_interpolation_with_hyphens.yaml index f0f1e87c2..f28de41e7 100644 --- a/tests/cassettes/test_task_interpolation_with_hyphens.yaml +++ b/tests/cassettes/test_task_interpolation_with_hyphens.yaml @@ -118,4 +118,336 @@ interactions: status: code: 200 message: OK +- request: + body: '{"trace_id": "783f3548-b39a-46f3-967c-8a49271a073b", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "crew", "flow_name": null, "crewai_version": "0.201.1", "privacy_level": + "standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count": + 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-10-08T18:18:03.278174+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '428' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"13407e3f-4b02-4365-ad81-6aa0ccbd287e","trace_id":"783f3548-b39a-46f3-967c-8a49271a073b","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:18:03.689Z","updated_at":"2025-10-08T18:18:03.689Z"}' + headers: + Content-Length: + - '480' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"0449979f2920ad0c340833a7ba334b29" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.14, sql.active_record;dur=32.12, cache_generate.active_support;dur=8.31, + cache_write.active_support;dur=0.34, cache_read_multi.active_support;dur=0.97, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=1.25, + feature_operation.flipper;dur=0.09, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=32.23, process_action.action_controller;dur=364.39 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 7fa23b35-b230-4221-b8f4-70f4f84f4998 + x-runtime: + - '0.422034' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created +- request: + body: '{"events": [{"event_id": "6ab09342-74f0-4097-a913-4a60dc4a6697", "timestamp": + "2025-10-08T18:18:03.712608+00:00", "type": "crew_kickoff_started", "event_data": + {"timestamp": "2025-10-08T18:18:03.276956+00:00", "type": "crew_kickoff_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "inputs": {"interpolation-with-hyphens": + "say hello world"}}}, {"event_id": "c52570c1-dc30-4148-84b3-f0bf086c61a9", "timestamp": + "2025-10-08T18:18:03.715371+00:00", "type": "task_started", "event_data": {"task_description": + "be an assistant that responds with say hello world", "expected_output": "The + response should be addressing: say hello world", "task_name": "be an assistant + that responds with say hello world", "context": "", "agent_role": "Researcher", + "task_id": "eaa5b070-507b-4b00-9aca-ccd487687f61"}}, {"event_id": "221413c4-2f35-4bed-bdd0-f35b8697c5a5", + "timestamp": "2025-10-08T18:18:03.716134+00:00", "type": "agent_execution_started", + "event_data": {"agent_role": "Researcher", "agent_goal": "be an assistant that + responds with say hello world", "agent_backstory": "You''re an expert researcher, + specialized in technology, software engineering, AI and startups. You work as + a freelancer and is now working on doing research and analysis for a new customer."}}, + {"event_id": "e2b8c611-92bb-4127-b25f-8084f9f640db", "timestamp": "2025-10-08T18:18:03.718050+00:00", + "type": "llm_call_started", "event_data": {"timestamp": "2025-10-08T18:18:03.717826+00:00", + "type": "llm_call_started", "source_fingerprint": null, "source_type": null, + "fingerprint_metadata": null, "task_name": "be an assistant that responds with + say hello world", "task_id": "eaa5b070-507b-4b00-9aca-ccd487687f61", "agent_id": + "33a8cc2e-03b0-4da0-8978-60b1e8c46b8d", "agent_role": "Researcher", "from_task": + null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role": "system", + "content": "You are Researcher. You''re an expert researcher, specialized in + technology, software engineering, AI and startups. You work as a freelancer + and is now working on doing research and analysis for a new customer.\nYour + personal goal is: be an assistant that responds with say hello world\nTo give + my best complete final answer to the task respond using the exact following + format:\n\nThought: I now can give a great answer\nFinal Answer: Your final + answer must be the great and the most complete as possible, it must be outcome + described.\n\nI MUST use these formats, my job depends on it!"}, {"role": "user", + "content": "\nCurrent Task: be an assistant that responds with say hello world\n\nThis + is the expected criteria for your final answer: The response should be addressing: + say hello world\nyou MUST return the actual complete content as the final answer, + not a summary.\n\nBegin! This is VERY important to you, use the tools available + and give your best Final Answer, your job depends on it!\n\nThought:"}], "tools": + null, "callbacks": [""], "available_functions": null}}, {"event_id": "e002108c-4230-4d83-ab7c-3cb7c5203320", + "timestamp": "2025-10-08T18:18:03.841317+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:18:03.840679+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "be an assistant that responds with say hello world", "task_id": + "eaa5b070-507b-4b00-9aca-ccd487687f61", "agent_id": "33a8cc2e-03b0-4da0-8978-60b1e8c46b8d", + "agent_role": "Researcher", "from_task": null, "from_agent": null, "messages": + [{"role": "system", "content": "You are Researcher. You''re an expert researcher, + specialized in technology, software engineering, AI and startups. You work as + a freelancer and is now working on doing research and analysis for a new customer.\nYour + personal goal is: be an assistant that responds with say hello world\nTo give + my best complete final answer to the task respond using the exact following + format:\n\nThought: I now can give a great answer\nFinal Answer: Your final + answer must be the great and the most complete as possible, it must be outcome + described.\n\nI MUST use these formats, my job depends on it!"}, {"role": "user", + "content": "\nCurrent Task: be an assistant that responds with say hello world\n\nThis + is the expected criteria for your final answer: The response should be addressing: + say hello world\nyou MUST return the actual complete content as the final answer, + not a summary.\n\nBegin! This is VERY important to you, use the tools available + and give your best Final Answer, your job depends on it!\n\nThought:"}], "response": + "I now can give a great answer \nFinal Answer: Hello, World!", "call_type": + "", "model": "gpt-4o-mini"}}, {"event_id": + "97285515-f662-4b5a-88b8-8ad872010870", "timestamp": "2025-10-08T18:18:03.847572+00:00", + "type": "agent_execution_completed", "event_data": {"agent_role": "Researcher", + "agent_goal": "be an assistant that responds with say hello world", "agent_backstory": + "You''re an expert researcher, specialized in technology, software engineering, + AI and startups. You work as a freelancer and is now working on doing research + and analysis for a new customer."}}, {"event_id": "1b2b48e2-9d07-467a-a25c-c437e006ea9d", + "timestamp": "2025-10-08T18:18:03.851138+00:00", "type": "task_completed", "event_data": + {"task_description": "be an assistant that responds with say hello world", "task_name": + "be an assistant that responds with say hello world", "task_id": "eaa5b070-507b-4b00-9aca-ccd487687f61", + "output_raw": "Hello, World!", "output_format": "OutputFormat.RAW", "agent_role": + "Researcher"}}, {"event_id": "7f279156-41a3-4577-8977-2b7c8647308e", "timestamp": + "2025-10-08T18:18:03.854601+00:00", "type": "crew_kickoff_completed", "event_data": + {"timestamp": "2025-10-08T18:18:03.854273+00:00", "type": "crew_kickoff_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "output": {"description": "be an assistant + that responds with say hello world", "name": "be an assistant that responds + with say hello world", "expected_output": "The response should be addressing: + say hello world", "summary": "be an assistant that responds with say hello world...", + "raw": "Hello, World!", "pydantic": null, "json_dict": null, "agent": "Researcher", + "output_format": "raw"}, "total_tokens": 222}}], "batch_metadata": {"events_count": + 8, "batch_sequence": 1, "is_final_batch": false}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '6591' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/783f3548-b39a-46f3-967c-8a49271a073b/events + response: + body: + string: '{"events_created":8,"trace_batch_id":"13407e3f-4b02-4365-ad81-6aa0ccbd287e"}' + headers: + Content-Length: + - '76' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"59a09593073037c65f8c96640f9cfa82" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.10, sql.active_record;dur=104.59, cache_generate.active_support;dur=3.02, + cache_write.active_support;dur=0.25, cache_read_multi.active_support;dur=0.19, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=1.33, + start_transaction.active_record;dur=0.01, transaction.active_record;dur=61.18, + process_action.action_controller;dur=825.32 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - f39bd4ea-01eb-40ce-a2b0-a3206fefb715 + x-runtime: + - '0.878157' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{"status": "completed", "duration_ms": 1468, "final_event_count": 8}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '68' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: PATCH + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/783f3548-b39a-46f3-967c-8a49271a073b/finalize + response: + body: + string: '{"id":"13407e3f-4b02-4365-ad81-6aa0ccbd287e","trace_id":"783f3548-b39a-46f3-967c-8a49271a073b","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":1468,"crewai_version":"0.201.1","privacy_level":"standard","total_events":8,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.201.1","crew_fingerprint":null},"created_at":"2025-10-08T18:18:03.689Z","updated_at":"2025-10-08T18:18:05.302Z"}' + headers: + Content-Length: + - '482' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"45e1b9780d2dfad67d3d01e51da9fccb" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.06, sql.active_record;dur=20.66, cache_generate.active_support;dur=3.44, + cache_write.active_support;dur=0.20, cache_read_multi.active_support;dur=0.12, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.45, + unpermitted_parameters.action_controller;dur=0.01, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=5.67, process_action.action_controller;dur=516.09 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 91cc9e1b-40a4-43ea-ba02-76cec061eda1 + x-runtime: + - '0.557447' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK version: 1 diff --git a/tests/cassettes/test_task_with_max_execution_time.yaml b/tests/cassettes/test_task_with_max_execution_time.yaml index 93e619bc7..aeab1d001 100644 --- a/tests/cassettes/test_task_with_max_execution_time.yaml +++ b/tests/cassettes/test_task_with_max_execution_time.yaml @@ -640,4 +640,94 @@ interactions: status: code: 200 message: OK +- request: + body: '{"trace_id": "e2810e7b-85f6-4cc4-88d8-0fafbe16ca91", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.201.1", + "privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate": + 300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": + "2025-10-08T18:18:12.240429+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '436' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"874aa9c3-0f3a-4c3c-bb22-c66041c8b360","trace_id":"e2810e7b-85f6-4cc4-88d8-0fafbe16ca91","execution_type":"crew","crew_name":"Unknown + Crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"Unknown + Crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:18:12.602Z","updated_at":"2025-10-08T18:18:12.602Z"}' + headers: + Content-Length: + - '496' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"3d47d705bfa32d723e3b1b7b53a832f3" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.07, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.12, start_processing.action_controller;dur=0.01, + sql.active_record;dur=25.77, instantiation.active_record;dur=0.62, feature_operation.flipper;dur=0.03, + start_transaction.active_record;dur=0.01, transaction.active_record;dur=12.04, + process_action.action_controller;dur=319.45 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 429504fe-b260-4237-adeb-2cd4f4b5bb96 + x-runtime: + - '0.369022' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created version: 1 diff --git a/tests/cassettes/test_tool_result_as_answer_is_the_final_answer_for_the_agent.yaml b/tests/cassettes/test_tool_result_as_answer_is_the_final_answer_for_the_agent.yaml index 8e5829afe..519289a30 100644 --- a/tests/cassettes/test_tool_result_as_answer_is_the_final_answer_for_the_agent.yaml +++ b/tests/cassettes/test_tool_result_as_answer_is_the_final_answer_for_the_agent.yaml @@ -301,4 +301,449 @@ interactions: - req_bbfe512aa3a05220da4bd4537796bc59 http_version: HTTP/1.1 status_code: 200 +- request: + body: '{"trace_id": "72712b1f-ec39-4bf8-ac9e-d1a5cf586549", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "crew", "flow_name": null, "crewai_version": "0.201.1", "privacy_level": + "standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count": + 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-10-08T18:11:26.710619+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '428' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"id":"5caaa8bf-2911-496e-952d-8e296781510b","trace_id":"72712b1f-ec39-4bf8-ac9e-d1a5cf586549","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.201.1","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.201.1","privacy_level":"standard"},"created_at":"2025-10-08T18:11:27.123Z","updated_at":"2025-10-08T18:11:27.123Z"}' + headers: + Content-Length: + - '480' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"7cd175d578633b615914e88afcc14206" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.05, sql.active_record;dur=24.74, cache_generate.active_support;dur=1.63, + cache_write.active_support;dur=0.19, cache_read_multi.active_support;dur=0.15, + start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.45, + feature_operation.flipper;dur=0.11, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=11.87, process_action.action_controller;dur=371.15 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - d0ded4b6-256c-4de6-b0b0-984cf5a18263 + x-runtime: + - '0.420672' + x-xss-protection: + - 1; mode=block + status: + code: 201 + message: Created +- request: + body: '{"events": [{"event_id": "30a390a9-8af6-4810-a6a2-f2ce5e2c8a10", "timestamp": + "2025-10-08T18:11:27.136188+00:00", "type": "crew_kickoff_started", "event_data": + {"timestamp": "2025-10-08T18:11:26.709463+00:00", "type": "crew_kickoff_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "inputs": null}}, {"event_id": "ce6b1b64-5320-40c1-a67e-4f205e9ab8bb", + "timestamp": "2025-10-08T18:11:27.138951+00:00", "type": "task_started", "event_data": + {"task_description": "Write and then review an small paragraph on AI until it''s + AMAZING. But first use the `Get Greetings` tool to get a greeting.", "expected_output": + "The final paragraph with the full review on AI and no greeting.", "task_name": + "Write and then review an small paragraph on AI until it''s AMAZING. But first + use the `Get Greetings` tool to get a greeting.", "context": "", "agent_role": + "Data Scientist", "task_id": "0f032b5c-8ec7-49c4-85b3-72e10e8225a6"}}, {"event_id": + "804e8b12-6051-4cf2-a6cf-9602e06cec4a", "timestamp": "2025-10-08T18:11:27.139554+00:00", + "type": "agent_execution_started", "event_data": {"agent_role": "Data Scientist", + "agent_goal": "Product amazing resports on AI", "agent_backstory": "You work + with data and AI"}}, {"event_id": "b94f61f5-b64c-416f-bc3c-2047b107fd52", "timestamp": + "2025-10-08T18:11:27.139680+00:00", "type": "llm_call_started", "event_data": + {"timestamp": "2025-10-08T18:11:27.139640+00:00", "type": "llm_call_started", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Write and then review an small paragraph on AI until it''s AMAZING. + But first use the `Get Greetings` tool to get a greeting.", "task_id": "0f032b5c-8ec7-49c4-85b3-72e10e8225a6", + "agent_id": "5ffd9e60-e479-4ea2-9769-3807e0152f0d", "agent_role": "Data Scientist", + "from_task": null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role": + "system", "content": "You are Data Scientist. You work with data and AI\nYour + personal goal is: Product amazing resports on AI\nYou ONLY have access to the + following tools, and should NEVER make up tools that are not listed here:\n\nTool + Name: Get Greetings\nTool Arguments: {}\nTool Description: Get a random greeting + back\n\nIMPORTANT: Use the following format in your response:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, only one + name of [Get Greetings], just the name, exactly as it''s written.\nAction Input: + the input to the action, just a simple JSON object, enclosed in curly braces, + using \" to wrap keys and values.\nObservation: the result of the action\n```\n\nOnce + all necessary information is gathered, return the following format:\n\n```\nThought: + I now know the final answer\nFinal Answer: the final answer to the original + input question\n```"}, {"role": "user", "content": "\nCurrent Task: Write and + then review an small paragraph on AI until it''s AMAZING. But first use the + `Get Greetings` tool to get a greeting.\n\nThis is the expected criteria for + your final answer: The final paragraph with the full review on AI and no greeting.\nyou + MUST return the actual complete content as the final answer, not a summary.\n\nBegin! + This is VERY important to you, use the tools available and give your best Final + Answer, your job depends on it!\n\nThought:"}], "tools": null, "callbacks": + [""], + "available_functions": null}}, {"event_id": "9aae21e4-0201-407b-a929-11afdd118677", + "timestamp": "2025-10-08T18:11:27.144183+00:00", "type": "llm_call_completed", + "event_data": {"timestamp": "2025-10-08T18:11:27.143543+00:00", "type": "llm_call_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "task_name": "Write and then review an small paragraph on AI until it''s AMAZING. + But first use the `Get Greetings` tool to get a greeting.", "task_id": "0f032b5c-8ec7-49c4-85b3-72e10e8225a6", + "agent_id": "5ffd9e60-e479-4ea2-9769-3807e0152f0d", "agent_role": "Data Scientist", + "from_task": null, "from_agent": null, "messages": [{"role": "system", "content": + "You are Data Scientist. You work with data and AI\nYour personal goal is: Product + amazing resports on AI\nYou ONLY have access to the following tools, and should + NEVER make up tools that are not listed here:\n\nTool Name: Get Greetings\nTool + Arguments: {}\nTool Description: Get a random greeting back\n\nIMPORTANT: Use + the following format in your response:\n\n```\nThought: you should always think + about what to do\nAction: the action to take, only one name of [Get Greetings], + just the name, exactly as it''s written.\nAction Input: the input to the action, + just a simple JSON object, enclosed in curly braces, using \" to wrap keys and + values.\nObservation: the result of the action\n```\n\nOnce all necessary information + is gathered, return the following format:\n\n```\nThought: I now know the final + answer\nFinal Answer: the final answer to the original input question\n```"}, + {"role": "user", "content": "\nCurrent Task: Write and then review an small + paragraph on AI until it''s AMAZING. But first use the `Get Greetings` tool + to get a greeting.\n\nThis is the expected criteria for your final answer: The + final paragraph with the full review on AI and no greeting.\nyou MUST return + the actual complete content as the final answer, not a summary.\n\nBegin! This + is VERY important to you, use the tools available and give your best Final Answer, + your job depends on it!\n\nThought:"}], "response": "Thought: I should start + by using the Get Greetings tool to get a random greeting.\n\nAction: Get Greetings\nAction + Input: {}", "call_type": "", "model": "gpt-4o-mini"}}, + {"event_id": "0edb9ee7-90ab-4cd7-8ec9-0c683e70d37e", "timestamp": "2025-10-08T18:11:27.144500+00:00", + "type": "tool_usage_started", "event_data": {"timestamp": "2025-10-08T18:11:27.144433+00:00", + "type": "tool_usage_started", "source_fingerprint": "2795e341-8bf2-492b-8c80-103e1a915e90", + "source_type": "agent", "fingerprint_metadata": null, "agent_key": "22acd611e44ef5fac05b533d75e8893b", + "agent_role": "Data Scientist", "agent_id": null, "tool_name": "Get Greetings", + "tool_args": "{}", "tool_class": "Get Greetings", "run_attempts": null, "delegations": + null, "agent": {"id": "5ffd9e60-e479-4ea2-9769-3807e0152f0d", "role": "Data + Scientist", "goal": "Product amazing resports on AI", "backstory": "You work + with data and AI", "cache": true, "verbose": false, "max_rpm": null, "allow_delegation": + false, "tools": [{"name": "''Get Greetings''", "description": "''Tool Name: + Get Greetings\\nTool Arguments: {}\\nTool Description: Get a random greeting + back''", "env_vars": "[]", "args_schema": "", + "description_updated": "False", "cache_function": " + at 0x10a4062a0>", "result_as_answer": "True", "max_usage_count": "None", "current_usage_count": + "0"}], "max_iter": 25, "agent_executor": "", "llm": "", "crew": + {"parent_flow": null, "name": "crew", "cache": true, "tasks": ["{''used_tools'': + 0, ''tools_errors'': 0, ''delegations'': 0, ''i18n'': {''prompt_file'': None}, + ''name'': None, ''prompt_context'': '''', ''description'': \"Write and then + review an small paragraph on AI until it''s AMAZING. But first use the `Get + Greetings` tool to get a greeting.\", ''expected_output'': ''The final paragraph + with the full review on AI and no greeting.'', ''config'': None, ''callback'': + None, ''agent'': {''id'': UUID(''5ffd9e60-e479-4ea2-9769-3807e0152f0d''), ''role'': + ''Data Scientist'', ''goal'': ''Product amazing resports on AI'', ''backstory'': + ''You work with data and AI'', ''cache'': True, ''verbose'': False, ''max_rpm'': + None, ''allow_delegation'': False, ''tools'': [{''name'': ''Get Greetings'', + ''description'': ''Tool Name: Get Greetings\\nTool Arguments: {}\\nTool Description: + Get a random greeting back'', ''env_vars'': [], ''args_schema'': , + ''description_updated'': False, ''cache_function'': + at 0x10a4062a0>, ''result_as_answer'': True, ''max_usage_count'': None, ''current_usage_count'': + 0}], ''max_iter'': 25, ''agent_executor'': , ''llm'': , ''crew'': + Crew(id=d870bb04-9f76-49e6-8844-ce7c8b0cc79d, process=Process.sequential, number_of_agents=1, + number_of_tasks=1), ''i18n'': {''prompt_file'': None}, ''cache_handler'': {}, + ''tools_handler'': , + ''tools_results'': [], ''max_tokens'': None, ''knowledge'': None, ''knowledge_sources'': + None, ''knowledge_storage'': None, ''security_config'': {''fingerprint'': {''metadata'': + {}}}, ''callbacks'': [], ''adapted_agent'': False, ''knowledge_config'': None}, + ''context'': NOT_SPECIFIED, ''async_execution'': False, ''output_json'': None, + ''output_pydantic'': None, ''output_file'': None, ''create_directory'': True, + ''output'': None, ''tools'': [{''name'': ''Get Greetings'', ''description'': + ''Tool Name: Get Greetings\\nTool Arguments: {}\\nTool Description: Get a random + greeting back'', ''env_vars'': [], ''args_schema'': , + ''description_updated'': False, ''cache_function'': + at 0x10a4062a0>, ''result_as_answer'': True, ''max_usage_count'': None, ''current_usage_count'': + 0}], ''security_config'': {''fingerprint'': {''metadata'': {}}}, ''id'': UUID(''0f032b5c-8ec7-49c4-85b3-72e10e8225a6''), + ''human_input'': False, ''markdown'': False, ''converter_cls'': None, ''processed_by_agents'': + {''Data Scientist''}, ''guardrail'': None, ''max_retries'': None, ''guardrail_max_retries'': + 3, ''retry_count'': 0, ''start_time'': datetime.datetime(2025, 10, 8, 11, 11, + 27, 138877), ''end_time'': None, ''allow_crewai_trigger_context'': None}"], + "agents": ["{''id'': UUID(''5ffd9e60-e479-4ea2-9769-3807e0152f0d''), ''role'': + ''Data Scientist'', ''goal'': ''Product amazing resports on AI'', ''backstory'': + ''You work with data and AI'', ''cache'': True, ''verbose'': False, ''max_rpm'': + None, ''allow_delegation'': False, ''tools'': [{''name'': ''Get Greetings'', + ''description'': ''Tool Name: Get Greetings\\nTool Arguments: {}\\nTool Description: + Get a random greeting back'', ''env_vars'': [], ''args_schema'': , + ''description_updated'': False, ''cache_function'': + at 0x10a4062a0>, ''result_as_answer'': True, ''max_usage_count'': None, ''current_usage_count'': + 0}], ''max_iter'': 25, ''agent_executor'': , ''llm'': , ''crew'': + Crew(id=d870bb04-9f76-49e6-8844-ce7c8b0cc79d, process=Process.sequential, number_of_agents=1, + number_of_tasks=1), ''i18n'': {''prompt_file'': None}, ''cache_handler'': {}, + ''tools_handler'': , + ''tools_results'': [], ''max_tokens'': None, ''knowledge'': None, ''knowledge_sources'': + None, ''knowledge_storage'': None, ''security_config'': {''fingerprint'': {''metadata'': + {}}}, ''callbacks'': [], ''adapted_agent'': False, ''knowledge_config'': None}"], + "process": "sequential", "verbose": false, "memory": false, "short_term_memory": + null, "long_term_memory": null, "entity_memory": null, "external_memory": null, + "embedder": null, "usage_metrics": null, "manager_llm": null, "manager_agent": + null, "function_calling_llm": null, "config": null, "id": "d870bb04-9f76-49e6-8844-ce7c8b0cc79d", + "share_crew": false, "step_callback": null, "task_callback": null, "before_kickoff_callbacks": + [], "after_kickoff_callbacks": [], "max_rpm": null, "prompt_file": null, "output_log_file": + null, "planning": false, "planning_llm": null, "task_execution_output_json_files": + null, "execution_logs": [], "knowledge_sources": null, "chat_llm": null, "knowledge": + null, "security_config": {"fingerprint": "{''metadata'': {}}"}, "token_usage": + null, "tracing": false}, "i18n": {"prompt_file": null}, "cache_handler": {}, + "tools_handler": "", + "tools_results": [], "max_tokens": null, "knowledge": null, "knowledge_sources": + null, "knowledge_storage": null, "security_config": {"fingerprint": {"metadata": + "{}"}}, "callbacks": [], "adapted_agent": false, "knowledge_config": null, "max_execution_time": + null, "agent_ops_agent_name": "Data Scientist", "agent_ops_agent_id": null, + "step_callback": null, "use_system_prompt": true, "function_calling_llm": null, + "system_template": null, "prompt_template": null, "response_template": null, + "allow_code_execution": false, "respect_context_window": true, "max_retry_limit": + 2, "multimodal": false, "inject_date": false, "date_format": "%Y-%m-%d", "code_execution_mode": + "safe", "reasoning": false, "max_reasoning_attempts": null, "embedder": null, + "agent_knowledge_context": null, "crew_knowledge_context": null, "knowledge_search_query": + null, "from_repository": null, "guardrail": null, "guardrail_max_retries": 3}, + "task_name": "Write and then review an small paragraph on AI until it''s AMAZING. + But first use the `Get Greetings` tool to get a greeting.", "task_id": "0f032b5c-8ec7-49c4-85b3-72e10e8225a6", + "from_task": null, "from_agent": null}}, {"event_id": "afe33d19-f2fc-4ba4-a3fc-6ffc5b40e7bd", + "timestamp": "2025-10-08T18:11:27.145685+00:00", "type": "tool_usage_finished", + "event_data": {"timestamp": "2025-10-08T18:11:27.145633+00:00", "type": "tool_usage_finished", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "agent_key": "22acd611e44ef5fac05b533d75e8893b", "agent_role": "Data Scientist", + "agent_id": null, "tool_name": "Get Greetings", "tool_args": {}, "tool_class": + "CrewStructuredTool", "run_attempts": 1, "delegations": 0, "agent": null, "task_name": + "Write and then review an small paragraph on AI until it''s AMAZING. But first + use the `Get Greetings` tool to get a greeting.", "task_id": "0f032b5c-8ec7-49c4-85b3-72e10e8225a6", + "from_task": null, "from_agent": null, "started_at": "2025-10-08T11:11:27.145520", + "finished_at": "2025-10-08T11:11:27.145612", "from_cache": false, "output": + "Howdy!"}}, {"event_id": "8a1f254a-0acf-4d5a-b52b-813d16df6f88", "timestamp": + "2025-10-08T18:11:27.145856+00:00", "type": "agent_execution_completed", "event_data": + {"agent_role": "Data Scientist", "agent_goal": "Product amazing resports on + AI", "agent_backstory": "You work with data and AI"}}, {"event_id": "2808f3a1-4671-4f86-97e9-e8044a66fbf1", + "timestamp": "2025-10-08T18:11:27.145929+00:00", "type": "task_completed", "event_data": + {"task_description": "Write and then review an small paragraph on AI until it''s + AMAZING. But first use the `Get Greetings` tool to get a greeting.", "task_name": + "Write and then review an small paragraph on AI until it''s AMAZING. But first + use the `Get Greetings` tool to get a greeting.", "task_id": "0f032b5c-8ec7-49c4-85b3-72e10e8225a6", + "output_raw": "Howdy!", "output_format": "OutputFormat.RAW", "agent_role": "Data + Scientist"}}, {"event_id": "4174f52a-a1e0-4d39-a0b0-83d6e323a954", "timestamp": + "2025-10-08T18:11:27.147275+00:00", "type": "crew_kickoff_completed", "event_data": + {"timestamp": "2025-10-08T18:11:27.147241+00:00", "type": "crew_kickoff_completed", + "source_fingerprint": null, "source_type": null, "fingerprint_metadata": null, + "crew_name": "crew", "crew": null, "output": {"description": "Write and then + review an small paragraph on AI until it''s AMAZING. But first use the `Get + Greetings` tool to get a greeting.", "name": "Write and then review an small + paragraph on AI until it''s AMAZING. But first use the `Get Greetings` tool + to get a greeting.", "expected_output": "The final paragraph with the full review + on AI and no greeting.", "summary": "Write and then review an small paragraph + on AI until...", "raw": "Howdy!", "pydantic": null, "json_dict": null, "agent": + "Data Scientist", "output_format": "raw"}, "total_tokens": 310}}], "batch_metadata": + {"events_count": 10, "batch_sequence": 1, "is_final_batch": false}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '15997' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: POST + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/72712b1f-ec39-4bf8-ac9e-d1a5cf586549/events + response: + body: + string: '{"events_created":10,"trace_batch_id":"5caaa8bf-2911-496e-952d-8e296781510b"}' + headers: + Content-Length: + - '77' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"001da8849c07721fc124c4b6a2f0c163" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.04, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.08, start_processing.action_controller;dur=0.01, + sql.active_record;dur=84.71, instantiation.active_record;dur=0.86, start_transaction.active_record;dur=0.01, + transaction.active_record;dur=127.17, process_action.action_controller;dur=451.37 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 895db1b7-6c0c-41f8-b1b3-0b7da9c838d6 + x-runtime: + - '0.497770' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: '{"status": "completed", "duration_ms": 947, "final_event_count": 10}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '68' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Organization-Id: + - d3a3d10c-35db-423f-a7a4-c026030ba64d + X-Crewai-Version: + - 0.201.1 + method: PATCH + uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/72712b1f-ec39-4bf8-ac9e-d1a5cf586549/finalize + response: + body: + string: '{"id":"5caaa8bf-2911-496e-952d-8e296781510b","trace_id":"72712b1f-ec39-4bf8-ac9e-d1a5cf586549","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":947,"crewai_version":"0.201.1","privacy_level":"standard","total_events":10,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.201.1","crew_fingerprint":null},"created_at":"2025-10-08T18:11:27.123Z","updated_at":"2025-10-08T18:11:27.974Z"}' + headers: + Content-Length: + - '482' + cache-control: + - no-store + content-security-policy: + - 'default-src ''self'' *.crewai.com crewai.com; script-src ''self'' ''unsafe-inline'' + *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts https://www.gstatic.com + https://run.pstmn.io https://apis.google.com https://apis.google.com/js/api.js + https://accounts.google.com https://accounts.google.com/gsi/client https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css.map + https://*.google.com https://docs.google.com https://slides.google.com https://js.hs-scripts.com + https://js.sentry-cdn.com https://browser.sentry-cdn.com https://www.googletagmanager.com + https://js-na1.hs-scripts.com https://share.descript.com/; style-src ''self'' + ''unsafe-inline'' *.crewai.com crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.crewai.com crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net; font-src ''self'' + data: *.crewai.com crewai.com; connect-src ''self'' *.crewai.com crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://*.sentry.io https://www.google-analytics.com ws://localhost:3036 wss://localhost:3036; + frame-src ''self'' *.crewai.com crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://docs.google.com https://drive.google.com https://slides.google.com + https://accounts.google.com https://*.google.com https://www.youtube.com https://share.descript.com' + content-type: + - application/json; charset=utf-8 + etag: + - W/"778bc1fa829c20b51bcae3652b128dcf" + expires: + - '0' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + pragma: + - no-cache + referrer-policy: + - strict-origin-when-cross-origin + server-timing: + - cache_read.active_support;dur=0.06, cache_fetch_hit.active_support;dur=0.00, + cache_read_multi.active_support;dur=0.11, start_processing.action_controller;dur=0.00, + sql.active_record;dur=23.68, instantiation.active_record;dur=0.90, unpermitted_parameters.action_controller;dur=0.00, + start_transaction.active_record;dur=0.01, transaction.active_record;dur=9.86, + process_action.action_controller;dur=262.59 + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - ccfd24a5-a3bf-4419-bada-5ba31dd47e0a + x-runtime: + - '0.322512' + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK version: 1