Compare commits

..

8 Commits

Author SHA1 Message Date
Greyson LaLonde
29a0ac483f fix: allow failed pypi publish 2025-10-03 19:25:14 -04:00
Greyson LaLonde
38bc5a9dc4 fix: match tag and release title, ignore devtools build for pypi 2025-10-03 19:18:19 -04:00
Lorenze Jay
0b305dabc9 feat: bump versions to 1.0.0a3
Co-authored-by: Greyson LaLonde <greyson.r.lalonde@gmail.com>
2025-10-03 18:51:27 -04:00
Greyson LaLonde
ebeed0b752 feat: allow release after tag 2025-10-03 18:49:58 -04:00
Greyson LaLonde
2a0018a99b fix: allow pre-release 2025-10-03 18:40:18 -04:00
Greyson LaLonde
5865d39137 fix: ensure dep refs are updated for devtools 2025-10-03 18:32:31 -04:00
Greyson LaLonde
e529ebff2b feat: add base devtooling 2025-10-03 18:23:54 -04:00
Lorenze Jay
126b91eab3 Lorenze/native inference sdks (#3619)
* ruff linted

* using native sdks with litellm fallback

* drop exa

* drop print on completion

* Refactor LLM and utility functions for type consistency

- Updated `max_tokens` parameter in `LLM` class to accept `float` in addition to `int`.
- Modified `create_llm` function to ensure consistent type hints and return types, now returning `LLM | BaseLLM | None`.
- Adjusted type hints for various parameters in `create_llm` and `_llm_via_environment_or_fallback` functions for improved clarity and type safety.
- Enhanced test cases to reflect changes in type handling and ensure proper instantiation of LLM instances.

* fix agent_tests

* fix litellm tests and usagemetrics fix

* drop print

* Refactor LLM event handling and improve test coverage

- Removed commented-out event emission for LLM call failures in `llm.py`.
- Added `from_agent` parameter to `CrewAgentExecutor` for better context in LLM responses.
- Enhanced test for LLM call failure to simulate OpenAI API failure and updated assertions for clarity.
- Updated agent and task ID assertions in tests to ensure they are consistently treated as strings.

* fix test_converter

* fixed tests/agents/test_agent.py

* Refactor LLM context length exception handling and improve provider integration

- Renamed `LLMContextLengthExceededException` to `LLMContextLengthExceededExceptionError` for clarity and consistency.
- Updated LLM class to pass the provider parameter correctly during initialization.
- Enhanced error handling in various LLM provider implementations to raise the new exception type.
- Adjusted tests to reflect the updated exception name and ensure proper error handling in context length scenarios.

* Enhance LLM context window handling across providers

- Introduced CONTEXT_WINDOW_USAGE_RATIO to adjust context window sizes dynamically for Anthropic, Azure, Gemini, and OpenAI LLMs.
- Added validation for context window sizes in Azure and Gemini providers to ensure they fall within acceptable limits.
- Updated context window size calculations to use the new ratio, improving consistency and adaptability across different models.
- Removed hardcoded context window sizes in favor of ratio-based calculations for better flexibility.

* fix test agent again

* fix test agent

* feat: add native LLM providers for Anthropic, Azure, and Gemini

- Introduced new completion implementations for Anthropic, Azure, and Gemini, integrating their respective SDKs.
- Added utility functions for tool validation and extraction to support function calling across LLM providers.
- Enhanced context window management and token usage extraction for each provider.
- Created a common utility module for shared functionality among LLM providers.

* chore: update dependencies and improve context management

- Removed direct dependency on `litellm` from the main dependencies and added it under extras for better modularity.
- Updated the `litellm` dependency specification to allow for greater flexibility in versioning.
- Refactored context length exception handling across various LLM providers to use a consistent error class.
- Enhanced platform-specific dependency markers for NVIDIA packages to ensure compatibility across different systems.

* refactor(tests): update LLM instantiation to include is_litellm flag in test cases

- Modified multiple test cases in test_llm.py to set the is_litellm parameter to True when instantiating the LLM class.
- This change ensures that the tests are aligned with the latest LLM configuration requirements and improves consistency across test scenarios.
- Adjusted relevant assertions and comments to reflect the updated LLM behavior.

* linter

* linted

* revert constants

* fix(tests): correct type hint in expected model description

- Updated the expected description in the test_generate_model_description_dict_field function to use 'Dict' instead of 'dict' for consistency with type hinting conventions.
- This change ensures that the test accurately reflects the expected output format for model descriptions.

* refactor(llm): enhance LLM instantiation and error handling

- Updated the LLM class to include validation for the model parameter, ensuring it is a non-empty string.
- Improved error handling by logging warnings when the native SDK fails, allowing for a fallback to LiteLLM.
- Adjusted the instantiation of LLM in test cases to consistently include the is_litellm flag, aligning with recent changes in LLM configuration.
- Modified relevant tests to reflect these updates, ensuring better coverage and accuracy in testing scenarios.

* fixed test

* refactor(llm): enhance token usage tracking and add copy methods

- Updated the LLM class to track token usage and log callbacks in streaming mode, improving monitoring capabilities.
- Introduced shallow and deep copy methods for the LLM instance, allowing for better management of LLM configurations and parameters.
- Adjusted test cases to instantiate LLM with the is_litellm flag, ensuring alignment with recent changes in LLM configuration.

* refactor(tests): reorganize imports and enhance error messages in test cases

- Cleaned up import statements in test_crew.py for better organization and readability.
- Enhanced error messages in test cases to use `re.escape` for improved regex matching, ensuring more robust error handling.
- Adjusted comments for clarity and consistency across test scenarios.
- Ensured that all necessary modules are imported correctly to avoid potential runtime issues.
2025-10-03 14:32:35 -07:00
87 changed files with 26047 additions and 639 deletions

View File

@@ -25,7 +25,7 @@ jobs:
- name: Build packages
run: |
uv build --all-packages
uv build --prerelease="allow" --all-packages
rm dist/.gitignore
- name: Upload artifacts
@@ -65,7 +65,19 @@ jobs:
env:
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
run: |
failed=0
for package in dist/*; do
if [[ "$package" == *"crewai_devtools"* ]]; then
echo "Skipping private package: $package"
continue
fi
echo "Publishing $package"
uv publish "$package"
if ! uv publish "$package"; then
echo "Failed to publish $package"
failed=1
fi
done
if [ $failed -eq 1 ]; then
echo "Some packages failed to publish"
exit 1
fi

View File

@@ -12,7 +12,7 @@ dependencies = [
"pytube>=15.0.0",
"requests>=2.32.5",
"docker>=7.1.0",
"crewai==1.0.0a1",
"crewai==1.0.0a3",
"lancedb>=0.5.4",
"tiktoken>=0.8.0",
"stagehand>=0.4.1",

View File

@@ -291,4 +291,4 @@ __all__ = [
"ZapierActionTools",
]
__version__ = "1.0.0a2"
__version__ = "1.0.0a3"

View File

@@ -11,7 +11,6 @@ dependencies = [
# Core Dependencies
"pydantic>=2.11.9",
"openai>=1.13.3",
"litellm==1.74.9",
"instructor>=1.3.3",
# Text Processing
"pdfplumber>=0.11.4",
@@ -50,7 +49,7 @@ Repository = "https://github.com/crewAIInc/crewAI"
[project.optional-dependencies]
tools = [
"crewai-tools==1.0.0a1",
"crewai-tools==1.0.0a3",
]
embeddings = [
"tiktoken~=0.8.0"
@@ -83,6 +82,9 @@ watson = [
voyageai = [
"voyageai>=0.3.5",
]
litellm = [
"litellm>=1.74.9",
]
[project.scripts]

View File

@@ -40,7 +40,7 @@ def _suppress_pydantic_deprecation_warnings() -> None:
_suppress_pydantic_deprecation_warnings()
__version__ = "1.0.0a2"
__version__ = "1.0.0a3"
_telemetry_submitted = False

View File

@@ -114,7 +114,7 @@ class CrewAgentExecutor(CrewAgentExecutorMixin):
self.messages: list[dict[str, str]] = []
self.iterations = 0
self.log_error_after = 3
existing_stop = self.llm.stop or []
existing_stop = getattr(self.llm, "stop", [])
self.llm.stop = list(
set(
existing_stop + self.stop
@@ -192,6 +192,7 @@ class CrewAgentExecutor(CrewAgentExecutorMixin):
callbacks=self.callbacks,
printer=self._printer,
from_task=self.task,
from_agent=self.agent,
)
formatted_answer = process_llm_response(answer, self.use_stop_words)

View File

@@ -1,16 +1,16 @@
import asyncio
import json
import re
import uuid
import warnings
from collections.abc import Callable
from concurrent.futures import Future
from copy import copy as shallow_copy
from hashlib import md5
import json
import re
from typing import (
Any,
cast,
)
import uuid
import warnings
from opentelemetry import baggage
from opentelemetry.context import attach, detach
@@ -82,6 +82,7 @@ from crewai.utilities.planning_handler import CrewPlanner
from crewai.utilities.task_output_storage_handler import TaskOutputStorageHandler
from crewai.utilities.training_handler import CrewTrainingHandler
warnings.filterwarnings("ignore", category=SyntaxWarning, module="pysbd")
@@ -1353,13 +1354,34 @@ class Crew(FlowTrackable, BaseModel):
def calculate_usage_metrics(self) -> UsageMetrics:
"""Calculates and returns the usage metrics."""
total_usage_metrics = UsageMetrics()
for agent in self.agents:
if hasattr(agent, "_token_process"):
token_sum = agent._token_process.get_summary()
total_usage_metrics.add_usage_metrics(token_sum)
if isinstance(agent.llm, BaseLLM):
llm_usage = agent.llm.get_token_usage_summary()
total_usage_metrics.add_usage_metrics(llm_usage)
else:
# fallback litellm
if hasattr(agent, "_token_process"):
token_sum = agent._token_process.get_summary()
total_usage_metrics.add_usage_metrics(token_sum)
if self.manager_agent and hasattr(self.manager_agent, "_token_process"):
token_sum = self.manager_agent._token_process.get_summary()
total_usage_metrics.add_usage_metrics(token_sum)
if (
self.manager_agent
and hasattr(self.manager_agent, "llm")
and hasattr(self.manager_agent.llm, "get_token_usage_summary")
):
if isinstance(self.manager_agent.llm, BaseLLM):
llm_usage = self.manager_agent.llm.get_token_usage_summary()
else:
llm_usage = self.manager_agent.llm._token_process.get_summary()
total_usage_metrics.add_usage_metrics(llm_usage)
self.usage_metrics = total_usage_metrics
return total_usage_metrics

View File

@@ -17,6 +17,11 @@ class BaseEvent(BaseModel):
)
fingerprint_metadata: dict[str, Any] | None = None # Any relevant metadata
task_id: str | None = None
task_name: str | None = None
agent_id: str | None = None
agent_role: str | None = None
def to_json(self, exclude: set[str] | None = None):
"""
Converts the event to a JSON-serializable dictionary.
@@ -31,7 +36,7 @@ class BaseEvent(BaseModel):
def _set_task_params(self, data: dict[str, Any]):
if "from_task" in data and (task := data["from_task"]):
self.task_id = task.id
self.task_id = str(task.id)
self.task_name = task.name or task.description
self.from_task = None
@@ -42,6 +47,6 @@ class BaseEvent(BaseModel):
if not agent:
return
self.agent_id = agent.id
self.agent_id = str(agent.id)
self.agent_role = agent.role
self.from_agent = None

View File

@@ -7,19 +7,23 @@ from crewai.events.base_events import BaseEvent
class LLMEventBase(BaseEvent):
task_name: str | None = None
task_id: str | None = None
agent_id: str | None = None
agent_role: str | None = None
from_task: Any | None = None
from_agent: Any | None = None
def __init__(self, **data):
if data.get("from_task"):
task = data["from_task"]
data["task_id"] = str(task.id)
data["task_name"] = task.name or task.description
data["from_task"] = None
if data.get("from_agent"):
agent = data["from_agent"]
data["agent_id"] = str(agent.id)
data["agent_role"] = agent.role
data["from_agent"] = None
super().__init__(**data)
self._set_agent_params(data)
self._set_task_params(data)
class LLMCallType(Enum):

View File

@@ -27,9 +27,20 @@ class ToolUsageEvent(BaseEvent):
model_config = ConfigDict(arbitrary_types_allowed=True)
def __init__(self, **data):
if data.get("from_task"):
task = data["from_task"]
data["task_id"] = str(task.id)
data["task_name"] = task.name or task.description
data["from_task"] = None
if data.get("from_agent"):
agent = data["from_agent"]
data["agent_id"] = str(agent.id)
data["agent_role"] = agent.role
data["from_agent"] = None
super().__init__(**data)
self._set_agent_params(data)
self._set_task_params(data)
# Set fingerprint data from the agent
if self.agent and hasattr(self.agent, "fingerprint") and self.agent.fingerprint:
self.source_fingerprint = self.agent.fingerprint.uuid_str

View File

@@ -1,13 +1,13 @@
import asyncio
import inspect
import uuid
from collections.abc import Callable
import inspect
from typing import (
Any,
cast,
get_args,
get_origin,
)
import uuid
from pydantic import (
UUID4,
@@ -351,7 +351,10 @@ class LiteAgent(FlowTrackable, BaseModel):
)
# Calculate token usage metrics
usage_metrics = self._token_process.get_summary()
if isinstance(self.llm, BaseLLM):
usage_metrics = self.llm.get_token_usage_summary()
else:
usage_metrics = self._token_process.get_summary()
# Create output
output = LiteAgentOutput(
@@ -400,7 +403,10 @@ class LiteAgent(FlowTrackable, BaseModel):
elif isinstance(guardrail_result.result, BaseModel):
output.pydantic = guardrail_result.result
usage_metrics = self._token_process.get_summary()
if isinstance(self.llm, BaseLLM):
usage_metrics = self.llm.get_token_usage_summary()
else:
usage_metrics = self._token_process.get_summary()
output.usage_metrics = usage_metrics.model_dump() if usage_metrics else None
# Emit completion event

View File

@@ -1,13 +1,14 @@
from collections import defaultdict
from collections.abc import Callable
from datetime import datetime
import io
import json
import logging
import os
import sys
import threading
from collections import defaultdict
from collections.abc import Callable
from datetime import datetime
from typing import (
TYPE_CHECKING,
Any,
Final,
Literal,
@@ -17,7 +18,6 @@ from typing import (
)
from dotenv import load_dotenv
from litellm.types.utils import ChatCompletionDeltaToolCall
from pydantic import BaseModel, Field
from crewai.events.event_bus import crewai_event_bus
@@ -39,19 +39,42 @@ from crewai.utilities.exceptions.context_window_exceeding_exception import (
)
from crewai.utilities.logger_utils import suppress_warnings
with suppress_warnings():
if TYPE_CHECKING:
from litellm import Choices
from litellm.exceptions import ContextWindowExceededError
from litellm.litellm_core_utils.get_supported_openai_params import (
get_supported_openai_params,
)
from litellm.types.utils import ChatCompletionDeltaToolCall, ModelResponse
from litellm.utils import supports_response_schema
try:
import litellm
from litellm import Choices, CustomLogger
from litellm.exceptions import ContextWindowExceededError
from litellm.litellm_core_utils.get_supported_openai_params import (
get_supported_openai_params,
)
from litellm.types.utils import ModelResponse
from litellm.types.utils import ChatCompletionDeltaToolCall, ModelResponse
from litellm.utils import supports_response_schema
LITELLM_AVAILABLE = True
except ImportError:
LITELLM_AVAILABLE = False
litellm = None # type: ignore
Choices = None # type: ignore
ContextWindowExceededError = Exception # type: ignore
get_supported_openai_params = None # type: ignore
ChatCompletionDeltaToolCall = None # type: ignore
ModelResponse = None # type: ignore
supports_response_schema = None # type: ignore
load_dotenv()
litellm.suppress_debug_info = True
if LITELLM_AVAILABLE:
litellm.suppress_debug_info = True
class FilteredStream(io.TextIOBase):
@@ -275,6 +298,77 @@ class AccumulatedToolArgs(BaseModel):
class LLM(BaseLLM):
completion_cost: float | None = None
def __new__(cls, model: str, is_litellm: bool = False, **kwargs) -> "LLM":
"""Factory method that routes to native SDK or falls back to LiteLLM."""
if not model or not isinstance(model, str):
raise ValueError("Model must be a non-empty string")
provider = model.partition("/")[0] if "/" in model else "openai"
native_class = cls._get_native_provider(provider)
if native_class and not is_litellm:
try:
model_string = model.partition("/")[2] if "/" in model else model
return native_class(model=model_string, provider=provider, **kwargs)
except Exception as e:
import logging
logger = logging.getLogger(__name__)
logger.warning(
f"Native SDK failed for {provider}: {e}, falling back to LiteLLM"
)
# FALLBACK to LiteLLM
if not LITELLM_AVAILABLE:
raise ImportError(
"Please install the required dependencies:\n"
"- For LiteLLM: uv add litellm"
)
instance = object.__new__(cls)
super(LLM, instance).__init__(model=model, is_litellm=True, **kwargs)
instance.is_litellm = True
return instance
@classmethod
def _get_native_provider(cls, provider: str) -> type | None:
"""Get native provider class if available."""
if provider == "openai":
try:
from crewai.llms.providers.openai.completion import OpenAICompletion
return OpenAICompletion
except ImportError:
return None
elif provider == "anthropic" or provider == "claude":
try:
from crewai.llms.providers.anthropic.completion import (
AnthropicCompletion,
)
return AnthropicCompletion
except ImportError:
return None
elif provider == "azure":
try:
from crewai.llms.providers.azure.completion import AzureCompletion
return AzureCompletion
except ImportError:
return None
elif provider == "google" or provider == "gemini":
try:
from crewai.llms.providers.gemini.completion import GeminiCompletion
return GeminiCompletion
except ImportError:
return None
return None
def __init__(
self,
model: str,
@@ -284,7 +378,7 @@ class LLM(BaseLLM):
n: int | None = None,
stop: str | list[str] | None = None,
max_completion_tokens: int | None = None,
max_tokens: int | None = None,
max_tokens: int | float | None = None,
presence_penalty: float | None = None,
frequency_penalty: float | None = None,
logit_bias: dict[int, float] | None = None,
@@ -301,6 +395,11 @@ class LLM(BaseLLM):
stream: bool = False,
**kwargs,
):
"""Initialize LLM instance.
Note: This __init__ method is only called for fallback instances.
Native provider instances handle their own initialization in their respective classes.
"""
self.model = model
self.timeout = timeout
self.temperature = temperature
@@ -328,7 +427,7 @@ class LLM(BaseLLM):
litellm.drop_params = True
# Normalize self.stop to always be a List[str]
# Normalize self.stop to always be a list[str]
if stop is None:
self.stop: list[str] = []
elif isinstance(stop, str):
@@ -349,7 +448,8 @@ class LLM(BaseLLM):
Returns:
bool: True if the model is from Anthropic, False otherwise.
"""
return any(prefix in model.lower() for prefix in ANTHROPIC_PREFIXES)
anthropic_prefixes = ("anthropic/", "claude-", "claude/")
return any(prefix in model.lower() for prefix in anthropic_prefixes)
def _prepare_completion_params(
self,
@@ -514,10 +614,6 @@ class LLM(BaseLLM):
# Add the chunk content to the full response
full_response += chunk_content
# Emit the chunk event
if not hasattr(crewai_event_bus, "emit"):
raise Exception("crewai_event_bus must have an `emit` method")
crewai_event_bus.emit(
self,
event=LLMStreamChunkEvent(
@@ -623,7 +719,9 @@ class LLM(BaseLLM):
# --- 8) If no tool calls or no available functions, return the text response directly
if not tool_calls or not available_functions:
# Log token usage if available in streaming mode
# Track token usage and log callbacks if available in streaming mode
if usage_info:
self._track_token_usage_internal(usage_info)
self._handle_streaming_callbacks(callbacks, usage_info, last_chunk)
# Emit completion event and return response
self._handle_emit_call_events(
@@ -640,7 +738,9 @@ class LLM(BaseLLM):
if tool_result is not None:
return tool_result
# --- 10) Log token usage if available in streaming mode
# --- 10) Track token usage and log callbacks if available in streaming mode
if usage_info:
self._track_token_usage_internal(usage_info)
self._handle_streaming_callbacks(callbacks, usage_info, last_chunk)
# --- 11) Emit completion event and return response
@@ -671,11 +771,6 @@ class LLM(BaseLLM):
)
return full_response
# Emit failed event and re-raise the exception
if not hasattr(crewai_event_bus, "emit"):
raise AttributeError(
"crewai_event_bus must have an 'emit' method"
) from e
crewai_event_bus.emit(
self,
event=LLMCallFailedEvent(
@@ -702,8 +797,7 @@ class LLM(BaseLLM):
current_tool_accumulator.function.arguments += (
tool_call.function.arguments
)
if not hasattr(crewai_event_bus, "emit"):
raise AttributeError("crewai_event_bus must have an 'emit' method")
crewai_event_bus.emit(
self,
event=LLMStreamChunkEvent(
@@ -832,6 +926,7 @@ class LLM(BaseLLM):
messages=params["messages"],
)
return text_response
# --- 6) If there is no text response, no available functions, but there are tool calls, return the tool calls
if tool_calls and not available_functions and not text_response:
return tool_calls
@@ -886,9 +981,6 @@ class LLM(BaseLLM):
function_args = json.loads(tool_call.function.arguments)
fn = available_functions[function_name]
# --- 3.2) Execute function
if not hasattr(crewai_event_bus, "emit"):
raise AttributeError("crewai_event_bus must have an 'emit' method")
started_at = datetime.now()
crewai_event_bus.emit(
self,
@@ -928,10 +1020,6 @@ class LLM(BaseLLM):
function_name, lambda: None
) # Ensure fn is always a callable
logging.error(f"Error executing function '{function_name}': {e}")
if not hasattr(crewai_event_bus, "emit"):
raise AttributeError(
"crewai_event_bus must have an 'emit' method"
) from e
crewai_event_bus.emit(
self,
event=LLMCallFailedEvent(error=f"Tool execution error: {e!s}"),
@@ -982,9 +1070,6 @@ class LLM(BaseLLM):
ValueError: If response format is not supported
LLMContextLengthExceededError: If input exceeds model's context limit
"""
# --- 1) Emit call started event
if not hasattr(crewai_event_bus, "emit"):
raise AttributeError("crewai_event_bus must have an 'emit' method")
crewai_event_bus.emit(
self,
event=LLMCallStartedEvent(
@@ -1021,10 +1106,10 @@ class LLM(BaseLLM):
return self._handle_streaming_response(
params, callbacks, available_functions, from_task, from_agent
)
return self._handle_non_streaming_response(
params, callbacks, available_functions, from_task, from_agent
)
except LLMContextLengthExceededError:
# Re-raise LLMContextLengthExceededError as it should be handled
# by the CrewAgentExecutor._invoke_loop method, which can then decide
@@ -1057,10 +1142,6 @@ class LLM(BaseLLM):
from_agent=from_agent,
)
if not hasattr(crewai_event_bus, "emit"):
raise AttributeError(
"crewai_event_bus must have an 'emit' method"
) from e
crewai_event_bus.emit(
self,
event=LLMCallFailedEvent(
@@ -1086,8 +1167,6 @@ class LLM(BaseLLM):
from_agent: Optional agent object
messages: Optional messages object
"""
if not hasattr(crewai_event_bus, "emit"):
raise AttributeError("crewai_event_bus must have an 'emit' method")
crewai_event_bus.emit(
self,
event=LLMCallCompletedEvent(
@@ -1225,11 +1304,14 @@ class LLM(BaseLLM):
if self.context_window_size != 0:
return self.context_window_size
min_context = 1024
max_context = 2097152 # Current max from gemini-1.5-pro
# Validate all context window sizes
for key, value in LLM_CONTEXT_WINDOW_SIZES.items():
if value < MIN_CONTEXT or value > MAX_CONTEXT:
if value < min_context or value > max_context:
raise ValueError(
f"Context window for {key} must be between {MIN_CONTEXT} and {MAX_CONTEXT}"
f"Context window for {key} must be between {min_context} and {max_context}"
)
self.context_window_size = int(
@@ -1293,3 +1375,129 @@ class LLM(BaseLLM):
litellm.success_callback = success_callbacks
litellm.failure_callback = failure_callbacks
def __copy__(self):
"""Create a shallow copy of the LLM instance."""
# Filter out parameters that are already explicitly passed to avoid conflicts
filtered_params = {
k: v
for k, v in self.additional_params.items()
if k
not in [
"model",
"is_litellm",
"temperature",
"top_p",
"n",
"max_completion_tokens",
"max_tokens",
"presence_penalty",
"frequency_penalty",
"logit_bias",
"response_format",
"seed",
"logprobs",
"top_logprobs",
"base_url",
"api_base",
"api_version",
"api_key",
"callbacks",
"reasoning_effort",
"stream",
"stop",
]
}
# Create a new instance with the same parameters
return LLM(
model=self.model,
is_litellm=self.is_litellm,
temperature=self.temperature,
top_p=self.top_p,
n=self.n,
max_completion_tokens=self.max_completion_tokens,
max_tokens=self.max_tokens,
presence_penalty=self.presence_penalty,
frequency_penalty=self.frequency_penalty,
logit_bias=self.logit_bias,
response_format=self.response_format,
seed=self.seed,
logprobs=self.logprobs,
top_logprobs=self.top_logprobs,
base_url=self.base_url,
api_base=self.api_base,
api_version=self.api_version,
api_key=self.api_key,
callbacks=self.callbacks,
reasoning_effort=self.reasoning_effort,
stream=self.stream,
stop=self.stop,
**filtered_params,
)
def __deepcopy__(self, memo):
"""Create a deep copy of the LLM instance."""
import copy
# Filter out parameters that are already explicitly passed to avoid conflicts
filtered_params = {
k: copy.deepcopy(v, memo)
for k, v in self.additional_params.items()
if k
not in [
"model",
"is_litellm",
"temperature",
"top_p",
"n",
"max_completion_tokens",
"max_tokens",
"presence_penalty",
"frequency_penalty",
"logit_bias",
"response_format",
"seed",
"logprobs",
"top_logprobs",
"base_url",
"api_base",
"api_version",
"api_key",
"callbacks",
"reasoning_effort",
"stream",
"stop",
]
}
# Create a new instance with the same parameters
return LLM(
model=self.model,
is_litellm=self.is_litellm,
temperature=self.temperature,
top_p=self.top_p,
n=self.n,
max_completion_tokens=self.max_completion_tokens,
max_tokens=self.max_tokens,
presence_penalty=self.presence_penalty,
frequency_penalty=self.frequency_penalty,
logit_bias=copy.deepcopy(self.logit_bias, memo)
if self.logit_bias
else None,
response_format=copy.deepcopy(self.response_format, memo)
if self.response_format
else None,
seed=self.seed,
logprobs=self.logprobs,
top_logprobs=self.top_logprobs,
base_url=self.base_url,
api_base=self.api_base,
api_version=self.api_version,
api_key=self.api_key,
callbacks=copy.deepcopy(self.callbacks, memo) if self.callbacks else None,
reasoning_effort=self.reasoning_effort,
stream=self.stream,
stop=copy.deepcopy(self.stop, memo) if self.stop else None,
**filtered_params,
)

View File

@@ -1,12 +1,33 @@
"""Base LLM abstract class for CrewAI.
This module provides the abstract base class for all LLM implementations
in CrewAI.
in CrewAI, including common functionality for native SDK implementations.
"""
from abc import ABC, abstractmethod
from datetime import datetime
import json
import logging
from typing import Any, Final
from pydantic import BaseModel
from crewai.events.event_bus import crewai_event_bus
from crewai.events.types.llm_events import (
LLMCallCompletedEvent,
LLMCallFailedEvent,
LLMCallStartedEvent,
LLMCallType,
LLMStreamChunkEvent,
)
from crewai.events.types.tool_usage_events import (
ToolUsageErrorEvent,
ToolUsageFinishedEvent,
ToolUsageStartedEvent,
)
from crewai.types.usage_metrics import UsageMetrics
DEFAULT_CONTEXT_WINDOW_SIZE: Final[int] = 4096
DEFAULT_SUPPORTS_STOP_WORDS: Final[bool] = True
@@ -27,13 +48,20 @@ class BaseLLM(ABC):
model: The model identifier/name.
temperature: Optional temperature setting for response generation.
stop: A list of stop sequences that the LLM should use to stop generation.
additional_params: Additional provider-specific parameters.
"""
is_litellm: bool = False
def __init__(
self,
model: str,
temperature: float | None = None,
stop: list[str] | None = None,
api_key: str | None = None,
base_url: str | None = None,
timeout: float | None = None,
provider: str | None = None,
**kwargs,
) -> None:
"""Initialize the BaseLLM with default attributes.
@@ -41,10 +69,44 @@ class BaseLLM(ABC):
model: The model identifier/name.
temperature: Optional temperature setting for response generation.
stop: Optional list of stop sequences for generation.
**kwargs: Additional provider-specific parameters.
"""
if not model:
raise ValueError("Model name is required and cannot be empty")
self.model = model
self.temperature = temperature
self.stop: list[str] = stop or []
self.api_key = api_key
self.base_url = base_url
# Store additional parameters for provider-specific use
self.additional_params = kwargs
self._provider = provider or "openai"
stop = kwargs.pop("stop", None)
if stop is None:
self.stop: list[str] = []
elif isinstance(stop, str):
self.stop = [stop]
else:
self.stop = stop
self._token_usage = {
"total_tokens": 0,
"prompt_tokens": 0,
"completion_tokens": 0,
"successful_requests": 0,
"cached_prompt_tokens": 0,
}
@property
def provider(self) -> str:
"""Get the provider of the LLM."""
return self._provider
@provider.setter
def provider(self, value: str) -> None:
"""Set the provider of the LLM."""
self._provider = value
@abstractmethod
def call(
@@ -82,6 +144,17 @@ class BaseLLM(ABC):
RuntimeError: If the LLM request fails for other reasons.
"""
def _convert_tools_for_interference(self, tools: list[dict]) -> list[dict]:
"""Convert tools to a format that can be used for interference.
Args:
tools: List of tools to convert.
Returns:
List of converted tools (default implementation returns as-is)
"""
return tools
def supports_stop_words(self) -> bool:
"""Check if the LLM supports stop words.
@@ -90,6 +163,58 @@ class BaseLLM(ABC):
"""
return DEFAULT_SUPPORTS_STOP_WORDS
def _supports_stop_words_implementation(self) -> bool:
"""Check if stop words are configured for this LLM instance.
Native providers can override supports_stop_words() to return this value
to ensure consistent behavior based on whether stop words are actually configured.
Returns:
True if stop words are configured and can be applied
"""
return bool(self.stop)
def _apply_stop_words(self, content: str) -> str:
"""Apply stop words to truncate response content.
This method provides consistent stop word behavior across all native SDK providers.
Native providers should call this method to post-process their responses.
Args:
content: The raw response content from the LLM
Returns:
Content truncated at the first occurrence of any stop word
Example:
>>> llm = MyNativeLLM(stop=["Observation:", "Final Answer:"])
>>> response = "I need to search.\\n\\nAction: search\\nObservation: Found results"
>>> llm._apply_stop_words(response)
"I need to search.\\n\\nAction: search"
"""
if not self.stop or not content:
return content
# Find the earliest occurrence of any stop word
earliest_stop_pos = len(content)
found_stop_word = None
for stop_word in self.stop:
stop_pos = content.find(stop_word)
if stop_pos != -1 and stop_pos < earliest_stop_pos:
earliest_stop_pos = stop_pos
found_stop_word = stop_word
# Truncate at the stop word if found
if found_stop_word is not None:
truncated = content[:earliest_stop_pos].strip()
logging.debug(
f"Applied stop word '{found_stop_word}' at position {earliest_stop_pos}"
)
return truncated
return content
def get_context_window_size(self) -> int:
"""Get the context window size for the LLM.
@@ -98,3 +223,314 @@ class BaseLLM(ABC):
"""
# Default implementation - subclasses should override with model-specific values
return DEFAULT_CONTEXT_WINDOW_SIZE
# Common helper methods for native SDK implementations
def _emit_call_started_event(
self,
messages: str | list[dict[str, str]],
tools: list[dict] | None = None,
callbacks: list[Any] | None = None,
available_functions: dict[str, Any] | None = None,
from_task: Any | None = None,
from_agent: Any | None = None,
) -> None:
"""Emit LLM call started event."""
if not hasattr(crewai_event_bus, "emit"):
raise ValueError("crewai_event_bus does not have an emit method") from None
crewai_event_bus.emit(
self,
event=LLMCallStartedEvent(
messages=messages,
tools=tools,
callbacks=callbacks,
available_functions=available_functions,
from_task=from_task,
from_agent=from_agent,
model=self.model,
),
)
def _emit_call_completed_event(
self,
response: Any,
call_type: LLMCallType,
from_task: Any | None = None,
from_agent: Any | None = None,
messages: str | list[dict[str, Any]] | None = None,
) -> None:
"""Emit LLM call completed event."""
crewai_event_bus.emit(
self,
event=LLMCallCompletedEvent(
messages=messages,
response=response,
call_type=call_type,
from_task=from_task,
from_agent=from_agent,
model=self.model,
),
)
def _emit_call_failed_event(
self,
error: str,
from_task: Any | None = None,
from_agent: Any | None = None,
) -> None:
"""Emit LLM call failed event."""
if not hasattr(crewai_event_bus, "emit"):
raise ValueError("crewai_event_bus does not have an emit method") from None
crewai_event_bus.emit(
self,
event=LLMCallFailedEvent(
error=error,
from_task=from_task,
from_agent=from_agent,
),
)
def _emit_stream_chunk_event(
self,
chunk: str,
from_task: Any | None = None,
from_agent: Any | None = None,
tool_call: dict[str, Any] | None = None,
) -> None:
"""Emit stream chunk event."""
if not hasattr(crewai_event_bus, "emit"):
raise ValueError("crewai_event_bus does not have an emit method") from None
crewai_event_bus.emit(
self,
event=LLMStreamChunkEvent(
chunk=chunk,
tool_call=tool_call,
from_task=from_task,
from_agent=from_agent,
),
)
def _handle_tool_execution(
self,
function_name: str,
function_args: dict[str, Any],
available_functions: dict[str, Any],
from_task: Any | None = None,
from_agent: Any | None = None,
) -> str | None:
"""Handle tool execution with proper event emission.
Args:
function_name: Name of the function to execute
function_args: Arguments to pass to the function
available_functions: Dict of available functions
from_task: Optional task object
from_agent: Optional agent object
Returns:
Result of function execution or None if function not found
"""
if function_name not in available_functions:
logging.warning(
f"Function '{function_name}' not found in available functions"
)
return None
try:
# Emit tool usage started event
started_at = datetime.now()
crewai_event_bus.emit(
self,
event=ToolUsageStartedEvent(
tool_name=function_name,
tool_args=function_args,
from_agent=from_agent,
from_task=from_task,
),
)
# Execute the function
fn = available_functions[function_name]
result = fn(**function_args)
# Emit tool usage finished event
crewai_event_bus.emit(
self,
event=ToolUsageFinishedEvent(
output=result,
tool_name=function_name,
tool_args=function_args,
started_at=started_at,
finished_at=datetime.now(),
from_task=from_task,
from_agent=from_agent,
),
)
# Emit LLM call completed event for tool call
self._emit_call_completed_event(
response=result,
call_type=LLMCallType.TOOL_CALL,
from_task=from_task,
from_agent=from_agent,
)
return str(result)
except Exception as e:
error_msg = f"Error executing function '{function_name}': {e!s}"
logging.error(error_msg)
# Emit tool usage error event
if not hasattr(crewai_event_bus, "emit"):
raise ValueError(
"crewai_event_bus does not have an emit method"
) from None
crewai_event_bus.emit(
self,
event=ToolUsageErrorEvent(
tool_name=function_name,
tool_args=function_args,
error=error_msg,
from_task=from_task,
from_agent=from_agent,
),
)
# Emit LLM call failed event
self._emit_call_failed_event(
error=error_msg,
from_task=from_task,
from_agent=from_agent,
)
return None
def _format_messages(
self, messages: str | list[dict[str, str]]
) -> list[dict[str, str]]:
"""Convert messages to standard format.
Args:
messages: Input messages (string or list of message dicts)
Returns:
List of message dictionaries with 'role' and 'content' keys
Raises:
ValueError: If message format is invalid
"""
if isinstance(messages, str):
return [{"role": "user", "content": messages}]
# Validate message format
for i, msg in enumerate(messages):
if not isinstance(msg, dict):
raise ValueError(f"Message at index {i} must be a dictionary")
if "role" not in msg or "content" not in msg:
raise ValueError(
f"Message at index {i} must have 'role' and 'content' keys"
)
return messages
def _validate_structured_output(
self,
response: str,
response_format: type[BaseModel] | None,
) -> str | BaseModel:
"""Validate and parse structured output.
Args:
response: Raw response string
response_format: Optional Pydantic model for structured output
Returns:
Parsed response (BaseModel instance if response_format provided, otherwise string)
Raises:
ValueError: If structured output validation fails
"""
if response_format is None:
return response
try:
# Try to parse as JSON first
if response.strip().startswith("{") or response.strip().startswith("["):
data = json.loads(response)
return response_format.model_validate(data)
# Try to extract JSON from response
import re
json_match = re.search(r"\{.*\}", response, re.DOTALL)
if json_match:
data = json.loads(json_match.group())
return response_format.model_validate(data)
raise ValueError("No JSON found in response")
except (json.JSONDecodeError, ValueError) as e:
logging.warning(f"Failed to parse structured output: {e}")
raise ValueError(
f"Failed to parse response into {response_format.__name__}: {e}"
) from e
def _extract_provider(self, model: str) -> str:
"""Extract provider from model string.
Args:
model: Model string (e.g., 'openai/gpt-4' or 'gpt-4')
Returns:
Provider name (e.g., 'openai')
"""
if "/" in model:
return model.partition("/")[0]
return "openai" # Default provider
def _track_token_usage_internal(self, usage_data: dict[str, Any]) -> None:
"""Track token usage internally in the LLM instance.
Args:
usage_data: Token usage data from the API response
"""
# Extract tokens in a provider-agnostic way
prompt_tokens = (
usage_data.get("prompt_tokens")
or usage_data.get("prompt_token_count")
or usage_data.get("input_tokens")
or 0
)
completion_tokens = (
usage_data.get("completion_tokens")
or usage_data.get("candidates_token_count")
or usage_data.get("output_tokens")
or 0
)
cached_tokens = (
usage_data.get("cached_tokens")
or usage_data.get("cached_prompt_tokens")
or 0
)
self._token_usage["prompt_tokens"] += prompt_tokens
self._token_usage["completion_tokens"] += completion_tokens
self._token_usage["total_tokens"] += prompt_tokens + completion_tokens
self._token_usage["successful_requests"] += 1
self._token_usage["cached_prompt_tokens"] += cached_tokens
def get_token_usage_summary(self) -> UsageMetrics:
"""Get summary of token usage for this LLM instance.
Returns:
Dictionary with token usage totals
"""
return UsageMetrics(**self._token_usage)

View File

@@ -0,0 +1,432 @@
import json
import logging
import os
from typing import Any
from crewai.events.types.llm_events import LLMCallType
from crewai.llms.base_llm import BaseLLM
from crewai.utilities.agent_utils import is_context_length_exceeded
from crewai.utilities.exceptions.context_window_exceeding_exception import (
LLMContextLengthExceededError,
)
try:
from anthropic import Anthropic
from anthropic.types import Message
from anthropic.types.tool_use_block import ToolUseBlock
except ImportError:
raise ImportError(
"Anthropic native provider not available, to install: `uv add anthropic`"
) from None
class AnthropicCompletion(BaseLLM):
"""Anthropic native completion implementation.
This class provides direct integration with the Anthropic Python SDK,
offering native tool use, streaming support, and proper message formatting.
"""
def __init__(
self,
model: str = "claude-3-5-sonnet-20241022",
api_key: str | None = None,
base_url: str | None = None,
timeout: float | None = None,
max_retries: int = 2,
temperature: float | None = None,
max_tokens: int = 4096, # Required for Anthropic
top_p: float | None = None,
stop_sequences: list[str] | None = None,
stream: bool = False,
**kwargs,
):
"""Initialize Anthropic chat completion client.
Args:
model: Anthropic model name (e.g., 'claude-3-5-sonnet-20241022')
api_key: Anthropic API key (defaults to ANTHROPIC_API_KEY env var)
base_url: Custom base URL for Anthropic API
timeout: Request timeout in seconds
max_retries: Maximum number of retries
temperature: Sampling temperature (0-1)
max_tokens: Maximum tokens in response (required for Anthropic)
top_p: Nucleus sampling parameter
stop_sequences: Stop sequences (Anthropic uses stop_sequences, not stop)
stream: Enable streaming responses
**kwargs: Additional parameters
"""
super().__init__(
model=model, temperature=temperature, stop=stop_sequences or [], **kwargs
)
# Initialize Anthropic client
self.client = Anthropic(
api_key=api_key or os.getenv("ANTHROPIC_API_KEY"),
base_url=base_url,
timeout=timeout,
max_retries=max_retries,
)
# Store completion parameters
self.max_tokens = max_tokens
self.top_p = top_p
self.stream = stream
self.stop_sequences = stop_sequences or []
# Model-specific settings
self.is_claude_3 = "claude-3" in model.lower()
self.supports_tools = self.is_claude_3 # Claude 3+ supports tool use
def call(
self,
messages: str | list[dict[str, str]],
tools: list[dict] | None = None,
callbacks: list[Any] | None = None,
available_functions: dict[str, Any] | None = None,
from_task: Any | None = None,
from_agent: Any | None = None,
) -> str | Any:
"""Call Anthropic messages API.
Args:
messages: Input messages for the chat completion
tools: List of tool/function definitions
callbacks: Callback functions (not used in native implementation)
available_functions: Available functions for tool calling
from_task: Task that initiated the call
from_agent: Agent that initiated the call
Returns:
Chat completion response or tool call result
"""
try:
# Emit call started event
self._emit_call_started_event(
messages=messages,
tools=tools,
callbacks=callbacks,
available_functions=available_functions,
from_task=from_task,
from_agent=from_agent,
)
# Format messages for Anthropic
formatted_messages, system_message = self._format_messages_for_anthropic(
messages
)
# Prepare completion parameters
completion_params = self._prepare_completion_params(
formatted_messages, system_message, tools
)
# Handle streaming vs non-streaming
if self.stream:
return self._handle_streaming_completion(
completion_params, available_functions, from_task, from_agent
)
return self._handle_completion(
completion_params, available_functions, from_task, from_agent
)
except Exception as e:
error_msg = f"Anthropic API call failed: {e!s}"
logging.error(error_msg)
self._emit_call_failed_event(
error=error_msg, from_task=from_task, from_agent=from_agent
)
raise
def _prepare_completion_params(
self,
messages: list[dict[str, str]],
system_message: str | None = None,
tools: list[dict] | None = None,
) -> dict[str, Any]:
"""Prepare parameters for Anthropic messages API.
Args:
messages: Formatted messages for Anthropic
system_message: Extracted system message
tools: Tool definitions
Returns:
Parameters dictionary for Anthropic API
"""
params = {
"model": self.model,
"messages": messages,
"max_tokens": self.max_tokens,
"stream": self.stream,
}
# Add system message if present
if system_message:
params["system"] = system_message
# Add optional parameters if set
if self.temperature is not None:
params["temperature"] = self.temperature
if self.top_p is not None:
params["top_p"] = self.top_p
if self.stop_sequences:
params["stop_sequences"] = self.stop_sequences
# Handle tools for Claude 3+
if tools and self.supports_tools:
params["tools"] = self._convert_tools_for_interference(tools)
return params
def _convert_tools_for_interference(self, tools: list[dict]) -> list[dict]:
"""Convert CrewAI tool format to Anthropic tool use format."""
from crewai.llms.providers.utils.common import safe_tool_conversion
anthropic_tools = []
for tool in tools:
name, description, parameters = safe_tool_conversion(tool, "Anthropic")
anthropic_tool = {
"name": name,
"description": description,
}
if parameters and isinstance(parameters, dict):
anthropic_tool["input_schema"] = parameters # type: ignore
anthropic_tools.append(anthropic_tool)
return anthropic_tools
def _format_messages_for_anthropic(
self, messages: str | list[dict[str, str]]
) -> tuple[list[dict[str, str]], str | None]:
"""Format messages for Anthropic API.
Anthropic has specific requirements:
- System messages are separate from conversation messages
- Messages must alternate between user and assistant
- First message must be from user
Args:
messages: Input messages
Returns:
Tuple of (formatted_messages, system_message)
"""
# Use base class formatting first
base_formatted = super()._format_messages(messages)
formatted_messages = []
system_message = None
for message in base_formatted:
role = message.get("role")
content = message.get("content", "")
if role == "system":
# Extract system message - Anthropic handles it separately
if system_message:
system_message += f"\n\n{content}"
else:
system_message = content
else:
# Add user/assistant messages - ensure both role and content are str, not None
role_str = role if role is not None else "user"
content_str = content if content is not None else ""
formatted_messages.append({"role": role_str, "content": content_str})
# Ensure first message is from user (Anthropic requirement)
if not formatted_messages:
# If no messages, add a default user message
formatted_messages.append({"role": "user", "content": "Hello"})
elif formatted_messages[0]["role"] != "user":
# If first message is not from user, insert a user message at the beginning
formatted_messages.insert(0, {"role": "user", "content": "Hello"})
return formatted_messages, system_message
def _handle_completion(
self,
params: dict[str, Any],
available_functions: dict[str, Any] | None = None,
from_task: Any | None = None,
from_agent: Any | None = None,
) -> str | Any:
"""Handle non-streaming message completion."""
try:
response: Message = self.client.messages.create(**params)
except Exception as e:
if is_context_length_exceeded(e):
logging.error(f"Context window exceeded: {e}")
raise LLMContextLengthExceededError(str(e)) from e
raise e from e
usage = self._extract_anthropic_token_usage(response)
self._track_token_usage_internal(usage)
if response.content and available_functions:
for content_block in response.content:
if isinstance(content_block, ToolUseBlock):
function_name = content_block.name
function_args = content_block.input
result = self._handle_tool_execution(
function_name=function_name,
function_args=function_args, # type: ignore
available_functions=available_functions,
from_task=from_task,
from_agent=from_agent,
)
if result is not None:
return result
# Extract text content
content = ""
if response.content:
for content_block in response.content:
if hasattr(content_block, "text"):
content += content_block.text
content = self._apply_stop_words(content)
self._emit_call_completed_event(
response=content,
call_type=LLMCallType.LLM_CALL,
from_task=from_task,
from_agent=from_agent,
messages=params["messages"],
)
if usage.get("total_tokens", 0) > 0:
logging.info(f"Anthropic API usage: {usage}")
return content
def _handle_streaming_completion(
self,
params: dict[str, Any],
available_functions: dict[str, Any] | None = None,
from_task: Any | None = None,
from_agent: Any | None = None,
) -> str:
"""Handle streaming message completion."""
full_response = ""
tool_uses = {}
# Make streaming API call
with self.client.messages.stream(**params) as stream:
for event in stream:
# Handle content delta events
if hasattr(event, "delta") and hasattr(event.delta, "text"):
text_delta = event.delta.text
full_response += text_delta
self._emit_stream_chunk_event(
chunk=text_delta,
from_task=from_task,
from_agent=from_agent,
)
# Handle tool use events
elif hasattr(event, "delta") and hasattr(event.delta, "partial_json"):
# Tool use streaming - accumulate JSON
tool_id = getattr(event, "index", "default")
if tool_id not in tool_uses:
tool_uses[tool_id] = {
"name": "",
"input": "",
}
if hasattr(event.delta, "name"):
tool_uses[tool_id]["name"] = event.delta.name
if hasattr(event.delta, "partial_json"):
tool_uses[tool_id]["input"] += event.delta.partial_json
# Handle completed tool uses
if tool_uses and available_functions:
for tool_data in tool_uses.values():
function_name = tool_data["name"]
try:
function_args = json.loads(tool_data["input"])
except json.JSONDecodeError as e:
logging.error(f"Failed to parse streamed tool arguments: {e}")
continue
# Execute tool
result = self._handle_tool_execution(
function_name=function_name,
function_args=function_args,
available_functions=available_functions,
from_task=from_task,
from_agent=from_agent,
)
if result is not None:
return result
# Apply stop words to full response
full_response = self._apply_stop_words(full_response)
# Emit completion event and return full response
self._emit_call_completed_event(
response=full_response,
call_type=LLMCallType.LLM_CALL,
from_task=from_task,
from_agent=from_agent,
messages=params["messages"],
)
return full_response
def supports_function_calling(self) -> bool:
"""Check if the model supports function calling."""
return self.supports_tools
def supports_stop_words(self) -> bool:
"""Check if the model supports stop words."""
return True # All Claude models support stop sequences
def get_context_window_size(self) -> int:
"""Get the context window size for the model."""
from crewai.llm import CONTEXT_WINDOW_USAGE_RATIO
# Context window sizes for Anthropic models
context_windows = {
"claude-3-5-sonnet": 200000,
"claude-3-5-haiku": 200000,
"claude-3-opus": 200000,
"claude-3-sonnet": 200000,
"claude-3-haiku": 200000,
"claude-3-7-sonnet": 200000,
"claude-2.1": 200000,
"claude-2": 100000,
"claude-instant": 100000,
}
# Find the best match for the model name
for model_prefix, size in context_windows.items():
if self.model.startswith(model_prefix):
return int(size * CONTEXT_WINDOW_USAGE_RATIO)
# Default context window size for Claude models
return int(200000 * CONTEXT_WINDOW_USAGE_RATIO)
def _extract_anthropic_token_usage(self, response: Message) -> dict[str, Any]:
"""Extract token usage from Anthropic response."""
if hasattr(response, "usage") and response.usage:
usage = response.usage
input_tokens = getattr(usage, "input_tokens", 0)
output_tokens = getattr(usage, "output_tokens", 0)
return {
"input_tokens": input_tokens,
"output_tokens": output_tokens,
"total_tokens": input_tokens + output_tokens,
}
return {"total_tokens": 0}

View File

@@ -0,0 +1,473 @@
import json
import logging
import os
from typing import Any
from crewai.utilities.agent_utils import is_context_length_exceeded
from crewai.utilities.exceptions.context_window_exceeding_exception import (
LLMContextLengthExceededError,
)
try:
from azure.ai.inference import ChatCompletionsClient # type: ignore
from azure.ai.inference.models import ( # type: ignore
ChatCompletions,
ChatCompletionsToolCall,
StreamingChatCompletionsUpdate,
)
from azure.core.credentials import AzureKeyCredential # type: ignore
from azure.core.exceptions import HttpResponseError # type: ignore
from crewai.events.types.llm_events import LLMCallType
from crewai.llms.base_llm import BaseLLM
except ImportError:
raise ImportError(
"Azure AI Inference native provider not available, to install: `uv add azure-ai-inference`"
) from None
class AzureCompletion(BaseLLM):
"""Azure AI Inference native completion implementation.
This class provides direct integration with the Azure AI Inference Python SDK,
offering native function calling, streaming support, and proper Azure authentication.
"""
def __init__(
self,
model: str,
api_key: str | None = None,
endpoint: str | None = None,
api_version: str | None = None,
timeout: float | None = None,
max_retries: int = 2,
temperature: float | None = None,
top_p: float | None = None,
frequency_penalty: float | None = None,
presence_penalty: float | None = None,
max_tokens: int | None = None,
stop: list[str] | None = None,
stream: bool = False,
**kwargs,
):
"""Initialize Azure AI Inference chat completion client.
Args:
model: Azure deployment name or model name
api_key: Azure API key (defaults to AZURE_API_KEY env var)
endpoint: Azure endpoint URL (defaults to AZURE_ENDPOINT env var)
api_version: Azure API version (defaults to AZURE_API_VERSION env var)
timeout: Request timeout in seconds
max_retries: Maximum number of retries
temperature: Sampling temperature (0-2)
top_p: Nucleus sampling parameter
frequency_penalty: Frequency penalty (-2 to 2)
presence_penalty: Presence penalty (-2 to 2)
max_tokens: Maximum tokens in response
stop: Stop sequences
stream: Enable streaming responses
**kwargs: Additional parameters
"""
super().__init__(
model=model, temperature=temperature, stop=stop or [], **kwargs
)
self.api_key = api_key or os.getenv("AZURE_API_KEY")
self.endpoint = (
endpoint
or os.getenv("AZURE_ENDPOINT")
or os.getenv("AZURE_OPENAI_ENDPOINT")
or os.getenv("AZURE_API_BASE")
)
self.api_version = api_version or os.getenv("AZURE_API_VERSION") or "2024-02-01"
if not self.api_key:
raise ValueError(
"Azure API key is required. Set AZURE_API_KEY environment variable or pass api_key parameter."
)
if not self.endpoint:
raise ValueError(
"Azure endpoint is required. Set AZURE_ENDPOINT environment variable or pass endpoint parameter."
)
self.client = ChatCompletionsClient(
endpoint=self.endpoint,
credential=AzureKeyCredential(self.api_key),
)
self.top_p = top_p
self.frequency_penalty = frequency_penalty
self.presence_penalty = presence_penalty
self.max_tokens = max_tokens
self.stream = stream
self.is_openai_model = any(
prefix in model.lower() for prefix in ["gpt-", "o1-", "text-"]
)
def call(
self,
messages: str | list[dict[str, str]],
tools: list[dict] | None = None,
callbacks: list[Any] | None = None,
available_functions: dict[str, Any] | None = None,
from_task: Any | None = None,
from_agent: Any | None = None,
) -> str | Any:
"""Call Azure AI Inference chat completions API.
Args:
messages: Input messages for the chat completion
tools: List of tool/function definitions
callbacks: Callback functions (not used in native implementation)
available_functions: Available functions for tool calling
from_task: Task that initiated the call
from_agent: Agent that initiated the call
Returns:
Chat completion response or tool call result
"""
try:
# Emit call started event
self._emit_call_started_event(
messages=messages,
tools=tools,
callbacks=callbacks,
available_functions=available_functions,
from_task=from_task,
from_agent=from_agent,
)
# Format messages for Azure
formatted_messages = self._format_messages_for_azure(messages)
# Prepare completion parameters
completion_params = self._prepare_completion_params(
formatted_messages, tools
)
# Handle streaming vs non-streaming
if self.stream:
return self._handle_streaming_completion(
completion_params, available_functions, from_task, from_agent
)
return self._handle_completion(
completion_params, available_functions, from_task, from_agent
)
except HttpResponseError as e:
error_msg = f"Azure API HTTP error: {e.status_code} - {e.message}"
logging.error(error_msg)
self._emit_call_failed_event(
error=error_msg, from_task=from_task, from_agent=from_agent
)
raise
except Exception as e:
error_msg = f"Azure API call failed: {e!s}"
logging.error(error_msg)
self._emit_call_failed_event(
error=error_msg, from_task=from_task, from_agent=from_agent
)
raise
def _prepare_completion_params(
self,
messages: list[dict[str, str]],
tools: list[dict] | None = None,
) -> dict[str, Any]:
"""Prepare parameters for Azure AI Inference chat completion.
Args:
messages: Formatted messages for Azure
tools: Tool definitions
Returns:
Parameters dictionary for Azure API
"""
params = {
"model": self.model,
"messages": messages,
"stream": self.stream,
}
# Add optional parameters if set
if self.temperature is not None:
params["temperature"] = self.temperature
if self.top_p is not None:
params["top_p"] = self.top_p
if self.frequency_penalty is not None:
params["frequency_penalty"] = self.frequency_penalty
if self.presence_penalty is not None:
params["presence_penalty"] = self.presence_penalty
if self.max_tokens is not None:
params["max_tokens"] = self.max_tokens
if self.stop:
params["stop"] = self.stop
# Handle tools/functions for Azure OpenAI models
if tools and self.is_openai_model:
params["tools"] = self._convert_tools_for_interference(tools)
params["tool_choice"] = "auto"
return params
def _convert_tools_for_interference(self, tools: list[dict]) -> list[dict]:
"""Convert CrewAI tool format to Azure OpenAI function calling format."""
from crewai.llms.providers.utils.common import safe_tool_conversion
azure_tools = []
for tool in tools:
name, description, parameters = safe_tool_conversion(tool, "Azure")
azure_tool = {
"type": "function",
"function": {
"name": name,
"description": description,
},
}
if parameters:
if isinstance(parameters, dict):
azure_tool["function"]["parameters"] = parameters # type: ignore
else:
azure_tool["function"]["parameters"] = dict(parameters)
azure_tools.append(azure_tool)
return azure_tools
def _format_messages_for_azure(
self, messages: str | list[dict[str, str]]
) -> list[dict[str, str]]:
"""Format messages for Azure AI Inference API.
Args:
messages: Input messages
Returns:
List of dict objects
"""
# Use base class formatting first
base_formatted = super()._format_messages(messages)
azure_messages = []
for message in base_formatted:
role = message.get("role")
content = message.get("content", "")
if role == "system":
azure_messages.append(dict(content=content))
elif role == "user":
azure_messages.append(dict(content=content))
elif role == "assistant":
azure_messages.append(dict(content=content))
else:
# Default to user message for unknown roles
azure_messages.append(dict(content=content))
return azure_messages
def _handle_completion(
self,
params: dict[str, Any],
available_functions: dict[str, Any] | None = None,
from_task: Any | None = None,
from_agent: Any | None = None,
) -> str | Any:
"""Handle non-streaming chat completion."""
# Make API call
try:
response: ChatCompletions = self.client.complete(**params)
if not response.choices:
raise ValueError("No choices returned from Azure API")
choice = response.choices[0]
message = choice.message
# Extract and track token usage
usage = self._extract_azure_token_usage(response)
self._track_token_usage_internal(usage)
# Handle tool calls
if message.tool_calls and available_functions:
tool_call = message.tool_calls[0] # Handle first tool call
if isinstance(tool_call, ChatCompletionsToolCall):
function_name = tool_call.function.name
try:
function_args = json.loads(tool_call.function.arguments)
except json.JSONDecodeError as e:
logging.error(f"Failed to parse tool arguments: {e}")
function_args = {}
# Execute tool
result = self._handle_tool_execution(
function_name=function_name,
function_args=function_args,
available_functions=available_functions,
from_task=from_task,
from_agent=from_agent,
)
if result is not None:
return result
# Extract content
content = message.content or ""
# Apply stop words
content = self._apply_stop_words(content)
# Emit completion event and return content
self._emit_call_completed_event(
response=content,
call_type=LLMCallType.LLM_CALL,
from_task=from_task,
from_agent=from_agent,
messages=params["messages"],
)
except Exception as e:
if is_context_length_exceeded(e):
logging.error(f"Context window exceeded: {e}")
raise LLMContextLengthExceededError(str(e)) from e
return content
def _handle_streaming_completion(
self,
params: dict[str, Any],
available_functions: dict[str, Any] | None = None,
from_task: Any | None = None,
from_agent: Any | None = None,
) -> str:
"""Handle streaming chat completion."""
full_response = ""
tool_calls = {}
# Make streaming API call
for update in self.client.complete(**params):
if isinstance(update, StreamingChatCompletionsUpdate):
if update.choices:
choice = update.choices[0]
if choice.delta and choice.delta.content:
content_delta = choice.delta.content
full_response += content_delta
self._emit_stream_chunk_event(
chunk=content_delta,
from_task=from_task,
from_agent=from_agent,
)
# Handle tool call streaming
if choice.delta and choice.delta.tool_calls:
for tool_call in choice.delta.tool_calls:
call_id = tool_call.id or "default"
if call_id not in tool_calls:
tool_calls[call_id] = {
"name": "",
"arguments": "",
}
if tool_call.function and tool_call.function.name:
tool_calls[call_id]["name"] = tool_call.function.name
if tool_call.function and tool_call.function.arguments:
tool_calls[call_id]["arguments"] += (
tool_call.function.arguments
)
# Handle completed tool calls
if tool_calls and available_functions:
for call_data in tool_calls.values():
function_name = call_data["name"]
try:
function_args = json.loads(call_data["arguments"])
except json.JSONDecodeError as e:
logging.error(f"Failed to parse streamed tool arguments: {e}")
continue
# Execute tool
result = self._handle_tool_execution(
function_name=function_name,
function_args=function_args,
available_functions=available_functions,
from_task=from_task,
from_agent=from_agent,
)
if result is not None:
return result
# Apply stop words to full response
full_response = self._apply_stop_words(full_response)
# Emit completion event and return full response
self._emit_call_completed_event(
response=full_response,
call_type=LLMCallType.LLM_CALL,
from_task=from_task,
from_agent=from_agent,
messages=params["messages"],
)
return full_response
def supports_function_calling(self) -> bool:
"""Check if the model supports function calling."""
# Azure OpenAI models support function calling
return self.is_openai_model
def supports_stop_words(self) -> bool:
"""Check if the model supports stop words."""
return True # Most Azure models support stop sequences
def get_context_window_size(self) -> int:
"""Get the context window size for the model."""
from crewai.llm import CONTEXT_WINDOW_USAGE_RATIO, LLM_CONTEXT_WINDOW_SIZES
min_context = 1024
max_context = 2097152
for key, value in LLM_CONTEXT_WINDOW_SIZES.items():
if value < min_context or value > max_context:
raise ValueError(
f"Context window for {key} must be between {min_context} and {max_context}"
)
# Context window sizes for common Azure models
context_windows = {
"gpt-4": 8192,
"gpt-4o": 128000,
"gpt-4o-mini": 200000,
"gpt-4-turbo": 128000,
"gpt-35-turbo": 16385,
"gpt-3.5-turbo": 16385,
"text-embedding": 8191,
}
# Find the best match for the model name
for model_prefix, size in context_windows.items():
if self.model.startswith(model_prefix):
return int(size * CONTEXT_WINDOW_USAGE_RATIO)
# Default context window size
return int(8192 * CONTEXT_WINDOW_USAGE_RATIO)
def _extract_azure_token_usage(self, response: ChatCompletions) -> dict[str, Any]:
"""Extract token usage from Azure response."""
if hasattr(response, "usage") and response.usage:
usage = response.usage
return {
"prompt_tokens": getattr(usage, "prompt_tokens", 0),
"completion_tokens": getattr(usage, "completion_tokens", 0),
"total_tokens": getattr(usage, "total_tokens", 0),
}
return {"total_tokens": 0}

View File

@@ -0,0 +1,497 @@
import logging
import os
from typing import Any
from crewai.events.types.llm_events import LLMCallType
from crewai.llms.base_llm import BaseLLM
from crewai.utilities.agent_utils import is_context_length_exceeded
from crewai.utilities.exceptions.context_window_exceeding_exception import (
LLMContextLengthExceededError,
)
try:
from google import genai # type: ignore
from google.genai import types # type: ignore
from google.genai.errors import APIError # type: ignore
except ImportError:
raise ImportError(
"Google Gen AI native provider not available, to install: `uv add google-genai`"
) from None
class GeminiCompletion(BaseLLM):
"""Google Gemini native completion implementation.
This class provides direct integration with the Google Gen AI Python SDK,
offering native function calling, streaming support, and proper Gemini formatting.
"""
def __init__(
self,
model: str = "gemini-2.0-flash-001",
api_key: str | None = None,
project: str | None = None,
location: str | None = None,
temperature: float | None = None,
top_p: float | None = None,
top_k: int | None = None,
max_output_tokens: int | None = None,
stop_sequences: list[str] | None = None,
stream: bool = False,
safety_settings: dict[str, Any] | None = None,
**kwargs,
):
"""Initialize Google Gemini chat completion client.
Args:
model: Gemini model name (e.g., 'gemini-2.0-flash-001', 'gemini-1.5-pro')
api_key: Google API key (defaults to GOOGLE_API_KEY or GEMINI_API_KEY env var)
project: Google Cloud project ID (for Vertex AI)
location: Google Cloud location (for Vertex AI, defaults to 'us-central1')
temperature: Sampling temperature (0-2)
top_p: Nucleus sampling parameter
top_k: Top-k sampling parameter
max_output_tokens: Maximum tokens in response
stop_sequences: Stop sequences
stream: Enable streaming responses
safety_settings: Safety filter settings
**kwargs: Additional parameters
"""
super().__init__(
model=model, temperature=temperature, stop=stop_sequences or [], **kwargs
)
# Get API configuration
self.api_key = (
api_key or os.getenv("GOOGLE_API_KEY") or os.getenv("GEMINI_API_KEY")
)
self.project = project or os.getenv("GOOGLE_CLOUD_PROJECT")
self.location = location or os.getenv("GOOGLE_CLOUD_LOCATION") or "us-central1"
# Initialize client based on available configuration
if self.project:
# Use Vertex AI
self.client = genai.Client(
vertexai=True,
project=self.project,
location=self.location,
)
elif self.api_key:
# Use Gemini Developer API
self.client = genai.Client(api_key=self.api_key)
else:
raise ValueError(
"Either GOOGLE_API_KEY/GEMINI_API_KEY (for Gemini API) or "
"GOOGLE_CLOUD_PROJECT (for Vertex AI) must be set"
)
# Store completion parameters
self.top_p = top_p
self.top_k = top_k
self.max_output_tokens = max_output_tokens
self.stream = stream
self.safety_settings = safety_settings or {}
self.stop_sequences = stop_sequences or []
# Model-specific settings
self.is_gemini_2 = "gemini-2" in model.lower()
self.is_gemini_1_5 = "gemini-1.5" in model.lower()
self.supports_tools = self.is_gemini_1_5 or self.is_gemini_2
def call(
self,
messages: str | list[dict[str, str]],
tools: list[dict] | None = None,
callbacks: list[Any] | None = None,
available_functions: dict[str, Any] | None = None,
from_task: Any | None = None,
from_agent: Any | None = None,
) -> str | Any:
"""Call Google Gemini generate content API.
Args:
messages: Input messages for the chat completion
tools: List of tool/function definitions
callbacks: Callback functions (not used as token counts are handled by the reponse)
available_functions: Available functions for tool calling
from_task: Task that initiated the call
from_agent: Agent that initiated the call
Returns:
Chat completion response or tool call result
"""
try:
self._emit_call_started_event(
messages=messages,
tools=tools,
callbacks=callbacks,
available_functions=available_functions,
from_task=from_task,
from_agent=from_agent,
)
self.tools = tools
formatted_content, system_instruction = self._format_messages_for_gemini(
messages
)
config = self._prepare_generation_config(system_instruction, tools)
if self.stream:
return self._handle_streaming_completion(
formatted_content,
config,
available_functions,
from_task,
from_agent,
)
return self._handle_completion(
formatted_content,
system_instruction,
config,
available_functions,
from_task,
from_agent,
)
except APIError as e:
error_msg = f"Google Gemini API error: {e.code} - {e.message}"
logging.error(error_msg)
self._emit_call_failed_event(
error=error_msg, from_task=from_task, from_agent=from_agent
)
raise
except Exception as e:
error_msg = f"Google Gemini API call failed: {e!s}"
logging.error(error_msg)
self._emit_call_failed_event(
error=error_msg, from_task=from_task, from_agent=from_agent
)
raise
def _prepare_generation_config(
self,
system_instruction: str | None = None,
tools: list[dict] | None = None,
) -> types.GenerateContentConfig:
"""Prepare generation config for Google Gemini API.
Args:
system_instruction: System instruction for the model
tools: Tool definitions
Returns:
GenerateContentConfig object for Gemini API
"""
self.tools = tools
config_params = {}
# Add system instruction if present
if system_instruction:
# Convert system instruction to Content format
system_content = types.Content(
role="user", parts=[types.Part.from_text(text=system_instruction)]
)
config_params["system_instruction"] = system_content
# Add generation config parameters
if self.temperature is not None:
config_params["temperature"] = self.temperature
if self.top_p is not None:
config_params["top_p"] = self.top_p
if self.top_k is not None:
config_params["top_k"] = self.top_k
if self.max_output_tokens is not None:
config_params["max_output_tokens"] = self.max_output_tokens
if self.stop_sequences:
config_params["stop_sequences"] = self.stop_sequences
# Handle tools for supported models
if tools and self.supports_tools:
config_params["tools"] = self._convert_tools_for_interference(tools)
if self.safety_settings:
config_params["safety_settings"] = self.safety_settings
return types.GenerateContentConfig(**config_params)
def _convert_tools_for_interference(self, tools: list[dict]) -> list[types.Tool]:
"""Convert CrewAI tool format to Gemini function declaration format."""
gemini_tools = []
from crewai.llms.providers.utils.common import safe_tool_conversion
for tool in tools:
name, description, parameters = safe_tool_conversion(tool, "Gemini")
function_declaration = types.FunctionDeclaration(
name=name,
description=description,
)
# Add parameters if present - ensure parameters is a dict
if parameters and isinstance(parameters, dict):
function_declaration.parameters = parameters
gemini_tool = types.Tool(function_declarations=[function_declaration])
gemini_tools.append(gemini_tool)
return gemini_tools
def _format_messages_for_gemini(
self, messages: str | list[dict[str, str]]
) -> tuple[list[types.Content], str | None]:
"""Format messages for Gemini API.
Gemini has specific requirements:
- System messages are separate system_instruction
- Content is organized as Content objects with Parts
- Roles are 'user' and 'model' (not 'assistant')
Args:
messages: Input messages
Returns:
Tuple of (formatted_contents, system_instruction)
"""
# Use base class formatting first
base_formatted = super()._format_messages(messages)
contents = []
system_instruction = None
for message in base_formatted:
role = message.get("role")
content = message.get("content", "")
if role == "system":
# Extract system instruction - Gemini handles it separately
if system_instruction:
system_instruction += f"\n\n{content}"
else:
system_instruction = content
else:
# Convert role for Gemini (assistant -> model)
gemini_role = "model" if role == "assistant" else "user"
# Create Content object
gemini_content = types.Content(
role=gemini_role, parts=[types.Part.from_text(text=content)]
)
contents.append(gemini_content)
return contents, system_instruction
def _handle_completion(
self,
contents: list[types.Content],
system_instruction: str | None,
config: types.GenerateContentConfig,
available_functions: dict[str, Any] | None = None,
from_task: Any | None = None,
from_agent: Any | None = None,
) -> str | Any:
"""Handle non-streaming content generation."""
api_params = {
"model": self.model,
"contents": contents,
"config": config,
}
try:
response = self.client.models.generate_content(**api_params)
usage = self._extract_token_usage(response)
except Exception as e:
if is_context_length_exceeded(e):
logging.error(f"Context window exceeded: {e}")
raise LLMContextLengthExceededError(str(e)) from e
raise e from e
self._track_token_usage_internal(usage)
if response.candidates and (self.tools or available_functions):
candidate = response.candidates[0]
if candidate.content and candidate.content.parts:
for part in candidate.content.parts:
if hasattr(part, "function_call") and part.function_call:
function_name = part.function_call.name
function_args = (
dict(part.function_call.args)
if part.function_call.args
else {}
)
result = self._handle_tool_execution(
function_name=function_name,
function_args=function_args,
available_functions=available_functions, # type: ignore
from_task=from_task,
from_agent=from_agent,
)
if result is not None:
return result
content = response.text if hasattr(response, "text") else ""
content = self._apply_stop_words(content)
messages_for_event = self._convert_contents_to_dict(contents)
self._emit_call_completed_event(
response=content,
call_type=LLMCallType.LLM_CALL,
from_task=from_task,
from_agent=from_agent,
messages=messages_for_event,
)
return content
def _handle_streaming_completion(
self,
contents: list[types.Content],
config: types.GenerateContentConfig,
available_functions: dict[str, Any] | None = None,
from_task: Any | None = None,
from_agent: Any | None = None,
) -> str:
"""Handle streaming content generation."""
full_response = ""
function_calls = {}
api_params = {
"model": self.model,
"contents": contents,
"config": config,
}
for chunk in self.client.models.generate_content_stream(**api_params):
if hasattr(chunk, "text") and chunk.text:
full_response += chunk.text
self._emit_stream_chunk_event(
chunk=chunk.text,
from_task=from_task,
from_agent=from_agent,
)
if hasattr(chunk, "candidates") and chunk.candidates:
candidate = chunk.candidates[0]
if candidate.content and candidate.content.parts:
for part in candidate.content.parts:
if hasattr(part, "function_call") and part.function_call:
call_id = part.function_call.name or "default"
if call_id not in function_calls:
function_calls[call_id] = {
"name": part.function_call.name,
"args": dict(part.function_call.args)
if part.function_call.args
else {},
}
# Handle completed function calls
if function_calls and available_functions:
for call_data in function_calls.values():
function_name = call_data["name"]
function_args = call_data["args"]
# Execute tool
result = self._handle_tool_execution(
function_name=function_name,
function_args=function_args,
available_functions=available_functions,
from_task=from_task,
from_agent=from_agent,
)
if result is not None:
return result
messages_for_event = self._convert_contents_to_dict(contents)
self._emit_call_completed_event(
response=full_response,
call_type=LLMCallType.LLM_CALL,
from_task=from_task,
from_agent=from_agent,
messages=messages_for_event,
)
return full_response
def supports_function_calling(self) -> bool:
"""Check if the model supports function calling."""
return self.supports_tools
def supports_stop_words(self) -> bool:
"""Check if the model supports stop words."""
return self._supports_stop_words_implementation()
def get_context_window_size(self) -> int:
"""Get the context window size for the model."""
from crewai.llm import CONTEXT_WINDOW_USAGE_RATIO, LLM_CONTEXT_WINDOW_SIZES
min_context = 1024
max_context = 2097152
for key, value in LLM_CONTEXT_WINDOW_SIZES.items():
if value < min_context or value > max_context:
raise ValueError(
f"Context window for {key} must be between {min_context} and {max_context}"
)
context_windows = {
"gemini-2.0-flash": 1048576, # 1M tokens
"gemini-2.0-flash-thinking": 32768,
"gemini-2.0-flash-lite": 1048576,
"gemini-2.5-flash": 1048576,
"gemini-2.5-pro": 1048576,
"gemini-1.5-pro": 2097152, # 2M tokens
"gemini-1.5-flash": 1048576,
"gemini-1.5-flash-8b": 1048576,
"gemini-1.0-pro": 32768,
"gemma-3-1b": 32000,
"gemma-3-4b": 128000,
"gemma-3-12b": 128000,
"gemma-3-27b": 128000,
}
# Find the best match for the model name
for model_prefix, size in context_windows.items():
if self.model.startswith(model_prefix):
return int(size * CONTEXT_WINDOW_USAGE_RATIO)
# Default context window size for Gemini models
return int(1048576 * CONTEXT_WINDOW_USAGE_RATIO) # 1M tokens
def _extract_token_usage(self, response: dict[str, Any]) -> dict[str, Any]:
"""Extract token usage from Gemini response."""
if hasattr(response, "usage_metadata"):
usage = response.usage_metadata
return {
"prompt_token_count": getattr(usage, "prompt_token_count", 0),
"candidates_token_count": getattr(usage, "candidates_token_count", 0),
"total_token_count": getattr(usage, "total_token_count", 0),
"total_tokens": getattr(usage, "total_token_count", 0),
}
return {"total_tokens": 0}
def _convert_contents_to_dict(
self, contents: list[types.Content]
) -> list[dict[str, str]]:
"""Convert contents to dict format."""
return [
{
"role": "assistant"
if content_obj.role == "model"
else content_obj.role,
"content": " ".join(
part.text
for part in content_obj.parts
if hasattr(part, "text") and part.text
),
}
for content_obj in contents
]

View File

@@ -0,0 +1,484 @@
from collections.abc import Iterator
import json
import logging
import os
from typing import Any
from crewai.events.types.llm_events import LLMCallType
from crewai.llms.base_llm import BaseLLM
from crewai.utilities.agent_utils import is_context_length_exceeded
from crewai.utilities.exceptions.context_window_exceeding_exception import (
LLMContextLengthExceededError,
)
from openai import OpenAI
from openai.types.chat import ChatCompletion, ChatCompletionChunk
from openai.types.chat.chat_completion import Choice
from openai.types.chat.chat_completion_chunk import ChoiceDelta
from pydantic import BaseModel
class OpenAICompletion(BaseLLM):
"""OpenAI native completion implementation.
This class provides direct integration with the OpenAI Python SDK,
offering native structured outputs, function calling, and streaming support.
"""
def __init__(
self,
model: str = "gpt-4o",
api_key: str | None = None,
base_url: str | None = None,
organization: str | None = None,
project: str | None = None,
timeout: float | None = None,
max_retries: int = 2,
temperature: float | None = None,
top_p: float | None = None,
frequency_penalty: float | None = None,
presence_penalty: float | None = None,
max_tokens: int | None = None,
max_completion_tokens: int | None = None,
seed: int | None = None,
stream: bool = False,
response_format: dict[str, Any] | type[BaseModel] | None = None,
logprobs: bool | None = None,
top_logprobs: int | None = None,
reasoning_effort: str | None = None, # For o1 models
provider: str | None = None, # Add provider parameter
**kwargs,
):
"""Initialize OpenAI chat completion client."""
if provider is None:
provider = kwargs.pop("provider", "openai")
super().__init__(
model=model,
temperature=temperature,
api_key=api_key or os.getenv("OPENAI_API_KEY"),
base_url=base_url,
timeout=timeout,
provider=provider,
**kwargs,
)
self.client = OpenAI(
api_key=api_key or os.getenv("OPENAI_API_KEY"),
base_url=base_url,
organization=organization,
project=project,
timeout=timeout,
max_retries=max_retries,
)
self.top_p = top_p
self.frequency_penalty = frequency_penalty
self.presence_penalty = presence_penalty
self.max_tokens = max_tokens
self.max_completion_tokens = max_completion_tokens
self.seed = seed
self.stream = stream
self.response_format = response_format
self.logprobs = logprobs
self.top_logprobs = top_logprobs
self.reasoning_effort = reasoning_effort
self.timeout = timeout
self.is_o1_model = "o1" in model.lower()
self.is_gpt4_model = "gpt-4" in model.lower()
def call(
self,
messages: str | list[dict[str, str]],
tools: list[dict] | None = None,
callbacks: list[Any] | None = None,
available_functions: dict[str, Any] | None = None,
from_task: Any | None = None,
from_agent: Any | None = None,
) -> str | Any:
"""Call OpenAI chat completion API.
Args:
messages: Input messages for the chat completion
tools: list of tool/function definitions
callbacks: Callback functions (not used in native implementation)
available_functions: Available functions for tool calling
from_task: Task that initiated the call
from_agent: Agent that initiated the call
Returns:
Chat completion response or tool call result
"""
try:
self._emit_call_started_event(
messages=messages,
tools=tools,
callbacks=callbacks,
available_functions=available_functions,
from_task=from_task,
from_agent=from_agent,
)
formatted_messages = self._format_messages(messages)
completion_params = self._prepare_completion_params(
formatted_messages, tools
)
if self.stream:
return self._handle_streaming_completion(
completion_params, available_functions, from_task, from_agent
)
return self._handle_completion(
completion_params, available_functions, from_task, from_agent
)
except Exception as e:
error_msg = f"OpenAI API call failed: {e!s}"
logging.error(error_msg)
self._emit_call_failed_event(
error=error_msg, from_task=from_task, from_agent=from_agent
)
raise
def _prepare_completion_params(
self, messages: list[dict[str, str]], tools: list[dict] | None = None
) -> dict[str, Any]:
"""Prepare parameters for OpenAI chat completion."""
params = {
"model": self.model,
"messages": messages,
"stream": self.stream,
}
params.update(self.additional_params)
if self.temperature is not None:
params["temperature"] = self.temperature
if self.top_p is not None:
params["top_p"] = self.top_p
if self.frequency_penalty is not None:
params["frequency_penalty"] = self.frequency_penalty
if self.presence_penalty is not None:
params["presence_penalty"] = self.presence_penalty
if self.max_completion_tokens is not None:
params["max_completion_tokens"] = self.max_completion_tokens
elif self.max_tokens is not None:
params["max_tokens"] = self.max_tokens
if self.seed is not None:
params["seed"] = self.seed
if self.logprobs is not None:
params["logprobs"] = self.logprobs
if self.top_logprobs is not None:
params["top_logprobs"] = self.top_logprobs
# Handle o1 model specific parameters
if self.is_o1_model and self.reasoning_effort:
params["reasoning_effort"] = self.reasoning_effort
# Handle response format for structured outputs
if self.response_format:
if isinstance(self.response_format, type) and issubclass(
self.response_format, BaseModel
):
# Convert Pydantic model to OpenAI response format
params["response_format"] = {
"type": "json_schema",
"json_schema": {
"name": self.response_format.__name__,
"schema": self.response_format.model_json_schema(),
},
}
else:
params["response_format"] = self.response_format
if tools:
params["tools"] = self._convert_tools_for_interference(tools)
params["tool_choice"] = "auto"
# Filter out CrewAI-specific parameters that shouldn't go to the API
crewai_specific_params = {
"callbacks",
"available_functions",
"from_task",
"from_agent",
"provider",
"api_key",
"base_url",
"timeout",
"max_retries",
}
return {k: v for k, v in params.items() if k not in crewai_specific_params}
def _convert_tools_for_interference(self, tools: list[dict]) -> list[dict]:
"""Convert CrewAI tool format to OpenAI function calling format."""
from crewai.llms.providers.utils.common import safe_tool_conversion
openai_tools = []
for tool in tools:
name, description, parameters = safe_tool_conversion(tool, "OpenAI")
openai_tool = {
"type": "function",
"function": {
"name": name,
"description": description,
},
}
if parameters:
if isinstance(parameters, dict):
openai_tool["function"]["parameters"] = parameters # type: ignore
else:
openai_tool["function"]["parameters"] = dict(parameters)
openai_tools.append(openai_tool)
return openai_tools
def _handle_completion(
self,
params: dict[str, Any],
available_functions: dict[str, Any] | None = None,
from_task: Any | None = None,
from_agent: Any | None = None,
) -> str | Any:
"""Handle non-streaming chat completion."""
try:
response: ChatCompletion = self.client.chat.completions.create(**params)
usage = self._extract_openai_token_usage(response)
self._track_token_usage_internal(usage)
choice: Choice = response.choices[0]
message = choice.message
if message.tool_calls and available_functions:
tool_call = message.tool_calls[0]
function_name = tool_call.function.name
try:
function_args = json.loads(tool_call.function.arguments)
except json.JSONDecodeError as e:
logging.error(f"Failed to parse tool arguments: {e}")
function_args = {}
result = self._handle_tool_execution(
function_name=function_name,
function_args=function_args,
available_functions=available_functions,
from_task=from_task,
from_agent=from_agent,
)
if result is not None:
return result
content = message.content or ""
content = self._apply_stop_words(content)
if self.response_format and isinstance(self.response_format, type):
try:
structured_result = self._validate_structured_output(
content, self.response_format
)
self._emit_call_completed_event(
response=structured_result,
call_type=LLMCallType.LLM_CALL,
from_task=from_task,
from_agent=from_agent,
messages=params["messages"],
)
return structured_result
except ValueError as e:
logging.warning(f"Structured output validation failed: {e}")
self._emit_call_completed_event(
response=content,
call_type=LLMCallType.LLM_CALL,
from_task=from_task,
from_agent=from_agent,
messages=params["messages"],
)
if usage.get("total_tokens", 0) > 0:
logging.info(f"OpenAI API usage: {usage}")
except Exception as e:
if is_context_length_exceeded(e):
logging.error(f"Context window exceeded: {e}")
raise LLMContextLengthExceededError(str(e)) from e
raise e from e
return content
def _handle_streaming_completion(
self,
params: dict[str, Any],
available_functions: dict[str, Any] | None = None,
from_task: Any | None = None,
from_agent: Any | None = None,
) -> str:
"""Handle streaming chat completion."""
full_response = ""
tool_calls = {}
# Make streaming API call
stream: Iterator[ChatCompletionChunk] = self.client.chat.completions.create(
**params
)
for chunk in stream:
if not chunk.choices:
continue
choice = chunk.choices[0]
delta: ChoiceDelta = choice.delta
# Handle content streaming
if delta.content:
full_response += delta.content
self._emit_stream_chunk_event(
chunk=delta.content,
from_task=from_task,
from_agent=from_agent,
)
# Handle tool call streaming
if delta.tool_calls:
for tool_call in delta.tool_calls:
call_id = tool_call.id or "default"
if call_id not in tool_calls:
tool_calls[call_id] = {
"name": "",
"arguments": "",
}
if tool_call.function and tool_call.function.name:
tool_calls[call_id]["name"] = tool_call.function.name
if tool_call.function and tool_call.function.arguments:
tool_calls[call_id]["arguments"] += tool_call.function.arguments
if tool_calls and available_functions:
for call_data in tool_calls.values():
function_name = call_data["name"]
arguments = call_data["arguments"]
# Skip if function name is empty or arguments are empty
if not function_name or not arguments:
continue
# Check if function exists in available functions
if function_name not in available_functions:
logging.warning(
f"Function '{function_name}' not found in available functions"
)
continue
try:
function_args = json.loads(arguments)
except json.JSONDecodeError as e:
logging.error(f"Failed to parse streamed tool arguments: {e}")
continue
result = self._handle_tool_execution(
function_name=function_name,
function_args=function_args,
available_functions=available_functions,
from_task=from_task,
from_agent=from_agent,
)
if result is not None:
return result
# Apply stop words to full response
full_response = self._apply_stop_words(full_response)
# Emit completion event and return full response
self._emit_call_completed_event(
response=full_response,
call_type=LLMCallType.LLM_CALL,
from_task=from_task,
from_agent=from_agent,
messages=params["messages"],
)
return full_response
def supports_function_calling(self) -> bool:
"""Check if the model supports function calling."""
return not self.is_o1_model
def supports_stop_words(self) -> bool:
"""Check if the model supports stop words."""
return not self.is_o1_model
def get_context_window_size(self) -> int:
"""Get the context window size for the model."""
from crewai.llm import CONTEXT_WINDOW_USAGE_RATIO, LLM_CONTEXT_WINDOW_SIZES
min_context = 1024
max_context = 2097152
for key, value in LLM_CONTEXT_WINDOW_SIZES.items():
if value < min_context or value > max_context:
raise ValueError(
f"Context window for {key} must be between {min_context} and {max_context}"
)
# Context window sizes for OpenAI models
context_windows = {
"gpt-4": 8192,
"gpt-4o": 128000,
"gpt-4o-mini": 200000,
"gpt-4-turbo": 128000,
"gpt-4.1": 1047576,
"gpt-4.1-mini-2025-04-14": 1047576,
"gpt-4.1-nano-2025-04-14": 1047576,
"o1-preview": 128000,
"o1-mini": 128000,
"o3-mini": 200000,
"o4-mini": 200000,
}
# Find the best match for the model name
for model_prefix, size in context_windows.items():
if self.model.startswith(model_prefix):
return int(size * CONTEXT_WINDOW_USAGE_RATIO)
# Default context window size
return int(8192 * CONTEXT_WINDOW_USAGE_RATIO)
def _extract_openai_token_usage(self, response: ChatCompletion) -> dict[str, Any]:
"""Extract token usage from OpenAI ChatCompletion response."""
if hasattr(response, "usage") and response.usage:
usage = response.usage
return {
"prompt_tokens": getattr(usage, "prompt_tokens", 0),
"completion_tokens": getattr(usage, "completion_tokens", 0),
"total_tokens": getattr(usage, "total_tokens", 0),
}
return {"total_tokens": 0}
def _format_messages(
self, messages: str | list[dict[str, str]]
) -> list[dict[str, str]]:
"""Format messages for OpenAI API."""
# Use base class formatting first
base_formatted = super()._format_messages(messages)
# Apply OpenAI-specific formatting
formatted_messages = []
for message in base_formatted:
if self.is_o1_model and message.get("role") == "system":
formatted_messages.append(
{"role": "user", "content": f"System: {message['content']}"}
)
else:
formatted_messages.append(message)
return formatted_messages

View File

@@ -0,0 +1,136 @@
import logging
import re
from typing import Any
def validate_function_name(name: str, provider: str = "LLM") -> str:
"""Validate function name according to common LLM provider requirements.
Most LLM providers (OpenAI, Gemini, Anthropic) have similar requirements:
- Must start with letter or underscore
- Only alphanumeric, underscore, dot, colon, dash allowed
- Maximum length of 64 characters
- Cannot be empty
Args:
name: The function name to validate
provider: The provider name for error messages
Returns:
The validated function name (unchanged if valid)
Raises:
ValueError: If the function name is invalid
"""
if not name or not isinstance(name, str):
raise ValueError(f"{provider} function name cannot be empty")
if not (name[0].isalpha() or name[0] == "_"):
raise ValueError(
f"{provider} function name '{name}' must start with a letter or underscore"
)
if len(name) > 64:
raise ValueError(
f"{provider} function name '{name}' exceeds 64 character limit"
)
# Check for invalid characters (most providers support these)
if not re.match(r"^[a-zA-Z_][a-zA-Z0-9_.\-:]*$", name):
raise ValueError(
f"{provider} function name '{name}' contains invalid characters. "
f"Only letters, numbers, underscore, dot, colon, dash allowed"
)
return name
def extract_tool_info(tool: dict[str, Any]) -> tuple[str, str, dict[str, Any]]:
"""Extract tool information from various schema formats.
Handles both OpenAI/standard format and direct format:
- OpenAI format: {"type": "function", "function": {"name": "...", ...}}
- Direct format: {"name": "...", "description": "...", ...}
Args:
tool: Tool dictionary in any supported format
Returns:
Tuple of (name, description, parameters)
Raises:
ValueError: If tool format is invalid
"""
if not isinstance(tool, dict):
raise ValueError("Tool must be a dictionary")
# Handle nested function schema format (OpenAI/standard)
if "function" in tool:
function_info = tool["function"]
if not isinstance(function_info, dict):
raise ValueError("Tool function must be a dictionary")
name = function_info.get("name", "")
description = function_info.get("description", "")
parameters = function_info.get("parameters", {})
else:
# Direct format
name = tool.get("name", "")
description = tool.get("description", "")
parameters = tool.get("parameters", {})
# Also check for args_schema (Pydantic format)
if not parameters and "args_schema" in tool:
if hasattr(tool["args_schema"], "model_json_schema"):
parameters = tool["args_schema"].model_json_schema()
return name, description, parameters
def log_tool_conversion(tool: dict[str, Any], provider: str) -> None:
"""Log tool conversion for debugging.
Args:
tool: The tool being converted
provider: The provider name
"""
try:
name, description, parameters = extract_tool_info(tool)
logging.debug(
f"{provider}: Converting tool '{name}' (desc: {description[:50]}...)"
)
logging.debug(f"{provider}: Tool parameters: {parameters}")
except Exception as e:
logging.error(f"{provider}: Error extracting tool info: {e}")
logging.error(f"{provider}: Tool structure: {tool}")
def safe_tool_conversion(
tool: dict[str, Any], provider: str
) -> tuple[str, str, dict[str, Any]]:
"""Safely extract and validate tool information.
Combines extraction, validation, and logging for robust tool conversion.
Args:
tool: Tool dictionary to convert
provider: Provider name for error messages and logging
Returns:
Tuple of (validated_name, description, parameters)
Raises:
ValueError: If tool is invalid or name validation fails
"""
try:
log_tool_conversion(tool, provider)
name, description, parameters = extract_tool_info(tool)
validated_name = validate_function_name(name, provider)
logging.info(f"{provider}: Successfully validated tool '{validated_name}'")
return validated_name, description, parameters
except Exception as e:
logging.error(f"{provider}: Error converting tool: {e}")
raise

View File

@@ -1,10 +1,10 @@
import ast
import datetime
import json
import time
from difflib import SequenceMatcher
import json
from json import JSONDecodeError
from textwrap import dedent
import time
from typing import TYPE_CHECKING, Any, Union
import json5
@@ -29,6 +29,7 @@ from crewai.utilities.agent_utils import (
render_text_description_and_args,
)
if TYPE_CHECKING:
from crewai.agents.agent_builder.base_agent import BaseAgent
from crewai.lite_agent import LiteAgent
@@ -587,7 +588,23 @@ class ToolUsage:
e: Exception,
) -> None:
event_data = self._prepare_event_data(tool, tool_calling)
crewai_event_bus.emit(self, ToolUsageErrorEvent(**{**event_data, "error": e}))
event_data.update(
{
"task_id": str(self.task.id) if self.task else None,
"task_name": self.task.name or self.task.description
if self.task
else None,
}
)
crewai_event_bus.emit(
self,
ToolUsageErrorEvent(
**{
**event_data,
"error": e,
}
),
)
def on_tool_use_finished(
self,

View File

@@ -1,8 +1,8 @@
from __future__ import annotations
from collections.abc import Callable, Sequence
import json
import re
from collections.abc import Callable, Sequence
from typing import TYPE_CHECKING, Any, Final, Literal, TypedDict
from rich.console import Console
@@ -15,7 +15,6 @@ from crewai.agents.parser import (
parse,
)
from crewai.cli.config import Settings
from crewai.llm import LLM
from crewai.llms.base_llm import BaseLLM
from crewai.tools import BaseTool as CrewAITool
from crewai.tools.base_tool import BaseTool
@@ -29,11 +28,14 @@ from crewai.utilities.i18n import I18N
from crewai.utilities.printer import ColoredText, Printer
from crewai.utilities.types import LLMMessage
if TYPE_CHECKING:
from crewai.agent import Agent
from crewai.llm import LLM
from crewai.task import Task
class SummaryContent(TypedDict):
"""Structure for summary content entries.
@@ -392,8 +394,10 @@ def is_context_length_exceeded(exception: Exception) -> bool:
Returns:
bool: True if the exception is due to context length exceeding
"""
return LLMContextLengthExceededError(str(exception))._is_context_limit_error(
str(exception)
return (
LLMContextLengthExceededError(str(exception))
._is_context_limit_error(str(exception))
._is_context_limit_error(str(exception))
)

View File

@@ -6,6 +6,7 @@ from crewai.cli.constants import DEFAULT_LLM_MODEL, ENV_VARS, LITELLM_PARAMS
from crewai.llm import LLM
from crewai.llms.base_llm import BaseLLM
logger = logging.getLogger(__name__)
@@ -42,7 +43,7 @@ def create_llm(
or str(llm_value)
)
temperature: float | None = getattr(llm_value, "temperature", None)
max_tokens: int | None = getattr(llm_value, "max_tokens", None)
max_tokens: float | int | None = getattr(llm_value, "max_tokens", None)
logprobs: int | None = getattr(llm_value, "logprobs", None)
timeout: float | None = getattr(llm_value, "timeout", None)
api_key: str | None = getattr(llm_value, "api_key", None)
@@ -59,6 +60,7 @@ def create_llm(
base_url=base_url,
api_base=api_base,
)
except Exception as e:
logger.debug(f"Error instantiating LLM from unknown object type: {e}")
return None
@@ -117,6 +119,7 @@ def _llm_via_environment_or_fallback() -> LLM | None:
elif api_base and not base_url:
base_url = api_base
# Initialize llm_params dictionary
llm_params: dict[str, Any] = {
"model": model,
"temperature": temperature,
@@ -140,6 +143,11 @@ def _llm_via_environment_or_fallback() -> LLM | None:
"callbacks": callbacks,
}
unaccepted_attributes = [
"AWS_ACCESS_KEY_ID",
"AWS_SECRET_ACCESS_KEY",
"AWS_REGION_NAME",
]
set_provider = model_name.partition("/")[0] if "/" in model_name else "openai"
if set_provider in ENV_VARS:
@@ -147,7 +155,7 @@ def _llm_via_environment_or_fallback() -> LLM | None:
if isinstance(env_vars_for_provider, (list, tuple)):
for env_var in env_vars_for_provider:
key_name = env_var.get("key_name")
if key_name and key_name not in UNACCEPTED_ATTRIBUTES:
if key_name and key_name not in unaccepted_attributes:
env_value = os.environ.get(key_name)
if env_value:
# Map environment variable names to recognized parameters

View File

@@ -102,21 +102,18 @@ class AgentReasoning:
try:
output = self.__handle_agent_reasoning()
# Emit reasoning completed event
try:
crewai_event_bus.emit(
self.agent,
AgentReasoningCompletedEvent(
agent_role=self.agent.role,
task_id=str(self.task.id),
plan=output.plan.plan,
ready=output.plan.ready,
attempt=1,
from_task=self.task,
),
)
except Exception: # noqa: S110
pass
crewai_event_bus.emit(
self.agent,
AgentReasoningCompletedEvent(
agent_role=self.agent.role,
task_id=str(self.task.id),
plan=output.plan.plan,
ready=output.plan.ready,
attempt=1,
from_task=self.task,
from_agent=self.agent,
),
)
return output
except Exception as e:
@@ -130,10 +127,11 @@ class AgentReasoning:
error=str(e),
attempt=1,
from_task=self.task,
from_agent=self.agent,
),
)
except Exception: # noqa: S110
pass
except Exception as e:
logging.error(f"Error emitting reasoning failed event: {e}")
raise

View File

@@ -4,10 +4,24 @@ This module provides a callback handler that tracks token usage
for LLM API calls through the litellm library.
"""
from typing import Any
from typing import TYPE_CHECKING, Any
if TYPE_CHECKING:
from litellm.integrations.custom_logger import CustomLogger
from litellm.types.utils import Usage
else:
try:
from litellm.integrations.custom_logger import CustomLogger
from litellm.types.utils import Usage
except ImportError:
class CustomLogger:
"""Fallback CustomLogger when litellm is not available."""
class Usage:
"""Fallback Usage when litellm is not available."""
from litellm.integrations.custom_logger import CustomLogger
from litellm.types.utils import Usage
from crewai.agents.agent_builder.utilities.base_token_process import TokenProcess
from crewai.utilities.logger_utils import suppress_warnings

View File

@@ -1,14 +1,9 @@
"""Test Agent creation and execution basic functionality."""
# ruff: noqa: S106
import os
from unittest import mock
from unittest.mock import MagicMock, patch
import pytest
from crewai import Agent, Crew, Task
from crewai.agents.cache import CacheHandler
from crewai.agents.crew_agent_executor import AgentFinish, CrewAgentExecutor
from crewai.events.event_bus import crewai_event_bus
from crewai.events.types.tool_usage_events import ToolUsageFinishedEvent
@@ -17,12 +12,17 @@ from crewai.knowledge.knowledge_config import KnowledgeConfig
from crewai.knowledge.source.base_knowledge_source import BaseKnowledgeSource
from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource
from crewai.llm import LLM
from crewai.llms.base_llm import BaseLLM
from crewai.process import Process
from crewai.tools import tool
from crewai.tools.tool_calling import InstructorToolCalling
from crewai.tools.tool_usage import ToolUsage
from crewai.utilities import RPMController
from crewai.utilities.errors import AgentRepositoryError
import pytest
from crewai import Agent, Crew, Task
from crewai.agents.cache import CacheHandler
from crewai.tools import tool
from crewai.utilities import RPMController
def test_agent_llm_creation_with_env_vars():
@@ -40,7 +40,7 @@ def test_agent_llm_creation_with_env_vars():
agent = Agent(role="test role", goal="test goal", backstory="test backstory")
# Check if LLM is created correctly
assert isinstance(agent.llm, LLM)
assert isinstance(agent.llm, BaseLLM)
assert agent.llm.model == "gpt-4-turbo"
assert agent.llm.api_key == "test_api_key"
assert agent.llm.base_url == "https://test-api-base.com"
@@ -50,11 +50,18 @@ def test_agent_llm_creation_with_env_vars():
del os.environ["OPENAI_API_BASE"]
del os.environ["OPENAI_MODEL_NAME"]
if original_api_key:
os.environ["OPENAI_API_KEY"] = original_api_key
if original_api_base:
os.environ["OPENAI_API_BASE"] = original_api_base
if original_model_name:
os.environ["OPENAI_MODEL_NAME"] = original_model_name
# Create an agent without specifying LLM
agent = Agent(role="test role", goal="test goal", backstory="test backstory")
# Check if LLM is created correctly
assert isinstance(agent.llm, LLM)
assert isinstance(agent.llm, BaseLLM)
assert agent.llm.model != "gpt-4-turbo"
assert agent.llm.api_key != "test_api_key"
assert agent.llm.base_url != "https://test-api-base.com"
@@ -456,18 +463,30 @@ def test_agent_custom_max_iterations():
allow_delegation=False,
)
with patch.object(
LLM, "call", wraps=LLM("gpt-4o", stop=["\nObservation:"]).call
) as private_mock:
task = Task(
description="The final answer is 42. But don't give it yet, instead keep using the `get_final_answer` tool.",
expected_output="The final answer",
)
agent.execute_task(
task=task,
tools=[get_final_answer],
)
assert private_mock.call_count == 3
original_call = agent.llm.call
call_count = 0
def counting_call(*args, **kwargs):
nonlocal call_count
call_count += 1
return original_call(*args, **kwargs)
agent.llm.call = counting_call
task = Task(
description="The final answer is 42. But don't give it yet, instead keep using the `get_final_answer` tool.",
expected_output="The final answer",
)
result = agent.execute_task(
task=task,
tools=[get_final_answer],
)
assert result is not None
assert isinstance(result, str)
assert len(result) > 0
assert call_count > 0
assert call_count == 3
@pytest.mark.vcr(filter_headers=["authorization"])
@@ -888,9 +907,8 @@ def test_agent_function_calling_llm():
crew = Crew(agents=[agent1], tasks=tasks)
from unittest.mock import patch
import instructor
from crewai.tools.tool_usage import ToolUsage
import instructor
with (
patch.object(
@@ -1413,7 +1431,7 @@ def test_agent_with_llm():
llm=LLM(model="gpt-3.5-turbo", temperature=0.7),
)
assert isinstance(agent.llm, LLM)
assert isinstance(agent.llm, BaseLLM)
assert agent.llm.model == "gpt-3.5-turbo"
assert agent.llm.temperature == 0.7
@@ -1427,7 +1445,7 @@ def test_agent_with_custom_stop_words():
llm=LLM(model="gpt-3.5-turbo", stop=stop_words),
)
assert isinstance(agent.llm, LLM)
assert isinstance(agent.llm, BaseLLM)
assert set(agent.llm.stop) == set([*stop_words, "\nObservation:"])
assert all(word in agent.llm.stop for word in stop_words)
assert "\nObservation:" in agent.llm.stop
@@ -1441,10 +1459,12 @@ def test_agent_with_callbacks():
role="test role",
goal="test goal",
backstory="test backstory",
llm=LLM(model="gpt-3.5-turbo", callbacks=[dummy_callback]),
llm=LLM(model="gpt-3.5-turbo", callbacks=[dummy_callback], is_litellm=True),
)
assert isinstance(agent.llm, LLM)
assert isinstance(agent.llm, BaseLLM)
# All LLM implementations now support callbacks consistently
assert hasattr(agent.llm, "callbacks")
assert len(agent.llm.callbacks) == 1
assert agent.llm.callbacks[0] == dummy_callback
@@ -1463,7 +1483,7 @@ def test_agent_with_additional_kwargs():
),
)
assert isinstance(agent.llm, LLM)
assert isinstance(agent.llm, BaseLLM)
assert agent.llm.model == "gpt-3.5-turbo"
assert agent.llm.temperature == 0.8
assert agent.llm.top_p == 0.9
@@ -1580,40 +1600,40 @@ def test_agent_with_all_llm_attributes():
timeout=10,
temperature=0.7,
top_p=0.9,
n=1,
# n=1,
stop=["STOP", "END"],
max_tokens=100,
presence_penalty=0.1,
frequency_penalty=0.1,
logit_bias={50256: -100}, # Example: bias against the EOT token
# logit_bias={50256: -100}, # Example: bias against the EOT token
response_format={"type": "json_object"},
seed=42,
logprobs=True,
top_logprobs=5,
base_url="https://api.openai.com/v1",
api_version="2023-05-15",
# api_version="2023-05-15",
api_key="sk-your-api-key-here",
),
)
assert isinstance(agent.llm, LLM)
assert isinstance(agent.llm, BaseLLM)
assert agent.llm.model == "gpt-3.5-turbo"
assert agent.llm.timeout == 10
assert agent.llm.temperature == 0.7
assert agent.llm.top_p == 0.9
assert agent.llm.n == 1
# assert agent.llm.n == 1
assert set(agent.llm.stop) == set(["STOP", "END", "\nObservation:"])
assert all(word in agent.llm.stop for word in ["STOP", "END", "\nObservation:"])
assert agent.llm.max_tokens == 100
assert agent.llm.presence_penalty == 0.1
assert agent.llm.frequency_penalty == 0.1
assert agent.llm.logit_bias == {50256: -100}
# assert agent.llm.logit_bias == {50256: -100}
assert agent.llm.response_format == {"type": "json_object"}
assert agent.llm.seed == 42
assert agent.llm.logprobs
assert agent.llm.top_logprobs == 5
assert agent.llm.base_url == "https://api.openai.com/v1"
assert agent.llm.api_version == "2023-05-15"
# assert agent.llm.api_version == "2023-05-15"
assert agent.llm.api_key == "sk-your-api-key-here"
@@ -1982,7 +2002,7 @@ def test_agent_with_knowledge_sources_works_with_copy():
assert len(agent_copy.knowledge_sources) == 1
assert isinstance(agent_copy.knowledge_sources[0], StringKnowledgeSource)
assert agent_copy.knowledge_sources[0].content == content
assert isinstance(agent_copy.llm, LLM)
assert isinstance(agent_copy.llm, BaseLLM)
@pytest.mark.vcr(filter_headers=["authorization"])
@@ -2130,7 +2150,7 @@ def test_litellm_auth_error_handling():
role="test role",
goal="test goal",
backstory="test backstory",
llm=LLM(model="gpt-4"),
llm=LLM(model="gpt-4", is_litellm=True),
max_retry_limit=0, # Disable retries for authentication errors
)
@@ -2157,16 +2177,15 @@ def test_litellm_auth_error_handling():
def test_crew_agent_executor_litellm_auth_error():
"""Test that CrewAgentExecutor handles LiteLLM authentication errors by raising them."""
from litellm.exceptions import AuthenticationError
from crewai.agents.tools_handler import ToolsHandler
from litellm.exceptions import AuthenticationError
# Create an agent and executor
agent = Agent(
role="test role",
goal="test goal",
backstory="test backstory",
llm=LLM(model="gpt-4", api_key="invalid_api_key"),
llm=LLM(model="gpt-4", api_key="invalid_api_key", is_litellm=True),
)
task = Task(
description="Test task",
@@ -2224,7 +2243,7 @@ def test_litellm_anthropic_error_handling():
role="test role",
goal="test goal",
backstory="test backstory",
llm=LLM(model="claude-3.5-sonnet-20240620"),
llm=LLM(model="claude-3.5-sonnet-20240620", is_litellm=True),
max_retry_limit=0,
)

View File

@@ -3,16 +3,17 @@ from collections import defaultdict
from typing import cast
from unittest.mock import Mock, patch
import pytest
from crewai import LLM, Agent
from crewai.events.event_bus import crewai_event_bus
from crewai.events.types.agent_events import LiteAgentExecutionStartedEvent
from crewai.events.types.tool_usage_events import ToolUsageStartedEvent
from crewai.flow import Flow, start
from crewai.lite_agent import LiteAgent, LiteAgentOutput
from crewai.llms.base_llm import BaseLLM
from crewai.tools import BaseTool
from pydantic import BaseModel, Field
import pytest
from crewai import LLM, Agent
from crewai.flow import Flow, start
from crewai.tools import BaseTool
# A simple test tool
@@ -197,10 +198,6 @@ def test_lite_agent_structured_output():
response_format=SimpleOutput,
)
print(f"\n=== Agent Result Type: {type(result)}")
print(f"=== Agent Result: {result}")
print(f"=== Pydantic: {result.pydantic}")
assert result.pydantic is not None, "Should return a Pydantic model"
output = cast(SimpleOutput, result.pydantic)
@@ -295,6 +292,17 @@ def test_sets_parent_flow_when_inside_flow():
mock_llm.call.return_value = "Test response"
mock_llm.stop = []
from crewai.types.usage_metrics import UsageMetrics
mock_usage_metrics = UsageMetrics(
total_tokens=100,
prompt_tokens=50,
completion_tokens=50,
cached_prompt_tokens=0,
successful_requests=1,
)
mock_llm.get_token_usage_summary.return_value = mock_usage_metrics
class MyFlow(Flow):
@start()
def start(self):

View File

@@ -563,4 +563,439 @@ interactions:
status:
code: 200
message: OK
- request:
body: '{"trace_id": "609bada1-d49d-4a3b-803c-63fe91e1bee0", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "1.0.0a2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-10-02T22:35:43.865866+00:00"},
"ephemeral_trace_id": "609bada1-d49d-4a3b-803c-63fe91e1bee0"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate, zstd
Connection:
- keep-alive
Content-Length:
- '490'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/1.0.0a2
X-Crewai-Version:
- 1.0.0a2
method: POST
uri: https://app.crewai.com/crewai_plus/api/v1/tracing/ephemeral/batches
response:
body:
string: '{"id":"3eed9776-2457-48ba-830b-b848cd1a3216","ephemeral_trace_id":"609bada1-d49d-4a3b-803c-63fe91e1bee0","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"1.0.0a2","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"1.0.0a2","privacy_level":"standard"},"created_at":"2025-10-02T22:35:44.008Z","updated_at":"2025-10-02T22:35:44.008Z","access_code":"TRACE-545be8e2a7","user_identifier":null}'
headers:
Connection:
- keep-alive
Content-Length:
- '519'
Content-Type:
- application/json; charset=utf-8
Date:
- Thu, 02 Oct 2025 22:35:44 GMT
cache-control:
- max-age=0, private, must-revalidate
content-security-policy:
- 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self''
''unsafe-inline'' *.app.crewai.com app.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://js.hubspot.com http://js-na1.hs-scripts.com
https://bat.bing.com https://cdn.amplitude.com https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/
https://descriptusercontent.com https://edge.fullstory.com https://googleads.g.doubleclick.net
https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net
https://js.hscollectedforms.net https://js.usemessages.com https://snap.licdn.com
https://static.cloudflareinsights.com https://static.reo.dev https://www.google-analytics.com
https://share.descript.com/; style-src ''self'' ''unsafe-inline'' *.app.crewai.com
app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; img-src ''self'' data:
*.app.crewai.com app.crewai.com https://zeus.tools.crewai.com https://dashboard.tools.crewai.com
https://cdn.jsdelivr.net https://forms.hsforms.com https://track.hubspot.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://www.google.com
https://www.google.com.br; font-src ''self'' data: *.app.crewai.com app.crewai.com;
connect-src ''self'' *.app.crewai.com app.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 https://edge.fullstory.com https://rs.fullstory.com
https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509
https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect
https://worker-actionkit.tools.crewai.com https://api.reo.dev; frame-src ''self''
*.app.crewai.com app.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://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/
https://www.youtube.com https://share.descript.com'
etag:
- W/"84c30f3c2b9a7504e515cabd95c2f63a"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
strict-transport-security:
- max-age=63072000; includeSubDomains
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 6b35c911-11d1-434d-9554-565d900df99b
x-runtime:
- '0.036573'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "01bf719e-a48b-4da9-8973-9e95e35a1a84", "timestamp":
"2025-10-02T22:35:44.008064+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-10-02T22:35:43.864566+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "13569a4d-8779-4152-825f-c274e6b2777c",
"timestamp": "2025-10-02T22:35:44.009941+00:00", "type": "task_started", "event_data":
{"task_description": "Test task description", "expected_output": "Expected test
output", "task_name": "Test task description", "context": "", "agent_role":
"Test Agent", "task_id": "21108ec4-317a-45ff-a0f7-a6775932e217"}}, {"event_id":
"6439aa16-a21f-40fd-8010-a3b3fc817ed0", "timestamp": "2025-10-02T22:35:44.010267+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "Test Agent",
"agent_goal": "Complete test tasks successfully", "agent_backstory": "An agent
created for testing purposes"}}, {"event_id": "1fea588b-e284-4b99-bdb9-477307528516",
"timestamp": "2025-10-02T22:35:44.010359+00:00", "type": "llm_call_started",
"event_data": {"timestamp": "2025-10-02T22:35:44.010332+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "21108ec4-317a-45ff-a0f7-a6775932e217", "task_name": "Test task description",
"agent_id": "c060e134-ed6a-4c9e-a3f8-667fc1d98b58", "agent_role": "Test Agent",
"from_task": null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role":
"system", "content": "You are Test Agent. An agent created for testing purposes\nYour
personal goal is: Complete test tasks successfully\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: Test task description\n\nThis is the expected criteria for your final
answer: Expected test output\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x36733fbc0>"], "available_functions": null}}, {"event_id": "575b9771-af2c-43f1-a44c-9d80b51eeaf8",
"timestamp": "2025-10-02T22:35:44.011966+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-10-02T22:35:44.011934+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "21108ec4-317a-45ff-a0f7-a6775932e217", "task_name": "Test task description",
"agent_id": "c060e134-ed6a-4c9e-a3f8-667fc1d98b58", "agent_role": "Test Agent",
"from_task": null, "from_agent": null, "messages": [{"role": "system", "content":
"You are Test Agent. An agent created for testing purposes\nYour personal goal
is: Complete test tasks successfully\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:
Test task description\n\nThis is the expected criteria for your final answer:
Expected test output\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 expected test
output is a comprehensive document that outlines the specific parameters and
criteria that define success for the task at hand. It should include detailed
descriptions of the tasks, the goals that need to be achieved, and any specific
formatting or structural requirements necessary for the output. Each component
of the task must be analyzed and addressed, providing context as well as examples
where applicable. Additionally, any tools or methodologies that are relevant
to executing the tasks successfully should be outlined, including any potential
risks or challenges that may arise during the process. This document serves
as a guiding framework to ensure that all aspects of the task are thoroughly
considered and executed to meet the high standards expected.", "call_type":
"<LLMCallType.LLM_CALL: ''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id":
"f1c07a05-7926-4e83-ad14-4ce52ba6acb6", "timestamp": "2025-10-02T22:35:44.012094+00:00",
"type": "agent_execution_completed", "event_data": {"agent_role": "Test Agent",
"agent_goal": "Complete test tasks successfully", "agent_backstory": "An agent
created for testing purposes"}}, {"event_id": "a0193698-7046-4f92-95b2-a53d8a85c39d",
"timestamp": "2025-10-02T22:35:44.012155+00:00", "type": "task_completed", "event_data":
{"task_description": "Test task description", "task_name": "Test task description",
"task_id": "21108ec4-317a-45ff-a0f7-a6775932e217", "output_raw": "The expected
test output is a comprehensive document that outlines the specific parameters
and criteria that define success for the task at hand. It should include detailed
descriptions of the tasks, the goals that need to be achieved, and any specific
formatting or structural requirements necessary for the output. Each component
of the task must be analyzed and addressed, providing context as well as examples
where applicable. Additionally, any tools or methodologies that are relevant
to executing the tasks successfully should be outlined, including any potential
risks or challenges that may arise during the process. This document serves
as a guiding framework to ensure that all aspects of the task are thoroughly
considered and executed to meet the high standards expected.", "output_format":
"OutputFormat.RAW", "agent_role": "Test Agent"}}, {"event_id": "53ff8415-c15d-43d6-be26-9a148ec4f50f",
"timestamp": "2025-10-02T22:35:44.012270+00:00", "type": "llm_call_started",
"event_data": {"timestamp": "2025-10-02T22:35:44.012255+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "from_task":
null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role": "system",
"content": "You are an expert evaluator assessing how well an AI agent''s output
aligns with its assigned task goal.\n\nScore the agent''s goal alignment on
a scale from 0-10 where:\n- 0: Complete misalignment, agent did not understand
or attempt the task goal\n- 5: Partial alignment, agent attempted the task but
missed key requirements\n- 10: Perfect alignment, agent fully satisfied all
task requirements\n\nConsider:\n1. Did the agent correctly interpret the task
goal?\n2. Did the final output directly address the requirements?\n3. Did the
agent focus on relevant aspects of the task?\n4. Did the agent provide all requested
information or deliverables?\n\nReturn your evaluation as JSON with fields ''score''
(number) and ''feedback'' (string).\n"}, {"role": "user", "content": "\nAgent
role: Test Agent\nAgent goal: Complete test tasks successfully\nTask description:
Test task description\nExpected output: Expected test output\n\n\nAgent''s final
output:\nThe expected test output is a comprehensive document that outlines
the specific parameters and criteria that define success for the task at hand.
It should include detailed descriptions of the tasks, the goals that need to
be achieved, and any specific formatting or structural requirements necessary
for the output. Each component of the task must be analyzed and addressed, providing
context as well as examples where applicable. Additionally, any tools or methodologies
that are relevant to executing the tasks successfully should be outlined, including
any potential risks or challenges that may arise during the process. This document
serves as a guiding framework to ensure that all aspects of the task are thoroughly
considered and executed to meet the high standards expected.\n\nEvaluate how
well the agent''s output aligns with the assigned task goal.\n"}], "tools":
null, "callbacks": null, "available_functions": null}}, {"event_id": "f71b2560-c092-45a7-aac1-e514d5d896d6",
"timestamp": "2025-10-02T22:35:44.013401+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-10-02T22:35:44.013384+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "from_task":
null, "from_agent": null, "messages": [{"role": "system", "content": "You are
an expert evaluator assessing how well an AI agent''s output aligns with its
assigned task goal.\n\nScore the agent''s goal alignment on a scale from 0-10
where:\n- 0: Complete misalignment, agent did not understand or attempt the
task goal\n- 5: Partial alignment, agent attempted the task but missed key requirements\n-
10: Perfect alignment, agent fully satisfied all task requirements\n\nConsider:\n1.
Did the agent correctly interpret the task goal?\n2. Did the final output directly
address the requirements?\n3. Did the agent focus on relevant aspects of the
task?\n4. Did the agent provide all requested information or deliverables?\n\nReturn
your evaluation as JSON with fields ''score'' (number) and ''feedback'' (string).\n"},
{"role": "user", "content": "\nAgent role: Test Agent\nAgent goal: Complete
test tasks successfully\nTask description: Test task description\nExpected output:
Expected test output\n\n\nAgent''s final output:\nThe expected test output is
a comprehensive document that outlines the specific parameters and criteria
that define success for the task at hand. It should include detailed descriptions
of the tasks, the goals that need to be achieved, and any specific formatting
or structural requirements necessary for the output. Each component of the task
must be analyzed and addressed, providing context as well as examples where
applicable. Additionally, any tools or methodologies that are relevant to executing
the tasks successfully should be outlined, including any potential risks or
challenges that may arise during the process. This document serves as a guiding
framework to ensure that all aspects of the task are thoroughly considered and
executed to meet the high standards expected.\n\nEvaluate how well the agent''s
output aligns with the assigned task goal.\n"}], "response": "{\n \"score\":
5,\n \"feedback\": \"The agent''s output demonstrates an understanding of the
need for a comprehensive document outlining task parameters and success criteria.
However, it does not explicitly provide the expected test output or directly
address the specific test tasks as described in the task definition. The agent
missed delivering the precise expected output and did not include clear examples
or structure that align with the task at hand.\"\n}", "call_type": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "e0f84358-9115-4010-a78c-3022a2266f1d",
"timestamp": "2025-10-02T22:35:44.014372+00:00", "type": "crew_kickoff_completed",
"event_data": {"timestamp": "2025-10-02T22:35:44.014351+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "output": {"description": "Test task description", "name":
"Test task description", "expected_output": "Expected test output", "summary":
"Test task description...", "raw": "The expected test output is a comprehensive
document that outlines the specific parameters and criteria that define success
for the task at hand. It should include detailed descriptions of the tasks,
the goals that need to be achieved, and any specific formatting or structural
requirements necessary for the output. Each component of the task must be analyzed
and addressed, providing context as well as examples where applicable. Additionally,
any tools or methodologies that are relevant to executing the tasks successfully
should be outlined, including any potential risks or challenges that may arise
during the process. This document serves as a guiding framework to ensure that
all aspects of the task are thoroughly considered and executed to meet the high
standards expected.", "pydantic": null, "json_dict": null, "agent": "Test Agent",
"output_format": "raw"}, "total_tokens": 303}}], "batch_metadata": {"events_count":
10, "batch_sequence": 1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate, zstd
Connection:
- keep-alive
Content-Length:
- '13085'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/1.0.0a2
X-Crewai-Version:
- 1.0.0a2
method: POST
uri: https://app.crewai.com/crewai_plus/api/v1/tracing/ephemeral/batches/609bada1-d49d-4a3b-803c-63fe91e1bee0/events
response:
body:
string: '{"events_created":10,"ephemeral_trace_batch_id":"3eed9776-2457-48ba-830b-b848cd1a3216"}'
headers:
Connection:
- keep-alive
Content-Length:
- '87'
Content-Type:
- application/json; charset=utf-8
Date:
- Thu, 02 Oct 2025 22:35:44 GMT
cache-control:
- max-age=0, private, must-revalidate
content-security-policy:
- 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self''
''unsafe-inline'' *.app.crewai.com app.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://js.hubspot.com http://js-na1.hs-scripts.com
https://bat.bing.com https://cdn.amplitude.com https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/
https://descriptusercontent.com https://edge.fullstory.com https://googleads.g.doubleclick.net
https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net
https://js.hscollectedforms.net https://js.usemessages.com https://snap.licdn.com
https://static.cloudflareinsights.com https://static.reo.dev https://www.google-analytics.com
https://share.descript.com/; style-src ''self'' ''unsafe-inline'' *.app.crewai.com
app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; img-src ''self'' data:
*.app.crewai.com app.crewai.com https://zeus.tools.crewai.com https://dashboard.tools.crewai.com
https://cdn.jsdelivr.net https://forms.hsforms.com https://track.hubspot.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://www.google.com
https://www.google.com.br; font-src ''self'' data: *.app.crewai.com app.crewai.com;
connect-src ''self'' *.app.crewai.com app.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 https://edge.fullstory.com https://rs.fullstory.com
https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509
https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect
https://worker-actionkit.tools.crewai.com https://api.reo.dev; frame-src ''self''
*.app.crewai.com app.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://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/
https://www.youtube.com https://share.descript.com'
etag:
- W/"3d36a4dbc7b91f72f57c091c19274a3e"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
strict-transport-security:
- max-age=63072000; includeSubDomains
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 67c88698-7d5e-4d55-a363-ffea5e08ccff
x-runtime:
- '0.079326'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 343, "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/1.0.0a2
X-Crewai-Version:
- 1.0.0a2
method: PATCH
uri: https://app.crewai.com/crewai_plus/api/v1/tracing/ephemeral/batches/609bada1-d49d-4a3b-803c-63fe91e1bee0/finalize
response:
body:
string: '{"id":"3eed9776-2457-48ba-830b-b848cd1a3216","ephemeral_trace_id":"609bada1-d49d-4a3b-803c-63fe91e1bee0","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":343,"crewai_version":"1.0.0a2","total_events":10,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"1.0.0a2","crew_fingerprint":null},"created_at":"2025-10-02T22:35:44.008Z","updated_at":"2025-10-02T22:35:44.367Z","access_code":"TRACE-545be8e2a7","user_identifier":null}'
headers:
Connection:
- keep-alive
Content-Length:
- '521'
Content-Type:
- application/json; charset=utf-8
Date:
- Thu, 02 Oct 2025 22:35:44 GMT
cache-control:
- max-age=0, private, must-revalidate
content-security-policy:
- 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self''
''unsafe-inline'' *.app.crewai.com app.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://js.hubspot.com http://js-na1.hs-scripts.com
https://bat.bing.com https://cdn.amplitude.com https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/
https://descriptusercontent.com https://edge.fullstory.com https://googleads.g.doubleclick.net
https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net
https://js.hscollectedforms.net https://js.usemessages.com https://snap.licdn.com
https://static.cloudflareinsights.com https://static.reo.dev https://www.google-analytics.com
https://share.descript.com/; style-src ''self'' ''unsafe-inline'' *.app.crewai.com
app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; img-src ''self'' data:
*.app.crewai.com app.crewai.com https://zeus.tools.crewai.com https://dashboard.tools.crewai.com
https://cdn.jsdelivr.net https://forms.hsforms.com https://track.hubspot.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://www.google.com
https://www.google.com.br; font-src ''self'' data: *.app.crewai.com app.crewai.com;
connect-src ''self'' *.app.crewai.com app.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 https://edge.fullstory.com https://rs.fullstory.com
https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509
https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect
https://worker-actionkit.tools.crewai.com https://api.reo.dev; frame-src ''self''
*.app.crewai.com app.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://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/
https://www.youtube.com https://share.descript.com'
etag:
- W/"6a66e9798df25531dc3e42879681f419"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
strict-transport-security:
- max-age=63072000; includeSubDomains
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- e3e6a9c6-62b1-4001-9f75-50e9c1e1db09
x-runtime:
- '0.027665'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -467,4 +467,92 @@ interactions:
status:
code: 404
message: Not Found
- request:
body: '{"status": "failed", "failure_reason": "Error sending events to backend"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate, zstd
Connection:
- keep-alive
Content-Length:
- '73'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/1.0.0a2
X-Crewai-Version:
- 1.0.0a2
method: PATCH
uri: https://app.crewai.com/crewai_plus/api/v1/tracing/batches/None
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Connection:
- keep-alive
Content-Length:
- '55'
Content-Type:
- application/json; charset=utf-8
Date:
- Thu, 02 Oct 2025 22:35:43 GMT
cache-control:
- no-cache
content-security-policy:
- 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self''
''unsafe-inline'' *.app.crewai.com app.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://js.hubspot.com http://js-na1.hs-scripts.com
https://bat.bing.com https://cdn.amplitude.com https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/
https://descriptusercontent.com https://edge.fullstory.com https://googleads.g.doubleclick.net
https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net
https://js.hscollectedforms.net https://js.usemessages.com https://snap.licdn.com
https://static.cloudflareinsights.com https://static.reo.dev https://www.google-analytics.com
https://share.descript.com/; style-src ''self'' ''unsafe-inline'' *.app.crewai.com
app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; img-src ''self'' data:
*.app.crewai.com app.crewai.com https://zeus.tools.crewai.com https://dashboard.tools.crewai.com
https://cdn.jsdelivr.net https://forms.hsforms.com https://track.hubspot.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://www.google.com
https://www.google.com.br; font-src ''self'' data: *.app.crewai.com app.crewai.com;
connect-src ''self'' *.app.crewai.com app.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 https://edge.fullstory.com https://rs.fullstory.com
https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509
https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect
https://worker-actionkit.tools.crewai.com https://api.reo.dev; frame-src ''self''
*.app.crewai.com app.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://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/
https://www.youtube.com https://share.descript.com'
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
strict-transport-security:
- max-age=63072000; includeSubDomains
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- c8e70a94-a6bf-4629-85d8-f0ae7b0cf8e6
x-runtime:
- '0.090999'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -127,4 +127,344 @@ interactions:
status:
code: 200
message: OK
- request:
body: '{"trace_id": "0bcd1cf5-5a2e-49d5-8140-f0466ad7b7ae", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "1.0.0a2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
1, "task_count": 1, "flow_method_count": 0, "execution_started_at": "2025-10-02T22:35:43.236443+00:00"},
"ephemeral_trace_id": "0bcd1cf5-5a2e-49d5-8140-f0466ad7b7ae"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate, zstd
Connection:
- keep-alive
Content-Length:
- '490'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/1.0.0a2
X-Crewai-Version:
- 1.0.0a2
method: POST
uri: https://app.crewai.com/crewai_plus/api/v1/tracing/ephemeral/batches
response:
body:
string: '{"id":"4b03b659-8866-4245-8fd2-3a5263f4f893","ephemeral_trace_id":"0bcd1cf5-5a2e-49d5-8140-f0466ad7b7ae","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"1.0.0a2","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"1.0.0a2","privacy_level":"standard"},"created_at":"2025-10-02T22:35:43.372Z","updated_at":"2025-10-02T22:35:43.372Z","access_code":"TRACE-a6b7c862fc","user_identifier":null}'
headers:
Connection:
- keep-alive
Content-Length:
- '519'
Content-Type:
- application/json; charset=utf-8
Date:
- Thu, 02 Oct 2025 22:35:43 GMT
cache-control:
- max-age=0, private, must-revalidate
content-security-policy:
- 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self''
''unsafe-inline'' *.app.crewai.com app.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://js.hubspot.com http://js-na1.hs-scripts.com
https://bat.bing.com https://cdn.amplitude.com https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/
https://descriptusercontent.com https://edge.fullstory.com https://googleads.g.doubleclick.net
https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net
https://js.hscollectedforms.net https://js.usemessages.com https://snap.licdn.com
https://static.cloudflareinsights.com https://static.reo.dev https://www.google-analytics.com
https://share.descript.com/; style-src ''self'' ''unsafe-inline'' *.app.crewai.com
app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; img-src ''self'' data:
*.app.crewai.com app.crewai.com https://zeus.tools.crewai.com https://dashboard.tools.crewai.com
https://cdn.jsdelivr.net https://forms.hsforms.com https://track.hubspot.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://www.google.com
https://www.google.com.br; font-src ''self'' data: *.app.crewai.com app.crewai.com;
connect-src ''self'' *.app.crewai.com app.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 https://edge.fullstory.com https://rs.fullstory.com
https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509
https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect
https://worker-actionkit.tools.crewai.com https://api.reo.dev; frame-src ''self''
*.app.crewai.com app.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://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/
https://www.youtube.com https://share.descript.com'
etag:
- W/"3cd49b89c6bedfc5139cbdd350c30e4a"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
strict-transport-security:
- max-age=63072000; includeSubDomains
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- ce2e7707-99da-4486-a7ca-11e12284d7a6
x-runtime:
- '0.030681'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "f328f1d8-6067-4dc0-9f54-f40bd23381b9", "timestamp":
"2025-10-02T22:35:43.233706+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-10-02T22:35:43.232688+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "a1323913-eb51-422c-b9b1-a02cebeb2fb4",
"timestamp": "2025-10-02T22:35:43.234420+00:00", "type": "task_started", "event_data":
{"task_description": "Say hello to the world", "expected_output": "hello world",
"task_name": "Say hello to the world", "context": "", "agent_role": "Test Agent",
"task_id": "e5063490-e2ae-47a6-a205-af4a91288e63"}}, {"event_id": "50a8abcd-bcdc-4dfa-97c2-259bf8affc88",
"timestamp": "2025-10-02T22:35:43.234639+00:00", "type": "agent_execution_started",
"event_data": {"agent_role": "Test Agent", "agent_goal": "Test goal", "agent_backstory":
"Test backstory"}}, {"event_id": "2c481296-a5e4-4a54-8dbc-d41ce102134b", "timestamp":
"2025-10-02T22:35:43.234694+00:00", "type": "llm_call_started", "event_data":
{"timestamp": "2025-10-02T22:35:43.234676+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "e5063490-e2ae-47a6-a205-af4a91288e63", "task_name": "Say hello to
the world", "agent_id": "65e264bb-8025-4730-a8a1-8d0a5a7a32ac", "agent_role":
"Test Agent", "from_task": null, "from_agent": null, "model": "gpt-4o-mini",
"messages": [{"role": "system", "content": "You are Test Agent. Test backstory\nYour
personal goal is: Test goal\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: Say hello to
the world\n\nThis is the expected criteria for your final answer: 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":
["<crewai.utilities.token_counter_callback.TokenCalcHandler object at 0x36307baa0>"],
"available_functions": null}}, {"event_id": "bc04a066-3672-4406-9d65-818f9c68b670",
"timestamp": "2025-10-02T22:35:43.235725+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-10-02T22:35:43.235708+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "e5063490-e2ae-47a6-a205-af4a91288e63", "task_name": "Say hello to
the world", "agent_id": "65e264bb-8025-4730-a8a1-8d0a5a7a32ac", "agent_role":
"Test Agent", "from_task": null, "from_agent": null, "messages": [{"role": "system",
"content": "You are Test Agent. Test backstory\nYour personal goal is: Test
goal\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: Say hello to the world\n\nThis is the expected
criteria for your final answer: 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": "<LLMCallType.LLM_CALL: ''llm_call''>", "model":
"gpt-4o-mini"}}, {"event_id": "32a554bd-7338-49b0-869a-8cbc1a9283b0", "timestamp":
"2025-10-02T22:35:43.235801+00:00", "type": "agent_execution_completed", "event_data":
{"agent_role": "Test Agent", "agent_goal": "Test goal", "agent_backstory": "Test
backstory"}}, {"event_id": "029b9923-7455-4edc-9219-8d568d344165", "timestamp":
"2025-10-02T22:35:43.235834+00:00", "type": "task_completed", "event_data":
{"task_description": "Say hello to the world", "task_name": "Say hello to the
world", "task_id": "e5063490-e2ae-47a6-a205-af4a91288e63", "output_raw": "Hello,
World!", "output_format": "OutputFormat.RAW", "agent_role": "Test Agent"}},
{"event_id": "004091a7-6ee3-498c-b18d-91285f7d14c9", "timestamp": "2025-10-02T22:35:43.236399+00:00",
"type": "crew_kickoff_completed", "event_data": {"timestamp": "2025-10-02T22:35:43.236386+00:00",
"type": "crew_kickoff_completed", "source_fingerprint": null, "source_type":
null, "fingerprint_metadata": null, "task_id": null, "task_name": null, "agent_id":
null, "agent_role": null, "crew_name": "crew", "crew": null, "output": {"description":
"Say hello to the world", "name": "Say hello to the world", "expected_output":
"hello world", "summary": "Say hello to the world...", "raw": "Hello, World!",
"pydantic": null, "json_dict": null, "agent": "Test Agent", "output_format":
"raw"}, "total_tokens": 172}}], "batch_metadata": {"events_count": 8, "batch_sequence":
1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate, zstd
Connection:
- keep-alive
Content-Length:
- '5366'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/1.0.0a2
X-Crewai-Version:
- 1.0.0a2
method: POST
uri: https://app.crewai.com/crewai_plus/api/v1/tracing/ephemeral/batches/0bcd1cf5-5a2e-49d5-8140-f0466ad7b7ae/events
response:
body:
string: '{"events_created":8,"ephemeral_trace_batch_id":"4b03b659-8866-4245-8fd2-3a5263f4f893"}'
headers:
Connection:
- keep-alive
Content-Length:
- '86'
Content-Type:
- application/json; charset=utf-8
Date:
- Thu, 02 Oct 2025 22:35:43 GMT
cache-control:
- max-age=0, private, must-revalidate
content-security-policy:
- 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self''
''unsafe-inline'' *.app.crewai.com app.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://js.hubspot.com http://js-na1.hs-scripts.com
https://bat.bing.com https://cdn.amplitude.com https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/
https://descriptusercontent.com https://edge.fullstory.com https://googleads.g.doubleclick.net
https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net
https://js.hscollectedforms.net https://js.usemessages.com https://snap.licdn.com
https://static.cloudflareinsights.com https://static.reo.dev https://www.google-analytics.com
https://share.descript.com/; style-src ''self'' ''unsafe-inline'' *.app.crewai.com
app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; img-src ''self'' data:
*.app.crewai.com app.crewai.com https://zeus.tools.crewai.com https://dashboard.tools.crewai.com
https://cdn.jsdelivr.net https://forms.hsforms.com https://track.hubspot.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://www.google.com
https://www.google.com.br; font-src ''self'' data: *.app.crewai.com app.crewai.com;
connect-src ''self'' *.app.crewai.com app.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 https://edge.fullstory.com https://rs.fullstory.com
https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509
https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect
https://worker-actionkit.tools.crewai.com https://api.reo.dev; frame-src ''self''
*.app.crewai.com app.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://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/
https://www.youtube.com https://share.descript.com'
etag:
- W/"a8c7c5e3ef539604da1e89ad3d686230"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
strict-transport-security:
- max-age=63072000; includeSubDomains
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 9431879b-bb0c-437c-bc43-f1fb8397e56e
x-runtime:
- '0.067705'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 325, "final_event_count": 0}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate, zstd
Connection:
- keep-alive
Content-Length:
- '67'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/1.0.0a2
X-Crewai-Version:
- 1.0.0a2
method: PATCH
uri: https://app.crewai.com/crewai_plus/api/v1/tracing/ephemeral/batches/0bcd1cf5-5a2e-49d5-8140-f0466ad7b7ae/finalize
response:
body:
string: '{"id":"4b03b659-8866-4245-8fd2-3a5263f4f893","ephemeral_trace_id":"0bcd1cf5-5a2e-49d5-8140-f0466ad7b7ae","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":325,"crewai_version":"1.0.0a2","total_events":0,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"1.0.0a2","crew_fingerprint":null},"created_at":"2025-10-02T22:35:43.372Z","updated_at":"2025-10-02T22:35:43.724Z","access_code":"TRACE-a6b7c862fc","user_identifier":null}'
headers:
Connection:
- keep-alive
Content-Length:
- '520'
Content-Type:
- application/json; charset=utf-8
Date:
- Thu, 02 Oct 2025 22:35:43 GMT
cache-control:
- max-age=0, private, must-revalidate
content-security-policy:
- 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self''
''unsafe-inline'' *.app.crewai.com app.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://js.hubspot.com http://js-na1.hs-scripts.com
https://bat.bing.com https://cdn.amplitude.com https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/
https://descriptusercontent.com https://edge.fullstory.com https://googleads.g.doubleclick.net
https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net
https://js.hscollectedforms.net https://js.usemessages.com https://snap.licdn.com
https://static.cloudflareinsights.com https://static.reo.dev https://www.google-analytics.com
https://share.descript.com/; style-src ''self'' ''unsafe-inline'' *.app.crewai.com
app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; img-src ''self'' data:
*.app.crewai.com app.crewai.com https://zeus.tools.crewai.com https://dashboard.tools.crewai.com
https://cdn.jsdelivr.net https://forms.hsforms.com https://track.hubspot.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://www.google.com
https://www.google.com.br; font-src ''self'' data: *.app.crewai.com app.crewai.com;
connect-src ''self'' *.app.crewai.com app.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 https://edge.fullstory.com https://rs.fullstory.com
https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509
https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect
https://worker-actionkit.tools.crewai.com https://api.reo.dev; frame-src ''self''
*.app.crewai.com app.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://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/
https://www.youtube.com https://share.descript.com'
etag:
- W/"0a3640b7c549a0ed48c01459623ff153"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
strict-transport-security:
- max-age=63072000; includeSubDomains
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 5bf816aa-7226-4c61-a29f-69d31af0d964
x-runtime:
- '0.030651'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -295,4 +295,96 @@ interactions:
status:
code: 401
message: Unauthorized
- request:
body: '{"trace_id": "e7ec4d48-cd70-436b-932e-45b2252284ec", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "1.0.0a2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-10-02T22:35:42.329267+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate, zstd
Connection:
- keep-alive
Content-Length:
- '428'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/1.0.0a2
X-Crewai-Version:
- 1.0.0a2
method: POST
uri: https://app.crewai.com/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Connection:
- keep-alive
Content-Length:
- '55'
Content-Type:
- application/json; charset=utf-8
Date:
- Thu, 02 Oct 2025 22:35:42 GMT
cache-control:
- no-cache
content-security-policy:
- 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self''
''unsafe-inline'' *.app.crewai.com app.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://js.hubspot.com http://js-na1.hs-scripts.com
https://bat.bing.com https://cdn.amplitude.com https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/
https://descriptusercontent.com https://edge.fullstory.com https://googleads.g.doubleclick.net
https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net
https://js.hscollectedforms.net https://js.usemessages.com https://snap.licdn.com
https://static.cloudflareinsights.com https://static.reo.dev https://www.google-analytics.com
https://share.descript.com/; style-src ''self'' ''unsafe-inline'' *.app.crewai.com
app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; img-src ''self'' data:
*.app.crewai.com app.crewai.com https://zeus.tools.crewai.com https://dashboard.tools.crewai.com
https://cdn.jsdelivr.net https://forms.hsforms.com https://track.hubspot.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://www.google.com
https://www.google.com.br; font-src ''self'' data: *.app.crewai.com app.crewai.com;
connect-src ''self'' *.app.crewai.com app.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 https://edge.fullstory.com https://rs.fullstory.com
https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509
https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect
https://worker-actionkit.tools.crewai.com https://api.reo.dev; frame-src ''self''
*.app.crewai.com app.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://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/
https://www.youtube.com https://share.descript.com'
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
strict-transport-security:
- max-age=63072000; includeSubDomains
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 9db7bedc-a65b-4dca-ad3a-34b70101a37a
x-runtime:
- '0.029103'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -17,22 +17,23 @@ interactions:
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:"}], "model": "gpt-4o", "stop": ["\nObservation:"]}'
on it!\n\nThought:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"], "stream":
false}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate, zstd
- gzip, deflate
connection:
- keep-alive
content-length:
- '1433'
- '1455'
content-type:
- application/json
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.68.2
- OpenAI/Python 1.93.0
x-stainless-arch:
- arm64
x-stainless-async:
@@ -42,36 +43,30 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.68.2
x-stainless-raw-response:
- 'true'
x-stainless-read-timeout:
- '600.0'
- 1.93.0
x-stainless-retry-count:
- '0'
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.8
- 3.12.9
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
content: "{\n \"id\": \"chatcmpl-BHHw5WtswO316yaGO5yKxTcNv36eN\",\n \"object\":
\"chat.completion\",\n \"created\": 1743460221,\n \"model\": \"gpt-4o-2024-08-06\",\n
\ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\":
\"assistant\",\n \"content\": \"Thought: I need to use the `get_final_answer`
tool to obtain the final answer as instructed.\\n\\nAction: get_final_answer\\nAction
Input: {}\",\n \"refusal\": null,\n \"annotations\": []\n },\n
\ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n
\ \"usage\": {\n \"prompt_tokens\": 291,\n \"completion_tokens\": 31,\n
\ \"total_tokens\": 322,\n \"prompt_tokens_details\": {\n \"cached_tokens\":
0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n
\ \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\":
0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\":
\"default\",\n \"system_fingerprint\": \"fp_6dd05565ef\"\n}\n"
body:
string: !!binary |
H4sIAAAAAAAAA4yTTW/bMAyG7/4VhM5x4XiJ0/o29NQOA7bLdtgKQ5FpW4ssahK9rgjy3wfZaezs
A9jFBz58KfIlfUwAhK5FCUJ1klXvTHr/uLlvdt+bw15+ePxcH7K8eC7W608f36nb92IVFbT/hopf
VTeKemeQNdkJK4+SMVZd77a3RZFt8u0IeqrRRFnrON1Q2mur0zzLN2m2S9e3Z3VHWmEQJXxJAACO
4zf2aWv8KUrIVq+RHkOQLYrykgQgPJkYETIEHVhaFqsZKrKMdmz9AUJHg6khxrQdaAjmBYaAwB0C
ExlgglZyhx568gjaNuR7GQeFhvyY12grDUgbntHfAHy1b1XkJbTI1QirCc4MHqwbuITjCWDZm8dm
CDL6YwdjFkBaSzw+O7rydCaniw+GWudpH36TikZbHbrKowxk48yByYmRnhKAp9Hv4cpC4Tz1jium
A47P5XfrqZ6Y17ykZ8jE0szxN/l5S9f1qhpZahMWGxNKqg7rWTqvVw61pgVIFlP/2c3fak+Ta9v+
T/kZKIWOsa6cx1qr64nnNI/xL/hX2sXlsWER0P/QCivW6OMmamzkYKbbFOElMPbxXFr0zuvpQBtX
bYtMNgVut3ciOSW/AAAA//8DABaZ0EiuAwAA
headers:
CF-RAY:
- 92934a709920cecd-SJC
- 983ce5296d26239d-SJC
Connection:
- keep-alive
Content-Encoding:
@@ -79,15 +74,17 @@ interactions:
Content-Type:
- application/json
Date:
- Mon, 31 Mar 2025 22:30:22 GMT
- Tue, 23 Sep 2025 20:47:05 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=jgfjGzf0.7lCXlVzIbsbMEF96s2MbJI96MITu95MUb4-1743460222-1.0.1.1-5a2I.TvJaUUtIHxZWQd6MBtM7z2yi.WFjj5nFBxFCGbhwwpbvqFpMv53MagnPhhLAC4RISzaGlrdKDwZAUOVr9sCewK3iQFs4FUQ7iPswX4;
path=/; expires=Mon, 31-Mar-25 23:00:22 GMT; domain=.api.openai.com; HttpOnly;
- __cf_bm=1fs_tWXSjOXLvWmDDleCPs6zqeoMCE9WMzw34UrJEY0-1758660425-1.0.1.1-yN.usYgsw3jmDue61Z30KB.SQOEVjuZCOMFqPwf22cZ9TvM1FzFJFR5PZPyS.uYDZAWJMX29SzSPw_PcDk7dbHVSGM.ubbhoxn1Y18nRqrI;
path=/; expires=Tue, 23-Sep-25 21:17:05 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=MVRLJp6ihuQOpnpTSPmJe03oBXqrmw5nly7TKu7EGYk-1743460222363-0.0.1.1-604800000;
- _cfuvid=yrBvDYdy4HQeXpy__ld4uITFc6g85yQ2XUMU0NQ.v7Y-1758660425881-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security:
- max-age=31536000; includeSubDomains; preload
Transfer-Encoding:
- chunked
X-Content-Type-Options:
@@ -101,58 +98,35 @@ interactions:
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '743'
- '509'
openai-project:
- proj_xitITlrFeen7zjNSzML82h9x
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains; preload
x-envoy-upstream-service-time:
- '618'
x-openai-proxy-wasm:
- v0.1
x-ratelimit-limit-project-tokens:
- '150000000'
x-ratelimit-limit-requests:
- '50000'
- '30000'
x-ratelimit-limit-tokens:
- '150000000'
x-ratelimit-remaining-project-tokens:
- '149999680'
x-ratelimit-remaining-requests:
- '49999'
- '29999'
x-ratelimit-remaining-tokens:
- '149999678'
- '149999680'
x-ratelimit-reset-project-tokens:
- 0s
x-ratelimit-reset-requests:
- 1ms
- 2ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_3bc6d00e79c88c43349084dec6d3161a
http_version: HTTP/1.1
status_code: 200
- request:
body: !!binary |
CtQBCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkSqwEKEgoQY3Jld2FpLnRl
bGVtZXRyeRKUAQoQhmbMXvkscEn7a8wc0RdvihIIHFSkAKvHFKcqClRvb2wgVXNhZ2UwATmANCzE
1QMyGEGo00HE1QMyGEobCg5jcmV3YWlfdmVyc2lvbhIJCgcwLjEwOC4wSh8KCXRvb2xfbmFtZRIS
ChBnZXRfZmluYWxfYW5zd2VySg4KCGF0dGVtcHRzEgIYAXoCGAGFAQABAAA=
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate, zstd
Connection:
- keep-alive
Content-Length:
- '215'
Content-Type:
- application/x-protobuf
User-Agent:
- OTel-OTLP-Exporter-Python/1.31.1
method: POST
uri: https://telemetry.crewai.com:4319/v1/traces
response:
body:
string: "\n\0"
headers:
Content-Length:
- '2'
Content-Type:
- application/x-protobuf
Date:
- Mon, 31 Mar 2025 22:30:22 GMT
- req_eca26fd131fc445a8c9b54b5b6b57f15
status:
code: 200
message: OK
@@ -174,33 +148,32 @@ interactions:
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": "42"}, {"role": "assistant",
"content": "Thought: I need to use the `get_final_answer` tool to obtain the
final answer as instructed.\n\nAction: get_final_answer\nAction Input: {}\nObservation:
42"}, {"role": "assistant", "content": "Thought: I need to use the `get_final_answer`
tool to obtain the final answer as instructed.\n\nAction: get_final_answer\nAction
Input: {}\nObservation: 42\nNow it''s time you MUST give your absolute best
on it!\n\nThought:"}, {"role": "assistant", "content": "I should continuously
use the tool to gather more information for the final answer. \nAction: get_final_answer \nAction
Input: {} \nObservation: 42"}, {"role": "assistant", "content": "I should continuously
use the tool to gather more information for the final answer. \nAction: get_final_answer \nAction
Input: {} \nObservation: 42\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."}], "model": "gpt-4o", "stop":
["\nObservation:"]}'
and just return your absolute BEST Final answer."}], "model": "gpt-4o-mini",
"stop": ["\nObservation:"], "stream": false}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate, zstd
- gzip, deflate
connection:
- keep-alive
content-length:
- '2033'
- '2005'
content-type:
- application/json
cookie:
- __cf_bm=jgfjGzf0.7lCXlVzIbsbMEF96s2MbJI96MITu95MUb4-1743460222-1.0.1.1-5a2I.TvJaUUtIHxZWQd6MBtM7z2yi.WFjj5nFBxFCGbhwwpbvqFpMv53MagnPhhLAC4RISzaGlrdKDwZAUOVr9sCewK3iQFs4FUQ7iPswX4;
_cfuvid=MVRLJp6ihuQOpnpTSPmJe03oBXqrmw5nly7TKu7EGYk-1743460222363-0.0.1.1-604800000
- __cf_bm=1fs_tWXSjOXLvWmDDleCPs6zqeoMCE9WMzw34UrJEY0-1758660425-1.0.1.1-yN.usYgsw3jmDue61Z30KB.SQOEVjuZCOMFqPwf22cZ9TvM1FzFJFR5PZPyS.uYDZAWJMX29SzSPw_PcDk7dbHVSGM.ubbhoxn1Y18nRqrI;
_cfuvid=yrBvDYdy4HQeXpy__ld4uITFc6g85yQ2XUMU0NQ.v7Y-1758660425881-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.68.2
- OpenAI/Python 1.93.0
x-stainless-arch:
- arm64
x-stainless-async:
@@ -210,35 +183,29 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.68.2
x-stainless-raw-response:
- 'true'
x-stainless-read-timeout:
- '600.0'
- 1.93.0
x-stainless-retry-count:
- '0'
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.8
- 3.12.9
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
content: "{\n \"id\": \"chatcmpl-BHHw65c6KgrmeCstyFwRSEyHyvlCI\",\n \"object\":
\"chat.completion\",\n \"created\": 1743460222,\n \"model\": \"gpt-4o-2024-08-06\",\n
\ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\":
\"assistant\",\n \"content\": \"Thought: I now know the final answer\\nFinal
Answer: 42\",\n \"refusal\": null,\n \"annotations\": []\n },\n
\ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n
\ \"usage\": {\n \"prompt_tokens\": 407,\n \"completion_tokens\": 15,\n
\ \"total_tokens\": 422,\n \"prompt_tokens_details\": {\n \"cached_tokens\":
0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n
\ \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\":
0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\":
\"default\",\n \"system_fingerprint\": \"fp_6dd05565ef\"\n}\n"
body:
string: !!binary |
H4sIAAAAAAAAAwAAAP//jFLBbtswDL37KwSd48HxHCf1begaYDu2uy2Frci0rFWmBEluOxT590Fy
GrtdB+wigHx8T3wkXxJCqGxpRSjvmeeDUen19+Ja3H0Vt/nt/mafQ1bcCKHuzOPzEbd0FRj6+Au4
f2V94nowCrzUOMHcAvMQVNfbza4ssyIvIzDoFlSgCePTQqeDRJnmWV6k2TZd787sXksOjlbkZ0II
IS/xDX1iC8+0ItnqNTOAc0wArS5FhFCrVchQ5px0nqGnqxnkGj1gbL1pmgP+6PUoel+RbwT1E3kI
j++BdBKZIgzdE9gD7mP0JUYVKfIDNk2zlLXQjY4FazgqtQAYovYsjCYauj8jp4sFpYWx+ujeUWkn
Ubq+tsCcxtCu89rQiJ4SQu7jqMY37qmxejC+9voB4nefr4pJj84bmtH17gx67Zma88U6X32gV7fg
mVRuMWzKGe+hnanzZtjYSr0AkoXrv7v5SHtyLlH8j/wMcA7GQ1sbC63kbx3PZRbCAf+r7DLl2DB1
YB8lh9pLsGETLXRsVNNZUffbeRjqTqIAa6ycbqsz9abMWFfCZnNFk1PyBwAA//8DAFrI5iJpAwAA
headers:
CF-RAY:
- 92934a761887cecd-SJC
- 983ce52deb75239d-SJC
Connection:
- keep-alive
Content-Encoding:
@@ -246,9 +213,11 @@ interactions:
Content-Type:
- application/json
Date:
- Mon, 31 Mar 2025 22:30:23 GMT
- Tue, 23 Sep 2025 20:47:06 GMT
Server:
- cloudflare
Strict-Transport-Security:
- max-age=31536000; includeSubDomains; preload
Transfer-Encoding:
- chunked
X-Content-Type-Options:
@@ -262,27 +231,38 @@ interactions:
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '586'
- '542'
openai-project:
- proj_xitITlrFeen7zjNSzML82h9x
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains; preload
x-envoy-upstream-service-time:
- '645'
x-openai-proxy-wasm:
- v0.1
x-ratelimit-limit-project-tokens:
- '150000000'
x-ratelimit-limit-requests:
- '50000'
- '30000'
x-ratelimit-limit-tokens:
- '150000000'
x-ratelimit-remaining-project-tokens:
- '149999560'
x-ratelimit-remaining-requests:
- '49999'
- '29999'
x-ratelimit-remaining-tokens:
- '149999556'
- '149999560'
x-ratelimit-reset-project-tokens:
- 0s
x-ratelimit-reset-requests:
- 1ms
- 2ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_5721f8ae85f6db2a8d622756c9c590e0
http_version: HTTP/1.1
status_code: 200
- req_0b91fc424913433f92a2635ee229ae15
status:
code: 200
message: OK
- request:
body: '{"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
@@ -301,33 +281,32 @@ interactions:
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": "42"}, {"role": "assistant",
"content": "Thought: I need to use the `get_final_answer` tool to obtain the
final answer as instructed.\n\nAction: get_final_answer\nAction Input: {}\nObservation:
42"}, {"role": "assistant", "content": "Thought: I need to use the `get_final_answer`
tool to obtain the final answer as instructed.\n\nAction: get_final_answer\nAction
Input: {}\nObservation: 42\nNow it''s time you MUST give your absolute best
on it!\n\nThought:"}, {"role": "assistant", "content": "I should continuously
use the tool to gather more information for the final answer. \nAction: get_final_answer \nAction
Input: {} \nObservation: 42"}, {"role": "assistant", "content": "I should continuously
use the tool to gather more information for the final answer. \nAction: get_final_answer \nAction
Input: {} \nObservation: 42\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."}], "model": "gpt-4o", "stop":
["\nObservation:"]}'
and just return your absolute BEST Final answer."}], "model": "gpt-4o-mini",
"stop": ["\nObservation:"], "stream": false}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate, zstd
- gzip, deflate
connection:
- keep-alive
content-length:
- '2033'
- '2005'
content-type:
- application/json
cookie:
- __cf_bm=jgfjGzf0.7lCXlVzIbsbMEF96s2MbJI96MITu95MUb4-1743460222-1.0.1.1-5a2I.TvJaUUtIHxZWQd6MBtM7z2yi.WFjj5nFBxFCGbhwwpbvqFpMv53MagnPhhLAC4RISzaGlrdKDwZAUOVr9sCewK3iQFs4FUQ7iPswX4;
_cfuvid=MVRLJp6ihuQOpnpTSPmJe03oBXqrmw5nly7TKu7EGYk-1743460222363-0.0.1.1-604800000
- __cf_bm=1fs_tWXSjOXLvWmDDleCPs6zqeoMCE9WMzw34UrJEY0-1758660425-1.0.1.1-yN.usYgsw3jmDue61Z30KB.SQOEVjuZCOMFqPwf22cZ9TvM1FzFJFR5PZPyS.uYDZAWJMX29SzSPw_PcDk7dbHVSGM.ubbhoxn1Y18nRqrI;
_cfuvid=yrBvDYdy4HQeXpy__ld4uITFc6g85yQ2XUMU0NQ.v7Y-1758660425881-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.68.2
- OpenAI/Python 1.93.0
x-stainless-arch:
- arm64
x-stainless-async:
@@ -337,35 +316,30 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.68.2
x-stainless-raw-response:
- 'true'
x-stainless-read-timeout:
- '600.0'
- 1.93.0
x-stainless-retry-count:
- '0'
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.8
- 3.12.9
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
content: "{\n \"id\": \"chatcmpl-BHHw7R16wjU2hKaUpPLQNnbUVZNg9\",\n \"object\":
\"chat.completion\",\n \"created\": 1743460223,\n \"model\": \"gpt-4o-2024-08-06\",\n
\ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\":
\"assistant\",\n \"content\": \"Thought: I now know the final answer.\\nFinal
Answer: The final answer is 42.\",\n \"refusal\": null,\n \"annotations\":
[]\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n
\ }\n ],\n \"usage\": {\n \"prompt_tokens\": 407,\n \"completion_tokens\":
20,\n \"total_tokens\": 427,\n \"prompt_tokens_details\": {\n \"cached_tokens\":
0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n
\ \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\":
0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\":
\"default\",\n \"system_fingerprint\": \"fp_6dd05565ef\"\n}\n"
body:
string: !!binary |
H4sIAAAAAAAAAwAAAP//jFLBbtswDL37KwSd48FxHTfxbSgwoFsxYFtPXQpblWlbqywKEr1sKPLv
g+w0dtcO2EUA+fie+Eg+RYxxVfOCcdkJkr3V8dXH7Ko1X24On/zuNvu8vdHZ1299epe0+R3yVWDg
ww+Q9Mx6J7G3GkihmWDpQBAE1fXlZpvnSZbmI9BjDTrQWktxhnGvjIrTJM3i5DJeb0/sDpUEzwv2
PWKMsafxDX2aGn7xgiWr50wP3osWeHEuYow71CHDhffKkzDEVzMo0RCYsfWqqvbmtsOh7ahg18zg
gT2GhzpgjTJCM2H8AdzefBij92NUsCzdm6qqlrIOmsGLYM0MWi8AYQySCKMZDd2fkOPZgsbWOnzw
f1F5o4zyXelAeDShXU9o+YgeI8bux1ENL9xz67C3VBI+wvjdxS6b9Pi8oRldb08gIQk957N1unpD
r6yBhNJ+MWwuheygnqnzZsRQK1wA0cL1627e0p6cK9P+j/wMSAmWoC6tg1rJl47nMgfhgP9Vdp7y
2DD34H4qCSUpcGETNTRi0NNZcf/bE/Rlo0wLzjo13VZjy02eiCaHzWbHo2P0BwAA//8DAG1a2r5p
AwAA
headers:
CF-RAY:
- 92934a7a4d30cecd-SJC
- 983ce5328a31239d-SJC
Connection:
- keep-alive
Content-Encoding:
@@ -373,9 +347,11 @@ interactions:
Content-Type:
- application/json
Date:
- Mon, 31 Mar 2025 22:30:23 GMT
- Tue, 23 Sep 2025 20:47:07 GMT
Server:
- cloudflare
Strict-Transport-Security:
- max-age=31536000; includeSubDomains; preload
Transfer-Encoding:
- chunked
X-Content-Type-Options:
@@ -389,25 +365,116 @@ interactions:
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '649'
- '418'
openai-project:
- proj_xitITlrFeen7zjNSzML82h9x
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains; preload
x-envoy-upstream-service-time:
- '435'
x-openai-proxy-wasm:
- v0.1
x-ratelimit-limit-project-tokens:
- '150000000'
x-ratelimit-limit-requests:
- '50000'
- '30000'
x-ratelimit-limit-tokens:
- '150000000'
x-ratelimit-remaining-project-tokens:
- '149999560'
x-ratelimit-remaining-requests:
- '49999'
- '29999'
x-ratelimit-remaining-tokens:
- '149999556'
- '149999560'
x-ratelimit-reset-project-tokens:
- 0s
x-ratelimit-reset-requests:
- 1ms
- 2ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_dd1a4cd09c8f157847d2a9d306d354ef
http_version: HTTP/1.1
status_code: 200
- req_7353c84c469e47edb87bca11e7eef26c
status:
code: 200
message: OK
- request:
body: '{"trace_id": "4a5d3ea4-8a22-44c3-9dee-9b18f60844a5", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-24T05:27:26.071046+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"29f0c8c3-5f4d-44c4-8039-c396f56c331c","trace_id":"4a5d3ea4-8a22-44c3-9dee-9b18f60844a5","execution_type":"crew","crew_name":"Unknown
Crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"Unknown
Crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T05:27:26.748Z","updated_at":"2025-09-24T05:27:26.748Z"}'
headers:
Content-Length:
- '496'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"15b0f995f6a15e4200edfb1225bf94cc"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.04, sql.active_record;dur=23.95, cache_generate.active_support;dur=2.46,
cache_write.active_support;dur=0.11, cache_read_multi.active_support;dur=0.08,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.28,
feature_operation.flipper;dur=0.03, start_transaction.active_record;dur=0.01,
transaction.active_record;dur=25.78, process_action.action_controller;dur=673.72
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 827aec6a-c65c-4cc7-9d2a-2d28e541824f
x-runtime:
- '0.699809'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
version: 1

View File

@@ -112,4 +112,76 @@ interactions:
- req_463fbd324e01320dc253008f919713bd
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "110f149f-af21-4861-b208-2a568e0ec690", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-23T20:49:30.660760+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Content-Length:
- '55'
cache-control:
- no-cache
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.06, start_processing.action_controller;dur=0.00,
process_action.action_controller;dur=1.86
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- efa34d51-cac4-408f-95cc-b0f933badd75
x-runtime:
- '0.021535'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -102,4 +102,76 @@ interactions:
- req_ae48f8aa852eb1e19deffc2025a430a2
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "6eb03cbb-e6e1-480b-8bd9-fe8a4bf6e458", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-23T20:10:41.947170+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Content-Length:
- '55'
cache-control:
- no-cache
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.06, sql.active_record;dur=5.97, cache_generate.active_support;dur=6.07,
cache_write.active_support;dur=0.16, cache_read_multi.active_support;dur=0.10,
start_processing.action_controller;dur=0.00, process_action.action_controller;dur=2.21
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 670e8523-6b62-4a8e-b0d2-6ef0bcd6aeba
x-runtime:
- '0.037480'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -455,4 +455,76 @@ interactions:
- chunked
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "42f3232c-1854-4ad7-a0c9-569ca1dcb4a5", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-23T17:18:02.942040+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Content-Length:
- '55'
cache-control:
- no-cache
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.22, sql.active_record;dur=1.95, cache_generate.active_support;dur=2.05,
cache_write.active_support;dur=0.09, cache_read_multi.active_support;dur=0.07,
start_processing.action_controller;dur=0.01, process_action.action_controller;dur=3.70
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- fb621d03-a1e2-4271-ae25-dbaf59adc9e9
x-runtime:
- '0.060673'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -100,4 +100,76 @@ interactions:
- req_67f5f6df8fcf3811cb2738ac35faa3ab
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "40af4df0-7b70-4750-b485-b15843e52485", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-23T21:57:20.961510+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Content-Length:
- '55'
cache-control:
- no-cache
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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,
process_action.action_controller;dur=2.94
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 47c1a2f5-0656-487d-9ea7-0ce9aa4575bd
x-runtime:
- '0.027618'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -223,4 +223,169 @@ interactions:
- req_0dc6a524972e5aacd0051c3ad44f441e
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "b48a2125-3bd8-4442-90e6-ebf5d2d97cb8", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-23T20:22:49.256965+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Content-Length:
- '55'
cache-control:
- no-cache
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.05, sql.active_record;dur=3.07, cache_generate.active_support;dur=2.66,
cache_write.active_support;dur=0.12, cache_read_multi.active_support;dur=0.08,
start_processing.action_controller;dur=0.00, process_action.action_controller;dur=2.15
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- d66ccf19-ee4f-461f-97c7-675fe34b7f5a
x-runtime:
- '0.039942'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
- request:
body: '{"trace_id": "0f74d868-2b80-43dd-bfed-af6e36299ea4", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "1.0.0a2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-10-02T22:35:47.609092+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate, zstd
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/1.0.0a2
X-Crewai-Version:
- 1.0.0a2
method: POST
uri: https://app.crewai.com/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Connection:
- keep-alive
Content-Length:
- '55'
Content-Type:
- application/json; charset=utf-8
Date:
- Thu, 02 Oct 2025 22:35:47 GMT
cache-control:
- no-cache
content-security-policy:
- 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self''
''unsafe-inline'' *.app.crewai.com app.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://js.hubspot.com http://js-na1.hs-scripts.com
https://bat.bing.com https://cdn.amplitude.com https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/
https://descriptusercontent.com https://edge.fullstory.com https://googleads.g.doubleclick.net
https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net
https://js.hscollectedforms.net https://js.usemessages.com https://snap.licdn.com
https://static.cloudflareinsights.com https://static.reo.dev https://www.google-analytics.com
https://share.descript.com/; style-src ''self'' ''unsafe-inline'' *.app.crewai.com
app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; img-src ''self'' data:
*.app.crewai.com app.crewai.com https://zeus.tools.crewai.com https://dashboard.tools.crewai.com
https://cdn.jsdelivr.net https://forms.hsforms.com https://track.hubspot.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://www.google.com
https://www.google.com.br; font-src ''self'' data: *.app.crewai.com app.crewai.com;
connect-src ''self'' *.app.crewai.com app.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 https://edge.fullstory.com https://rs.fullstory.com
https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509
https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect
https://worker-actionkit.tools.crewai.com https://api.reo.dev; frame-src ''self''
*.app.crewai.com app.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://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/
https://www.youtube.com https://share.descript.com'
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
strict-transport-security:
- max-age=63072000; includeSubDomains
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 700ca0e2-4345-4576-914c-2e3b7e6569be
x-runtime:
- '0.036662'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -223,4 +223,76 @@ interactions:
- req_7a2c1a8d417b75e8dfafe586a1089504
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "ace6039f-cb1f-4449-93c2-4d6249bf82d4", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-23T20:21:06.270204+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Content-Length:
- '55'
cache-control:
- no-cache
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.03, sql.active_record;dur=0.90, cache_generate.active_support;dur=1.17,
cache_write.active_support;dur=1.18, cache_read_multi.active_support;dur=0.05,
start_processing.action_controller;dur=0.00, process_action.action_controller;dur=1.75
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- a716946e-d9a6-4c4b-af1d-ed14ea9f0d75
x-runtime:
- '0.021168'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -432,4 +432,961 @@ interactions:
- req_3f7dc3979b7fa55a9002ef66916059f5
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "64022169-f1fe-4722-8c1f-1f0d365703f2", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-23T21:57:19.788738+00:00"},
"ephemeral_trace_id": "64022169-f1fe-4722-8c1f-1f0d365703f2"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '490'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches
response:
body:
string: '{"id":"09a43e14-1eec-4b11-86ec-45b7d1ad0237","ephemeral_trace_id":"64022169-f1fe-4722-8c1f-1f0d365703f2","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-23T21:57:19.997Z","updated_at":"2025-09-23T21:57:19.997Z","access_code":"TRACE-9759d5723a","user_identifier":null}'
headers:
Content-Length:
- '519'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"92fa72cd73e3d7b2828f6483d80aa0f7"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.37, sql.active_record;dur=118.88, cache_generate.active_support;dur=108.22,
cache_write.active_support;dur=0.21, cache_read_multi.active_support;dur=0.28,
start_processing.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=7.18, process_action.action_controller;dur=15.35
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 262e2896-255d-4ab1-919e-0925dbb92509
x-runtime:
- '0.197619'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "1a65eb44-fa38-46f9-9c7f-09b110ccef2c", "timestamp":
"2025-09-23T21:57:20.005351+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-23T21:57:19.787762+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "01725690-7f21-4e4c-9e4c-08956025fdc3",
"timestamp": "2025-09-23T21:57:20.007273+00:00", "type": "task_started", "event_data":
{"task_description": "Write and then review an small paragraph on AI until it''s
AMAZING", "expected_output": "The final paragraph.", "task_name": "Write and
then review an small paragraph on AI until it''s AMAZING", "context": "", "agent_role":
"test role", "task_id": "cb31604f-26ce-4486-bb4e-047a68b6874a"}}, {"event_id":
"1d8e66f1-02ea-46fe-a57a-b779f2770e2e", "timestamp": "2025-09-23T21:57:20.007694+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "test role",
"agent_goal": "test goal", "agent_backstory": "test backstory"}}, {"event_id":
"9916d183-53ec-4584-94fd-6e4ecd2f15ec", "timestamp": "2025-09-23T21:57:20.007784+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-23T21:57:20.007761+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "cb31604f-26ce-4486-bb4e-047a68b6874a",
"task_name": "Write and then review an small paragraph on AI until it''s AMAZING",
"agent_id": "796ea5f2-01d0-4f2b-9e18-daa2257ac0e0", "agent_role": "test role",
"from_task": null, "from_agent": null, "model": "gpt-4o", "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: learn_about_ai\nTool Arguments:
{}\nTool Description: Useful for when you need to learn about AI to write an
paragraph about it.\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 [learn_about_ai], 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\n\nThis is the expected
criteria for your final answer: The final paragraph.\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x131198770>"], "available_functions": null}}, {"event_id": "ea98d9df-39cb-4ff3-a4d5-a0e5b1e90adc",
"timestamp": "2025-09-23T21:57:20.009557+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T21:57:20.009520+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "cb31604f-26ce-4486-bb4e-047a68b6874a", "task_name": "Write and then
review an small paragraph on AI until it''s AMAZING", "agent_id": "796ea5f2-01d0-4f2b-9e18-daa2257ac0e0",
"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: learn_about_ai\nTool
Arguments: {}\nTool Description: Useful for when you need to learn about AI
to write an paragraph about it.\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 [learn_about_ai], 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\n\nThis is the expected criteria for your final answer: The final
paragraph.\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":
"```\nThought: To write an amazing paragraph on AI, I need to gather detailed
information about it first.\nAction: learn_about_AI\nAction Input: {}", "call_type":
"<LLMCallType.LLM_CALL: ''llm_call''>", "model": "gpt-4o"}}, {"event_id": "088c666a-dc6a-4f8c-a842-03d038ed475e",
"timestamp": "2025-09-23T21:57:20.034905+00:00", "type": "tool_usage_started",
"event_data": {"timestamp": "2025-09-23T21:57:20.034833+00:00", "type": "tool_usage_started",
"source_fingerprint": "3e5a4ff6-0a97-4685-93da-62a0a4bf967d", "source_type":
"agent", "fingerprint_metadata": null, "task_id": "cb31604f-26ce-4486-bb4e-047a68b6874a",
"task_name": "Write and then review an small paragraph on AI until it''s AMAZING",
"agent_id": null, "agent_role": "test role", "agent_key": "e148e5320293499f8cebea826e72582b",
"tool_name": "learn_about_AI", "tool_args": "{}", "tool_class": "learn_about_AI",
"run_attempts": null, "delegations": null, "agent": {"id": "796ea5f2-01d0-4f2b-9e18-daa2257ac0e0",
"role": "test role", "goal": "test goal", "backstory": "test backstory", "cache":
true, "verbose": false, "max_rpm": null, "allow_delegation": false, "tools":
[{"name": "''learn_about_ai''", "description": "''Tool Name: learn_about_ai\\nTool
Arguments: {}\\nTool Description: Useful for when you need to learn about AI
to write an paragraph about it.''", "env_vars": "[]", "args_schema": "<class
''abc.Learn_About_Ai''>", "description_updated": "False", "cache_function":
"<function BaseTool.<lambda> at 0x107389260>", "result_as_answer": "False",
"max_usage_count": "None", "current_usage_count": "0"}], "max_iter": 2, "agent_executor":
"<crewai.agents.crew_agent_executor.CrewAgentExecutor object at 0x130de6540>",
"llm": "<crewai.llms.providers.openai.completion.OpenAICompletion object at
0x130db6de0>", "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\", ''expected_output'':
''The final paragraph.'', ''config'': None, ''callback'': None, ''agent'': {''id'':
UUID(''796ea5f2-01d0-4f2b-9e18-daa2257ac0e0''), ''role'': ''test role'', ''goal'':
''test goal'', ''backstory'': ''test backstory'', ''cache'': True, ''verbose'':
False, ''max_rpm'': None, ''allow_delegation'': False, ''tools'': [{''name'':
''learn_about_ai'', ''description'': ''Tool Name: learn_about_ai\\nTool Arguments:
{}\\nTool Description: Useful for when you need to learn about AI to write an
paragraph about it.'', ''env_vars'': [], ''args_schema'': <class ''abc.Learn_About_Ai''>,
''description_updated'': False, ''cache_function'': <function BaseTool.<lambda>
at 0x107389260>, ''result_as_answer'': False, ''max_usage_count'': None, ''current_usage_count'':
0}], ''max_iter'': 2, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x130de6540>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x130db6de0>, ''crew'': Crew(id=991ac83f-9a29-411f-b0a0-0a335c7a2d0e,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
object at 0x130de4650>, ''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'': ''learn_about_ai'',
''description'': ''Tool Name: learn_about_ai\\nTool Arguments: {}\\nTool Description:
Useful for when you need to learn about AI to write an paragraph about it.'',
''env_vars'': [], ''args_schema'': <class ''abc.Learn_About_Ai''>, ''description_updated'':
False, ''cache_function'': <function BaseTool.<lambda> at 0x107389260>, ''result_as_answer'':
False, ''max_usage_count'': None, ''current_usage_count'': 0}], ''security_config'':
{''fingerprint'': {''metadata'': {}}}, ''id'': UUID(''cb31604f-26ce-4486-bb4e-047a68b6874a''),
''human_input'': False, ''markdown'': False, ''converter_cls'': None, ''processed_by_agents'':
{''test role''}, ''guardrail'': None, ''max_retries'': None, ''guardrail_max_retries'':
3, ''retry_count'': 0, ''start_time'': datetime.datetime(2025, 9, 23, 14, 57,
20, 7194), ''end_time'': None, ''allow_crewai_trigger_context'': None}"], "agents":
["{''id'': UUID(''796ea5f2-01d0-4f2b-9e18-daa2257ac0e0''), ''role'': ''test
role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': False, ''max_rpm'': None, ''allow_delegation'': False, ''tools'':
[{''name'': ''learn_about_ai'', ''description'': ''Tool Name: learn_about_ai\\nTool
Arguments: {}\\nTool Description: Useful for when you need to learn about AI
to write an paragraph about it.'', ''env_vars'': [], ''args_schema'': <class
''abc.Learn_About_Ai''>, ''description_updated'': False, ''cache_function'':
<function BaseTool.<lambda> at 0x107389260>, ''result_as_answer'': False, ''max_usage_count'':
None, ''current_usage_count'': 0}], ''max_iter'': 2, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x130de6540>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x130db6de0>, ''crew'': Crew(id=991ac83f-9a29-411f-b0a0-0a335c7a2d0e,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
object at 0x130de4650>, ''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":
"991ac83f-9a29-411f-b0a0-0a335c7a2d0e", "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": "<crewai.agents.tools_handler.ToolsHandler
object at 0x130de4650>", "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":
"test role", "agent_ops_agent_id": null, "step_callback": null, "use_system_prompt":
true, "function_calling_llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x130db7020>", "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},
"from_task": null, "from_agent": null}}, {"event_id": "e2dd7c26-5d0b-4c6a-819a-3b1023856b53",
"timestamp": "2025-09-23T21:57:20.036475+00:00", "type": "agent_execution_started",
"event_data": {"agent_role": "test role", "agent_goal": "test goal", "agent_backstory":
"test backstory"}}, {"event_id": "4bd14aea-1d77-4e88-a776-fedbef256094", "timestamp":
"2025-09-23T21:57:20.036542+00:00", "type": "llm_call_started", "event_data":
{"timestamp": "2025-09-23T21:57:20.036525+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "cb31604f-26ce-4486-bb4e-047a68b6874a", "task_name": "Write and then
review an small paragraph on AI until it''s AMAZING", "agent_id": "796ea5f2-01d0-4f2b-9e18-daa2257ac0e0",
"agent_role": "test role", "from_task": null, "from_agent": null, "model": "gpt-4o",
"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: learn_about_ai\nTool
Arguments: {}\nTool Description: Useful for when you need to learn about AI
to write an paragraph about it.\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 [learn_about_ai], 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\n\nThis is the expected criteria for your final answer: The final
paragraph.\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x1312d2060>"], "available_functions": null}}, {"event_id": "46a0f3b8-2d8a-49c7-b898-fe9e1bc2f925",
"timestamp": "2025-09-23T21:57:20.037678+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T21:57:20.037655+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "cb31604f-26ce-4486-bb4e-047a68b6874a", "task_name": "Write and then
review an small paragraph on AI until it''s AMAZING", "agent_id": "796ea5f2-01d0-4f2b-9e18-daa2257ac0e0",
"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: learn_about_ai\nTool
Arguments: {}\nTool Description: Useful for when you need to learn about AI
to write an paragraph about it.\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 [learn_about_ai], 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\n\nThis is the expected criteria for your final answer: The final
paragraph.\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":
"```\nThought: I now have the necessary information to craft a comprehensive
and compelling paragraph about AI.\nFinal Answer: Artificial Intelligence (AI)
is a transformative force in today''s world, dramatically reshaping industries
from healthcare to automotive. By leveraging complex algorithms and large datasets,
AI systems can perform tasks that typically require human intelligence, such
as understanding natural language, recognizing patterns, and making decisions.
The potential of AI extends beyond automation; it is a catalyst for innovation,
enabling breakthroughs in personalized medicine, autonomous vehicles, and more.
As AI continues to evolve, it promises to enhance efficiency, drive economic
growth, and unlock new levels of problem-solving capabilities, cementing its
role as a cornerstone of technological progress.\n```", "call_type": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o"}}, {"event_id": "1bc0cced-72e2-4213-820b-dfa0732be145",
"timestamp": "2025-09-23T21:57:20.037779+00:00", "type": "agent_execution_completed",
"event_data": {"agent_role": "test role", "agent_goal": "test goal", "agent_backstory":
"test backstory"}}, {"event_id": "2434a83a-2d7d-45ba-9346-85e7759b7ef6", "timestamp":
"2025-09-23T21:57:20.037811+00:00", "type": "agent_execution_completed", "event_data":
{"agent_role": "test role", "agent_goal": "test goal", "agent_backstory": "test
backstory"}}, {"event_id": "953d2d3b-8c79-4317-b500-21621a79c7b2", "timestamp":
"2025-09-23T21:57:20.037852+00:00", "type": "task_completed", "event_data":
{"task_description": "Write and then review an small paragraph on AI until it''s
AMAZING", "task_name": "Write and then review an small paragraph on AI until
it''s AMAZING", "task_id": "cb31604f-26ce-4486-bb4e-047a68b6874a", "output_raw":
"Artificial Intelligence (AI) is a transformative force in today''s world, dramatically
reshaping industries from healthcare to automotive. By leveraging complex algorithms
and large datasets, AI systems can perform tasks that typically require human
intelligence, such as understanding natural language, recognizing patterns,
and making decisions. The potential of AI extends beyond automation; it is a
catalyst for innovation, enabling breakthroughs in personalized medicine, autonomous
vehicles, and more. As AI continues to evolve, it promises to enhance efficiency,
drive economic growth, and unlock new levels of problem-solving capabilities,
cementing its role as a cornerstone of technological progress.", "output_format":
"OutputFormat.RAW", "agent_role": "test role"}}, {"event_id": "71b3d653-f445-4752-b7a3-9d505805f401",
"timestamp": "2025-09-23T21:57:20.038851+00:00", "type": "crew_kickoff_completed",
"event_data": {"timestamp": "2025-09-23T21:57:20.038828+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "output": {"description": "Write and then review an small
paragraph on AI until it''s AMAZING", "name": "Write and then review an small
paragraph on AI until it''s AMAZING", "expected_output": "The final paragraph.",
"summary": "Write and then review an small paragraph on AI until...", "raw":
"Artificial Intelligence (AI) is a transformative force in today''s world, dramatically
reshaping industries from healthcare to automotive. By leveraging complex algorithms
and large datasets, AI systems can perform tasks that typically require human
intelligence, such as understanding natural language, recognizing patterns,
and making decisions. The potential of AI extends beyond automation; it is a
catalyst for innovation, enabling breakthroughs in personalized medicine, autonomous
vehicles, and more. As AI continues to evolve, it promises to enhance efficiency,
drive economic growth, and unlock new levels of problem-solving capabilities,
cementing its role as a cornerstone of technological progress.", "pydantic":
null, "json_dict": null, "agent": "test role", "output_format": "raw"}, "total_tokens":
782}}], "batch_metadata": {"events_count": 13, "batch_sequence": 1, "is_final_batch":
false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '21312'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/64022169-f1fe-4722-8c1f-1f0d365703f2/events
response:
body:
string: '{"events_created":13,"ephemeral_trace_batch_id":"09a43e14-1eec-4b11-86ec-45b7d1ad0237"}'
headers:
Content-Length:
- '87'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"456bce88c5a0a2348e6d16d7c4320aec"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.05, sql.active_record;dur=49.08, cache_generate.active_support;dur=3.62,
cache_write.active_support;dur=0.19, cache_read_multi.active_support;dur=2.00,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.05,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=65.76,
process_action.action_controller;dur=71.90
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 92dab941-1fc9-4e42-8280-1e343f81825a
x-runtime:
- '0.108831'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 371, "final_event_count": 13}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '68'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/64022169-f1fe-4722-8c1f-1f0d365703f2/finalize
response:
body:
string: '{"id":"09a43e14-1eec-4b11-86ec-45b7d1ad0237","ephemeral_trace_id":"64022169-f1fe-4722-8c1f-1f0d365703f2","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":371,"crewai_version":"0.193.2","total_events":13,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-23T21:57:19.997Z","updated_at":"2025-09-23T21:57:20.208Z","access_code":"TRACE-9759d5723a","user_identifier":null}'
headers:
Content-Length:
- '521'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"76d70327aaf5612e2a91688cdd67a74d"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.10, sql.active_record;dur=16.57, cache_generate.active_support;dur=3.76,
cache_write.active_support;dur=0.11, cache_read_multi.active_support;dur=0.21,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.03,
unpermitted_parameters.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=7.98, process_action.action_controller;dur=15.07
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 5e0ff83c-eb03-4447-b735-b01ece0370ce
x-runtime:
- '0.049100'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"trace_id": "1f3a4201-cacd-4a36-a518-bb6662e06f33", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-24T05:24:14.892619+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '428'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"7382f59a-2ad0-40cf-b68b-2041893f67a6","trace_id":"1f3a4201-cacd-4a36-a518-bb6662e06f33","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T05:24:15.219Z","updated_at":"2025-09-24T05:24:15.219Z"}'
headers:
Content-Length:
- '480'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"493de49e25e50c249d98c0099de0fb82"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.11, start_processing.action_controller;dur=0.00,
sql.active_record;dur=20.34, instantiation.active_record;dur=0.32, feature_operation.flipper;dur=0.05,
start_transaction.active_record;dur=0.01, transaction.active_record;dur=5.82,
process_action.action_controller;dur=290.85
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- adba8dd8-bac1-409f-a444-7edd75856b87
x-runtime:
- '0.329593'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "da229069-0ed6-45ae-bd65-07292bda885c", "timestamp":
"2025-09-24T05:24:15.225096+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-24T05:24:14.891304+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "a5ffef80-e7c3-4d35-9a6f-8a86a40b0e01",
"timestamp": "2025-09-24T05:24:15.226402+00:00", "type": "task_started", "event_data":
{"task_description": "Write and then review an small paragraph on AI until it''s
AMAZING", "expected_output": "The final paragraph.", "task_name": "Write and
then review an small paragraph on AI until it''s AMAZING", "context": "", "agent_role":
"test role", "task_id": "60ccb050-4300-4bcb-8785-6e47b42e4c3a"}}, {"event_id":
"3c61cd20-a55b-4538-a3d9-35e740484f3c", "timestamp": "2025-09-24T05:24:15.226705+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "test role",
"agent_goal": "test goal", "agent_backstory": "test backstory"}}, {"event_id":
"bff89bba-387a-4b96-81e4-9d02a47e8c33", "timestamp": "2025-09-24T05:24:15.226770+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-24T05:24:15.226752+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "60ccb050-4300-4bcb-8785-6e47b42e4c3a",
"task_name": "Write and then review an small paragraph on AI until it''s AMAZING",
"agent_id": "acc5999d-b6d2-4359-b567-a55f071a5aa8", "agent_role": "test role",
"from_task": null, "from_agent": null, "model": "gpt-4o", "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: learn_about_ai\nTool Arguments:
{}\nTool Description: Useful for when you need to learn about AI to write an
paragraph about it.\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 [learn_about_ai], 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\n\nThis is the expected
criteria for your final answer: The final paragraph.\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x13b37f140>"], "available_functions": null}}, {"event_id": "b9fe93c7-21cf-4a3d-b7a8-2d42f8b6a98e",
"timestamp": "2025-09-24T05:24:15.227924+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T05:24:15.227903+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "60ccb050-4300-4bcb-8785-6e47b42e4c3a", "task_name": "Write and then
review an small paragraph on AI until it''s AMAZING", "agent_id": "acc5999d-b6d2-4359-b567-a55f071a5aa8",
"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: learn_about_ai\nTool
Arguments: {}\nTool Description: Useful for when you need to learn about AI
to write an paragraph about it.\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 [learn_about_ai], 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\n\nThis is the expected criteria for your final answer: The final
paragraph.\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":
"```\nThought: To write an amazing paragraph on AI, I need to gather detailed
information about it first.\nAction: learn_about_AI\nAction Input: {}", "call_type":
"<LLMCallType.LLM_CALL: ''llm_call''>", "model": "gpt-4o"}}, {"event_id": "e4de7bf4-2c01-423d-aa65-53fc1ea255b8",
"timestamp": "2025-09-24T05:24:15.249978+00:00", "type": "tool_usage_started",
"event_data": {"timestamp": "2025-09-24T05:24:15.249940+00:00", "type": "tool_usage_started",
"source_fingerprint": "89b993a5-65e4-4471-bccb-269545370586", "source_type":
"agent", "fingerprint_metadata": null, "task_id": "60ccb050-4300-4bcb-8785-6e47b42e4c3a",
"task_name": "Write and then review an small paragraph on AI until it''s AMAZING",
"agent_id": null, "agent_role": "test role", "agent_key": "e148e5320293499f8cebea826e72582b",
"tool_name": "learn_about_AI", "tool_args": "{}", "tool_class": "learn_about_AI",
"run_attempts": null, "delegations": null, "agent": {"id": "acc5999d-b6d2-4359-b567-a55f071a5aa8",
"role": "test role", "goal": "test goal", "backstory": "test backstory", "cache":
true, "verbose": false, "max_rpm": null, "allow_delegation": false, "tools":
[{"name": "''learn_about_ai''", "description": "''Tool Name: learn_about_ai\\nTool
Arguments: {}\\nTool Description: Useful for when you need to learn about AI
to write an paragraph about it.''", "env_vars": "[]", "args_schema": "<class
''abc.Learn_About_Ai''>", "description_updated": "False", "cache_function":
"<function BaseTool.<lambda> at 0x107e394e0>", "result_as_answer": "False",
"max_usage_count": "None", "current_usage_count": "0"}], "max_iter": 2, "agent_executor":
"<crewai.agents.crew_agent_executor.CrewAgentExecutor object at 0x13b37c980>",
"llm": "<crewai.llms.providers.openai.completion.OpenAICompletion object at
0x13b7563c0>", "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\", ''expected_output'':
''The final paragraph.'', ''config'': None, ''callback'': None, ''agent'': {''id'':
UUID(''acc5999d-b6d2-4359-b567-a55f071a5aa8''), ''role'': ''test role'', ''goal'':
''test goal'', ''backstory'': ''test backstory'', ''cache'': True, ''verbose'':
False, ''max_rpm'': None, ''allow_delegation'': False, ''tools'': [{''name'':
''learn_about_ai'', ''description'': ''Tool Name: learn_about_ai\\nTool Arguments:
{}\\nTool Description: Useful for when you need to learn about AI to write an
paragraph about it.'', ''env_vars'': [], ''args_schema'': <class ''abc.Learn_About_Ai''>,
''description_updated'': False, ''cache_function'': <function BaseTool.<lambda>
at 0x107e394e0>, ''result_as_answer'': False, ''max_usage_count'': None, ''current_usage_count'':
0}], ''max_iter'': 2, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13b37c980>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13b7563c0>, ''crew'': Crew(id=f38365e9-3206-45b6-8754-950cb03fe57e,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
object at 0x13b757ce0>, ''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'': ''learn_about_ai'',
''description'': ''Tool Name: learn_about_ai\\nTool Arguments: {}\\nTool Description:
Useful for when you need to learn about AI to write an paragraph about it.'',
''env_vars'': [], ''args_schema'': <class ''abc.Learn_About_Ai''>, ''description_updated'':
False, ''cache_function'': <function BaseTool.<lambda> at 0x107e394e0>, ''result_as_answer'':
False, ''max_usage_count'': None, ''current_usage_count'': 0}], ''security_config'':
{''fingerprint'': {''metadata'': {}}}, ''id'': UUID(''60ccb050-4300-4bcb-8785-6e47b42e4c3a''),
''human_input'': False, ''markdown'': False, ''converter_cls'': None, ''processed_by_agents'':
{''test role''}, ''guardrail'': None, ''max_retries'': None, ''guardrail_max_retries'':
3, ''retry_count'': 0, ''start_time'': datetime.datetime(2025, 9, 23, 22, 24,
15, 226357), ''end_time'': None, ''allow_crewai_trigger_context'': None}"],
"agents": ["{''id'': UUID(''acc5999d-b6d2-4359-b567-a55f071a5aa8''), ''role'':
''test role'', ''goal'': ''test goal'', ''backstory'': ''test backstory'', ''cache'':
True, ''verbose'': False, ''max_rpm'': None, ''allow_delegation'': False, ''tools'':
[{''name'': ''learn_about_ai'', ''description'': ''Tool Name: learn_about_ai\\nTool
Arguments: {}\\nTool Description: Useful for when you need to learn about AI
to write an paragraph about it.'', ''env_vars'': [], ''args_schema'': <class
''abc.Learn_About_Ai''>, ''description_updated'': False, ''cache_function'':
<function BaseTool.<lambda> at 0x107e394e0>, ''result_as_answer'': False, ''max_usage_count'':
None, ''current_usage_count'': 0}], ''max_iter'': 2, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13b37c980>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13b7563c0>, ''crew'': Crew(id=f38365e9-3206-45b6-8754-950cb03fe57e,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
object at 0x13b757ce0>, ''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":
"f38365e9-3206-45b6-8754-950cb03fe57e", "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": "<crewai.agents.tools_handler.ToolsHandler
object at 0x13b757ce0>", "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":
"test role", "agent_ops_agent_id": null, "step_callback": null, "use_system_prompt":
true, "function_calling_llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13b756690>", "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},
"from_task": null, "from_agent": null}}, {"event_id": "914499b5-5197-48c1-9987-8322dd525a35",
"timestamp": "2025-09-24T05:24:15.250674+00:00", "type": "agent_execution_started",
"event_data": {"agent_role": "test role", "agent_goal": "test goal", "agent_backstory":
"test backstory"}}, {"event_id": "8171d27e-5521-49a4-89ad-1510e966f84c", "timestamp":
"2025-09-24T05:24:15.250731+00:00", "type": "llm_call_started", "event_data":
{"timestamp": "2025-09-24T05:24:15.250715+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "60ccb050-4300-4bcb-8785-6e47b42e4c3a", "task_name": "Write and then
review an small paragraph on AI until it''s AMAZING", "agent_id": "acc5999d-b6d2-4359-b567-a55f071a5aa8",
"agent_role": "test role", "from_task": null, "from_agent": null, "model": "gpt-4o",
"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: learn_about_ai\nTool
Arguments: {}\nTool Description: Useful for when you need to learn about AI
to write an paragraph about it.\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 [learn_about_ai], 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\n\nThis is the expected criteria for your final answer: The final
paragraph.\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x10bcded50>"], "available_functions": null}}, {"event_id": "a7df5395-2972-4936-9259-1ec72ed97bc1",
"timestamp": "2025-09-24T05:24:15.251657+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T05:24:15.251641+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "60ccb050-4300-4bcb-8785-6e47b42e4c3a", "task_name": "Write and then
review an small paragraph on AI until it''s AMAZING", "agent_id": "acc5999d-b6d2-4359-b567-a55f071a5aa8",
"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: learn_about_ai\nTool
Arguments: {}\nTool Description: Useful for when you need to learn about AI
to write an paragraph about it.\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 [learn_about_ai], 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\n\nThis is the expected criteria for your final answer: The final
paragraph.\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":
"```\nThought: I now have the necessary information to craft a comprehensive
and compelling paragraph about AI.\nFinal Answer: Artificial Intelligence (AI)
is a transformative force in today''s world, dramatically reshaping industries
from healthcare to automotive. By leveraging complex algorithms and large datasets,
AI systems can perform tasks that typically require human intelligence, such
as understanding natural language, recognizing patterns, and making decisions.
The potential of AI extends beyond automation; it is a catalyst for innovation,
enabling breakthroughs in personalized medicine, autonomous vehicles, and more.
As AI continues to evolve, it promises to enhance efficiency, drive economic
growth, and unlock new levels of problem-solving capabilities, cementing its
role as a cornerstone of technological progress.\n```", "call_type": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o"}}, {"event_id": "5d70fb17-8f2e-4bc0-addd-37e0c824aeaa",
"timestamp": "2025-09-24T05:24:15.251765+00:00", "type": "agent_execution_completed",
"event_data": {"agent_role": "test role", "agent_goal": "test goal", "agent_backstory":
"test backstory"}}, {"event_id": "eff530b4-3197-4819-9998-10f8e865c894", "timestamp":
"2025-09-24T05:24:15.251790+00:00", "type": "agent_execution_completed", "event_data":
{"agent_role": "test role", "agent_goal": "test goal", "agent_backstory": "test
backstory"}}, {"event_id": "aee267bf-7b29-4106-bb05-921b6c2c544f", "timestamp":
"2025-09-24T05:24:15.251823+00:00", "type": "task_completed", "event_data":
{"task_description": "Write and then review an small paragraph on AI until it''s
AMAZING", "task_name": "Write and then review an small paragraph on AI until
it''s AMAZING", "task_id": "60ccb050-4300-4bcb-8785-6e47b42e4c3a", "output_raw":
"Artificial Intelligence (AI) is a transformative force in today''s world, dramatically
reshaping industries from healthcare to automotive. By leveraging complex algorithms
and large datasets, AI systems can perform tasks that typically require human
intelligence, such as understanding natural language, recognizing patterns,
and making decisions. The potential of AI extends beyond automation; it is a
catalyst for innovation, enabling breakthroughs in personalized medicine, autonomous
vehicles, and more. As AI continues to evolve, it promises to enhance efficiency,
drive economic growth, and unlock new levels of problem-solving capabilities,
cementing its role as a cornerstone of technological progress.", "output_format":
"OutputFormat.RAW", "agent_role": "test role"}}, {"event_id": "1acc71ae-b4c3-48cc-9020-75b1df9a395e",
"timestamp": "2025-09-24T05:24:15.252666+00:00", "type": "crew_kickoff_completed",
"event_data": {"timestamp": "2025-09-24T05:24:15.252651+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "output": {"description": "Write and then review an small
paragraph on AI until it''s AMAZING", "name": "Write and then review an small
paragraph on AI until it''s AMAZING", "expected_output": "The final paragraph.",
"summary": "Write and then review an small paragraph on AI until...", "raw":
"Artificial Intelligence (AI) is a transformative force in today''s world, dramatically
reshaping industries from healthcare to automotive. By leveraging complex algorithms
and large datasets, AI systems can perform tasks that typically require human
intelligence, such as understanding natural language, recognizing patterns,
and making decisions. The potential of AI extends beyond automation; it is a
catalyst for innovation, enabling breakthroughs in personalized medicine, autonomous
vehicles, and more. As AI continues to evolve, it promises to enhance efficiency,
drive economic growth, and unlock new levels of problem-solving capabilities,
cementing its role as a cornerstone of technological progress.", "pydantic":
null, "json_dict": null, "agent": "test role", "output_format": "raw"}, "total_tokens":
782}}], "batch_metadata": {"events_count": 13, "batch_sequence": 1, "is_final_batch":
false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '21314'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/1f3a4201-cacd-4a36-a518-bb6662e06f33/events
response:
body:
string: '{"events_created":13,"trace_batch_id":"7382f59a-2ad0-40cf-b68b-2041893f67a6"}'
headers:
Content-Length:
- '77'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"67daf372aa7ef29cc601744e1d0423e0"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.05, start_processing.action_controller;dur=0.00,
sql.active_record;dur=60.98, instantiation.active_record;dur=0.86, start_transaction.active_record;dur=0.02,
transaction.active_record;dur=76.94, process_action.action_controller;dur=811.04
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 987801fb-ae43-4fd8-987b-03358574a99a
x-runtime:
- '0.833076'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 1202, "final_event_count": 13}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '69'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/1f3a4201-cacd-4a36-a518-bb6662e06f33/finalize
response:
body:
string: '{"id":"7382f59a-2ad0-40cf-b68b-2041893f67a6","trace_id":"1f3a4201-cacd-4a36-a518-bb6662e06f33","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":1202,"crewai_version":"0.193.2","privacy_level":"standard","total_events":13,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-24T05:24:15.219Z","updated_at":"2025-09-24T05:24:16.450Z"}'
headers:
Content-Length:
- '483'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"42f5f54b7105461e0a04f5a07a8c156b"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.03, cache_fetch_hit.active_support;dur=0.00,
cache_read_multi.active_support;dur=0.05, start_processing.action_controller;dur=0.00,
sql.active_record;dur=27.64, instantiation.active_record;dur=0.46, unpermitted_parameters.action_controller;dur=0.00,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=2.03,
process_action.action_controller;dur=333.55
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 388926ac-a364-4e49-bca8-6c2f7fe9d248
x-runtime:
- '0.350879'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -1074,4 +1074,76 @@ interactions:
- req_424bb9ef11cf97c170f2543448a30bea
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "457ac24c-be88-4a24-9378-8cb2bf1f8b10", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-23T20:11:00.682743+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Content-Length:
- '55'
cache-control:
- no-cache
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.06, start_processing.action_controller;dur=0.00,
process_action.action_controller;dur=1.67
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 4bce750d-c407-47b5-af16-ba94c1cdca3a
x-runtime:
- '0.024288'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -134,4 +134,76 @@ interactions:
status:
code: 200
message: OK
- request:
body: '{"trace_id": "fbb3b338-4b22-42e7-a467-e405b8667d4b", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-23T20:51:44.355743+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Content-Length:
- '55'
cache-control:
- no-cache
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.09, sql.active_record;dur=3.90, cache_generate.active_support;dur=3.94,
cache_write.active_support;dur=0.30, cache_read_multi.active_support;dur=0.13,
start_processing.action_controller;dur=0.00, process_action.action_controller;dur=2.46
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- b6d160c7-1140-4d34-859b-f676568ade1f
x-runtime:
- '0.051904'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -275,4 +275,84 @@ interactions:
- req_94e4598735cab3011d351991446daa0f
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "596519e3-c4b4-4ed3-b4a5-f9c45a7b14d8", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-24T05:26:35.700651+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"64f31e10-0359-4ecc-ab94-a5411b61ed70","trace_id":"596519e3-c4b4-4ed3-b4a5-f9c45a7b14d8","execution_type":"crew","crew_name":"Unknown
Crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"Unknown
Crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T05:26:36.208Z","updated_at":"2025-09-24T05:26:36.208Z"}'
headers:
Content-Length:
- '496'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"04883019c82fbcd37fffce169b18c647"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.19, cache_fetch_hit.active_support;dur=0.00,
cache_read_multi.active_support;dur=0.19, start_processing.action_controller;dur=0.01,
sql.active_record;dur=15.09, instantiation.active_record;dur=0.47, feature_operation.flipper;dur=0.09,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=7.08,
process_action.action_controller;dur=440.91
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 7a861cd6-f353-4d51-a882-15104a24cf7d
x-runtime:
- '0.487000'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
version: 1

View File

@@ -960,4 +960,84 @@ interactions:
- req_b3fd17f87532a5d9c687375b28c55ff6
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "07d7fe99-5019-4478-ad92-a0cb31c97ed7", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-24T06:05:23.299615+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"5cab9cd4-f0c0-4c2c-a14d-a770ff15fde9","trace_id":"07d7fe99-5019-4478-ad92-a0cb31c97ed7","execution_type":"crew","crew_name":"Unknown
Crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"Unknown
Crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T06:05:23.929Z","updated_at":"2025-09-24T06:05:23.929Z"}'
headers:
Content-Length:
- '496'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"0765cd8e4e48b5bd91226939cb476218"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.06, start_processing.action_controller;dur=0.00,
sql.active_record;dur=17.58, instantiation.active_record;dur=0.30, feature_operation.flipper;dur=0.03,
start_transaction.active_record;dur=0.01, transaction.active_record;dur=22.64,
process_action.action_controller;dur=626.94
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 4cefcff6-5896-4b58-9a7a-173162de266a
x-runtime:
- '0.646930'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
version: 1

View File

@@ -1077,4 +1077,84 @@ interactions:
- req_e04854bedd63bb49a74deb119d3d7f97
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "87f76902-c7a0-40ec-b213-90c1d84202d5", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-24T05:35:47.889056+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"9cf456ca-734a-4378-8158-ad39f22d9e04","trace_id":"87f76902-c7a0-40ec-b213-90c1d84202d5","execution_type":"crew","crew_name":"Unknown
Crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"Unknown
Crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T05:35:48.579Z","updated_at":"2025-09-24T05:35:48.579Z"}'
headers:
Content-Length:
- '496'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"2e48d1600d1ea5c9c1e0aa512c6ae394"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.05, sql.active_record;dur=21.37, cache_generate.active_support;dur=1.83,
cache_write.active_support;dur=0.19, cache_read_multi.active_support;dur=0.14,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.70,
feature_operation.flipper;dur=0.15, start_transaction.active_record;dur=0.01,
transaction.active_record;dur=6.89, process_action.action_controller;dur=645.09
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- f416f192-90da-4063-8454-12edcd4dae4b
x-runtime:
- '0.694217'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
version: 1

View File

@@ -304,4 +304,770 @@ interactions:
- req_0e03176bfa219d7bf47910ebd0041e1e
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "71ed9e01-5013-496d-bb6a-72cea8f389b8", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-23T20:11:00.405361+00:00"},
"ephemeral_trace_id": "71ed9e01-5013-496d-bb6a-72cea8f389b8"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '490'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches
response:
body:
string: '{"id":"d0adab5b-7d5b-4096-b6da-33cd2eb86628","ephemeral_trace_id":"71ed9e01-5013-496d-bb6a-72cea8f389b8","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-23T20:11:00.473Z","updated_at":"2025-09-23T20:11:00.473Z","access_code":"TRACE-b8851ea500","user_identifier":null}'
headers:
Content-Length:
- '519'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"01011533361876418a081ce43467041b"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.12, sql.active_record;dur=11.40, cache_generate.active_support;dur=5.40,
cache_write.active_support;dur=0.16, cache_read_multi.active_support;dur=0.18,
start_processing.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=6.25, process_action.action_controller;dur=9.16
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 52ce5948-cc0a-414c-8fcc-19e33590ada0
x-runtime:
- '0.066923'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "c26a941f-6e16-4589-958e-b0d869ce2f6d", "timestamp":
"2025-09-23T20:11:00.478420+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-23T20:11:00.404684+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "7a185f1a-4fe3-4f4d-8653-81185e858be2",
"timestamp": "2025-09-23T20:11:00.479625+00:00", "type": "task_started", "event_data":
{"task_description": "Just say hi.", "expected_output": "Your greeting.", "task_name":
"Just say hi.", "context": "", "agent_role": "test role", "task_id": "19b2ccd8-6500-4332-a1b0-0e317a6cdcdd"}},
{"event_id": "6972e01c-2f6f-4f0b-8f21-373e5fe62972", "timestamp": "2025-09-23T20:11:00.479889+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "test role",
"agent_goal": "test goal", "agent_backstory": "test backstory"}}, {"event_id":
"84c1d1bb-9a32-4490-8846-e0a1b1b07eab", "timestamp": "2025-09-23T20:11:00.479946+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-23T20:11:00.479930+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "19b2ccd8-6500-4332-a1b0-0e317a6cdcdd",
"task_name": "Just say hi.", "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\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: Just say hi.\n\nThis is the expected criteria for
your final answer: Your 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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x14e7b6000>"], "available_functions": null}}, {"event_id": "9da5663d-6cc1-4bf6-b0fe-1baf3f8f2c73",
"timestamp": "2025-09-23T20:11:00.480836+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T20:11:00.480820+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "19b2ccd8-6500-4332-a1b0-0e317a6cdcdd", "task_name": "Just say hi.",
"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\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: Just say hi.\n\nThis
is the expected criteria for your final answer: Your 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 now can give
a great answer\nFinal Answer: Hi!", "call_type": "<LLMCallType.LLM_CALL: ''llm_call''>",
"model": "gpt-4o-mini"}}, {"event_id": "9680ac56-8e34-4966-b223-c0fdbccf55b9",
"timestamp": "2025-09-23T20:11:00.480913+00:00", "type": "agent_execution_completed",
"event_data": {"agent_role": "test role", "agent_goal": "test goal", "agent_backstory":
"test backstory"}}, {"event_id": "39d5beec-c46d-450b-9611-dfc730a65099", "timestamp":
"2025-09-23T20:11:00.480963+00:00", "type": "task_completed", "event_data":
{"task_description": "Just say hi.", "task_name": "Just say hi.", "task_id":
"19b2ccd8-6500-4332-a1b0-0e317a6cdcdd", "output_raw": "Hi!", "output_format":
"OutputFormat.RAW", "agent_role": "test role"}}, {"event_id": "c2f4befb-e82f-450a-9e8f-959e4b121389",
"timestamp": "2025-09-23T20:11:00.481631+00:00", "type": "task_started", "event_data":
{"task_description": "Just say bye.", "expected_output": "Your farewell.", "task_name":
"Just say bye.", "context": "Hi!", "agent_role": "test role", "task_id": "e2044f89-7d6d-4136-b8f9-de15f25ae48a"}},
{"event_id": "14b72e1a-1460-485d-9b58-f6bbf0e1ba26", "timestamp": "2025-09-23T20:11:00.481955+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "test role",
"agent_goal": "test goal", "agent_backstory": "test backstory"}}, {"event_id":
"2a3852b9-049a-4c51-a32e-a02720b1d6bb", "timestamp": "2025-09-23T20:11:00.481994+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-23T20:11:00.481984+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "e2044f89-7d6d-4136-b8f9-de15f25ae48a",
"task_name": "Just say bye.", "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\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: Just say bye.\n\nThis is the expected criteria for
your final answer: Your farewell.\nyou MUST return the actual complete content
as the final answer, not a summary.\n\nThis is the context you''re working with:\nHi!\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":
["<crewai.utilities.token_counter_callback.TokenCalcHandler object at 0x14e3ed970>"],
"available_functions": null}}, {"event_id": "5b7492f6-1e3f-4cdb-9efe-a9f69a5ea808",
"timestamp": "2025-09-23T20:11:00.482639+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T20:11:00.482627+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "e2044f89-7d6d-4136-b8f9-de15f25ae48a", "task_name": "Just say bye.",
"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\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: Just say bye.\n\nThis
is the expected criteria for your final answer: Your farewell.\nyou MUST return
the actual complete content as the final answer, not a summary.\n\nThis is the
context you''re working with:\nHi!\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: Bye!", "call_type": "<LLMCallType.LLM_CALL: ''llm_call''>", "model":
"gpt-4o-mini"}}, {"event_id": "7b76e037-e4f3-49e6-a33b-95b6ea143939", "timestamp":
"2025-09-23T20:11:00.482696+00:00", "type": "agent_execution_completed", "event_data":
{"agent_role": "test role", "agent_goal": "test goal", "agent_backstory": "test
backstory"}}, {"event_id": "a27cfa17-86f6-4dbe-ab24-9f4ace8183b4", "timestamp":
"2025-09-23T20:11:00.482722+00:00", "type": "task_completed", "event_data":
{"task_description": "Just say bye.", "task_name": "Just say bye.", "task_id":
"e2044f89-7d6d-4136-b8f9-de15f25ae48a", "output_raw": "Bye!", "output_format":
"OutputFormat.RAW", "agent_role": "test role"}}, {"event_id": "cd969d89-4134-4d0d-99bb-8cecf815f723",
"timestamp": "2025-09-23T20:11:00.483244+00:00", "type": "task_started", "event_data":
{"task_description": "Answer accordingly to the context you got.", "expected_output":
"Your answer.", "task_name": "Answer accordingly to the context you got.", "context":
"Hi!", "agent_role": "test role2", "task_id": "8b3d52c7-ebc8-4099-9f88-cb70a61c5d74"}},
{"event_id": "b0aa94a9-a27b-436f-84ea-fc7fa011496c", "timestamp": "2025-09-23T20:11:00.483439+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "test role2",
"agent_goal": "test goal2", "agent_backstory": "test backstory2"}}, {"event_id":
"441248e6-0368-42e8-91e1-988cd43f41d6", "timestamp": "2025-09-23T20:11:00.483475+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-23T20:11:00.483465+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "8b3d52c7-ebc8-4099-9f88-cb70a61c5d74",
"task_name": "Answer accordingly to the context you got.", "agent_id": null,
"agent_role": null, "from_task": null, "from_agent": null, "model": "gpt-4o-mini",
"messages": [{"role": "system", "content": "You are test role2. test backstory2\nYour
personal goal is: test goal2\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: Answer accordingly
to the context you got.\n\nThis is the expected criteria for your final answer:
Your answer.\nyou MUST return the actual complete content as the final answer,
not a summary.\n\nThis is the context you''re working with:\nHi!\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x14e7b56d0>"], "available_functions": null}}, {"event_id": "0ad6b11f-4576-4a7e-8ccd-41b3ad08df3a",
"timestamp": "2025-09-23T20:11:00.484148+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T20:11:00.484134+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "8b3d52c7-ebc8-4099-9f88-cb70a61c5d74", "task_name": "Answer accordingly
to the context you got.", "agent_id": null, "agent_role": null, "from_task":
null, "from_agent": null, "messages": [{"role": "system", "content": "You are
test role2. test backstory2\nYour personal goal is: test goal2\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: Answer accordingly to the context you got.\n\nThis is the expected criteria
for your final answer: Your answer.\nyou MUST return the actual complete content
as the final answer, not a summary.\n\nThis is the context you''re working with:\nHi!\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: Hi!", "call_type": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "1c524823-fba6-40a2-97f5-40879ab72f3f",
"timestamp": "2025-09-23T20:11:00.484211+00:00", "type": "agent_execution_completed",
"event_data": {"agent_role": "test role2", "agent_goal": "test goal2", "agent_backstory":
"test backstory2"}}, {"event_id": "798dad64-1d7d-4f7b-8cff-5d60e4a81323", "timestamp":
"2025-09-23T20:11:00.484240+00:00", "type": "task_completed", "event_data":
{"task_description": "Answer accordingly to the context you got.", "task_name":
"Answer accordingly to the context you got.", "task_id": "8b3d52c7-ebc8-4099-9f88-cb70a61c5d74",
"output_raw": "Hi!", "output_format": "OutputFormat.RAW", "agent_role": "test
role2"}}, {"event_id": "05599cf9-612d-42c0-9212-10c3a38802e3", "timestamp":
"2025-09-23T20:11:00.484900+00:00", "type": "crew_kickoff_completed", "event_data":
{"timestamp": "2025-09-23T20:11:00.484885+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "output": {"description": "Answer accordingly to the context
you got.", "name": "Answer accordingly to the context you got.", "expected_output":
"Your answer.", "summary": "Answer accordingly to the context you got....",
"raw": "Hi!", "pydantic": null, "json_dict": null, "agent": "test role2", "output_format":
"raw"}, "total_tokens": 534}}], "batch_metadata": {"events_count": 20, "batch_sequence":
1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '13594'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/71ed9e01-5013-496d-bb6a-72cea8f389b8/events
response:
body:
string: '{"events_created":20,"ephemeral_trace_batch_id":"d0adab5b-7d5b-4096-b6da-33cd2eb86628"}'
headers:
Content-Length:
- '87'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"6c7add3a44bf9ea84525163bb3f2a80d"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.09, start_processing.action_controller;dur=0.00,
sql.active_record;dur=35.89, instantiation.active_record;dur=0.03, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=74.58, process_action.action_controller;dur=80.92
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 5d5d4c21-504e-41db-861f-056aa17d5c1d
x-runtime:
- '0.106026'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 194, "final_event_count": 20}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '68'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/71ed9e01-5013-496d-bb6a-72cea8f389b8/finalize
response:
body:
string: '{"id":"d0adab5b-7d5b-4096-b6da-33cd2eb86628","ephemeral_trace_id":"71ed9e01-5013-496d-bb6a-72cea8f389b8","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":194,"crewai_version":"0.193.2","total_events":20,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-23T20:11:00.473Z","updated_at":"2025-09-23T20:11:00.624Z","access_code":"TRACE-b8851ea500","user_identifier":null}'
headers:
Content-Length:
- '521'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"1a105461707298d2ec8406427e40c9fc"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.03, cache_fetch_hit.active_support;dur=0.00,
cache_read_multi.active_support;dur=0.06, start_processing.action_controller;dur=0.00,
sql.active_record;dur=2.03, instantiation.active_record;dur=0.03, unpermitted_parameters.action_controller;dur=0.00,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=1.31,
process_action.action_controller;dur=4.57
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- c5cb7cbc-c3fb-45d9-8b39-fe6d6ebe4207
x-runtime:
- '0.019069'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"trace_id": "909da497-c8ba-4fc0-a3db-090c507811d9", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-24T05:26:00.269467+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '428'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"65aa0065-5140-4310-b3b3-216fb21f5f6f","trace_id":"909da497-c8ba-4fc0-a3db-090c507811d9","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T05:26:00.560Z","updated_at":"2025-09-24T05:26:00.560Z"}'
headers:
Content-Length:
- '480'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"f35b137a9b756c03919d69e8a8529996"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.06, start_processing.action_controller;dur=0.00,
sql.active_record;dur=21.59, instantiation.active_record;dur=0.44, feature_operation.flipper;dur=0.03,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=4.89,
process_action.action_controller;dur=273.31
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- f970d54c-d95a-4318-8c31-dd003fd53481
x-runtime:
- '0.293412'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "14ef810b-9334-4707-bd7a-68786e0e7886", "timestamp":
"2025-09-24T05:26:00.565895+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-24T05:26:00.268163+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "b9ab6c5e-c9d5-4d17-a4b5-0f1e4a15b546",
"timestamp": "2025-09-24T05:26:00.568072+00:00", "type": "task_started", "event_data":
{"task_description": "Just say hi.", "expected_output": "Your greeting.", "task_name":
"Just say hi.", "context": "", "agent_role": "test role", "task_id": "95f73383-c971-4f0d-bc1d-3baf104d5bb0"}},
{"event_id": "62ae7533-a350-4c9c-8813-5345ec9bbede", "timestamp": "2025-09-24T05:26:00.568845+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "test role",
"agent_goal": "test goal", "agent_backstory": "test backstory"}}, {"event_id":
"9033feee-854e-404d-b33a-f5186d038b0a", "timestamp": "2025-09-24T05:26:00.568950+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-24T05:26:00.568922+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "95f73383-c971-4f0d-bc1d-3baf104d5bb0",
"task_name": "Just say hi.", "agent_id": "bef969a6-8694-408f-957c-170d254cc4f4",
"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\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: Just say hi.\n\nThis
is the expected criteria for your final answer: Your 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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x13afb26c0>"], "available_functions": null}}, {"event_id": "fb20475c-da15-44c4-9d01-718c71613d08",
"timestamp": "2025-09-24T05:26:00.570494+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T05:26:00.570462+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "95f73383-c971-4f0d-bc1d-3baf104d5bb0", "task_name": "Just say hi.",
"agent_id": "bef969a6-8694-408f-957c-170d254cc4f4", "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\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: Just say hi.\n\nThis is the expected criteria for
your final answer: Your 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 now can give a great answer\nFinal
Answer: Hi!", "call_type": "<LLMCallType.LLM_CALL: ''llm_call''>", "model":
"gpt-4o-mini"}}, {"event_id": "b0f700fb-e49c-4914-88b3-f348fe4663e2", "timestamp":
"2025-09-24T05:26:00.570634+00:00", "type": "agent_execution_completed", "event_data":
{"agent_role": "test role", "agent_goal": "test goal", "agent_backstory": "test
backstory"}}, {"event_id": "b0c9b846-ff58-48ce-ab14-1d0204b90f31", "timestamp":
"2025-09-24T05:26:00.570689+00:00", "type": "task_completed", "event_data":
{"task_description": "Just say hi.", "task_name": "Just say hi.", "task_id":
"95f73383-c971-4f0d-bc1d-3baf104d5bb0", "output_raw": "Hi!", "output_format":
"OutputFormat.RAW", "agent_role": "test role"}}, {"event_id": "28a1293a-e579-4fc5-a6f9-f9ceff4dbde9",
"timestamp": "2025-09-24T05:26:00.571888+00:00", "type": "task_started", "event_data":
{"task_description": "Just say bye.", "expected_output": "Your farewell.", "task_name":
"Just say bye.", "context": "Hi!", "agent_role": "test role", "task_id": "a43474f8-cc92-42d4-92cb-0ab853675bd6"}},
{"event_id": "1d44cabc-9958-4822-8144-69eb74f1b828", "timestamp": "2025-09-24T05:26:00.572295+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "test role",
"agent_goal": "test goal", "agent_backstory": "test backstory"}}, {"event_id":
"9aaff984-495f-4254-b03e-85d274393056", "timestamp": "2025-09-24T05:26:00.572391+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-24T05:26:00.572366+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "a43474f8-cc92-42d4-92cb-0ab853675bd6",
"task_name": "Just say bye.", "agent_id": "bef969a6-8694-408f-957c-170d254cc4f4",
"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\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: Just say bye.\n\nThis
is the expected criteria for your final answer: Your farewell.\nyou MUST return
the actual complete content as the final answer, not a summary.\n\nThis is the
context you''re working with:\nHi!\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x13af60320>"], "available_functions": null}}, {"event_id": "9677effe-16b2-4715-a449-829c1afd956f",
"timestamp": "2025-09-24T05:26:00.573792+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T05:26:00.573765+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "a43474f8-cc92-42d4-92cb-0ab853675bd6", "task_name": "Just say bye.",
"agent_id": "bef969a6-8694-408f-957c-170d254cc4f4", "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\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: Just say bye.\n\nThis is the expected criteria for
your final answer: Your farewell.\nyou MUST return the actual complete content
as the final answer, not a summary.\n\nThis is the context you''re working with:\nHi!\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: Bye!", "call_type": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "ddb74fd4-aa8b-42d0-90bd-d98d40c89a1f",
"timestamp": "2025-09-24T05:26:00.573921+00:00", "type": "agent_execution_completed",
"event_data": {"agent_role": "test role", "agent_goal": "test goal", "agent_backstory":
"test backstory"}}, {"event_id": "196bb5af-b989-4d8c-add0-3c42107d2477", "timestamp":
"2025-09-24T05:26:00.573973+00:00", "type": "task_completed", "event_data":
{"task_description": "Just say bye.", "task_name": "Just say bye.", "task_id":
"a43474f8-cc92-42d4-92cb-0ab853675bd6", "output_raw": "Bye!", "output_format":
"OutputFormat.RAW", "agent_role": "test role"}}, {"event_id": "79c24125-2a5c-455d-b6ca-4f66cc5cb205",
"timestamp": "2025-09-24T05:26:00.575233+00:00", "type": "task_started", "event_data":
{"task_description": "Answer accordingly to the context you got.", "expected_output":
"Your answer.", "task_name": "Answer accordingly to the context you got.", "context":
"Hi!", "agent_role": "test role2", "task_id": "43436548-60e0-4508-8737-e377c1a011d1"}},
{"event_id": "3a8beb12-d2ee-483c-94e4-5db3cd9d39cd", "timestamp": "2025-09-24T05:26:00.575602+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "test role2",
"agent_goal": "test goal2", "agent_backstory": "test backstory2"}}, {"event_id":
"70629109-cfb0-432c-8dc5-c2f5047f4eda", "timestamp": "2025-09-24T05:26:00.575676+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-24T05:26:00.575656+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "43436548-60e0-4508-8737-e377c1a011d1",
"task_name": "Answer accordingly to the context you got.", "agent_id": "e08baa88-db5f-452c-853a-75f12a458690",
"agent_role": "test role2", "from_task": null, "from_agent": null, "model":
"gpt-4o-mini", "messages": [{"role": "system", "content": "You are test role2.
test backstory2\nYour personal goal is: test goal2\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: Answer accordingly to the context you got.\n\nThis is the expected criteria
for your final answer: Your answer.\nyou MUST return the actual complete content
as the final answer, not a summary.\n\nThis is the context you''re working with:\nHi!\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":
["<crewai.utilities.token_counter_callback.TokenCalcHandler object at 0x13afb2750>"],
"available_functions": null}}, {"event_id": "4f8b661c-e3e0-4836-b6f0-2059a6ea49a3",
"timestamp": "2025-09-24T05:26:00.576811+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T05:26:00.576790+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "43436548-60e0-4508-8737-e377c1a011d1", "task_name": "Answer accordingly
to the context you got.", "agent_id": "e08baa88-db5f-452c-853a-75f12a458690",
"agent_role": "test role2", "from_task": null, "from_agent": null, "messages":
[{"role": "system", "content": "You are test role2. test backstory2\nYour personal
goal is: test goal2\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: Answer accordingly to the
context you got.\n\nThis is the expected criteria for your final answer: Your
answer.\nyou MUST return the actual complete content as the final answer, not
a summary.\n\nThis is the context you''re working with:\nHi!\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: Hi!", "call_type": "<LLMCallType.LLM_CALL: ''llm_call''>",
"model": "gpt-4o-mini"}}, {"event_id": "c58a895d-c733-4a31-875b-5d9ba096621b",
"timestamp": "2025-09-24T05:26:00.576912+00:00", "type": "agent_execution_completed",
"event_data": {"agent_role": "test role2", "agent_goal": "test goal2", "agent_backstory":
"test backstory2"}}, {"event_id": "2b32e0bc-273b-47cb-9b0b-d2dd3e183051", "timestamp":
"2025-09-24T05:26:00.576958+00:00", "type": "task_completed", "event_data":
{"task_description": "Answer accordingly to the context you got.", "task_name":
"Answer accordingly to the context you got.", "task_id": "43436548-60e0-4508-8737-e377c1a011d1",
"output_raw": "Hi!", "output_format": "OutputFormat.RAW", "agent_role": "test
role2"}}, {"event_id": "9dcbe60a-fff1-41d0-8a3c-02e708f25745", "timestamp":
"2025-09-24T05:26:00.578046+00:00", "type": "crew_kickoff_completed", "event_data":
{"timestamp": "2025-09-24T05:26:00.578009+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "output": {"description": "Answer accordingly to the context
you got.", "name": "Answer accordingly to the context you got.", "expected_output":
"Your answer.", "summary": "Answer accordingly to the context you got....",
"raw": "Hi!", "pydantic": null, "json_dict": null, "agent": "test role2", "output_format":
"raw"}, "total_tokens": 534}}], "batch_metadata": {"events_count": 20, "batch_sequence":
1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '13842'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/909da497-c8ba-4fc0-a3db-090c507811d9/events
response:
body:
string: '{"events_created":20,"trace_batch_id":"65aa0065-5140-4310-b3b3-216fb21f5f6f"}'
headers:
Content-Length:
- '77'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"c6a8603f43137accf9b346098c6aab36"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.04, sql.active_record;dur=57.54, cache_generate.active_support;dur=1.96,
cache_write.active_support;dur=0.10, cache_read_multi.active_support;dur=0.06,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.38,
start_transaction.active_record;dur=0.01, transaction.active_record;dur=84.53,
process_action.action_controller;dur=718.33
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- cc94adb6-627c-4674-9052-c1c300ca9367
x-runtime:
- '0.742701'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 1060, "final_event_count": 20}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '69'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/909da497-c8ba-4fc0-a3db-090c507811d9/finalize
response:
body:
string: '{"id":"65aa0065-5140-4310-b3b3-216fb21f5f6f","trace_id":"909da497-c8ba-4fc0-a3db-090c507811d9","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":1060,"crewai_version":"0.193.2","privacy_level":"standard","total_events":20,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-24T05:26:00.560Z","updated_at":"2025-09-24T05:26:01.785Z"}'
headers:
Content-Length:
- '483'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"b9124c02e95cf0041ebb1e86b50e0264"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.05, start_processing.action_controller;dur=0.00,
sql.active_record;dur=6.37, instantiation.active_record;dur=0.59, unpermitted_parameters.action_controller;dur=0.00,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=1.94,
process_action.action_controller;dur=436.41
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- afc16366-577c-4638-b72d-33021439222c
x-runtime:
- '0.451670'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -654,4 +654,657 @@ interactions:
status:
code: 200
message: OK
- request:
body: '{"trace_id": "5a473660-de8d-4c03-a05b-3d0e38cfaf2b", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-23T20:49:30.429662+00:00"},
"ephemeral_trace_id": "5a473660-de8d-4c03-a05b-3d0e38cfaf2b"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '490'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches
response:
body:
string: '{"id":"73b8ab8e-2462-45ea-bea6-8397197bfa95","ephemeral_trace_id":"5a473660-de8d-4c03-a05b-3d0e38cfaf2b","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-23T20:49:30.477Z","updated_at":"2025-09-23T20:49:30.477Z","access_code":"TRACE-e7ac143cef","user_identifier":null}'
headers:
Content-Length:
- '519'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"62cedfc7eafa77605b47b4c6ef2e0ba8"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.08, sql.active_record;dur=13.45, cache_generate.active_support;dur=2.56,
cache_write.active_support;dur=0.15, cache_read_multi.active_support;dur=0.08,
start_processing.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=10.22, process_action.action_controller;dur=14.44
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- a7c1304c-dee7-4be0-bcb2-df853c3f86f7
x-runtime:
- '0.051387'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "d33b112d-9b68-470d-be50-ea8c10e8ca7e", "timestamp":
"2025-09-23T20:49:30.484390+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-23T20:49:30.428470+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "cff1f459-bf86-485a-bc4b-b90f72f88622",
"timestamp": "2025-09-23T20:49:30.485842+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": "0305e5ec-8f86-441a-b17e-ec03979c4f40"}},
{"event_id": "f5b196fd-bf4e-46cc-a3dd-a0abacf78461", "timestamp": "2025-09-23T20:49:30.485966+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-23T20:49:30.485945+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": null, "task_name": 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": "97f3e7b4-2ff7-4826-bd93-ec4a285ac60a",
"timestamp": "2025-09-23T20:49:30.487319+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T20:49:30.487295+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": 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 favorite color", "call_type": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "ae65649b-87ad-4378-9ee1-2c5edf2e9573",
"timestamp": "2025-09-23T20:49:30.487828+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": "69fa8d11-63df-4118-8607-6f5328dad0c5",
"timestamp": "2025-09-23T20:49:30.487905+00:00", "type": "llm_call_started",
"event_data": {"timestamp": "2025-09-23T20:49:30.487889+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "0305e5ec-8f86-441a-b17e-ec03979c4f40", "task_name": "What is Brandon''s
favorite color?", "agent_id": null, "agent_role": null, "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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x13513f080>"], "available_functions": null}}, {"event_id": "559890e0-ceea-4812-96a9-df25b86210d0",
"timestamp": "2025-09-23T20:49:30.488945+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T20:49:30.488926+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "0305e5ec-8f86-441a-b17e-ec03979c4f40", "task_name": "What is Brandon''s
favorite color?", "agent_id": null, "agent_role": null, "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 red.", "call_type": "<LLMCallType.LLM_CALL: ''llm_call''>",
"model": "gpt-4o-mini"}}, {"event_id": "1fea1502-387c-4456-b057-528f589f3946",
"timestamp": "2025-09-23T20:49:30.489060+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": "c0848a77-a641-4be8-8c0a-ef6c7bce2ce3",
"timestamp": "2025-09-23T20:49:30.489105+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": "0305e5ec-8f86-441a-b17e-ec03979c4f40",
"output_raw": "Brandon''s favorite color is red.", "output_format": "OutputFormat.RAW",
"agent_role": "Information Agent"}}, {"event_id": "278e4853-3297-46c2-ba0f-3456c93cd50d",
"timestamp": "2025-09-23T20:49:30.490117+00:00", "type": "crew_kickoff_completed",
"event_data": {"timestamp": "2025-09-23T20:49:30.490098+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": 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 red.", "pydantic": null, "json_dict": null, "agent":
"Information Agent", "output_format": "raw"}, "total_tokens": 380}}], "batch_metadata":
{"events_count": 10, "batch_sequence": 1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '8758'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/5a473660-de8d-4c03-a05b-3d0e38cfaf2b/events
response:
body:
string: '{"events_created":10,"ephemeral_trace_batch_id":"73b8ab8e-2462-45ea-bea6-8397197bfa95"}'
headers:
Content-Length:
- '87'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"f467d241acdc3eb80717680fc1a8e139"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.06, sql.active_record;dur=30.49, cache_generate.active_support;dur=2.38,
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.04,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=69.93,
process_action.action_controller;dur=75.35
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 8d615fb0-08c9-4258-aabe-e551d01dc139
x-runtime:
- '0.101789'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 170, "final_event_count": 10}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '68'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/5a473660-de8d-4c03-a05b-3d0e38cfaf2b/finalize
response:
body:
string: '{"id":"73b8ab8e-2462-45ea-bea6-8397197bfa95","ephemeral_trace_id":"5a473660-de8d-4c03-a05b-3d0e38cfaf2b","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":170,"crewai_version":"0.193.2","total_events":10,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-23T20:49:30.477Z","updated_at":"2025-09-23T20:49:30.631Z","access_code":"TRACE-e7ac143cef","user_identifier":null}'
headers:
Content-Length:
- '521'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"71b47fd1cf30771f0605bb4c77577c2f"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.10, 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=7.47, instantiation.active_record;dur=0.03, unpermitted_parameters.action_controller;dur=0.00,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=4.44,
process_action.action_controller;dur=10.94
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 0f5e3242-5478-4d7f-9d5d-84ac009cb38d
x-runtime:
- '0.028980'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"trace_id": "54a8adea-c972-420f-a708-1a544eff9635", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-24T05:24:12.861068+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '428'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"61db142f-783b-4fd1-9aa3-6a3a004dcd01","trace_id":"54a8adea-c972-420f-a708-1a544eff9635","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T05:24:13.678Z","updated_at":"2025-09-24T05:24:13.678Z"}'
headers:
Content-Length:
- '480'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"bef69fc49b08b5ac7bb3eac00e96085a"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.05, sql.active_record;dur=24.34, cache_generate.active_support;dur=1.98,
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.56,
feature_operation.flipper;dur=0.11, start_transaction.active_record;dur=0.01,
transaction.active_record;dur=6.41, process_action.action_controller;dur=793.70
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 1fc54a38-7fa9-4fbd-9adc-5a67f11c6fc2
x-runtime:
- '0.820447'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "71c92873-7e03-4150-bc17-c6840ee49538", "timestamp":
"2025-09-24T05:24:13.685702+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-24T05:24:12.858951+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "e619fc6f-2dd4-4520-abbd-ac4e52f992ca",
"timestamp": "2025-09-24T05:24:13.691993+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": "a89d3b30-df0d-4107-a477-ef54077c6833"}},
{"event_id": "8fae8f69-b0a5-426e-802c-a3b2e5b018db", "timestamp": "2025-09-24T05:24:13.692473+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-24T05:24:13.692433+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": null, "task_name": 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": "0fcc1faf-8534-48e9-9823-bfe04645a79b",
"timestamp": "2025-09-24T05:24:13.694713+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T05:24:13.694669+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": 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 favorite color", "call_type": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "b82cf317-57e0-448f-a028-e74ed3a4cdb6",
"timestamp": "2025-09-24T05:24:13.825341+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": "820353d4-e621-463e-a512-45ebe3cbcd99",
"timestamp": "2025-09-24T05:24:13.825393+00:00", "type": "llm_call_started",
"event_data": {"timestamp": "2025-09-24T05:24:13.825378+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "a89d3b30-df0d-4107-a477-ef54077c6833", "task_name": "What is Brandon''s
favorite color?", "agent_id": "36311e2d-ffd3-4d3b-a212-f12d63c1cb06", "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.Additional Information: Brandon''s favorite color is red and he
likes Mexican food.\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x13b1efbc0>"], "available_functions": null}}, {"event_id": "0c94bb30-872b-40e2-bea1-8898056c6989",
"timestamp": "2025-09-24T05:24:13.826292+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T05:24:13.826275+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "a89d3b30-df0d-4107-a477-ef54077c6833", "task_name": "What is Brandon''s
favorite color?", "agent_id": "36311e2d-ffd3-4d3b-a212-f12d63c1cb06", "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.Additional
Information: Brandon''s favorite color is red and he likes Mexican food.\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 red.", "call_type":
"<LLMCallType.LLM_CALL: ''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id":
"e8a00053-f0ef-4712-9ab8-1f17554390c5", "timestamp": "2025-09-24T05:24:13.826380+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": "e8a26836-8bcb-4020-ae54-ef8fad2b5eaf",
"timestamp": "2025-09-24T05:24:13.826421+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": "a89d3b30-df0d-4107-a477-ef54077c6833",
"output_raw": "Brandon''s favorite color is red.", "output_format": "OutputFormat.RAW",
"agent_role": "Information Agent"}}, {"event_id": "6947f01a-4023-4f2a-a72d-6f058ea76498",
"timestamp": "2025-09-24T05:24:13.827029+00:00", "type": "crew_kickoff_completed",
"event_data": {"timestamp": "2025-09-24T05:24:13.827017+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": 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 red.", "pydantic": null, "json_dict": null, "agent":
"Information Agent", "output_format": "raw"}, "total_tokens": 380}}], "batch_metadata":
{"events_count": 10, "batch_sequence": 1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '9020'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/54a8adea-c972-420f-a708-1a544eff9635/events
response:
body:
string: '{"events_created":10,"trace_batch_id":"61db142f-783b-4fd1-9aa3-6a3a004dcd01"}'
headers:
Content-Length:
- '77'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"a52ad8652657c7785d695eec97440bdf"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.05, sql.active_record;dur=33.94, cache_generate.active_support;dur=2.76,
cache_write.active_support;dur=0.14, cache_read_multi.active_support;dur=0.08,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.25,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=44.09,
process_action.action_controller;dur=322.17
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- d977667c-2447-4373-aca9-6af8c50cc7e8
x-runtime:
- '0.378785'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 1355, "final_event_count": 10}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '69'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/54a8adea-c972-420f-a708-1a544eff9635/finalize
response:
body:
string: '{"id":"61db142f-783b-4fd1-9aa3-6a3a004dcd01","trace_id":"54a8adea-c972-420f-a708-1a544eff9635","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":1355,"crewai_version":"0.193.2","privacy_level":"standard","total_events":10,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-24T05:24:13.678Z","updated_at":"2025-09-24T05:24:14.660Z"}'
headers:
Content-Length:
- '483'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"38e0f70fac59670de2df6d90478b7e43"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.05, start_processing.action_controller;dur=0.00,
sql.active_record;dur=14.79, instantiation.active_record;dur=0.59, unpermitted_parameters.action_controller;dur=0.02,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=4.39,
process_action.action_controller;dur=430.19
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 8faa01f5-3c5f-47c0-8aef-e0807a0e0dcf
x-runtime:
- '0.445912'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -655,4 +655,336 @@ interactions:
status:
code: 200
message: OK
- request:
body: '{"trace_id": "12bda343-024a-4242-b862-346a50fffbe1", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-23T20:23:56.658494+00:00"},
"ephemeral_trace_id": "12bda343-024a-4242-b862-346a50fffbe1"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '490'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches
response:
body:
string: '{"id":"ac965acd-2d3f-476e-85fd-c8b52cdac998","ephemeral_trace_id":"12bda343-024a-4242-b862-346a50fffbe1","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-23T20:23:56.716Z","updated_at":"2025-09-23T20:23:56.716Z","access_code":"TRACE-1394096f3d","user_identifier":null}'
headers:
Content-Length:
- '519'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"10a3e0538e6a0fcaa2e06e1a345d5b8b"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.08, sql.active_record;dur=8.71, cache_generate.active_support;dur=3.52,
cache_write.active_support;dur=0.10, cache_read_multi.active_support;dur=0.13,
start_processing.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=7.76, process_action.action_controller;dur=11.48
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 31484489-6367-4664-beef-47e916960cd1
x-runtime:
- '0.060100'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "c172354b-cbd4-4132-8a94-b5f68cb3b5eb", "timestamp":
"2025-09-23T20:23:56.723924+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-23T20:23:56.657707+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "b891bb54-f8d8-4fcc-bb69-b72ddff9e6cb",
"timestamp": "2025-09-23T20:23:56.725152+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 with extensive role description
that is longer than 80 characters", "task_id": "a1452af5-0f2d-40aa-bcb6-b864fbd8e8d5"}},
{"event_id": "2ae587c6-160c-4751-be3a-52ace811ae00", "timestamp": "2025-09-23T20:23:56.725447+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-23T20:23:56.725383+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": null, "task_name": 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": "bf195afc-d466-48b5-b704-f266bd2c5b02",
"timestamp": "2025-09-23T20:23:56.837126+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T20:23:56.836724+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": 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 information", "call_type":
"<LLMCallType.LLM_CALL: ''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id":
"b4b2f2d3-bfc2-475a-9a72-5f2100cd7c69", "timestamp": "2025-09-23T20:23:56.983121+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "Information
Agent with extensive role description that is longer than 80 characters", "agent_goal":
"Provide information based on knowledge sources", "agent_backstory": "You have
access to specific knowledge sources."}}, {"event_id": "fcb82b1e-0bd0-4900-bdbd-2676949f2aee",
"timestamp": "2025-09-23T20:23:56.983229+00:00", "type": "llm_call_started",
"event_data": {"timestamp": "2025-09-23T20:23:56.983213+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "a1452af5-0f2d-40aa-bcb6-b864fbd8e8d5", "task_name": "What is Brandon''s
favorite color?", "agent_id": null, "agent_role": null, "from_task": null, "from_agent":
null, "model": "gpt-4o-mini", "messages": [{"role": "system", "content": "You
are Information Agent with extensive role description that is longer than 80
characters. 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.Additional Information: Brandon''s
favorite color is red and he likes Mexican food.\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x133c777a0>"], "available_functions": null}}, {"event_id": "03d17e7c-87b0-496d-9c01-88403d2ec449",
"timestamp": "2025-09-23T20:23:56.984178+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T20:23:56.984162+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "a1452af5-0f2d-40aa-bcb6-b864fbd8e8d5", "task_name": "What is Brandon''s
favorite color?", "agent_id": null, "agent_role": null, "from_task": null, "from_agent":
null, "messages": [{"role": "system", "content": "You are Information Agent
with extensive role description that is longer than 80 characters. 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.Additional Information: Brandon''s favorite color is red and he
likes Mexican food.\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: Brandon''s favorite
color is red, and he likes Mexican food.", "call_type": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "e0546e80-d210-48d3-81c2-e7f7e13f3ae1",
"timestamp": "2025-09-23T20:23:56.984308+00:00", "type": "agent_execution_completed",
"event_data": {"agent_role": "Information Agent with extensive role description
that is longer than 80 characters", "agent_goal": "Provide information based
on knowledge sources", "agent_backstory": "You have access to specific knowledge
sources."}}, {"event_id": "0f58e7f8-32a3-40ae-bebd-4298586f4dca", "timestamp":
"2025-09-23T20:23:56.984400+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": "a1452af5-0f2d-40aa-bcb6-b864fbd8e8d5",
"output_raw": "Brandon''s favorite color is red, and he likes Mexican food.",
"output_format": "OutputFormat.RAW", "agent_role": "Information Agent with extensive
role description that is longer than 80 characters"}}, {"event_id": "5ecb2eba-1cae-4791-819d-5279644993d4",
"timestamp": "2025-09-23T20:23:56.985247+00:00", "type": "crew_kickoff_completed",
"event_data": {"timestamp": "2025-09-23T20:23:56.985228+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": 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 red, and he likes Mexican food.", "pydantic":
null, "json_dict": null, "agent": "Information Agent with extensive role description
that is longer than 80 characters", "output_format": "raw"}, "total_tokens":
401}}], "batch_metadata": {"events_count": 10, "batch_sequence": 1, "is_final_batch":
false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '9488'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/12bda343-024a-4242-b862-346a50fffbe1/events
response:
body:
string: '{"events_created":10,"ephemeral_trace_batch_id":"ac965acd-2d3f-476e-85fd-c8b52cdac998"}'
headers:
Content-Length:
- '87'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"e824525718eed49786fc9331c29e9b9d"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.06, sql.active_record;dur=38.29, cache_generate.active_support;dur=3.32,
cache_write.active_support;dur=0.12, cache_read_multi.active_support;dur=0.12,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.05,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=47.58,
process_action.action_controller;dur=55.00
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 5cc703a4-3d54-4469-abdf-64015c00b66e
x-runtime:
- '0.106504'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 436, "final_event_count": 10}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '68'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/12bda343-024a-4242-b862-346a50fffbe1/finalize
response:
body:
string: '{"id":"ac965acd-2d3f-476e-85fd-c8b52cdac998","ephemeral_trace_id":"12bda343-024a-4242-b862-346a50fffbe1","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":436,"crewai_version":"0.193.2","total_events":10,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-23T20:23:56.716Z","updated_at":"2025-09-23T20:23:57.142Z","access_code":"TRACE-1394096f3d","user_identifier":null}'
headers:
Content-Length:
- '521'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"1ae8c963206802e27fd5704076511459"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.06, sql.active_record;dur=10.73, cache_generate.active_support;dur=2.48,
cache_write.active_support;dur=1.18, cache_read_multi.active_support;dur=0.09,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.04,
unpermitted_parameters.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=3.82, process_action.action_controller;dur=10.24
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 81045975-0aea-4e13-af40-c809e35b4823
x-runtime:
- '0.044982'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -657,4 +657,678 @@ interactions:
status:
code: 200
message: OK
- request:
body: '{"trace_id": "630f1535-c1b6-4663-a025-405cb451fb3e", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-23T17:20:19.093163+00:00"},
"ephemeral_trace_id": "630f1535-c1b6-4663-a025-405cb451fb3e"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '490'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches
response:
body:
string: '{"id":"d568d58a-b065-44ff-9d1a-2d44d8a504bf","ephemeral_trace_id":"630f1535-c1b6-4663-a025-405cb451fb3e","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-23T17:20:19.178Z","updated_at":"2025-09-23T17:20:19.178Z","access_code":"TRACE-4735dfc2ff","user_identifier":null}'
headers:
Content-Length:
- '519'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"ba9fa5e5369fcdba1c910d7cd5156d24"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.04, sql.active_record;dur=10.27, cache_generate.active_support;dur=4.28,
cache_write.active_support;dur=0.59, cache_read_multi.active_support;dur=2.65,
start_processing.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=10.21, process_action.action_controller;dur=14.88
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 151f1dca-826d-4216-9242-30a231fac93c
x-runtime:
- '0.087554'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "f645283c-2cff-41f2-a9a2-cf0f0cded12e", "timestamp":
"2025-09-23T17:20:19.184267+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-23T17:20:19.091259+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "818cebc1-629f-4160-858b-bce4fce97d66",
"timestamp": "2025-09-23T17:20:19.277270+00:00", "type": "task_started", "event_data":
{"task_description": "What is Brandon''s favorite color?", "expected_output":
"The answer to the question, in a format like this: `{{name: str, favorite_color:
str}}`", "task_name": "What is Brandon''s favorite color?", "context": "", "agent_role":
"Information Agent with extensive role description that is longer than 80 characters",
"task_id": "29c302b4-c633-48d0-afb9-90549cf0c365"}}, {"event_id": "821552a8-fdf1-4d04-8379-26a8a2b51fda",
"timestamp": "2025-09-23T17:20:19.277428+00:00", "type": "llm_call_started",
"event_data": {"timestamp": "2025-09-23T17:20:19.277412+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": 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: The answer to the question, in a format like this: `{{name: str,
favorite_color: str}}`\nyou MUST return the actual complete content as the final
answer, not a summary.."}], "tools": null, "callbacks": null, "available_functions":
null}}, {"event_id": "fa976093-e51e-4e3b-a21f-4a6b579fd315", "timestamp": "2025-09-23T17:20:19.278606+00:00",
"type": "llm_call_completed", "event_data": {"timestamp": "2025-09-23T17:20:19.278574+00:00",
"type": "llm_call_completed", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": null, "task_name": 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: The answer to the question, in a format like
this: `{{name: str, favorite_color: str}}`\nyou MUST return the actual complete
content as the final answer, not a summary.."}], "response": "Brandon''s favorite
color?", "call_type": "<LLMCallType.LLM_CALL: ''llm_call''>", "model": "gpt-4o-mini"}},
{"event_id": "bd403c05-710d-442c-bd71-ad33b4acaa82", "timestamp": "2025-09-23T17:20:19.279292+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "Information
Agent with extensive role description that is longer than 80 characters", "agent_goal":
"Provide information based on knowledge sources", "agent_backstory": "You have
access to specific knowledge sources."}}, {"event_id": "f119aa61-63a4-4646-979c-93fa8c80a482",
"timestamp": "2025-09-23T17:20:19.279343+00:00", "type": "llm_call_started",
"event_data": {"timestamp": "2025-09-23T17:20:19.279328+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "29c302b4-c633-48d0-afb9-90549cf0c365", "task_name": "What is Brandon''s
favorite color?", "agent_id": null, "agent_role": null, "from_task": null, "from_agent":
null, "model": "gpt-4o-mini", "messages": [{"role": "system", "content": "You
are Information Agent with extensive role description that is longer than 80
characters. 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: The answer to the question, in a format like this: `{{name:
str, favorite_color: str}}`\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x128c7ae10>"], "available_functions": null}}, {"event_id": "6e0fbe35-f395-455e-992c-ef5d2d41224f",
"timestamp": "2025-09-23T17:20:19.280262+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T17:20:19.280242+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "29c302b4-c633-48d0-afb9-90549cf0c365", "task_name": "What is Brandon''s
favorite color?", "agent_id": null, "agent_role": null, "from_task": null, "from_agent":
null, "messages": [{"role": "system", "content": "You are Information Agent
with extensive role description that is longer than 80 characters. 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: The
answer to the question, in a format like this: `{{name: str, favorite_color:
str}}`\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: {{name: \"Brandon\", favorite_color:
\"red\"}}", "call_type": "<LLMCallType.LLM_CALL: ''llm_call''>", "model": "gpt-4o-mini"}},
{"event_id": "934ad763-089b-4ce3-9b9b-b3677c629abb", "timestamp": "2025-09-23T17:20:19.280338+00:00",
"type": "agent_execution_completed", "event_data": {"agent_role": "Information
Agent with extensive role description that is longer than 80 characters", "agent_goal":
"Provide information based on knowledge sources", "agent_backstory": "You have
access to specific knowledge sources."}}, {"event_id": "2248ba99-420c-413d-be96-0b24b6395f7d",
"timestamp": "2025-09-23T17:20:19.280382+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": "29c302b4-c633-48d0-afb9-90549cf0c365",
"output_raw": "{{name: \"Brandon\", favorite_color: \"red\"}}", "output_format":
"OutputFormat.RAW", "agent_role": "Information Agent with extensive role description
that is longer than 80 characters"}}, {"event_id": "79da789a-39fc-453f-b556-cb384885f3cd",
"timestamp": "2025-09-23T17:20:19.281290+00:00", "type": "crew_kickoff_completed",
"event_data": {"timestamp": "2025-09-23T17:20:19.281256+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "output": {"description": "What is Brandon''s favorite
color?", "name": "What is Brandon''s favorite color?", "expected_output": "The
answer to the question, in a format like this: `{{name: str, favorite_color:
str}}`", "summary": "What is Brandon''s favorite color?...", "raw": "{{name:
\"Brandon\", favorite_color: \"red\"}}", "pydantic": null, "json_dict": null,
"agent": "Information Agent with extensive role description that is longer than
80 characters", "output_format": "raw"}, "total_tokens": 437}}], "batch_metadata":
{"events_count": 10, "batch_sequence": 1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '9637'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/630f1535-c1b6-4663-a025-405cb451fb3e/events
response:
body:
string: '{"events_created":10,"ephemeral_trace_batch_id":"d568d58a-b065-44ff-9d1a-2d44d8a504bf"}'
headers:
Content-Length:
- '87'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"a5a08e09957940604bc128b64b79832b"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.04, sql.active_record;dur=53.11, cache_generate.active_support;dur=2.58,
cache_write.active_support;dur=0.91, cache_read_multi.active_support;dur=0.57,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.03,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=78.14,
process_action.action_controller;dur=84.67
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 39cfd518-ee18-4ced-8192-9c752699db11
x-runtime:
- '0.118603'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 315, "final_event_count": 10}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '68'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/630f1535-c1b6-4663-a025-405cb451fb3e/finalize
response:
body:
string: '{"id":"d568d58a-b065-44ff-9d1a-2d44d8a504bf","ephemeral_trace_id":"630f1535-c1b6-4663-a025-405cb451fb3e","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":315,"crewai_version":"0.193.2","total_events":10,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-23T17:20:19.178Z","updated_at":"2025-09-23T17:20:19.436Z","access_code":"TRACE-4735dfc2ff","user_identifier":null}'
headers:
Content-Length:
- '521'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"d51aec0887ddc70fdca1808dfdf6a70f"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.03, cache_fetch_hit.active_support;dur=0.00,
cache_read_multi.active_support;dur=0.05, start_processing.action_controller;dur=0.00,
sql.active_record;dur=3.82, instantiation.active_record;dur=0.03, unpermitted_parameters.action_controller;dur=0.00,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=2.12,
process_action.action_controller;dur=6.25
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 346ff681-8f1b-458f-8352-d9e437335ab0
x-runtime:
- '0.023190'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"trace_id": "c23e0f3e-2a6f-4caa-822a-d5e463ad6bef", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-24T05:36:08.128749+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '428'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"a3963dd7-996d-4081-881a-339f437df6a1","trace_id":"c23e0f3e-2a6f-4caa-822a-d5e463ad6bef","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T05:36:08.504Z","updated_at":"2025-09-24T05:36:08.504Z"}'
headers:
Content-Length:
- '480'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"ce391befcc7ab0fd910460e94684d32d"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.06, start_processing.action_controller;dur=0.00,
sql.active_record;dur=21.87, instantiation.active_record;dur=0.50, feature_operation.flipper;dur=0.06,
start_transaction.active_record;dur=0.01, transaction.active_record;dur=8.68,
process_action.action_controller;dur=356.15
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- e9f27e2a-edd9-4f5a-b3da-77429bb2ea48
x-runtime:
- '0.379538'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "cee9fd20-e56a-4c6a-a3cb-77ae7bb6532d", "timestamp":
"2025-09-24T05:36:08.512174+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-24T05:36:08.126904+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "25084cee-067f-4b3c-9d3d-2079b71fbf05",
"timestamp": "2025-09-24T05:36:08.514737+00:00", "type": "task_started", "event_data":
{"task_description": "What is Brandon''s favorite color?", "expected_output":
"The answer to the question, in a format like this: `{{name: str, favorite_color:
str}}`", "task_name": "What is Brandon''s favorite color?", "context": "", "agent_role":
"Information Agent with extensive role description that is longer than 80 characters",
"task_id": "0bec741e-6108-4de2-b979-51b454677849"}}, {"event_id": "34df23e1-d905-4363-b37a-23c7f6a86eab",
"timestamp": "2025-09-24T05:36:08.515017+00:00", "type": "llm_call_started",
"event_data": {"timestamp": "2025-09-24T05:36:08.514974+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": 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: The answer to the question, in a format like this: `{{name: str,
favorite_color: str}}`\nyou MUST return the actual complete content as the final
answer, not a summary.."}], "tools": null, "callbacks": null, "available_functions":
null}}, {"event_id": "74576530-32b2-4e4b-a755-4fb26fe5c4ff", "timestamp": "2025-09-24T05:36:08.518075+00:00",
"type": "llm_call_completed", "event_data": {"timestamp": "2025-09-24T05:36:08.517991+00:00",
"type": "llm_call_completed", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": null, "task_name": 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: The answer to the question, in a format like
this: `{{name: str, favorite_color: str}}`\nyou MUST return the actual complete
content as the final answer, not a summary.."}], "response": "Brandon''s favorite
color?", "call_type": "<LLMCallType.LLM_CALL: ''llm_call''>", "model": "gpt-4o-mini"}},
{"event_id": "a209fe36-1b4a-485f-aa88-53910de23d34", "timestamp": "2025-09-24T05:36:08.519951+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "Information
Agent with extensive role description that is longer than 80 characters", "agent_goal":
"Provide information based on knowledge sources", "agent_backstory": "You have
access to specific knowledge sources."}}, {"event_id": "ecd9fb41-1bed-49a3-b76a-052c80002d7f",
"timestamp": "2025-09-24T05:36:08.520082+00:00", "type": "llm_call_started",
"event_data": {"timestamp": "2025-09-24T05:36:08.520051+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "0bec741e-6108-4de2-b979-51b454677849", "task_name": "What is Brandon''s
favorite color?", "agent_id": "7c3db116-c128-4658-a89d-0ab32552e2c9", "agent_role":
"Information Agent with extensive role description that is longer than 80 characters",
"from_task": null, "from_agent": null, "model": "gpt-4o-mini", "messages": [{"role":
"system", "content": "You are Information Agent with extensive role description
that is longer than 80 characters. 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: The answer to the question, in a format like this: `{{name:
str, favorite_color: str}}`\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x1171cdd00>"], "available_functions": null}}, {"event_id": "da317346-133e-4171-8111-27f4decda385",
"timestamp": "2025-09-24T05:36:08.521968+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T05:36:08.521938+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "0bec741e-6108-4de2-b979-51b454677849", "task_name": "What is Brandon''s
favorite color?", "agent_id": "7c3db116-c128-4658-a89d-0ab32552e2c9", "agent_role":
"Information Agent with extensive role description that is longer than 80 characters",
"from_task": null, "from_agent": null, "messages": [{"role": "system", "content":
"You are Information Agent with extensive role description that is longer than
80 characters. 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: The answer to the question, in a format like this: `{{name:
str, favorite_color: str}}`\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: {{name: \"Brandon\",
favorite_color: \"red\"}}", "call_type": "<LLMCallType.LLM_CALL: ''llm_call''>",
"model": "gpt-4o-mini"}}, {"event_id": "a3979567-22e2-4a88-add7-11580dc2a670",
"timestamp": "2025-09-24T05:36:08.522154+00:00", "type": "agent_execution_completed",
"event_data": {"agent_role": "Information Agent with extensive role description
that is longer than 80 characters", "agent_goal": "Provide information based
on knowledge sources", "agent_backstory": "You have access to specific knowledge
sources."}}, {"event_id": "9013b3f6-8ace-43ac-8257-e473a9e60a8b", "timestamp":
"2025-09-24T05:36:08.522222+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": "0bec741e-6108-4de2-b979-51b454677849",
"output_raw": "{{name: \"Brandon\", favorite_color: \"red\"}}", "output_format":
"OutputFormat.RAW", "agent_role": "Information Agent with extensive role description
that is longer than 80 characters"}}, {"event_id": "6fba9040-9bdc-4386-bc0c-02e1d52fba24",
"timestamp": "2025-09-24T05:36:08.523605+00:00", "type": "crew_kickoff_completed",
"event_data": {"timestamp": "2025-09-24T05:36:08.523572+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "output": {"description": "What is Brandon''s favorite
color?", "name": "What is Brandon''s favorite color?", "expected_output": "The
answer to the question, in a format like this: `{{name: str, favorite_color:
str}}`", "summary": "What is Brandon''s favorite color?...", "raw": "{{name:
\"Brandon\", favorite_color: \"red\"}}", "pydantic": null, "json_dict": null,
"agent": "Information Agent with extensive role description that is longer than
80 characters", "output_format": "raw"}, "total_tokens": 437}}], "batch_metadata":
{"events_count": 10, "batch_sequence": 1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '9867'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/c23e0f3e-2a6f-4caa-822a-d5e463ad6bef/events
response:
body:
string: '{"events_created":10,"trace_batch_id":"a3963dd7-996d-4081-881a-339f437df6a1"}'
headers:
Content-Length:
- '77'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"0229cec81287acf1c8e2ff6ddf8aea8b"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.06, start_processing.action_controller;dur=0.00,
sql.active_record;dur=39.49, instantiation.active_record;dur=0.65, start_transaction.active_record;dur=0.02,
transaction.active_record;dur=58.04, process_action.action_controller;dur=404.65
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- acd8bd9e-7273-47b8-872e-50675fcf882b
x-runtime:
- '0.423538'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 829, "final_event_count": 10}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '68'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/c23e0f3e-2a6f-4caa-822a-d5e463ad6bef/finalize
response:
body:
string: '{"id":"a3963dd7-996d-4081-881a-339f437df6a1","trace_id":"c23e0f3e-2a6f-4caa-822a-d5e463ad6bef","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":829,"crewai_version":"0.193.2","privacy_level":"standard","total_events":10,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-24T05:36:08.504Z","updated_at":"2025-09-24T05:36:09.288Z"}'
headers:
Content-Length:
- '482'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"ad138b97edb9d972657c8fc05aaed78b"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.03, cache_fetch_hit.active_support;dur=0.00,
cache_read_multi.active_support;dur=0.05, start_processing.action_controller;dur=0.00,
sql.active_record;dur=16.53, instantiation.active_record;dur=0.40, unpermitted_parameters.action_controller;dur=0.00,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=4.70,
process_action.action_controller;dur=311.38
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 6b75b619-b5d0-4c8f-ac10-ce743277287b
x-runtime:
- '0.326387'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -446,4 +446,670 @@ interactions:
status:
code: 200
message: OK
- request:
body: '{"trace_id": "c12b6420-41fd-44df-aa66-d2539e86cdf1", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-23T20:10:41.538755+00:00"},
"ephemeral_trace_id": "c12b6420-41fd-44df-aa66-d2539e86cdf1"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '490'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches
response:
body:
string: '{"id":"d8d9fd03-d9a9-4b03-8ee7-7197e17312d3","ephemeral_trace_id":"c12b6420-41fd-44df-aa66-d2539e86cdf1","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-23T20:10:41.657Z","updated_at":"2025-09-23T20:10:41.657Z","access_code":"TRACE-0ac1e9df4a","user_identifier":null}'
headers:
Content-Length:
- '519'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"e8dec01c9ce3207ea8daa849e16bae50"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.59, sql.active_record;dur=37.31, cache_generate.active_support;dur=20.40,
cache_write.active_support;dur=0.15, cache_read_multi.active_support;dur=0.18,
start_processing.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=11.19, process_action.action_controller;dur=19.61
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 3368b379-8e66-46ff-8704-e4a2356b4677
x-runtime:
- '0.111206'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "deb51f96-492b-426a-b18f-e7d90ffbd8a1", "timestamp":
"2025-09-23T20:10:41.665120+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-23T20:10:41.538065+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "6cadc687-215d-43d1-bfaa-01f7f7d8f6a3",
"timestamp": "2025-09-23T20:10:41.778276+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": "58a6a2d2-a445-4f22-93d4-13a9fbc4b7a1"}},
{"event_id": "b3d0490a-976c-4233-a2c7-6686eaa2acef", "timestamp": "2025-09-23T20:10:41.778499+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-23T20:10:41.778470+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": null, "task_name": 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": "05b7ca41-248a-4715-be7b-6527fc36e65b",
"timestamp": "2025-09-23T20:10:41.779569+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T20:10:41.779538+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": 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": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "29cde2eb-12bb-4535-9e56-46f222660598",
"timestamp": "2025-09-23T20:10:41.780097+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": "ef666bd8-1dfa-468f-a723-28197e5aa2ec",
"timestamp": "2025-09-23T20:10:41.780180+00:00", "type": "llm_call_started",
"event_data": {"timestamp": "2025-09-23T20:10:41.780167+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "58a6a2d2-a445-4f22-93d4-13a9fbc4b7a1", "task_name": "What is Brandon''s
favorite color?", "agent_id": null, "agent_role": null, "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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x1288adf40>"], "available_functions": null}}, {"event_id": "ae12c120-7b93-4926-9042-7325daa16943",
"timestamp": "2025-09-23T20:10:41.780905+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T20:10:41.780892+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "58a6a2d2-a445-4f22-93d4-13a9fbc4b7a1", "task_name": "What is Brandon''s
favorite color?", "agent_id": null, "agent_role": null, "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":
"<LLMCallType.LLM_CALL: ''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id":
"df7e2dec-6ba2-44d2-a583-42a012376ceb", "timestamp": "2025-09-23T20:10:41.781012+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": "19e47b7e-bdf7-4487-8c69-b793b29ed171",
"timestamp": "2025-09-23T20:10:41.781079+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": "58a6a2d2-a445-4f22-93d4-13a9fbc4b7a1",
"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":
"2f2c6549-107d-4b31-a041-e7bc437761db", "timestamp": "2025-09-23T20:10:41.781782+00:00",
"type": "crew_kickoff_completed", "event_data": {"timestamp": "2025-09-23T20:10:41.781769+00:00",
"type": "crew_kickoff_completed", "source_fingerprint": null, "source_type":
null, "fingerprint_metadata": null, "task_id": null, "task_name": null, "agent_id":
null, "agent_role": 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": 396}}], "batch_metadata": {"events_count":
10, "batch_sequence": 1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '9339'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/c12b6420-41fd-44df-aa66-d2539e86cdf1/events
response:
body:
string: '{"events_created":10,"ephemeral_trace_batch_id":"d8d9fd03-d9a9-4b03-8ee7-7197e17312d3"}'
headers:
Content-Length:
- '87'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"babd3730bf251aeef149f6c69af76f4b"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.05, sql.active_record;dur=34.68, cache_generate.active_support;dur=1.81,
cache_write.active_support;dur=0.08, cache_read_multi.active_support;dur=0.08,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.04,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=47.91,
process_action.action_controller;dur=55.14
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- a8051d65-c0ee-4153-b888-10a47a0bf3f9
x-runtime:
- '0.085462'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 337, "final_event_count": 10}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '68'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/c12b6420-41fd-44df-aa66-d2539e86cdf1/finalize
response:
body:
string: '{"id":"d8d9fd03-d9a9-4b03-8ee7-7197e17312d3","ephemeral_trace_id":"c12b6420-41fd-44df-aa66-d2539e86cdf1","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":337,"crewai_version":"0.193.2","total_events":10,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-23T20:10:41.657Z","updated_at":"2025-09-23T20:10:41.904Z","access_code":"TRACE-0ac1e9df4a","user_identifier":null}'
headers:
Content-Length:
- '521'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"13e59ccec2d91e02b6a24e59a0964699"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.19, sql.active_record;dur=7.88, cache_generate.active_support;dur=1.54,
cache_write.active_support;dur=0.08, cache_read_multi.active_support;dur=0.06,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.03,
unpermitted_parameters.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=2.87, process_action.action_controller;dur=8.22
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 856e15ae-c0d4-4d76-bc87-c64ba532f84d
x-runtime:
- '0.025747'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"trace_id": "e9e84cf5-bf53-44ab-8f5a-6091996189d5", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-24T06:14:45.587896+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '428'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"6e736910-76e0-4a0f-a506-42d173a66cf7","trace_id":"e9e84cf5-bf53-44ab-8f5a-6091996189d5","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T06:14:46.536Z","updated_at":"2025-09-24T06:14:46.536Z"}'
headers:
Content-Length:
- '480'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"75cef96e81cd5588845929173a08e500"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.19, sql.active_record;dur=75.63, cache_generate.active_support;dur=28.21,
cache_write.active_support;dur=0.27, cache_read_multi.active_support;dur=0.81,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.87,
feature_operation.flipper;dur=0.14, start_transaction.active_record;dur=0.01,
transaction.active_record;dur=18.43, process_action.action_controller;dur=839.75
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 2cadcfc0-79c9-4185-bc9b-09b3d9f02104
x-runtime:
- '0.949045'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "0a4bd412-afe9-46aa-8662-563b804b34dd", "timestamp":
"2025-09-24T06:14:46.553938+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-24T06:14:45.587161+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "25ffbab4-bdc9-493a-8115-e81eaaa206fc",
"timestamp": "2025-09-24T06:14:46.663683+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": "54739d2e-7cbf-49a8-a3c9-3a90e2e44171"}},
{"event_id": "a4f60501-b682-49f2-94cd-0b77d447120c", "timestamp": "2025-09-24T06:14:46.663916+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-24T06:14:46.663898+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": null, "task_name": 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": "8c6c9b63-af0a-4db3-be2a-1eacd2d1ec90",
"timestamp": "2025-09-24T06:14:46.664953+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T06:14:46.664937+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": 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": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "4d713840-7e84-4488-b439-9bd1f4fa42a9",
"timestamp": "2025-09-24T06:14:46.665961+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": "cbab35b6-e362-430c-9494-7db1aa70be54",
"timestamp": "2025-09-24T06:14:46.666014+00:00", "type": "llm_call_started",
"event_data": {"timestamp": "2025-09-24T06:14:46.666002+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "54739d2e-7cbf-49a8-a3c9-3a90e2e44171", "task_name": "What is Brandon''s
favorite color?", "agent_id": "1446b70c-e6d5-4e96-9ef7-c84279ee7544", "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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x13fae72f0>"], "available_functions": null}}, {"event_id": "ba1dbe59-50cd-44e7-837a-5b78bc56e596",
"timestamp": "2025-09-24T06:14:46.666903+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T06:14:46.666887+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "54739d2e-7cbf-49a8-a3c9-3a90e2e44171", "task_name": "What is Brandon''s
favorite color?", "agent_id": "1446b70c-e6d5-4e96-9ef7-c84279ee7544", "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": "<LLMCallType.LLM_CALL: ''llm_call''>", "model":
"gpt-4o-mini"}}, {"event_id": "5d98db38-b8df-4b9d-af86-6968c7a25042", "timestamp":
"2025-09-24T06:14:46.667029+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": "f303fcde-f155-4018-a351-1cd364dc7163", "timestamp":
"2025-09-24T06:14:46.667082+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": "54739d2e-7cbf-49a8-a3c9-3a90e2e44171",
"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":
"3e9d53b7-e9c1-4ca1-aba0-71c517fa974b", "timestamp": "2025-09-24T06:14:46.667882+00:00",
"type": "crew_kickoff_completed", "event_data": {"timestamp": "2025-09-24T06:14:46.667864+00:00",
"type": "crew_kickoff_completed", "source_fingerprint": null, "source_type":
null, "fingerprint_metadata": null, "task_id": null, "task_name": null, "agent_id":
null, "agent_role": 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": 396}}], "batch_metadata": {"events_count":
10, "batch_sequence": 1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '9437'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/e9e84cf5-bf53-44ab-8f5a-6091996189d5/events
response:
body:
string: '{"events_created":10,"trace_batch_id":"6e736910-76e0-4a0f-a506-42d173a66cf7"}'
headers:
Content-Length:
- '77'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"3e86fb6077b3e9c1d4a077a079b28e5d"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.06, sql.active_record;dur=51.41, cache_generate.active_support;dur=2.27,
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.91,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=51.60,
process_action.action_controller;dur=747.40
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 22b26bcf-3b8f-473c-9eda-5e45ca287e7d
x-runtime:
- '0.772922'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 1861, "final_event_count": 10}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '69'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/e9e84cf5-bf53-44ab-8f5a-6091996189d5/finalize
response:
body:
string: '{"id":"6e736910-76e0-4a0f-a506-42d173a66cf7","trace_id":"e9e84cf5-bf53-44ab-8f5a-6091996189d5","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":1861,"crewai_version":"0.193.2","privacy_level":"standard","total_events":10,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-24T06:14:46.536Z","updated_at":"2025-09-24T06:14:48.148Z"}'
headers:
Content-Length:
- '483'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"5a8d0b6b7a18e6b632e4a408127b5e43"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.04, sql.active_record;dur=10.24, cache_generate.active_support;dur=1.69,
cache_write.active_support;dur=0.09, cache_read_multi.active_support;dur=0.07,
start_processing.action_controller;dur=0.01, instantiation.active_record;dur=0.43,
unpermitted_parameters.action_controller;dur=0.01, start_transaction.active_record;dur=0.01,
transaction.active_record;dur=5.65, process_action.action_controller;dur=669.88
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 9150a17f-f1ef-462f-ae4b-b2fe5acbefe9
x-runtime:
- '0.703875'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -446,4 +446,672 @@ interactions:
status:
code: 200
message: OK
- request:
body: '{"trace_id": "fca13628-cc6b-42d6-a771-7cc93be5e905", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-23T20:21:05.726731+00:00"},
"ephemeral_trace_id": "fca13628-cc6b-42d6-a771-7cc93be5e905"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '490'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches
response:
body:
string: '{"id":"001d2d1a-0e54-432b-82bd-cc662dea9e73","ephemeral_trace_id":"fca13628-cc6b-42d6-a771-7cc93be5e905","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-23T20:21:05.953Z","updated_at":"2025-09-23T20:21:05.953Z","access_code":"TRACE-8111622134","user_identifier":null}'
headers:
Content-Length:
- '519'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"e0ca4fb6829473f0764c77531c407def"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.78, sql.active_record;dur=146.33, cache_generate.active_support;dur=133.92,
cache_write.active_support;dur=0.42, cache_read_multi.active_support;dur=0.43,
start_processing.action_controller;dur=0.01, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=9.99, process_action.action_controller;dur=18.55
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- bb3a4e16-fbe8-4054-87d1-d3f1b6d55bd4
x-runtime:
- '0.223581'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "f1f52ba8-e44c-4a8a-a0f6-e8f7125e936a", "timestamp":
"2025-09-23T20:21:05.964314+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-23T20:21:05.725929+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "c75aa25d-6428-419d-8942-db0bd1b2793b",
"timestamp": "2025-09-23T20:21:06.064905+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": "5c465fd3-ed74-4151-8fb3-84a4120d637a"}},
{"event_id": "02516d04-a1b6-48ca-bebb-95c40b527a5d", "timestamp": "2025-09-23T20:21:06.065107+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-23T20:21:06.065089+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": null, "task_name": 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": "f969ac56-bc50-43aa-a7fa-de57fb06b64b",
"timestamp": "2025-09-23T20:21:06.067364+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T20:21:06.067113+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": 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": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "649cdaae-6182-40fb-9331-09bf24774dc7",
"timestamp": "2025-09-23T20:21:06.068132+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": "fde80ed7-fcc5-4dc4-b5e7-c18e5c914020",
"timestamp": "2025-09-23T20:21:06.068208+00:00", "type": "llm_call_started",
"event_data": {"timestamp": "2025-09-23T20:21:06.068196+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "5c465fd3-ed74-4151-8fb3-84a4120d637a", "task_name": "What is Brandon''s
favorite color?", "agent_id": null, "agent_role": null, "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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x139c6bf80>"], "available_functions": null}}, {"event_id": "84202a4f-f5d5-486e-8cd3-e335c6f3b0a0",
"timestamp": "2025-09-23T20:21:06.068991+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T20:21:06.068977+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "5c465fd3-ed74-4151-8fb3-84a4120d637a", "task_name": "What is Brandon''s
favorite color?", "agent_id": null, "agent_role": null, "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 known or available in common knowledge
sources, as personal preferences like favorite colors are typically private
and can vary widely among individuals without publicly shared information.",
"call_type": "<LLMCallType.LLM_CALL: ''llm_call''>", "model": "gpt-4o-mini"}},
{"event_id": "eea7601d-e36c-448e-ad6a-bb236c3b625a", "timestamp": "2025-09-23T20:21:06.069107+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": "9a5da9c9-8c3f-482d-970a-037929c88780",
"timestamp": "2025-09-23T20:21:06.069175+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": "5c465fd3-ed74-4151-8fb3-84a4120d637a",
"output_raw": "Brandon''s favorite color is not publicly known or available
in common knowledge sources, as personal preferences like favorite colors are
typically private and can vary widely among individuals without publicly shared
information.", "output_format": "OutputFormat.RAW", "agent_role": "Information
Agent"}}, {"event_id": "18fdc397-9df9-46d9-88c8-aaedd1cfccb3", "timestamp":
"2025-09-23T20:21:06.069986+00:00", "type": "crew_kickoff_completed", "event_data":
{"timestamp": "2025-09-23T20:21:06.069968+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": 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 known or available in common knowledge
sources, as personal preferences like favorite colors are typically private
and can vary widely among individuals without publicly shared information.",
"pydantic": null, "json_dict": null, "agent": "Information Agent", "output_format":
"raw"}, "total_tokens": 394}}], "batch_metadata": {"events_count": 10, "batch_sequence":
1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '9354'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/fca13628-cc6b-42d6-a771-7cc93be5e905/events
response:
body:
string: '{"events_created":10,"ephemeral_trace_batch_id":"001d2d1a-0e54-432b-82bd-cc662dea9e73"}'
headers:
Content-Length:
- '87'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"8eb664e6bdf2e30d8da5d87edfb70e81"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.06, sql.active_record;dur=23.19, cache_generate.active_support;dur=1.87,
cache_write.active_support;dur=0.12, cache_read_multi.active_support;dur=0.07,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.05,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=74.12,
process_action.action_controller;dur=81.94
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 33c54013-e5cf-4d93-a666-f16d60d519fe
x-runtime:
- '0.127232'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 480, "final_event_count": 10}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '68'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/fca13628-cc6b-42d6-a771-7cc93be5e905/finalize
response:
body:
string: '{"id":"001d2d1a-0e54-432b-82bd-cc662dea9e73","ephemeral_trace_id":"fca13628-cc6b-42d6-a771-7cc93be5e905","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":480,"crewai_version":"0.193.2","total_events":10,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-23T20:21:05.953Z","updated_at":"2025-09-23T20:21:06.245Z","access_code":"TRACE-8111622134","user_identifier":null}'
headers:
Content-Length:
- '521'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"b2724edbb5cda44a4c57fe3f822f9efb"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.04, sql.active_record;dur=6.68, cache_generate.active_support;dur=2.31,
cache_write.active_support;dur=0.12, cache_read_multi.active_support;dur=0.06,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.03,
unpermitted_parameters.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=1.41, process_action.action_controller;dur=6.43
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 4b1532f1-362f-4a90-ad0c-55eae7754f02
x-runtime:
- '0.033030'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"trace_id": "7b434273-c30b-41e7-9af8-e8a06112b6d7", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-24T06:03:49.674045+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '428'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"8c2a5749-ba2a-47b9-a5dd-04cbca343737","trace_id":"7b434273-c30b-41e7-9af8-e8a06112b6d7","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T06:03:50.773Z","updated_at":"2025-09-24T06:03:50.773Z"}'
headers:
Content-Length:
- '480'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"affef92e3726c21ff4c0314c97b2b317"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.10, sql.active_record;dur=76.35, cache_generate.active_support;dur=32.57,
cache_write.active_support;dur=0.60, cache_read_multi.active_support;dur=0.48,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.31,
feature_operation.flipper;dur=0.04, start_transaction.active_record;dur=0.01,
transaction.active_record;dur=16.31, process_action.action_controller;dur=936.89
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 24baf8ea-b01e-4cf5-97a1-8a673250ad80
x-runtime:
- '1.100314'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "a88e7bc8-5dce-4e04-b6b5-304ee17193e6", "timestamp":
"2025-09-24T06:03:50.788403+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-24T06:03:49.673039+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "aa21aad9-6734-4e31-9124-3a0e4dcee2b1",
"timestamp": "2025-09-24T06:03:51.007306+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": "30ecb0b9-6050-4dba-9380-7babbb8697d7"}},
{"event_id": "f9c91e09-b077-41c9-a8e6-c8cd1c4c6528", "timestamp": "2025-09-24T06:03:51.007529+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-24T06:03:51.007472+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": null, "task_name": 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": "f491b036-a303-4b66-a2f4-72fd69254050",
"timestamp": "2025-09-24T06:03:51.041059+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T06:03:51.040894+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": 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": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "4b37cce8-63b6-41fe-b0c6-8d21b2fe5a6e",
"timestamp": "2025-09-24T06:03:51.042246+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": "9b180189-02ab-487e-b53e-70b08c1ade5f",
"timestamp": "2025-09-24T06:03:51.042369+00:00", "type": "llm_call_started",
"event_data": {"timestamp": "2025-09-24T06:03:51.042351+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "30ecb0b9-6050-4dba-9380-7babbb8697d7", "task_name": "What is Brandon''s
favorite color?", "agent_id": "7a5ced08-5fbf-495c-9460-907d047db86c", "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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x11e64cce0>"], "available_functions": null}}, {"event_id": "f7e0287a-30bf-4a26-a4ba-7b04a03cae04",
"timestamp": "2025-09-24T06:03:51.043305+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T06:03:51.043289+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "30ecb0b9-6050-4dba-9380-7babbb8697d7", "task_name": "What is Brandon''s
favorite color?", "agent_id": "7a5ced08-5fbf-495c-9460-907d047db86c", "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 known
or available in common knowledge sources, as personal preferences like favorite
colors are typically private and can vary widely among individuals without publicly
shared information.", "call_type": "<LLMCallType.LLM_CALL: ''llm_call''>", "model":
"gpt-4o-mini"}}, {"event_id": "9152def6-ce8e-4aae-8eb1-a8a456ac504f", "timestamp":
"2025-09-24T06:03:51.043525+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": "daa96e3d-92f7-4fe8-b16e-f37052c2db6a", "timestamp":
"2025-09-24T06:03:51.043615+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": "30ecb0b9-6050-4dba-9380-7babbb8697d7",
"output_raw": "Brandon''s favorite color is not publicly known or available
in common knowledge sources, as personal preferences like favorite colors are
typically private and can vary widely among individuals without publicly shared
information.", "output_format": "OutputFormat.RAW", "agent_role": "Information
Agent"}}, {"event_id": "b28f29f9-e2ec-4f75-a660-7329e2716792", "timestamp":
"2025-09-24T06:03:51.044687+00:00", "type": "crew_kickoff_completed", "event_data":
{"timestamp": "2025-09-24T06:03:51.044664+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": 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 known or available in common knowledge
sources, as personal preferences like favorite colors are typically private
and can vary widely among individuals without publicly shared information.",
"pydantic": null, "json_dict": null, "agent": "Information Agent", "output_format":
"raw"}, "total_tokens": 394}}], "batch_metadata": {"events_count": 10, "batch_sequence":
1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '9452'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/7b434273-c30b-41e7-9af8-e8a06112b6d7/events
response:
body:
string: '{"events_created":10,"trace_batch_id":"8c2a5749-ba2a-47b9-a5dd-04cbca343737"}'
headers:
Content-Length:
- '77'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"5b5049fe52232a6ea0a61d9d51d10646"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.05, sql.active_record;dur=55.74, cache_generate.active_support;dur=4.85,
cache_write.active_support;dur=0.87, cache_read_multi.active_support;dur=0.77,
start_processing.action_controller;dur=0.01, instantiation.active_record;dur=0.49,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=71.42,
process_action.action_controller;dur=723.61
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 93834675-b84a-40aa-a2dc-554318bba381
x-runtime:
- '0.797735'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 2174, "final_event_count": 10}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '69'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/7b434273-c30b-41e7-9af8-e8a06112b6d7/finalize
response:
body:
string: '{"id":"8c2a5749-ba2a-47b9-a5dd-04cbca343737","trace_id":"7b434273-c30b-41e7-9af8-e8a06112b6d7","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":2174,"crewai_version":"0.193.2","privacy_level":"standard","total_events":10,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-24T06:03:50.773Z","updated_at":"2025-09-24T06:03:52.221Z"}'
headers:
Content-Length:
- '483'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"eddac8e5dea3d4bebea0214257d4ec28"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.03, sql.active_record;dur=19.54, cache_generate.active_support;dur=1.76,
cache_write.active_support;dur=0.08, cache_read_multi.active_support;dur=0.06,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.73,
unpermitted_parameters.action_controller;dur=0.01, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=5.96, process_action.action_controller;dur=353.00
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 9d657263-dd0c-453d-88d6-cdf2387cb718
x-runtime:
- '0.372790'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -1020,4 +1020,76 @@ interactions:
- req_83a900d075a98ab391c27c5d1cd4fbcb
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "536873bc-0594-4704-8cb8-b472646588d7", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-23T17:28:26.633211+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Content-Length:
- '55'
cache-control:
- no-cache
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=1.37, sql.active_record;dur=84.33, cache_generate.active_support;dur=79.11,
cache_write.active_support;dur=0.37, cache_read_multi.active_support;dur=0.72,
start_processing.action_controller;dur=0.01, process_action.action_controller;dur=3.98
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 9f97e8a2-2b71-443a-9097-ba9f2da1d11d
x-runtime:
- '0.211463'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -1171,4 +1171,84 @@ interactions:
- req_ec507285c8bd3fc925a6795799f90b0d
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "eb4af5da-2a26-434d-80e7-febabc0d49e1", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-24T05:26:03.958686+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"185c8ae1-b9d0-4d0d-94a4-f1db346bdde3","trace_id":"eb4af5da-2a26-434d-80e7-febabc0d49e1","execution_type":"crew","crew_name":"Unknown
Crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"Unknown
Crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T05:26:04.333Z","updated_at":"2025-09-24T05:26:04.333Z"}'
headers:
Content-Length:
- '496'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"8fe784f9fa255a94d586a823c0eec506"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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=22.72, instantiation.active_record;dur=0.31, feature_operation.flipper;dur=0.08,
start_transaction.active_record;dur=0.01, transaction.active_record;dur=24.93,
process_action.action_controller;dur=363.38
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 4771afa6-7258-4f42-b42e-a4dc9d3eb463
x-runtime:
- '0.385686'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
version: 1

View File

@@ -434,4 +434,604 @@ interactions:
status:
code: 200
message: OK
- request:
body: '{"trace_id": "8fb6e82b-be8f-411d-82e6-16493b2a06b6", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-24T06:05:21.465921+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '428'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"0d052099-8eb5-4bf2-8baf-a95eb71969dc","trace_id":"8fb6e82b-be8f-411d-82e6-16493b2a06b6","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T06:05:21.890Z","updated_at":"2025-09-24T06:05:21.890Z"}'
headers:
Content-Length:
- '480'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"d113f6351e859e55dd012a0b86a71547"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.06, sql.active_record;dur=28.50, cache_generate.active_support;dur=2.05,
cache_write.active_support;dur=0.14, cache_read_multi.active_support;dur=0.08,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.29,
feature_operation.flipper;dur=0.04, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=11.90, process_action.action_controller;dur=375.53
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 38fabbf7-3da4-49e0-b14c-d3ef4df07248
x-runtime:
- '0.435366'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "03f563de-b12f-4e2f-b438-c6fa6b88867f", "timestamp":
"2025-09-24T06:05:21.905484+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-24T06:05:21.464975+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": {"crewai_trigger_payload": "Initial context
data"}}}, {"event_id": "b87be533-9b05-49fb-8f2b-b2f8fe7f6f44", "timestamp":
"2025-09-24T06:05:21.908647+00:00", "type": "task_started", "event_data": {"task_description":
"Process initial data", "expected_output": "Initial analysis", "task_name":
"Process initial data", "context": "", "agent_role": "First Agent", "task_id":
"80f088cc-435d-4f6e-9093-da23633a2c25"}}, {"event_id": "3f93ed70-ac54-44aa-b4e8-2f7c5873accd",
"timestamp": "2025-09-24T06:05:21.909526+00:00", "type": "agent_execution_started",
"event_data": {"agent_role": "First Agent", "agent_goal": "First goal", "agent_backstory":
"First backstory"}}, {"event_id": "e7767906-214d-4de9-bcd2-ee17e5e62e8c", "timestamp":
"2025-09-24T06:05:21.909670+00:00", "type": "llm_call_started", "event_data":
{"timestamp": "2025-09-24T06:05:21.909630+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "80f088cc-435d-4f6e-9093-da23633a2c25", "task_name": "Process initial
data", "agent_id": "b770adc7-09ea-4805-b5ac-e299a7a54ef5", "agent_role": "First
Agent", "from_task": null, "from_agent": null, "model": "gpt-4o-mini", "messages":
[{"role": "system", "content": "You are First Agent. First backstory\nYour personal
goal is: First goal\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: Process initial data\n\nTrigger
Payload: Initial context data\n\nThis is the expected criteria for your final
answer: Initial analysis\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x11ee99490>"], "available_functions": null}}, {"event_id": "e320f773-471b-4094-ac7e-30d48279d16c",
"timestamp": "2025-09-24T06:05:21.912116+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T06:05:21.912076+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "80f088cc-435d-4f6e-9093-da23633a2c25", "task_name": "Process initial
data", "agent_id": "b770adc7-09ea-4805-b5ac-e299a7a54ef5", "agent_role": "First
Agent", "from_task": null, "from_agent": null, "messages": [{"role": "system",
"content": "You are First Agent. First backstory\nYour personal goal is: First
goal\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: Process initial data\n\nTrigger Payload:
Initial context data\n\nThis is the expected criteria for your final answer:
Initial analysis\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 initial analysis should
include a comprehensive examination of the data provided, identifying key patterns,
trends, and anomalies. It involves evaluating the sources of the data, the methodology
used in its collection, and any potential biases. \n\n1. **Data Sources**: Identify
where the data originated, including databases, surveys, experiments, or third-party
sources.\n\n2. **Data Types**: Determine the types of data (quantitative or
qualitative) and the specific metrics involved (e.g., numerical values, text
responses, categorical data).\n\n3. **Preliminary Trends**: Look for initial
trends in the data, such as averages, distributions, and correlations between
variables. This can include graphical representations like charts or histograms
to visualize trends.\n\n4. **Outliers**: Identify any data points that significantly
deviate from the expected range, which could affect the overall analysis. Understand
potential reasons for these anomalies.\n\n5. **Comparative Analysis**: If applicable,
compare the data across different segments or over time to identify stable trends
versus temporary fluctuations.\n\n6. **Limitations**: Recognize any limitations
within the dataset, including missing data, potential errors in data entry,
and sampling biases that could affect the reliability of the analysis.\n\n7.
**Recommendations for Further Analysis**: Based on the initial analysis, suggest
areas for deeper investigation. This may include additional data collection,
more complex modeling, or exploring other variables that could influence the
findings.\n\nBy thoroughly addressing these elements, the initial analysis will
provide a solid foundational understanding of the dataset, paving the way for
informed decision-making and strategic planning.", "call_type": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "5854745d-a82c-49a0-8d22-62c19277f310",
"timestamp": "2025-09-24T06:05:21.912391+00:00", "type": "agent_execution_completed",
"event_data": {"agent_role": "First Agent", "agent_goal": "First goal", "agent_backstory":
"First backstory"}}, {"event_id": "6a42277b-c362-4ea4-843e-840ef92ead23", "timestamp":
"2025-09-24T06:05:21.912470+00:00", "type": "task_completed", "event_data":
{"task_description": "Process initial data", "task_name": "Process initial data",
"task_id": "80f088cc-435d-4f6e-9093-da23633a2c25", "output_raw": "The initial
analysis should include a comprehensive examination of the data provided, identifying
key patterns, trends, and anomalies. It involves evaluating the sources of the
data, the methodology used in its collection, and any potential biases. \n\n1.
**Data Sources**: Identify where the data originated, including databases, surveys,
experiments, or third-party sources.\n\n2. **Data Types**: Determine the types
of data (quantitative or qualitative) and the specific metrics involved (e.g.,
numerical values, text responses, categorical data).\n\n3. **Preliminary Trends**:
Look for initial trends in the data, such as averages, distributions, and correlations
between variables. This can include graphical representations like charts or
histograms to visualize trends.\n\n4. **Outliers**: Identify any data points
that significantly deviate from the expected range, which could affect the overall
analysis. Understand potential reasons for these anomalies.\n\n5. **Comparative
Analysis**: If applicable, compare the data across different segments or over
time to identify stable trends versus temporary fluctuations.\n\n6. **Limitations**:
Recognize any limitations within the dataset, including missing data, potential
errors in data entry, and sampling biases that could affect the reliability
of the analysis.\n\n7. **Recommendations for Further Analysis**: Based on the
initial analysis, suggest areas for deeper investigation. This may include additional
data collection, more complex modeling, or exploring other variables that could
influence the findings.\n\nBy thoroughly addressing these elements, the initial
analysis will provide a solid foundational understanding of the dataset, paving
the way for informed decision-making and strategic planning.", "output_format":
"OutputFormat.RAW", "agent_role": "First Agent"}}, {"event_id": "a0644e65-190d-47f5-b64c-333e49d8773c",
"timestamp": "2025-09-24T06:05:21.914104+00:00", "type": "task_started", "event_data":
{"task_description": "Process secondary data", "expected_output": "Secondary
analysis", "task_name": "Process secondary data", "context": "The initial analysis
should include a comprehensive examination of the data provided, identifying
key patterns, trends, and anomalies. It involves evaluating the sources of the
data, the methodology used in its collection, and any potential biases. \n\n1.
**Data Sources**: Identify where the data originated, including databases, surveys,
experiments, or third-party sources.\n\n2. **Data Types**: Determine the types
of data (quantitative or qualitative) and the specific metrics involved (e.g.,
numerical values, text responses, categorical data).\n\n3. **Preliminary Trends**:
Look for initial trends in the data, such as averages, distributions, and correlations
between variables. This can include graphical representations like charts or
histograms to visualize trends.\n\n4. **Outliers**: Identify any data points
that significantly deviate from the expected range, which could affect the overall
analysis. Understand potential reasons for these anomalies.\n\n5. **Comparative
Analysis**: If applicable, compare the data across different segments or over
time to identify stable trends versus temporary fluctuations.\n\n6. **Limitations**:
Recognize any limitations within the dataset, including missing data, potential
errors in data entry, and sampling biases that could affect the reliability
of the analysis.\n\n7. **Recommendations for Further Analysis**: Based on the
initial analysis, suggest areas for deeper investigation. This may include additional
data collection, more complex modeling, or exploring other variables that could
influence the findings.\n\nBy thoroughly addressing these elements, the initial
analysis will provide a solid foundational understanding of the dataset, paving
the way for informed decision-making and strategic planning.", "agent_role":
"Second Agent", "task_id": "960ba106-b9ed-47a3-9be5-b5fffce54325"}}, {"event_id":
"31110230-05a9-443f-b4ad-9d0630a72d6a", "timestamp": "2025-09-24T06:05:21.915129+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "Second Agent",
"agent_goal": "Second goal", "agent_backstory": "Second backstory"}}, {"event_id":
"7ecd82f2-5de8-457f-88e1-65856f15e93a", "timestamp": "2025-09-24T06:05:21.915255+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-24T06:05:21.915224+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "960ba106-b9ed-47a3-9be5-b5fffce54325",
"task_name": "Process secondary data", "agent_id": "1459bd0a-302d-4687-9f49-3c79e1fce23d",
"agent_role": "Second Agent", "from_task": null, "from_agent": null, "model":
"gpt-4o-mini", "messages": [{"role": "system", "content": "You are Second Agent.
Second backstory\nYour personal goal is: Second goal\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: Process secondary data\n\nThis is the expected criteria for your final
answer: Secondary analysis\nyou MUST return the actual complete content as the
final answer, not a summary.\n\nThis is the context you''re working with:\nThe
initial analysis should include a comprehensive examination of the data provided,
identifying key patterns, trends, and anomalies. It involves evaluating the
sources of the data, the methodology used in its collection, and any potential
biases. \n\n1. **Data Sources**: Identify where the data originated, including
databases, surveys, experiments, or third-party sources.\n\n2. **Data Types**:
Determine the types of data (quantitative or qualitative) and the specific metrics
involved (e.g., numerical values, text responses, categorical data).\n\n3. **Preliminary
Trends**: Look for initial trends in the data, such as averages, distributions,
and correlations between variables. This can include graphical representations
like charts or histograms to visualize trends.\n\n4. **Outliers**: Identify
any data points that significantly deviate from the expected range, which could
affect the overall analysis. Understand potential reasons for these anomalies.\n\n5.
**Comparative Analysis**: If applicable, compare the data across different segments
or over time to identify stable trends versus temporary fluctuations.\n\n6.
**Limitations**: Recognize any limitations within the dataset, including missing
data, potential errors in data entry, and sampling biases that could affect
the reliability of the analysis.\n\n7. **Recommendations for Further Analysis**:
Based on the initial analysis, suggest areas for deeper investigation. This
may include additional data collection, more complex modeling, or exploring
other variables that could influence the findings.\n\nBy thoroughly addressing
these elements, the initial analysis will provide a solid foundational understanding
of the dataset, paving the way for informed decision-making and strategic planning.\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":
["<crewai.utilities.token_counter_callback.TokenCalcHandler object at 0x128919a60>"],
"available_functions": null}}, {"event_id": "cf2435b7-42e7-4d7d-b37c-11909a07293c",
"timestamp": "2025-09-24T06:05:21.917151+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T06:05:21.917109+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "960ba106-b9ed-47a3-9be5-b5fffce54325", "task_name": "Process secondary
data", "agent_id": "1459bd0a-302d-4687-9f49-3c79e1fce23d", "agent_role": "Second
Agent", "from_task": null, "from_agent": null, "messages": [{"role": "system",
"content": "You are Second Agent. Second backstory\nYour personal goal is: Second
goal\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: Process secondary data\n\nThis is the expected
criteria for your final answer: Secondary analysis\nyou MUST return the actual
complete content as the final answer, not a summary.\n\nThis is the context
you''re working with:\nThe initial analysis should include a comprehensive examination
of the data provided, identifying key patterns, trends, and anomalies. It involves
evaluating the sources of the data, the methodology used in its collection,
and any potential biases. \n\n1. **Data Sources**: Identify where the data originated,
including databases, surveys, experiments, or third-party sources.\n\n2. **Data
Types**: Determine the types of data (quantitative or qualitative) and the specific
metrics involved (e.g., numerical values, text responses, categorical data).\n\n3.
**Preliminary Trends**: Look for initial trends in the data, such as averages,
distributions, and correlations between variables. This can include graphical
representations like charts or histograms to visualize trends.\n\n4. **Outliers**:
Identify any data points that significantly deviate from the expected range,
which could affect the overall analysis. Understand potential reasons for these
anomalies.\n\n5. **Comparative Analysis**: If applicable, compare the data across
different segments or over time to identify stable trends versus temporary fluctuations.\n\n6.
**Limitations**: Recognize any limitations within the dataset, including missing
data, potential errors in data entry, and sampling biases that could affect
the reliability of the analysis.\n\n7. **Recommendations for Further Analysis**:
Based on the initial analysis, suggest areas for deeper investigation. This
may include additional data collection, more complex modeling, or exploring
other variables that could influence the findings.\n\nBy thoroughly addressing
these elements, the initial analysis will provide a solid foundational understanding
of the dataset, paving the way for informed decision-making and strategic planning.\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: \n\n### Comprehensive Examination of Secondary
Data\n\n#### 1. **Data Sources**\nThe data originates from multiple sources,
attempting to encapsulate a holistic view of the researched topic. Specific
data sources include:\n- **Databases**: Publicly accessible databases, such
as PubMed for health-related data and the U.S. Census Bureau for demographic
statistics.\n- **Surveys**: National surveys conducted by reputable organizations
such as Pew Research Center, providing data on public opinion and behavior.\n-
**Experiments**: Published studies which have adhered to peer-review standards,
ensuring methodological rigor.\n- **Third-party sources**: Reports from think
tanks and academic institutions which aggregate data from primary research.\n\n####
2. **Data Types**\nThe dataset comprises both quantitative and qualitative types:\n-
**Quantitative Data**: Numerical values are predominantly used, including continuous
metrics such as age, income levels, and frequency of events. This is suitable
for statistical analysis.\n- **Qualitative Data**: Text responses from surveys
that capture opinions, experiences, and feedback. This can involve coding responses
into categories for easier analysis.\n\n#### 3. **Preliminary Trends**\nInitial
trends observed in the dataset include:\n- **Averages**: Calculation of mean
and median values to measure central tendency (e.g., average income levels across
demographic groups).\n- **Distributions**: Graphical representation using histograms
reveals how data points are spread across different categories or values (e.g.,
age groups).\n- **Correlations**: Initial analysis indicates potential correlations,
such as between education level and income, visualized through scatter plots
which depict the relationship between the two variables.\n\n#### 4. **Outliers**\nThe
analysis identifies several outliers:\n- Data points significantly exceeding
or falling below expected ranges (e.g., an income level substantially higher
than the surrounding cluster).\n- Potential reasons for these anomalies might
include errors in data entry, unique subpopulations not representative of the
larger group, or influential cases that merit further exploration.\n\n#### 5.
**Comparative Analysis**\nComparative analysis reveals:\n- **Temporal Fluctuations**:
Examining the same dataset over time indicates fluctuations in responses, such
as changing public opinion on specific social issues.\n- **Segmentation**: Segmenting
data by demographic factors (e.g., age, income, education) allows for comparisons
that highlight significant differences across groups, reinforcing the stability
or volatility of particular trends.\n\n#### 6. **Limitations**\nRecognizing
limitations is crucial:\n- **Missing Data**: Instances where values are absent,
leading to gaps in the analysis. This may necessitate imputation or exclusion
from certain calculations.\n- **Potential Errors**: Occurrences of data entry
mistakes can distort findings, which warrants cautious handling of datasets.\n-
**Sampling Biases**: If certain groups are overrepresented or underrepresented,
the dataset may not provide a fully representative view, affecting the generalizability
of results.\n\n#### 7. **Recommendations for Further Analysis**\nBased on these
insights, the following recommendations are proposed for deeper investigation:\n-
**Additional Data Collection**: To address gaps and enhance dataset robustness,
consider conducting focused surveys or engaging with underrepresented groups.\n-
**Complex Modeling**: Implement predictive modeling techniques to explore relationships
more intricately, adjusting for confounding variables.\n- **Exploratory Variables**:
Investigate additional factors that could impact outcomes (e.g., geographic
location, socioeconomic status) to enhance comprehension of observed trends.\n\nBy
thoroughly addressing these elements, this initial analysis paves the way for
informed decision-making and strategic planning, laying a solid groundwork for
future investigations and potential actions.", "call_type": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "ea0b5d66-0163-4227-816a-d7a02b6efbc2",
"timestamp": "2025-09-24T06:05:21.917396+00:00", "type": "agent_execution_completed",
"event_data": {"agent_role": "Second Agent", "agent_goal": "Second goal", "agent_backstory":
"Second backstory"}}, {"event_id": "890be79b-dd68-4ff2-808b-df53f405e613", "timestamp":
"2025-09-24T06:05:21.917469+00:00", "type": "task_completed", "event_data":
{"task_description": "Process secondary data", "task_name": "Process secondary
data", "task_id": "960ba106-b9ed-47a3-9be5-b5fffce54325", "output_raw": "###
Comprehensive Examination of Secondary Data\n\n#### 1. **Data Sources**\nThe
data originates from multiple sources, attempting to encapsulate a holistic
view of the researched topic. Specific data sources include:\n- **Databases**:
Publicly accessible databases, such as PubMed for health-related data and the
U.S. Census Bureau for demographic statistics.\n- **Surveys**: National surveys
conducted by reputable organizations such as Pew Research Center, providing
data on public opinion and behavior.\n- **Experiments**: Published studies which
have adhered to peer-review standards, ensuring methodological rigor.\n- **Third-party
sources**: Reports from think tanks and academic institutions which aggregate
data from primary research.\n\n#### 2. **Data Types**\nThe dataset comprises
both quantitative and qualitative types:\n- **Quantitative Data**: Numerical
values are predominantly used, including continuous metrics such as age, income
levels, and frequency of events. This is suitable for statistical analysis.\n-
**Qualitative Data**: Text responses from surveys that capture opinions, experiences,
and feedback. This can involve coding responses into categories for easier analysis.\n\n####
3. **Preliminary Trends**\nInitial trends observed in the dataset include:\n-
**Averages**: Calculation of mean and median values to measure central tendency
(e.g., average income levels across demographic groups).\n- **Distributions**:
Graphical representation using histograms reveals how data points are spread
across different categories or values (e.g., age groups).\n- **Correlations**:
Initial analysis indicates potential correlations, such as between education
level and income, visualized through scatter plots which depict the relationship
between the two variables.\n\n#### 4. **Outliers**\nThe analysis identifies
several outliers:\n- Data points significantly exceeding or falling below expected
ranges (e.g., an income level substantially higher than the surrounding cluster).\n-
Potential reasons for these anomalies might include errors in data entry, unique
subpopulations not representative of the larger group, or influential cases
that merit further exploration.\n\n#### 5. **Comparative Analysis**\nComparative
analysis reveals:\n- **Temporal Fluctuations**: Examining the same dataset over
time indicates fluctuations in responses, such as changing public opinion on
specific social issues.\n- **Segmentation**: Segmenting data by demographic
factors (e.g., age, income, education) allows for comparisons that highlight
significant differences across groups, reinforcing the stability or volatility
of particular trends.\n\n#### 6. **Limitations**\nRecognizing limitations is
crucial:\n- **Missing Data**: Instances where values are absent, leading to
gaps in the analysis. This may necessitate imputation or exclusion from certain
calculations.\n- **Potential Errors**: Occurrences of data entry mistakes can
distort findings, which warrants cautious handling of datasets.\n- **Sampling
Biases**: If certain groups are overrepresented or underrepresented, the dataset
may not provide a fully representative view, affecting the generalizability
of results.\n\n#### 7. **Recommendations for Further Analysis**\nBased on these
insights, the following recommendations are proposed for deeper investigation:\n-
**Additional Data Collection**: To address gaps and enhance dataset robustness,
consider conducting focused surveys or engaging with underrepresented groups.\n-
**Complex Modeling**: Implement predictive modeling techniques to explore relationships
more intricately, adjusting for confounding variables.\n- **Exploratory Variables**:
Investigate additional factors that could impact outcomes (e.g., geographic
location, socioeconomic status) to enhance comprehension of observed trends.\n\nBy
thoroughly addressing these elements, this initial analysis paves the way for
informed decision-making and strategic planning, laying a solid groundwork for
future investigations and potential actions.", "output_format": "OutputFormat.RAW",
"agent_role": "Second Agent"}}, {"event_id": "7024dc08-b959-4405-9875-2ab8e719e30d",
"timestamp": "2025-09-24T06:05:21.918839+00:00", "type": "crew_kickoff_completed",
"event_data": {"timestamp": "2025-09-24T06:05:21.918816+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "output": {"description": "Process secondary data", "name":
"Process secondary data", "expected_output": "Secondary analysis", "summary":
"Process secondary data...", "raw": "### Comprehensive Examination of Secondary
Data\n\n#### 1. **Data Sources**\nThe data originates from multiple sources,
attempting to encapsulate a holistic view of the researched topic. Specific
data sources include:\n- **Databases**: Publicly accessible databases, such
as PubMed for health-related data and the U.S. Census Bureau for demographic
statistics.\n- **Surveys**: National surveys conducted by reputable organizations
such as Pew Research Center, providing data on public opinion and behavior.\n-
**Experiments**: Published studies which have adhered to peer-review standards,
ensuring methodological rigor.\n- **Third-party sources**: Reports from think
tanks and academic institutions which aggregate data from primary research.\n\n####
2. **Data Types**\nThe dataset comprises both quantitative and qualitative types:\n-
**Quantitative Data**: Numerical values are predominantly used, including continuous
metrics such as age, income levels, and frequency of events. This is suitable
for statistical analysis.\n- **Qualitative Data**: Text responses from surveys
that capture opinions, experiences, and feedback. This can involve coding responses
into categories for easier analysis.\n\n#### 3. **Preliminary Trends**\nInitial
trends observed in the dataset include:\n- **Averages**: Calculation of mean
and median values to measure central tendency (e.g., average income levels across
demographic groups).\n- **Distributions**: Graphical representation using histograms
reveals how data points are spread across different categories or values (e.g.,
age groups).\n- **Correlations**: Initial analysis indicates potential correlations,
such as between education level and income, visualized through scatter plots
which depict the relationship between the two variables.\n\n#### 4. **Outliers**\nThe
analysis identifies several outliers:\n- Data points significantly exceeding
or falling below expected ranges (e.g., an income level substantially higher
than the surrounding cluster).\n- Potential reasons for these anomalies might
include errors in data entry, unique subpopulations not representative of the
larger group, or influential cases that merit further exploration.\n\n#### 5.
**Comparative Analysis**\nComparative analysis reveals:\n- **Temporal Fluctuations**:
Examining the same dataset over time indicates fluctuations in responses, such
as changing public opinion on specific social issues.\n- **Segmentation**: Segmenting
data by demographic factors (e.g., age, income, education) allows for comparisons
that highlight significant differences across groups, reinforcing the stability
or volatility of particular trends.\n\n#### 6. **Limitations**\nRecognizing
limitations is crucial:\n- **Missing Data**: Instances where values are absent,
leading to gaps in the analysis. This may necessitate imputation or exclusion
from certain calculations.\n- **Potential Errors**: Occurrences of data entry
mistakes can distort findings, which warrants cautious handling of datasets.\n-
**Sampling Biases**: If certain groups are overrepresented or underrepresented,
the dataset may not provide a fully representative view, affecting the generalizability
of results.\n\n#### 7. **Recommendations for Further Analysis**\nBased on these
insights, the following recommendations are proposed for deeper investigation:\n-
**Additional Data Collection**: To address gaps and enhance dataset robustness,
consider conducting focused surveys or engaging with underrepresented groups.\n-
**Complex Modeling**: Implement predictive modeling techniques to explore relationships
more intricately, adjusting for confounding variables.\n- **Exploratory Variables**:
Investigate additional factors that could impact outcomes (e.g., geographic
location, socioeconomic status) to enhance comprehension of observed trends.\n\nBy
thoroughly addressing these elements, this initial analysis paves the way for
informed decision-making and strategic planning, laying a solid groundwork for
future investigations and potential actions.", "pydantic": null, "json_dict":
null, "agent": "Second Agent", "output_format": "raw"}, "total_tokens": 1700}}],
"batch_metadata": {"events_count": 14, "batch_sequence": 1, "is_final_batch":
false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '30659'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/8fb6e82b-be8f-411d-82e6-16493b2a06b6/events
response:
body:
string: '{"events_created":14,"trace_batch_id":"0d052099-8eb5-4bf2-8baf-a95eb71969dc"}'
headers:
Content-Length:
- '77'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"83758bc1b206b54c47d9aa600804379e"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.07, start_processing.action_controller;dur=0.00,
sql.active_record;dur=51.11, instantiation.active_record;dur=0.63, start_transaction.active_record;dur=0.01,
transaction.active_record;dur=103.40, process_action.action_controller;dur=664.65
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 79d03d81-9a8c-4b97-ae93-6425c960b5fa
x-runtime:
- '0.686847'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 1150, "final_event_count": 14}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '69'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/8fb6e82b-be8f-411d-82e6-16493b2a06b6/finalize
response:
body:
string: '{"id":"0d052099-8eb5-4bf2-8baf-a95eb71969dc","trace_id":"8fb6e82b-be8f-411d-82e6-16493b2a06b6","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":1150,"crewai_version":"0.193.2","privacy_level":"standard","total_events":14,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-24T06:05:21.890Z","updated_at":"2025-09-24T06:05:23.259Z"}'
headers:
Content-Length:
- '483'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"28372c2716257cf7a9ae9508b5ad437b"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.03, cache_fetch_hit.active_support;dur=0.00,
cache_read_multi.active_support;dur=0.06, start_processing.action_controller;dur=0.00,
sql.active_record;dur=24.06, instantiation.active_record;dur=0.61, unpermitted_parameters.action_controller;dur=0.00,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=2.80,
process_action.action_controller;dur=626.41
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 421b37bd-c7d7-4618-ab08-79b6506320d8
x-runtime:
- '0.640806'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -548,4 +548,585 @@ interactions:
status:
code: 200
message: OK
- request:
body: '{"trace_id": "b941789c-72e1-421e-94f3-fe1b24b12f6c", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-23T20:49:29.893592+00:00"},
"ephemeral_trace_id": "b941789c-72e1-421e-94f3-fe1b24b12f6c"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '490'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches
response:
body:
string: '{"id":"bbe07705-81a4-420e-97f8-7330fb4175a9","ephemeral_trace_id":"b941789c-72e1-421e-94f3-fe1b24b12f6c","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-23T20:49:30.007Z","updated_at":"2025-09-23T20:49:30.007Z","access_code":"TRACE-b45d983b1c","user_identifier":null}'
headers:
Content-Length:
- '519'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"50aedc9569ece0d375a20633962fa07e"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.17, sql.active_record;dur=39.36, cache_generate.active_support;dur=29.08,
cache_write.active_support;dur=0.25, cache_read_multi.active_support;dur=0.32,
start_processing.action_controller;dur=0.00, start_transaction.active_record;dur=0.01,
transaction.active_record;dur=7.21, process_action.action_controller;dur=13.24
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 211af10a-48e1-4744-8dbb-92701294ce44
x-runtime:
- '0.110752'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "41ab9672-845a-4cd5-be99-4e276bd2eda4", "timestamp":
"2025-09-23T20:49:30.013109+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-23T20:49:29.892786+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "7494059f-8827-47d9-a668-57ac9fdd004e",
"timestamp": "2025-09-23T20:49:30.194307+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": "d27d799a-8a00-49ef-b044-d1812068c899"}},
{"event_id": "bc196993-87fe-4837-a9e4-e42a091628c9", "timestamp": "2025-09-23T20:49:30.195009+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": "02515fa4-6e9a-4500-b2bc-a74305a0c58f",
"timestamp": "2025-09-23T20:49:30.195393+00:00", "type": "llm_call_started",
"event_data": {"timestamp": "2025-09-23T20:49:30.195090+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "d27d799a-8a00-49ef-b044-d1812068c899", "task_name": "What is the
capital of France?", "agent_id": null, "agent_role": null, "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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x134dc6000>"], "available_functions": null}}, {"event_id": "5369c2a1-6bca-4539-9215-3535f62ab676",
"timestamp": "2025-09-23T20:49:30.225574+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T20:49:30.225414+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "d27d799a-8a00-49ef-b044-d1812068c899", "task_name": "What is the
capital of France?", "agent_id": null, "agent_role": null, "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": "<LLMCallType.LLM_CALL: ''llm_call''>", "model": "gpt-4"}},
{"event_id": "561c9b1c-f4fe-4535-b52a-82cf719346d6", "timestamp": "2025-09-23T20:49:30.225876+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": "3a36af33-001b-4ca5-81be-e5dc02ac80e5",
"timestamp": "2025-09-23T20:49:30.225968+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": "d27d799a-8a00-49ef-b044-d1812068c899",
"output_raw": "The capital of France is Paris.", "output_format": "OutputFormat.RAW",
"agent_role": "Information Agent"}}, {"event_id": "7b298050-65b0-4872-8f1c-2afa09de055d",
"timestamp": "2025-09-23T20:49:30.227117+00:00", "type": "crew_kickoff_completed",
"event_data": {"timestamp": "2025-09-23T20:49:30.227097+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": 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": 8, "batch_sequence": 1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '5919'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/b941789c-72e1-421e-94f3-fe1b24b12f6c/events
response:
body:
string: '{"events_created":8,"ephemeral_trace_batch_id":"bbe07705-81a4-420e-97f8-7330fb4175a9"}'
headers:
Content-Length:
- '86'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"71e17b496b71534c22212aa2bf533741"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.07, sql.active_record;dur=43.18, cache_generate.active_support;dur=1.89,
cache_write.active_support;dur=0.11, cache_read_multi.active_support;dur=0.88,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.05,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=73.81,
process_action.action_controller;dur=82.81
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- bdbcba06-d61c-458c-b65a-6cf59051e444
x-runtime:
- '0.127129'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 464, "final_event_count": 8}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '67'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/b941789c-72e1-421e-94f3-fe1b24b12f6c/finalize
response:
body:
string: '{"id":"bbe07705-81a4-420e-97f8-7330fb4175a9","ephemeral_trace_id":"b941789c-72e1-421e-94f3-fe1b24b12f6c","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":464,"crewai_version":"0.193.2","total_events":8,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-23T20:49:30.007Z","updated_at":"2025-09-23T20:49:30.395Z","access_code":"TRACE-b45d983b1c","user_identifier":null}'
headers:
Content-Length:
- '520'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"334d82609391aa60071c2810537c5798"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.05, sql.active_record;dur=9.51, cache_generate.active_support;dur=2.05,
cache_write.active_support;dur=3.86, cache_read_multi.active_support;dur=0.09,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.03,
unpermitted_parameters.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=5.76, process_action.action_controller;dur=10.64
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 312ce323-fbd7-419e-99e7-2cec034f92ad
x-runtime:
- '0.037061'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"trace_id": "0a42a65c-7f92-4079-b538-cd740c197827", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-24T05:36:06.224399+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '428'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"5d623f2a-96d4-46b7-a899-3f960607a6d4","trace_id":"0a42a65c-7f92-4079-b538-cd740c197827","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T05:36:06.665Z","updated_at":"2025-09-24T05:36:06.665Z"}'
headers:
Content-Length:
- '480'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"906255d1c2e178d025fc329fb1f7b7f8"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.12, sql.active_record;dur=24.62, cache_generate.active_support;dur=3.12,
cache_write.active_support;dur=0.15, cache_read_multi.active_support;dur=0.09,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.42,
feature_operation.flipper;dur=0.04, start_transaction.active_record;dur=0.01,
transaction.active_record;dur=10.22, process_action.action_controller;dur=387.54
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 3974072c-35fe-45ce-ae24-c3a06796500b
x-runtime:
- '0.447609'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "0c4f7dd5-4f54-483c-a3f4-767ff50e0f70", "timestamp":
"2025-09-24T05:36:06.676191+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-24T05:36:06.223359+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "b1738426-b07b-41f9-bf8a-6925f61955a7",
"timestamp": "2025-09-24T05:36:06.891196+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": "85aff1f8-ad67-4c17-a036-f3e13852c861"}},
{"event_id": "2c70e265-814a-416e-8f77-632840c12155", "timestamp": "2025-09-24T05:36:06.892332+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": "234be752-21a7-4037-b4c1-2aaf91880bdb",
"timestamp": "2025-09-24T05:36:06.892482+00:00", "type": "llm_call_started",
"event_data": {"timestamp": "2025-09-24T05:36:06.892418+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "85aff1f8-ad67-4c17-a036-f3e13852c861", "task_name": "What is the
capital of France?", "agent_id": "4241508b-937c-4968-ad90-720475c85e69", "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":
["<crewai.utilities.token_counter_callback.TokenCalcHandler object at 0x1171ce1b0>"],
"available_functions": null}}, {"event_id": "abb7f37b-21f4-488a-8f7a-4be47624b6db",
"timestamp": "2025-09-24T05:36:06.924713+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T05:36:06.924554+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "85aff1f8-ad67-4c17-a036-f3e13852c861", "task_name": "What is the
capital of France?", "agent_id": "4241508b-937c-4968-ad90-720475c85e69", "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": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4"}}, {"event_id": "f347f565-056e-4ddb-b2fc-e70c00eefbcb",
"timestamp": "2025-09-24T05:36:06.925086+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": "8d87cfa4-68b5-4a34-b950-dd74aa185dc3", "timestamp":
"2025-09-24T05:36:06.925192+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": "85aff1f8-ad67-4c17-a036-f3e13852c861",
"output_raw": "The capital of France is Paris.", "output_format": "OutputFormat.RAW",
"agent_role": "Information Agent"}}, {"event_id": "16418332-cdc6-4a4f-8644-825fe633a9b4",
"timestamp": "2025-09-24T05:36:06.926196+00:00", "type": "crew_kickoff_completed",
"event_data": {"timestamp": "2025-09-24T05:36:06.926164+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": 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": 8, "batch_sequence": 1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '6017'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/0a42a65c-7f92-4079-b538-cd740c197827/events
response:
body:
string: '{"events_created":8,"trace_batch_id":"5d623f2a-96d4-46b7-a899-3f960607a6d4"}'
headers:
Content-Length:
- '76'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"a10892297a37ecc5db6a6daee6c2e8cf"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.09, start_processing.action_controller;dur=0.00,
sql.active_record;dur=47.64, instantiation.active_record;dur=0.69, start_transaction.active_record;dur=0.01,
transaction.active_record;dur=39.74, process_action.action_controller;dur=332.00
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 0a7cf699-aaa3-440b-811a-259fdf379a1b
x-runtime:
- '0.382340'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 1088, "final_event_count": 8}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '68'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/0a42a65c-7f92-4079-b538-cd740c197827/finalize
response:
body:
string: '{"id":"5d623f2a-96d4-46b7-a899-3f960607a6d4","trace_id":"0a42a65c-7f92-4079-b538-cd740c197827","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":1088,"crewai_version":"0.193.2","privacy_level":"standard","total_events":8,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-24T05:36:06.665Z","updated_at":"2025-09-24T05:36:08.079Z"}'
headers:
Content-Length:
- '482'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"2461e14a7dfa4ddab703f765cc8b177c"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.03, cache_fetch_hit.active_support;dur=0.00,
cache_read_multi.active_support;dur=0.05, start_processing.action_controller;dur=0.00,
sql.active_record;dur=19.12, instantiation.active_record;dur=1.21, unpermitted_parameters.action_controller;dur=0.01,
start_transaction.active_record;dur=0.01, transaction.active_record;dur=5.10,
process_action.action_controller;dur=748.56
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 2824038d-4cc6-4b65-a5f9-ef900ce67127
x-runtime:
- '0.764751'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -0,0 +1,90 @@
interactions:
- request:
body: '{"status": "failed", "failure_reason": "Error sending events to backend"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate, zstd
Connection:
- keep-alive
Content-Length:
- '73'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/1.0.0a2
X-Crewai-Version:
- 1.0.0a2
method: PATCH
uri: https://app.crewai.com/crewai_plus/api/v1/tracing/batches/None
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Connection:
- keep-alive
Content-Length:
- '55'
Content-Type:
- application/json; charset=utf-8
Date:
- Thu, 02 Oct 2025 22:36:00 GMT
cache-control:
- no-cache
content-security-policy:
- 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self''
''unsafe-inline'' *.app.crewai.com app.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://js.hubspot.com http://js-na1.hs-scripts.com
https://bat.bing.com https://cdn.amplitude.com https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/
https://descriptusercontent.com https://edge.fullstory.com https://googleads.g.doubleclick.net
https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net
https://js.hscollectedforms.net https://js.usemessages.com https://snap.licdn.com
https://static.cloudflareinsights.com https://static.reo.dev https://www.google-analytics.com
https://share.descript.com/; style-src ''self'' ''unsafe-inline'' *.app.crewai.com
app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; img-src ''self'' data:
*.app.crewai.com app.crewai.com https://zeus.tools.crewai.com https://dashboard.tools.crewai.com
https://cdn.jsdelivr.net https://forms.hsforms.com https://track.hubspot.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://www.google.com
https://www.google.com.br; font-src ''self'' data: *.app.crewai.com app.crewai.com;
connect-src ''self'' *.app.crewai.com app.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 https://edge.fullstory.com https://rs.fullstory.com
https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509
https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect
https://worker-actionkit.tools.crewai.com https://api.reo.dev; frame-src ''self''
*.app.crewai.com app.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://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/
https://www.youtube.com https://share.descript.com'
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
strict-transport-security:
- max-age=63072000; includeSubDomains
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- b99c5ee7-90b3-402f-af29-e27e60b49716
x-runtime:
- '0.029955'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -483,4 +483,76 @@ interactions:
- req_3b6c80fd3066b9e0054d0d2280bc4c98
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "08371613-b242-4871-bffa-1d93f96f6ba9", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-23T20:51:28.361471+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Content-Length:
- '55'
cache-control:
- no-cache
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.05, sql.active_record;dur=3.10, cache_generate.active_support;dur=3.10,
cache_write.active_support;dur=0.10, cache_read_multi.active_support;dur=0.07,
start_processing.action_controller;dur=0.00, process_action.action_controller;dur=2.13
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- cb30bc35-90b0-4c27-8e0e-b1b31bb497a7
x-runtime:
- '0.049151'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -2196,4 +2196,76 @@ interactions:
- req_f14d99a5f97f81331f62313a630e0f2c
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "28b6676f-156a-4c60-9164-3d8d71fd3d58", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-23T20:51:02.481858+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Content-Length:
- '55'
cache-control:
- no-cache
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.17, sql.active_record;dur=5.49, cache_generate.active_support;dur=15.23,
cache_write.active_support;dur=0.22, cache_read_multi.active_support;dur=0.62,
start_processing.action_controller;dur=0.00, process_action.action_controller;dur=2.38
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- d71b9fa8-88c8-410d-a382-0acdd9434ab8
x-runtime:
- '0.092398'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -14,26 +14,24 @@ interactions:
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":
"What is the population of Tokyo? Return your strucutred output in JSON format
"What is the population of Tokyo? Return your structured output in JSON format
with the following fields: summary, confidence"}], "model": "gpt-4o-mini", "stop":
["\nObservation:"]}'
["\nObservation:"], "stream": false}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate, zstd
- gzip, deflate
connection:
- keep-alive
content-length:
- '1290'
- '1307'
content-type:
- application/json
cookie:
- _cfuvid=u769MG.poap6iEjFpbByMFUC0FygMEqYSurr5DfLbas-1743447969501-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.68.2
- OpenAI/Python 1.93.0
x-stainless-arch:
- arm64
x-stainless-async:
@@ -43,11 +41,7 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.68.2
x-stainless-raw-response:
- 'true'
x-stainless-read-timeout:
- '600.0'
- 1.93.0
x-stainless-retry-count:
- '0'
x-stainless-runtime:
@@ -57,22 +51,21 @@ interactions:
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
content: "{\n \"id\": \"chatcmpl-BKUM5MZbz4TG6qmUtTrgKo8gI48FO\",\n \"object\":
\"chat.completion\",\n \"created\": 1744222945,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n
\ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\":
\"assistant\",\n \"content\": \"```\\nThought: I need to find the current
population of Tokyo.\\nAction: search_web\\nAction Input: {\\\"query\\\":\\\"current
population of Tokyo 2023\\\"}\",\n \"refusal\": null,\n \"annotations\":
[]\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n
\ }\n ],\n \"usage\": {\n \"prompt_tokens\": 248,\n \"completion_tokens\":
33,\n \"total_tokens\": 281,\n \"prompt_tokens_details\": {\n \"cached_tokens\":
0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n
\ \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\":
0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\":
\"default\",\n \"system_fingerprint\": \"fp_b376dfbbd5\"\n}\n"
body:
string: !!binary |
H4sIAAAAAAAAAwAAAP//jFNNb9swDL37VxA6x4WT2vnwbdgu6YIdhp42F44i0bZWW9QkOWsW5L8P
dj7sbt2wiyDw8T2Rj9QxAGBKshSYqLgXjanD9w/xerPa2H3SbvaH6ct6/vPDXn7++PDl0y5mk45B
u28o/JV1J6gxNXpF+gwLi9xjpzpdJMv5PFosFj3QkMS6o5XGhzGFjdIqnEWzOIwW4XR5YVekBDqW
wtcAAODYn12dWuILSyGaXCMNOsdLZOktCYBZqrsI484p57n2bDKAgrRH3Ze+3W4z/VhRW1Y+hTVo
RAmeoFBagq8QRGstag+GTFvzrj2gAh7p+UBdnrG0VxKBC9Fa7hGULsg2feJdpt+J7pKCQ25Flf/A
3TUGa21an8IxY99btIeMpRn712OzaHafsVOm+5LH7VgsWsc7S3Vb1yOAa02+l+mNfLogp5t1NZXG
0s79RmWF0spVuUXuSHc2OU+G9egpAHjqR9S+cp0ZS43xuadn7J+bxclZjw2bMaD3qwvoyfN6xFrG
kzf0comeq9qNhswEFxXKgTpsBG+lohEQjLr+s5q3tM+dK13+j/wACIHGo8yNRanE646HNIvdx/lb
2s3lvmDm0O6VwNwrtN0kJBa8rc/rzNzBeWzyQukSrbHqvNOFyZN5xIs5JsmKBafgFwAAAP//AwA/
Jd4m4QMAAA==
headers:
CF-RAY:
- 92dc079f8e5a7ab0-SJC
- 983cedc3ed1dce58-SJC
Connection:
- keep-alive
Content-Encoding:
@@ -80,15 +73,17 @@ interactions:
Content-Type:
- application/json
Date:
- Wed, 09 Apr 2025 18:22:26 GMT
- Tue, 23 Sep 2025 20:52:58 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=1F.UUVSjZyp8QMRT0dTQXUJc5WlGpC3xAx4FY7KCQbs-1744222946-1.0.1.1-vcXIZcokSjfxyFeoTTUAWmBGmJpv0ss9iFqt5EJVZGE1PvSV2ov0erCS.KIo0xItBMuX_MtCgDSaYMPI3L9QDsLatWqfUFieHiFh0CrX4h8;
path=/; expires=Wed, 09-Apr-25 18:52:26 GMT; domain=.api.openai.com; HttpOnly;
- __cf_bm=qN.M._e3GBXz.pvFikVYUJWNrZtECXfy3qiEiGSDhkM-1758660778-1.0.1.1-S.Rb0cyuo6AWn0pda0wa_zWItqO5mW7yYZMhL_dl7n2W7Z9lfDMk_6Ss3WdBJULEVpU61gh7cigu2tcdxdd7_UeSfUcCjhe684Yw3Cgy3tE;
path=/; expires=Tue, 23-Sep-25 21:22:58 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=RbJuVW8hReYElyyghEbAFletdnJZ2mk5rn9D8EGuyNk-1744222946580-0.0.1.1-604800000;
- _cfuvid=0TVxd.Cye5d8Z7ZJrkx4SlmbSJpaR39lRpqKXy0KRTU-1758660778824-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security:
- max-age=31536000; includeSubDomains; preload
Transfer-Encoding:
- chunked
X-Content-Type-Options:
@@ -102,27 +97,38 @@ interactions:
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '1282'
- '1007'
openai-project:
- proj_xitITlrFeen7zjNSzML82h9x
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains; preload
x-envoy-upstream-service-time:
- '1170'
x-openai-proxy-wasm:
- v0.1
x-ratelimit-limit-project-tokens:
- '150000000'
x-ratelimit-limit-requests:
- '30000'
x-ratelimit-limit-tokens:
- '150000000'
x-ratelimit-remaining-project-tokens:
- '149999715'
x-ratelimit-remaining-requests:
- '29999'
x-ratelimit-remaining-tokens:
- '149999713'
- '149999712'
x-ratelimit-reset-project-tokens:
- 0s
x-ratelimit-reset-requests:
- 2ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_845ed875afd48dee3d88f33cbab88cc2
http_version: HTTP/1.1
status_code: 200
- req_f71c78a53b2f460c80d450ce47a0cc6c
status:
code: 200
message: OK
- request:
body: '{"messages": [{"role": "system", "content": "You are Research Assistant.
You are a helpful research assistant who can search for information about the
@@ -138,31 +144,31 @@ interactions:
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":
"What is the population of Tokyo? Return your strucutred output in JSON format
"What is the population of Tokyo? Return your structured output in JSON format
with the following fields: summary, confidence"}, {"role": "assistant", "content":
"```\nThought: I need to find the current population of Tokyo.\nAction: search_web\nAction
Input: {\"query\":\"current population of Tokyo 2023\"}\nObservation: Tokyo''s
population in 2023 was approximately 21 million people in the city proper, and
37 million in the greater metropolitan area."}], "model": "gpt-4o-mini", "stop":
["\nObservation:"]}'
"```\nThought: I need to find the current population of Tokyo to provide accurate
information.\nAction: search_web\nAction Input: {\"query\":\"current population
of Tokyo 2023\"}\n```\n\nObservation: Tokyo''s population in 2023 was approximately
21 million people in the city proper, and 37 million in the greater metropolitan
area."}], "model": "gpt-4o-mini", "stop": ["\nObservation:"], "stream": false}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate, zstd
- gzip, deflate
connection:
- keep-alive
content-length:
- '1619'
- '1675'
content-type:
- application/json
cookie:
- _cfuvid=RbJuVW8hReYElyyghEbAFletdnJZ2mk5rn9D8EGuyNk-1744222946580-0.0.1.1-604800000;
__cf_bm=1F.UUVSjZyp8QMRT0dTQXUJc5WlGpC3xAx4FY7KCQbs-1744222946-1.0.1.1-vcXIZcokSjfxyFeoTTUAWmBGmJpv0ss9iFqt5EJVZGE1PvSV2ov0erCS.KIo0xItBMuX_MtCgDSaYMPI3L9QDsLatWqfUFieHiFh0CrX4h8
- __cf_bm=qN.M._e3GBXz.pvFikVYUJWNrZtECXfy3qiEiGSDhkM-1758660778-1.0.1.1-S.Rb0cyuo6AWn0pda0wa_zWItqO5mW7yYZMhL_dl7n2W7Z9lfDMk_6Ss3WdBJULEVpU61gh7cigu2tcdxdd7_UeSfUcCjhe684Yw3Cgy3tE;
_cfuvid=0TVxd.Cye5d8Z7ZJrkx4SlmbSJpaR39lRpqKXy0KRTU-1758660778824-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.68.2
- OpenAI/Python 1.93.0
x-stainless-arch:
- arm64
x-stainless-async:
@@ -172,11 +178,7 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.68.2
x-stainless-raw-response:
- 'true'
x-stainless-read-timeout:
- '600.0'
- 1.93.0
x-stainless-retry-count:
- '0'
x-stainless-runtime:
@@ -186,22 +188,22 @@ interactions:
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
content: "{\n \"id\": \"chatcmpl-BKUM69pnk6VLn5rpDjGdg21mOxFke\",\n \"object\":
\"chat.completion\",\n \"created\": 1744222946,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n
\ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\":
\"assistant\",\n \"content\": \"```\\nThought: I now know the final answer\\nFinal
Answer: {\\\"summary\\\":\\\"The population of Tokyo is approximately 21 million
in the city proper and 37 million in the greater metropolitan area as of 2023.\\\",\\\"confidence\\\":\\\"high\\\"}\\n```\",\n
\ \"refusal\": null,\n \"annotations\": []\n },\n \"logprobs\":
null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\":
315,\n \"completion_tokens\": 51,\n \"total_tokens\": 366,\n \"prompt_tokens_details\":
{\n \"cached_tokens\": 0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\":
{\n \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\":
0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\":
\"default\",\n \"system_fingerprint\": \"fp_b376dfbbd5\"\n}\n"
body:
string: !!binary |
H4sIAAAAAAAAAwAAAP//jFNNb9swDL3nVxA6J4XznfnWFR3QYcOAodhlLhxVpm01MqlJ8tqgyH8f
LCdxug9gFwHS46Me+cjXEYDQhUhBqFoG1Vgzufm4uPuc3P6obr58U0+fbqSdy8d6cfv1bvd+I8Yd
gx+fUIUT60pxYw0GzdTDyqEM2GWdrpeb1SpZrzcRaLhA09EqGyYLnjSa9GSWzBaTZD2ZHpOrmrVC
L1L4PgIAeI1np5MKfBEpJOPTS4PeywpFeg4CEI5N9yKk99oHSUGMB1AxBaQofbvdZnRfc1vVIYU7
IH6GXXeEGqHUJA1I8s/oMvoQb9fxlsJrRgCZ8G3TSLfPRAqZuPbAJcyS2Xwc+ZZta2TXku79nnd7
Bu1BWuv4RTcyoNnDbAqNNqYLssjWIGiKbKXDHqxjiw4kFSAdt1TAfH2OPwZWsdMOGgyOLRsdJIF0
KK8yMe5lKqZSF0gKe6W1rupMZHTIaLvdXvbGYdl62flDrTEXgCTiEIuJrjwckcPZB8OVdfzof6OK
UpP2de5Qeqau5z6wFRE9jAAeot/tGwuFddzYkAfeYfxuPt30+cQwZgO6Og6DCBykuWCtT6w3+fIC
g9TGX0yMUFLVWAzUYbxkW2i+AEYXVf+p5m+5+8o1Vf+TfgCUQhuwyK3DQqu3FQ9hDrst/FfYuctR
sPDofmqFedDoOicKLGVr+t0Qfu8DNnmpqUJnne4XpLT5cpXIcoXL5TsxOox+AQAA//8DAEXwupMu
BAAA
headers:
CF-RAY:
- 92dc07a8ac9f7ab0-SJC
- 983cedcbdf08ce58-SJC
Connection:
- keep-alive
Content-Encoding:
@@ -209,9 +211,11 @@ interactions:
Content-Type:
- application/json
Date:
- Wed, 09 Apr 2025 18:22:27 GMT
- Tue, 23 Sep 2025 20:53:00 GMT
Server:
- cloudflare
Strict-Transport-Security:
- max-age=31536000; includeSubDomains; preload
Transfer-Encoding:
- chunked
X-Content-Type-Options:
@@ -225,25 +229,36 @@ interactions:
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '1024'
- '1731'
openai-project:
- proj_xitITlrFeen7zjNSzML82h9x
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains; preload
x-envoy-upstream-service-time:
- '1754'
x-openai-proxy-wasm:
- v0.1
x-ratelimit-limit-project-tokens:
- '150000000'
x-ratelimit-limit-requests:
- '30000'
x-ratelimit-limit-tokens:
- '150000000'
x-ratelimit-remaining-project-tokens:
- '149999632'
x-ratelimit-remaining-requests:
- '29999'
x-ratelimit-remaining-tokens:
- '149999642'
- '149999632'
x-ratelimit-reset-project-tokens:
- 0s
x-ratelimit-reset-requests:
- 2ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_d72860d8629025988b1170e939bc1f20
http_version: HTTP/1.1
status_code: 200
- req_b363b74b736d47bb85a0c6ba41a10b22
status:
code: 200
message: OK
version: 1

View File

@@ -128,4 +128,214 @@ interactions:
- req_824c5fb422e466b60dacb6e27a0cbbda
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"messages": [{"role": "system", "content": "You are Info Gatherer. You
gather and summarize information quickly.\nYour personal goal is: Provide brief
information\n\nYou ONLY have access to the following tools, and should NEVER
make up tools that are not listed here:\n\nTool Name: search_web\nTool Arguments:
{''query'': {''description'': None, ''type'': ''str''}}\nTool Description: Search
the web for information about a topic.\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 [search_web], 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```\nIMPORTANT: Your final
answer MUST contain all the information requested in the following format: {\n \"summary\":
str,\n \"confidence\": int\n}\n\nIMPORTANT: Ensure the final output does not
include any code block markers like ```json or ```python."}, {"role": "user",
"content": "What is the population of Tokyo? Return your structured output in
JSON format with the following fields: summary, confidence"}, {"role": "assistant",
"content": "Thought: I need to find the current population of Tokyo.\nAction:
search_web\nAction Input: {\"query\":\"population of Tokyo 2023\"}\nObservation:
Tokyo''s population in 2023 was approximately 21 million people in the city
proper, and 37 million in the greater metropolitan area."}], "model": "gpt-4o-mini",
"stop": ["\nObservation:"], "stream": false}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
connection:
- keep-alive
content-length:
- '1796'
content-type:
- application/json
cookie:
- _cfuvid=u769MG.poap6iEjFpbByMFUC0FygMEqYSurr5DfLbas-1743447969501-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.93.0
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.93.0
x-stainless-retry-count:
- '0'
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.9
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAAwAAAP//jFPLbtswELz7Kxa89GIHsuOnbkmBvg7tIbkUVSBsqJXFmuQSJNXECPzv
BWk3ctIU6IUAOTvD2eHyaQQgVCNKELLDKI3Tk/df5h9vvq3V96/XvvfTT7e7qb6+MYt2fXWPYpwY
fP+TZPzDupBsnKao2B5h6QkjJdXparFeLovlssiA4YZ0om1dnMx5YpRVk1kxm0+K1WS6PrE7VpKC
KOHHCADgKa/Jp23oUZSQtfKJoRBwS6J8LgIQnnU6ERiCChFtFOMBlGwj2Wz9tuN+28USPoPlB9il
JXYErbKoAW14IF/ZD3l3lXclPFUWoBKhNwb9vhIlVOKWd3t+F8Cx6zWmFEBZmBWzS1AB0DnPj8pg
JL2H2RSM0vpUk26TKu7BeXbkAW0D6Lm3DVyuXhcaip4daxXRAnrCi0qMj3Yk21Y1ZCUlR5uisofz
nj21fcCUu+21PgPQWo7ZcU777oQcnvPVvHWe78MrqmiVVaGrPWFgm7IMkZ3I6GEEcJffsX/xNMJ5
Ni7WkXeUr7ucr456YhifAV3MTmDkiPqMtdmM39CrG4qodDibBCFRdtQM1GFssG8UnwGjs67/dvOW
9rFzZbf/Iz8AUpKL1NTOU6Pky46HMk/pd/2r7DnlbFgE8r+UpDoq8uklGmqx18eZF2EfIpm6VXZL
3nl1HPzW1Ytlge2SFouNGB1GvwEAAP//AwBMppztBgQAAA==
headers:
CF-RAY:
- 983ceae938953023-SJC
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Tue, 23 Sep 2025 20:51:02 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=GCRvAgKG_bNwYFqI4.V.ETNDFENlZGsSPgqfmPRweBE-1758660662-1.0.1.1-BbV_KqvF6uEt_DEfefPzisFvVJNAN5NBAn7UyvcCjL4cC0Earh6WKRSQEBgXDhltOn0zo_0LaT1GsrScK1y2R6EE8NtKLTLI0DvmUDiiTdo;
path=/; expires=Tue, 23-Sep-25 21:21:02 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=satXYLU.6M.wV_6k7mFk5Z6V97uowThF_xldugIJSJQ-1758660662273-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security:
- max-age=31536000; includeSubDomains; preload
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
access-control-expose-headers:
- X-Request-ID
alt-svc:
- h3=":443"; ma=86400
cf-cache-status:
- DYNAMIC
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '1464'
openai-project:
- proj_xitITlrFeen7zjNSzML82h9x
openai-version:
- '2020-10-01'
x-envoy-upstream-service-time:
- '1521'
x-openai-proxy-wasm:
- v0.1
x-ratelimit-limit-project-tokens:
- '150000000'
x-ratelimit-limit-requests:
- '30000'
x-ratelimit-limit-tokens:
- '150000000'
x-ratelimit-remaining-project-tokens:
- '149999605'
x-ratelimit-remaining-requests:
- '29999'
x-ratelimit-remaining-tokens:
- '149999602'
x-ratelimit-reset-project-tokens:
- 0s
x-ratelimit-reset-requests:
- 2ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_b7cf0ed387424a5f913d455e7bcc6949
status:
code: 200
message: OK
- request:
body: '{"trace_id": "df56ad93-ab2e-4de8-b57c-e52cd231320c", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-23T21:03:51.621012+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Content-Length:
- '55'
cache-control:
- no-cache
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.05, sql.active_record;dur=1.55, cache_generate.active_support;dur=2.03,
cache_write.active_support;dur=0.18, cache_read_multi.active_support;dur=0.11,
start_processing.action_controller;dur=0.00, process_action.action_controller;dur=2.68
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 3fadc173-fe84-48e8-b34f-d6ce5be9b584
x-runtime:
- '0.046122'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -0,0 +1,128 @@
interactions:
- request:
body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour
personal goal is: test goal\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: Test task\n\nThis
is the expected criteria for your final answer: Test output\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:"}], "model": "gpt-4", "stop": ["\nObservation:"],
"stream": false}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
connection:
- keep-alive
content-length:
- '822'
content-type:
- application/json
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.93.0
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.93.0
x-stainless-retry-count:
- '0'
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.9
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAAwAAAP//jFRNbxoxEL3zK0Y+A4KEkJRbVKlVK/XQj0vSRMjYs3jCrm15xhAU5b9X
3gWWtDn0slrNmxnPe2/slwGAIqsWoIzTYppYjz5+ney+f1td/Ax3+e7HZJNn2/jrfvd8b8x8roal
Iqye0MixamxCE2sUCr6DTUItWLpOr69u5rPrm5t5CzTBYl3K1lFGs9FkPr08VLhABlkt4PcAAOCl
/ZbZvMVntYDJ8BhpkFmvUS1OSQAqhbpElGYmFu1FDXvQBC/o23E/0xY9iEMwOSX0AqJ5A9pbwOeI
RtCCSSSYSA/hC+gGYsKoE/k1NHtoAgsUugkdeqYttrUWRVONFhJyDJ4RYmCmVY3jB//gP5HXNdx6
3mFawC23A5BnSdkU1RgsJTQyBIcJgbqEg6rlp50fqpBaYN2R0LwZws6RcdAgSlckyAIhS8xyIjLu
iKDn3PIQpwXEEZ86E4NHEocJNKwSYQWcm0anPfhQYk7X1cihTkUgLYJNFFhlAQ1Vrut9r0CR461A
R03KGNlbTMUg21FMJGR0DV5LTp2WJe5o7Q6G6E6gUHUTt3Z1pIlh5/ZHk8KW7MGkVdHgaADoVvbx
+UIkrDLrsog+1/UZoL0PhxPLKj4ekNfT8tVhHVNY8V+lqiJP7JYJNQdfFo0lRNWirwOAx3bJ85u9
VTGFJspSwgbb46ZXl10/1d+nHv0wPYASRNd9/GI2G77Tb9kZwmfXRBltHNq+tL9TOlsKZ8DgjPW/
07zXu2NOfv0/7XvAGIyCdhkTWjJvGfdpCZ/aq/l+2knldmDFmLZkcCmEqThhsdK57h4ExXsWbJYV
+TWmmKh9FYqTg9fBHwAAAP//AwCAIU3DDAUAAA==
headers:
CF-RAY:
- 983bb30b4cdccf0e-SJC
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Tue, 23 Sep 2025 17:18:10 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=vU0d_ym_gy8cJYJ4XX_ocGxaKtgxAqlzCgFITBP67u8-1758647890-1.0.1.1-CSEeTttS916m3H8bhoYJ0oZjaOv_vswh1vVkwp3ewcgXXm0KxoYh62.Nm.9IU7jL2PXbNi5tSP8KmqUrV7iCMf970L92g7FGxXks7mQ_sBY;
path=/; expires=Tue, 23-Sep-25 17:48:10 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=fYKmDBfrNgq9OFzAoSFUczkrT0MPe8VZ1ZZQwbl14B8-1758647890132-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security:
- max-age=31536000; includeSubDomains; preload
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
access-control-expose-headers:
- X-Request-ID
alt-svc:
- h3=":443"; ma=86400
cf-cache-status:
- DYNAMIC
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '3246'
openai-project:
- proj_xitITlrFeen7zjNSzML82h9x
openai-version:
- '2020-10-01'
x-envoy-upstream-service-time:
- '3430'
x-openai-proxy-wasm:
- v0.1
x-ratelimit-limit-project-tokens:
- '1000000'
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '1000000'
x-ratelimit-remaining-project-tokens:
- '999831'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '999831'
x-ratelimit-reset-project-tokens:
- 10ms
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 10ms
x-request-id:
- req_cda3352b31e84eb0a0a4978392d89f8a
status:
code: 200
message: OK
version: 1

View File

@@ -92,4 +92,84 @@ interactions:
- req_c504d56aee4210a9911e1b90551f1e46
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "9d3dfee1-ebe8-4eb3-aa28-e77448706cb5", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-24T05:36:10.874552+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"bc65d267-2f55-4edd-9277-61486245c5f6","trace_id":"9d3dfee1-ebe8-4eb3-aa28-e77448706cb5","execution_type":"crew","crew_name":"Unknown
Crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"Unknown
Crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T05:36:11.292Z","updated_at":"2025-09-24T05:36:11.292Z"}'
headers:
Content-Length:
- '496'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"43353f343ab1e228123d1a9c9a4b6e7c"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.08, start_processing.action_controller;dur=0.00,
sql.active_record;dur=24.53, instantiation.active_record;dur=1.01, feature_operation.flipper;dur=0.07,
start_transaction.active_record;dur=0.02, transaction.active_record;dur=24.66,
process_action.action_controller;dur=399.97
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 256ac03e-f7ae-4e03-b5e0-31bd179a7afc
x-runtime:
- '0.422765'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
version: 1

View File

@@ -93,4 +93,76 @@ interactions:
- req_bd4c4ada379bf9bd5d37279b5ef7a6c7
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "49d39475-2724-462e-8e17-c7c2341f5a8c", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-23T20:22:02.617871+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Content-Length:
- '55'
cache-control:
- no-cache
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.21, sql.active_record;dur=7.65, cache_generate.active_support;dur=7.80,
cache_write.active_support;dur=0.23, cache_read_multi.active_support;dur=0.32,
start_processing.action_controller;dur=0.00, process_action.action_controller;dur=9.86
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- bbe82db0-8ebe-4b09-9a74-45602ee07b73
x-runtime:
- '0.077152'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -0,0 +1,156 @@
interactions:
- request:
body: '{"messages": [{"role": "user", "content": "This should fail"}], "model":
"non-existent-model", "stream": false}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
connection:
- keep-alive
content-length:
- '111'
content-type:
- application/json
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.93.0
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.93.0
x-stainless-retry-count:
- '0'
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.9
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAA0yOQQ6DMBAD77zCyrn0Abyj9xCRbYkUdmmyQUWIv1faHsrRY1v20QGAo1KkuAGH
SUML1Rpe5Aa4x0xYJFLGyMI9fVJVYu2NjYhCFSwKMyAFuzREMTaHjRCmiWqFCpLe3e0/ovtqC4m3
kFP0hd6Nqvrfn0twDSUsbgC3nC94kmh9e+JZ1D+lcXSWOLuz+wIAAP//AwDwJ9T24AAAAA==
headers:
CF-RAY:
- 983bb3062e52cfdd-SJC
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json; charset=utf-8
Date:
- Tue, 23 Sep 2025 17:18:05 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=l6zvKL1cBSJCxBKgoyWNqDYgKbN15TzoXPOG_Pqn2x0-1758647885-1.0.1.1-rXihI1tsZOnuE2R7fcfOGGKQvNUdbuWqS0hEjwdVNeEuLmF2XwKVItJWKSsJR5_xDi4KPbe_Wk.zJPjaBzSLowk8eLMRzhsYEdH1eu_B4_I;
path=/; expires=Tue, 23-Sep-25 17:48:05 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=ftgVtZirdknUkriQmKHRKPo90LBNQJlaHxs6Skum1rY-1758647885920-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security:
- max-age=31536000; includeSubDomains; preload
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
alt-svc:
- h3=":443"; ma=86400
cf-cache-status:
- DYNAMIC
vary:
- Origin
x-envoy-upstream-service-time:
- '77'
x-openai-proxy-wasm:
- v0.1
x-request-id:
- req_9441b7808a504cc8abfc6276fd5c7721
status:
code: 404
message: Not Found
- request:
body: '{"trace_id": "13adb67d-0c60-4432-88ab-ee3b84286f78", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-23T17:20:19.459979+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Content-Length:
- '55'
cache-control:
- no-cache
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.03, cache_fetch_hit.active_support;dur=0.00,
cache_read_multi.active_support;dur=0.05, start_processing.action_controller;dur=0.00,
process_action.action_controller;dur=1.58
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 6a4750c4-d698-4e70-8865-928a82e9ed81
x-runtime:
- '0.020057'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -105,4 +105,99 @@ interactions:
- req_898373758d2eae3cd84814050b2588e3
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "2385a92f-f0dd-4d3a-91ec-66c82f15befe", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "1.0.0a2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-10-02T22:35:18.611862+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate, zstd
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/1.0.0a2
X-Crewai-Organization-Id:
- 3433f0ee-8a94-4aa4-822b-2ac71aa38b18
X-Crewai-Version:
- 1.0.0a2
method: POST
uri: https://app.crewai.com/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"error":"bad_credentials","message":"Bad credentials"}'
headers:
Connection:
- keep-alive
Content-Length:
- '55'
Content-Type:
- application/json; charset=utf-8
Date:
- Thu, 02 Oct 2025 22:35:18 GMT
cache-control:
- no-cache
content-security-policy:
- 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self''
''unsafe-inline'' *.app.crewai.com app.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://js.hubspot.com http://js-na1.hs-scripts.com
https://bat.bing.com https://cdn.amplitude.com https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/
https://descriptusercontent.com https://edge.fullstory.com https://googleads.g.doubleclick.net
https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net
https://js.hscollectedforms.net https://js.usemessages.com https://snap.licdn.com
https://static.cloudflareinsights.com https://static.reo.dev https://www.google-analytics.com
https://share.descript.com/; style-src ''self'' ''unsafe-inline'' *.app.crewai.com
app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; img-src ''self'' data:
*.app.crewai.com app.crewai.com https://zeus.tools.crewai.com https://dashboard.tools.crewai.com
https://cdn.jsdelivr.net https://forms.hsforms.com https://track.hubspot.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://www.google.com
https://www.google.com.br; font-src ''self'' data: *.app.crewai.com app.crewai.com;
connect-src ''self'' *.app.crewai.com app.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 https://edge.fullstory.com https://rs.fullstory.com
https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com
https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509
https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect
https://worker-actionkit.tools.crewai.com https://api.reo.dev; frame-src ''self''
*.app.crewai.com app.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://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/
https://www.youtube.com https://share.descript.com'
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
strict-transport-security:
- max-age=63072000; includeSubDomains
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 46d87308-59c7-4dd2-aecb-b8d8d14712ba
x-runtime:
- '0.035265'
x-xss-protection:
- 1; mode=block
status:
code: 401
message: Unauthorized
version: 1

View File

@@ -0,0 +1,115 @@
interactions:
- request:
body: '{"messages": [{"role": "user", "content": "Hello, world!"}], "model": "gpt-4o-mini",
"stream": false}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
connection:
- keep-alive
content-length:
- '101'
content-type:
- application/json
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.93.0
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.93.0
x-stainless-retry-count:
- '0'
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.9
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAAwAAAP//jFJBbtswELzrFVuercIWTCfxpYde3F5aoEUQoAgEhlzJbCkuQa6SGoH/
XlByLLltgFx02NkZzQz3uQAQ1ogtCL1XrLvgyo+f5TfZV3d3j2yf9uv29stOVo6/SnP7ncQiM+jh
J2p+Yb3X1AWHbMmPsI6oGLPq6kpebzayquQAdGTQZVobuFxT2Vlvy2pZrcvlVbm6PrH3ZDUmsYUf
BQDA8/DNPr3B32ILy8XLpMOUVItie14CEJFcngiVkk2sPIvFBGryjH6wvkPn6B3s6Am08vAJRgIc
qAcmow4f5sSITZ9UNu9752aA8p5Y5fCD5fsTcjybdNSGSA/pL6porLdpX0dUiXw2lJiCGNBjAXA/
lNFf5BMhUhe4ZvqFw+9Wq1FOTE8wgTcnjImVm8bVqb9LsdogK+vSrEuhld6jmZhT8ao3lmZAMYv8
r5f/aY+xrW/fIj8BWmNgNHWIaKy+zDutRcz3+draueLBsEgYH63Gmi3G/AwGG9W78WpEOiTGrm6s
bzGGaMfTaUItN0vVbFDKG1Eciz8AAAD//wMAz1KttEgDAAA=
headers:
CF-RAY:
- 983d5a594b3aeb25-SJC
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Tue, 23 Sep 2025 22:07:05 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=HTao4iMtx1Y7cAGNyFrt5yvSz1GD2Pm6qYe93_CGzyM-1758665225-1.0.1.1-3yRJ61Y_9h2sd..bejDbyV7tM6SGeXrd9KqDKytxcdazGRCBK_R28.PQiQdGW8fuL..e6zqa55.nvSwBRX8Q_dt8e5O3nuuPdeH7c8ClsWY;
path=/; expires=Tue, 23-Sep-25 22:37:05 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=qMM2vmYkQMwPZcgLVycGtMt7L7zWfmHyTGlGgrbiDps-1758665225740-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security:
- max-age=31536000; includeSubDomains; preload
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
access-control-expose-headers:
- X-Request-ID
alt-svc:
- h3=":443"; ma=86400
cf-cache-status:
- DYNAMIC
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '484'
openai-project:
- proj_xitITlrFeen7zjNSzML82h9x
openai-version:
- '2020-10-01'
x-envoy-upstream-service-time:
- '512'
x-openai-proxy-wasm:
- v0.1
x-ratelimit-limit-project-tokens:
- '150000000'
x-ratelimit-limit-requests:
- '30000'
x-ratelimit-limit-tokens:
- '150000000'
x-ratelimit-remaining-project-tokens:
- '149999995'
x-ratelimit-remaining-requests:
- '29999'
x-ratelimit-remaining-tokens:
- '149999995'
x-ratelimit-reset-project-tokens:
- 0s
x-ratelimit-reset-requests:
- 2ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_b2beee084f8c4806b97c6880a7e596dd
status:
code: 200
message: OK
version: 1

View File

@@ -225,4 +225,84 @@ interactions:
- req_fe4d921fc29028a2584387b8a288e2eb
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "adc32f70-9b1a-4c2b-9c0e-ae0b1d2b90f5", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "Unknown Crew", "flow_name": null, "crewai_version": "0.193.2",
"privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate":
300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at":
"2025-09-24T05:24:16.519185+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '436'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"90e7d0b4-1bb8-4cbe-a0c2-099b20bd3c85","trace_id":"adc32f70-9b1a-4c2b-9c0e-ae0b1d2b90f5","execution_type":"crew","crew_name":"Unknown
Crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"Unknown
Crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T05:24:16.927Z","updated_at":"2025-09-24T05:24:16.927Z"}'
headers:
Content-Length:
- '496'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"59e1ce3c1c6a9505c3ed31b3274ae9ec"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.06, start_processing.action_controller;dur=0.00,
sql.active_record;dur=23.73, instantiation.active_record;dur=0.60, feature_operation.flipper;dur=0.03,
start_transaction.active_record;dur=0.01, transaction.active_record;dur=7.42,
process_action.action_controller;dur=392.22
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 9d8aed2c-43a4-4e1e-97bd-cfedd8e74afb
x-runtime:
- '0.413117'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
version: 1

View File

@@ -225,4 +225,814 @@ interactions:
status:
code: 200
message: OK
- request:
body: '{"trace_id": "b9acc5aa-058f-4157-b8db-2c9ac7b028f2", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-23T17:20:18.247028+00:00"},
"ephemeral_trace_id": "b9acc5aa-058f-4157-b8db-2c9ac7b028f2"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '490'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches
response:
body:
string: '{"id":"5ff58ae2-1fcb-43e4-8986-915dc0603695","ephemeral_trace_id":"b9acc5aa-058f-4157-b8db-2c9ac7b028f2","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-23T17:20:18.315Z","updated_at":"2025-09-23T17:20:18.315Z","access_code":"TRACE-a7eb6f203e","user_identifier":null}'
headers:
Content-Length:
- '519'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"690e121045d7f5bbc02402b048369368"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.26, sql.active_record;dur=12.82, cache_generate.active_support;dur=5.51,
cache_write.active_support;dur=0.18, cache_read_multi.active_support;dur=0.21,
start_processing.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=7.67, process_action.action_controller;dur=15.09
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- b1d3e7a3-21a5-4ee5-8eef-8f2a1f356112
x-runtime:
- '0.068140'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "e4f9eccb-9a07-4408-a9d8-0886d6d10fe6", "timestamp":
"2025-09-23T17:20:18.322193+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-23T17:20:18.246297+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": {"crewai_trigger_payload": "Important context
data"}}}, {"event_id": "014bf9a2-0dcb-47eb-b640-18e1e714af48", "timestamp":
"2025-09-23T17:20:18.323505+00:00", "type": "task_started", "event_data": {"task_description":
"Analyze the data", "expected_output": "Analysis report", "task_name": "Analyze
the data", "context": "", "agent_role": "test role", "task_id": "6eea51b8-3558-4a49-a0c7-9f458c6a6d1b"}},
{"event_id": "a8691fc4-d211-48b7-b3e0-965d42e96f0e", "timestamp": "2025-09-23T17:20:18.323912+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "test role",
"agent_goal": "test goal", "agent_backstory": "test backstory"}}, {"event_id":
"9aad7007-4d26-4843-8402-2cee0714ff4f", "timestamp": "2025-09-23T17:20:18.323980+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-23T17:20:18.323961+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "6eea51b8-3558-4a49-a0c7-9f458c6a6d1b",
"task_name": "Analyze the data", "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\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: Analyze the data\n\nTrigger Payload: Important context
data\n\nThis is the expected criteria for your final answer: Analysis report\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":
["<crewai.utilities.token_counter_callback.TokenCalcHandler object at 0x11f2f42f0>"],
"available_functions": null}}, {"event_id": "0fd5c125-f554-4bfd-9d83-f6da5e3dff1c",
"timestamp": "2025-09-23T17:20:18.810518+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T17:20:18.810401+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "6eea51b8-3558-4a49-a0c7-9f458c6a6d1b", "task_name": "Analyze the
data", "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\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: Analyze the data\n\nTrigger
Payload: Important context data\n\nThis is the expected criteria for your final
answer: Analysis report\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: \n**Analysis Report** \n\n**Introduction** \nThe
purpose of this report is to provide a comprehensive analysis using the context
data provided in the trigger payload. By examining the pertinent variables and
identifying trends, this report aims to deliver valuable insights that can inform
decision-making processes.\n\n**Data Overview** \nThe dataset consists of various
metrics collected over a specific period, encompassing aspects such as sales
figures, customer engagement, and operational efficiency. Key variables include:\n\n1.
**Sales Data:** Monthly sales figures segmented by product categories.\n2. **Customer
Engagement:** Metrics related to customer interactions, including website visits,
social media mentions, and feedback forms.\n3. **Operational Efficiency:** Analysis
of operational metrics including average response time, fulfillment rates, and
resource allocation.\n\n**Data Analysis** \n1. **Sales Performance** \n -
The sales data indicates a positive trend over the last four quarters, with
an overall increase of 15% in revenue. The highest-performing products are identified
as Product A and Product B, contributing to 60% of total sales.\n - Seasonal
variations were observed, with a significant sales spike during Q4, attributed
to holiday promotions.\n\n2. **Customer Engagement** \n - Customer engagement
metrics show a notable increase in website visits, up by 25% compared to the
previous period. The engagement rate on social media platforms has also risen
by 30%, indicating successful marketing campaigns.\n - Customer feedback forms
reveal a satisfaction rate of 85%, with common praises for product quality and
customer service.\n\n3. **Operational Efficiency** \n - An analysis of operational
efficiency shows an improvement in fulfillment rates, which have increased to
95%, reflecting the effectiveness of inventory management.\n - Average response
times for customer inquiries have decreased from 48 hours to 24 hours, highlighting
enhancements in customer support processes.\n\n**Key Findings** \n- The combination
of increased sales and customer engagement suggests that marketing strategies
are effective and resonate well with the target audience.\n- Operational improvements
are allowing for faster and more efficient service delivery, contributing to
higher customer satisfaction rates.\n- Seasonal sales spikes indicate an opportunity
to capitalize on promotional strategies during peak periods.\n\n**Conclusion** \nThis
analysis underscores the need for continued investment in marketing efforts
that drive customer engagement and the importance of maintaining high operational
standards to support customer satisfaction. Strategies that leverage data insights
will enable the business to capitalize on opportunities for growth and improvement
in the future.\n\n**Recommendations** \n- Enhance targeted marketing campaigns
during peak sales periods for optimized revenue capture.\n- Continue monitoring
customer feedback to identify areas for service improvement.\n- Invest in technology
for better inventory management to maintain high fulfillment rates.\n\nThis
comprehensive analysis report delivers actionable insights to guide future business
decisions, underscoring the positive impact of strategic initiatives on overall
performance.", "call_type": "<LLMCallType.LLM_CALL: ''llm_call''>", "model":
"gpt-4o-mini"}}, {"event_id": "45e8e96d-3e68-48b7-b42f-34814c4988b6", "timestamp":
"2025-09-23T17:20:18.810991+00:00", "type": "agent_execution_completed", "event_data":
{"agent_role": "test role", "agent_goal": "test goal", "agent_backstory": "test
backstory"}}, {"event_id": "d5d2717f-30f3-45a2-8330-9a8609a0c6be", "timestamp":
"2025-09-23T17:20:18.811312+00:00", "type": "task_completed", "event_data":
{"task_description": "Analyze the data", "task_name": "Analyze the data", "task_id":
"6eea51b8-3558-4a49-a0c7-9f458c6a6d1b", "output_raw": "**Analysis Report** \n\n**Introduction** \nThe
purpose of this report is to provide a comprehensive analysis using the context
data provided in the trigger payload. By examining the pertinent variables and
identifying trends, this report aims to deliver valuable insights that can inform
decision-making processes.\n\n**Data Overview** \nThe dataset consists of various
metrics collected over a specific period, encompassing aspects such as sales
figures, customer engagement, and operational efficiency. Key variables include:\n\n1.
**Sales Data:** Monthly sales figures segmented by product categories.\n2. **Customer
Engagement:** Metrics related to customer interactions, including website visits,
social media mentions, and feedback forms.\n3. **Operational Efficiency:** Analysis
of operational metrics including average response time, fulfillment rates, and
resource allocation.\n\n**Data Analysis** \n1. **Sales Performance** \n -
The sales data indicates a positive trend over the last four quarters, with
an overall increase of 15% in revenue. The highest-performing products are identified
as Product A and Product B, contributing to 60% of total sales.\n - Seasonal
variations were observed, with a significant sales spike during Q4, attributed
to holiday promotions.\n\n2. **Customer Engagement** \n - Customer engagement
metrics show a notable increase in website visits, up by 25% compared to the
previous period. The engagement rate on social media platforms has also risen
by 30%, indicating successful marketing campaigns.\n - Customer feedback forms
reveal a satisfaction rate of 85%, with common praises for product quality and
customer service.\n\n3. **Operational Efficiency** \n - An analysis of operational
efficiency shows an improvement in fulfillment rates, which have increased to
95%, reflecting the effectiveness of inventory management.\n - Average response
times for customer inquiries have decreased from 48 hours to 24 hours, highlighting
enhancements in customer support processes.\n\n**Key Findings** \n- The combination
of increased sales and customer engagement suggests that marketing strategies
are effective and resonate well with the target audience.\n- Operational improvements
are allowing for faster and more efficient service delivery, contributing to
higher customer satisfaction rates.\n- Seasonal sales spikes indicate an opportunity
to capitalize on promotional strategies during peak periods.\n\n**Conclusion** \nThis
analysis underscores the need for continued investment in marketing efforts
that drive customer engagement and the importance of maintaining high operational
standards to support customer satisfaction. Strategies that leverage data insights
will enable the business to capitalize on opportunities for growth and improvement
in the future.\n\n**Recommendations** \n- Enhance targeted marketing campaigns
during peak sales periods for optimized revenue capture.\n- Continue monitoring
customer feedback to identify areas for service improvement.\n- Invest in technology
for better inventory management to maintain high fulfillment rates.\n\nThis
comprehensive analysis report delivers actionable insights to guide future business
decisions, underscoring the positive impact of strategic initiatives on overall
performance.", "output_format": "OutputFormat.RAW", "agent_role": "test role"}},
{"event_id": "6673de7a-3a7e-449d-9d38-d9d6d602ffff", "timestamp": "2025-09-23T17:20:18.814253+00:00",
"type": "crew_kickoff_completed", "event_data": {"timestamp": "2025-09-23T17:20:18.814190+00:00",
"type": "crew_kickoff_completed", "source_fingerprint": null, "source_type":
null, "fingerprint_metadata": null, "task_id": null, "task_name": null, "agent_id":
null, "agent_role": null, "crew_name": "crew", "crew": null, "output": {"description":
"Analyze the data", "name": "Analyze the data", "expected_output": "Analysis
report", "summary": "Analyze the data...", "raw": "**Analysis Report** \n\n**Introduction** \nThe
purpose of this report is to provide a comprehensive analysis using the context
data provided in the trigger payload. By examining the pertinent variables and
identifying trends, this report aims to deliver valuable insights that can inform
decision-making processes.\n\n**Data Overview** \nThe dataset consists of various
metrics collected over a specific period, encompassing aspects such as sales
figures, customer engagement, and operational efficiency. Key variables include:\n\n1.
**Sales Data:** Monthly sales figures segmented by product categories.\n2. **Customer
Engagement:** Metrics related to customer interactions, including website visits,
social media mentions, and feedback forms.\n3. **Operational Efficiency:** Analysis
of operational metrics including average response time, fulfillment rates, and
resource allocation.\n\n**Data Analysis** \n1. **Sales Performance** \n -
The sales data indicates a positive trend over the last four quarters, with
an overall increase of 15% in revenue. The highest-performing products are identified
as Product A and Product B, contributing to 60% of total sales.\n - Seasonal
variations were observed, with a significant sales spike during Q4, attributed
to holiday promotions.\n\n2. **Customer Engagement** \n - Customer engagement
metrics show a notable increase in website visits, up by 25% compared to the
previous period. The engagement rate on social media platforms has also risen
by 30%, indicating successful marketing campaigns.\n - Customer feedback forms
reveal a satisfaction rate of 85%, with common praises for product quality and
customer service.\n\n3. **Operational Efficiency** \n - An analysis of operational
efficiency shows an improvement in fulfillment rates, which have increased to
95%, reflecting the effectiveness of inventory management.\n - Average response
times for customer inquiries have decreased from 48 hours to 24 hours, highlighting
enhancements in customer support processes.\n\n**Key Findings** \n- The combination
of increased sales and customer engagement suggests that marketing strategies
are effective and resonate well with the target audience.\n- Operational improvements
are allowing for faster and more efficient service delivery, contributing to
higher customer satisfaction rates.\n- Seasonal sales spikes indicate an opportunity
to capitalize on promotional strategies during peak periods.\n\n**Conclusion** \nThis
analysis underscores the need for continued investment in marketing efforts
that drive customer engagement and the importance of maintaining high operational
standards to support customer satisfaction. Strategies that leverage data insights
will enable the business to capitalize on opportunities for growth and improvement
in the future.\n\n**Recommendations** \n- Enhance targeted marketing campaigns
during peak sales periods for optimized revenue capture.\n- Continue monitoring
customer feedback to identify areas for service improvement.\n- Invest in technology
for better inventory management to maintain high fulfillment rates.\n\nThis
comprehensive analysis report delivers actionable insights to guide future business
decisions, underscoring the positive impact of strategic initiatives on overall
performance.", "pydantic": null, "json_dict": null, "agent": "test role", "output_format":
"raw"}, "total_tokens": 724}}], "batch_metadata": {"events_count": 8, "batch_sequence":
1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '15256'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/b9acc5aa-058f-4157-b8db-2c9ac7b028f2/events
response:
body:
string: '{"events_created":8,"ephemeral_trace_batch_id":"5ff58ae2-1fcb-43e4-8986-915dc0603695"}'
headers:
Content-Length:
- '86'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"16d4da10720fbe03a27e791318791378"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.06, sql.active_record;dur=31.94, cache_generate.active_support;dur=2.55,
cache_write.active_support;dur=0.11, cache_read_multi.active_support;dur=0.07,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.04,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=84.85,
process_action.action_controller;dur=90.17
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 97bbeeab-2e51-4b36-8901-7bd88b0fabb5
x-runtime:
- '0.131951'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 704, "final_event_count": 8}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '67'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/b9acc5aa-058f-4157-b8db-2c9ac7b028f2/finalize
response:
body:
string: '{"id":"5ff58ae2-1fcb-43e4-8986-915dc0603695","ephemeral_trace_id":"b9acc5aa-058f-4157-b8db-2c9ac7b028f2","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":704,"crewai_version":"0.193.2","total_events":8,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-23T17:20:18.315Z","updated_at":"2025-09-23T17:20:19.019Z","access_code":"TRACE-a7eb6f203e","user_identifier":null}'
headers:
Content-Length:
- '520'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"058ea160eb2f11e47488a7e161b9f97d"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.04, sql.active_record;dur=11.96, cache_generate.active_support;dur=5.73,
cache_write.active_support;dur=0.10, cache_read_multi.active_support;dur=1.64,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.04,
unpermitted_parameters.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=5.90, process_action.action_controller;dur=15.75
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- d1404c91-e4fd-4509-8976-2af3d665c153
x-runtime:
- '0.068795'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"trace_id": "815304f8-bdcc-46b7-aee5-614d551ba6c4", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-24T05:26:01.826753+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '428'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"cbec976c-06c5-49e8-afc0-dedf6931a4c9","trace_id":"815304f8-bdcc-46b7-aee5-614d551ba6c4","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T05:26:02.484Z","updated_at":"2025-09-24T05:26:02.484Z"}'
headers:
Content-Length:
- '480'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"8824ab827e5ef85a6bcdb8594106808a"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.06, start_processing.action_controller;dur=0.00,
sql.active_record;dur=26.58, instantiation.active_record;dur=0.36, feature_operation.flipper;dur=0.08,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=8.36,
process_action.action_controller;dur=640.35
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- be4a93c2-7c7e-46f3-8b8f-c12bd73b971e
x-runtime:
- '0.662452'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "8b0295b4-b0e9-4466-9266-f1a25216c67a", "timestamp":
"2025-09-24T05:26:02.493862+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-24T05:26:01.824484+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": {"crewai_trigger_payload": "Important context
data"}}}, {"event_id": "a094bc98-06de-4ee7-9933-fa479bf5dfec", "timestamp":
"2025-09-24T05:26:02.497101+00:00", "type": "task_started", "event_data": {"task_description":
"Analyze the data", "expected_output": "Analysis report", "task_name": "Analyze
the data", "context": "", "agent_role": "test role", "task_id": "4fd4f497-5102-4fa5-9d3d-05780bd8e6f3"}},
{"event_id": "fcba06fa-5ee3-483b-9faf-94704f63d73a", "timestamp": "2025-09-24T05:26:02.497774+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "test role",
"agent_goal": "test goal", "agent_backstory": "test backstory"}}, {"event_id":
"134b0dcb-09e3-4202-a13a-18ad8604efd3", "timestamp": "2025-09-24T05:26:02.497935+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-24T05:26:02.497893+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "4fd4f497-5102-4fa5-9d3d-05780bd8e6f3",
"task_name": "Analyze the data", "agent_id": "61dbb9bc-4ba1-4db8-86f6-8b6bb4902919",
"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\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: Analyze the data\n\nTrigger
Payload: Important context data\n\nThis is the expected criteria for your final
answer: Analysis report\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x13af89be0>"], "available_functions": null}}, {"event_id": "b826c94f-5ce1-4064-86a0-487bd0e0347d",
"timestamp": "2025-09-24T05:26:03.007973+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T05:26:03.007866+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "4fd4f497-5102-4fa5-9d3d-05780bd8e6f3", "task_name": "Analyze the
data", "agent_id": "61dbb9bc-4ba1-4db8-86f6-8b6bb4902919", "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\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: Analyze the data\n\nTrigger Payload: Important context
data\n\nThis is the expected criteria for your final answer: Analysis report\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: \n**Analysis Report** \n\n**Introduction** \nThe
purpose of this report is to provide a comprehensive analysis using the context
data provided in the trigger payload. By examining the pertinent variables and
identifying trends, this report aims to deliver valuable insights that can inform
decision-making processes.\n\n**Data Overview** \nThe dataset consists of various
metrics collected over a specific period, encompassing aspects such as sales
figures, customer engagement, and operational efficiency. Key variables include:\n\n1.
**Sales Data:** Monthly sales figures segmented by product categories.\n2. **Customer
Engagement:** Metrics related to customer interactions, including website visits,
social media mentions, and feedback forms.\n3. **Operational Efficiency:** Analysis
of operational metrics including average response time, fulfillment rates, and
resource allocation.\n\n**Data Analysis** \n1. **Sales Performance** \n -
The sales data indicates a positive trend over the last four quarters, with
an overall increase of 15% in revenue. The highest-performing products are identified
as Product A and Product B, contributing to 60% of total sales.\n - Seasonal
variations were observed, with a significant sales spike during Q4, attributed
to holiday promotions.\n\n2. **Customer Engagement** \n - Customer engagement
metrics show a notable increase in website visits, up by 25% compared to the
previous period. The engagement rate on social media platforms has also risen
by 30%, indicating successful marketing campaigns.\n - Customer feedback forms
reveal a satisfaction rate of 85%, with common praises for product quality and
customer service.\n\n3. **Operational Efficiency** \n - An analysis of operational
efficiency shows an improvement in fulfillment rates, which have increased to
95%, reflecting the effectiveness of inventory management.\n - Average response
times for customer inquiries have decreased from 48 hours to 24 hours, highlighting
enhancements in customer support processes.\n\n**Key Findings** \n- The combination
of increased sales and customer engagement suggests that marketing strategies
are effective and resonate well with the target audience.\n- Operational improvements
are allowing for faster and more efficient service delivery, contributing to
higher customer satisfaction rates.\n- Seasonal sales spikes indicate an opportunity
to capitalize on promotional strategies during peak periods.\n\n**Conclusion** \nThis
analysis underscores the need for continued investment in marketing efforts
that drive customer engagement and the importance of maintaining high operational
standards to support customer satisfaction. Strategies that leverage data insights
will enable the business to capitalize on opportunities for growth and improvement
in the future.\n\n**Recommendations** \n- Enhance targeted marketing campaigns
during peak sales periods for optimized revenue capture.\n- Continue monitoring
customer feedback to identify areas for service improvement.\n- Invest in technology
for better inventory management to maintain high fulfillment rates.\n\nThis
comprehensive analysis report delivers actionable insights to guide future business
decisions, underscoring the positive impact of strategic initiatives on overall
performance.", "call_type": "<LLMCallType.LLM_CALL: ''llm_call''>", "model":
"gpt-4o-mini"}}, {"event_id": "11f2fe1d-3add-4eef-8560-755bab6e4606", "timestamp":
"2025-09-24T05:26:03.008359+00:00", "type": "agent_execution_completed", "event_data":
{"agent_role": "test role", "agent_goal": "test goal", "agent_backstory": "test
backstory"}}, {"event_id": "dad71752-3345-4fb4-951d-430dce1a238b", "timestamp":
"2025-09-24T05:26:03.008461+00:00", "type": "task_completed", "event_data":
{"task_description": "Analyze the data", "task_name": "Analyze the data", "task_id":
"4fd4f497-5102-4fa5-9d3d-05780bd8e6f3", "output_raw": "**Analysis Report** \n\n**Introduction** \nThe
purpose of this report is to provide a comprehensive analysis using the context
data provided in the trigger payload. By examining the pertinent variables and
identifying trends, this report aims to deliver valuable insights that can inform
decision-making processes.\n\n**Data Overview** \nThe dataset consists of various
metrics collected over a specific period, encompassing aspects such as sales
figures, customer engagement, and operational efficiency. Key variables include:\n\n1.
**Sales Data:** Monthly sales figures segmented by product categories.\n2. **Customer
Engagement:** Metrics related to customer interactions, including website visits,
social media mentions, and feedback forms.\n3. **Operational Efficiency:** Analysis
of operational metrics including average response time, fulfillment rates, and
resource allocation.\n\n**Data Analysis** \n1. **Sales Performance** \n -
The sales data indicates a positive trend over the last four quarters, with
an overall increase of 15% in revenue. The highest-performing products are identified
as Product A and Product B, contributing to 60% of total sales.\n - Seasonal
variations were observed, with a significant sales spike during Q4, attributed
to holiday promotions.\n\n2. **Customer Engagement** \n - Customer engagement
metrics show a notable increase in website visits, up by 25% compared to the
previous period. The engagement rate on social media platforms has also risen
by 30%, indicating successful marketing campaigns.\n - Customer feedback forms
reveal a satisfaction rate of 85%, with common praises for product quality and
customer service.\n\n3. **Operational Efficiency** \n - An analysis of operational
efficiency shows an improvement in fulfillment rates, which have increased to
95%, reflecting the effectiveness of inventory management.\n - Average response
times for customer inquiries have decreased from 48 hours to 24 hours, highlighting
enhancements in customer support processes.\n\n**Key Findings** \n- The combination
of increased sales and customer engagement suggests that marketing strategies
are effective and resonate well with the target audience.\n- Operational improvements
are allowing for faster and more efficient service delivery, contributing to
higher customer satisfaction rates.\n- Seasonal sales spikes indicate an opportunity
to capitalize on promotional strategies during peak periods.\n\n**Conclusion** \nThis
analysis underscores the need for continued investment in marketing efforts
that drive customer engagement and the importance of maintaining high operational
standards to support customer satisfaction. Strategies that leverage data insights
will enable the business to capitalize on opportunities for growth and improvement
in the future.\n\n**Recommendations** \n- Enhance targeted marketing campaigns
during peak sales periods for optimized revenue capture.\n- Continue monitoring
customer feedback to identify areas for service improvement.\n- Invest in technology
for better inventory management to maintain high fulfillment rates.\n\nThis
comprehensive analysis report delivers actionable insights to guide future business
decisions, underscoring the positive impact of strategic initiatives on overall
performance.", "output_format": "OutputFormat.RAW", "agent_role": "test role"}},
{"event_id": "b94a969d-764e-4d8b-b77f-641d640d85f7", "timestamp": "2025-09-24T05:26:03.010800+00:00",
"type": "crew_kickoff_completed", "event_data": {"timestamp": "2025-09-24T05:26:03.010774+00:00",
"type": "crew_kickoff_completed", "source_fingerprint": null, "source_type":
null, "fingerprint_metadata": null, "task_id": null, "task_name": null, "agent_id":
null, "agent_role": null, "crew_name": "crew", "crew": null, "output": {"description":
"Analyze the data", "name": "Analyze the data", "expected_output": "Analysis
report", "summary": "Analyze the data...", "raw": "**Analysis Report** \n\n**Introduction** \nThe
purpose of this report is to provide a comprehensive analysis using the context
data provided in the trigger payload. By examining the pertinent variables and
identifying trends, this report aims to deliver valuable insights that can inform
decision-making processes.\n\n**Data Overview** \nThe dataset consists of various
metrics collected over a specific period, encompassing aspects such as sales
figures, customer engagement, and operational efficiency. Key variables include:\n\n1.
**Sales Data:** Monthly sales figures segmented by product categories.\n2. **Customer
Engagement:** Metrics related to customer interactions, including website visits,
social media mentions, and feedback forms.\n3. **Operational Efficiency:** Analysis
of operational metrics including average response time, fulfillment rates, and
resource allocation.\n\n**Data Analysis** \n1. **Sales Performance** \n -
The sales data indicates a positive trend over the last four quarters, with
an overall increase of 15% in revenue. The highest-performing products are identified
as Product A and Product B, contributing to 60% of total sales.\n - Seasonal
variations were observed, with a significant sales spike during Q4, attributed
to holiday promotions.\n\n2. **Customer Engagement** \n - Customer engagement
metrics show a notable increase in website visits, up by 25% compared to the
previous period. The engagement rate on social media platforms has also risen
by 30%, indicating successful marketing campaigns.\n - Customer feedback forms
reveal a satisfaction rate of 85%, with common praises for product quality and
customer service.\n\n3. **Operational Efficiency** \n - An analysis of operational
efficiency shows an improvement in fulfillment rates, which have increased to
95%, reflecting the effectiveness of inventory management.\n - Average response
times for customer inquiries have decreased from 48 hours to 24 hours, highlighting
enhancements in customer support processes.\n\n**Key Findings** \n- The combination
of increased sales and customer engagement suggests that marketing strategies
are effective and resonate well with the target audience.\n- Operational improvements
are allowing for faster and more efficient service delivery, contributing to
higher customer satisfaction rates.\n- Seasonal sales spikes indicate an opportunity
to capitalize on promotional strategies during peak periods.\n\n**Conclusion** \nThis
analysis underscores the need for continued investment in marketing efforts
that drive customer engagement and the importance of maintaining high operational
standards to support customer satisfaction. Strategies that leverage data insights
will enable the business to capitalize on opportunities for growth and improvement
in the future.\n\n**Recommendations** \n- Enhance targeted marketing campaigns
during peak sales periods for optimized revenue capture.\n- Continue monitoring
customer feedback to identify areas for service improvement.\n- Invest in technology
for better inventory management to maintain high fulfillment rates.\n\nThis
comprehensive analysis report delivers actionable insights to guide future business
decisions, underscoring the positive impact of strategic initiatives on overall
performance.", "pydantic": null, "json_dict": null, "agent": "test role", "output_format":
"raw"}, "total_tokens": 724}}], "batch_metadata": {"events_count": 8, "batch_sequence":
1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '15338'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/815304f8-bdcc-46b7-aee5-614d551ba6c4/events
response:
body:
string: '{"events_created":8,"trace_batch_id":"cbec976c-06c5-49e8-afc0-dedf6931a4c9"}'
headers:
Content-Length:
- '76'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"d0b92d20af65dd237a35b3493020ba87"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.06, start_processing.action_controller;dur=0.00,
sql.active_record;dur=50.22, instantiation.active_record;dur=0.89, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=37.57, process_action.action_controller;dur=468.44
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 93fa66ab-e02b-4b37-866a-1a3cf4b1252a
x-runtime:
- '0.502440'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 1700, "final_event_count": 8}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '68'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/815304f8-bdcc-46b7-aee5-614d551ba6c4/finalize
response:
body:
string: '{"id":"cbec976c-06c5-49e8-afc0-dedf6931a4c9","trace_id":"815304f8-bdcc-46b7-aee5-614d551ba6c4","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":1700,"crewai_version":"0.193.2","privacy_level":"standard","total_events":8,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-24T05:26:02.484Z","updated_at":"2025-09-24T05:26:03.901Z"}'
headers:
Content-Length:
- '482'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"0531526a5b46fa50bec006a164eed8f2"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.03, cache_fetch_hit.active_support;dur=0.00,
cache_read_multi.active_support;dur=0.05, start_processing.action_controller;dur=0.00,
sql.active_record;dur=14.05, instantiation.active_record;dur=0.37, unpermitted_parameters.action_controller;dur=0.01,
start_transaction.active_record;dur=0.01, transaction.active_record;dur=6.94,
process_action.action_controller;dur=358.21
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 99d38dc8-6b9d-4e27-8c3c-fbc81553dd51
x-runtime:
- '0.375396'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -153,4 +153,418 @@ interactions:
status:
code: 200
message: OK
- request:
body: '{"trace_id": "ebe3e255-33a6-4b40-8c73-acc782e2cb2e", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-23T20:22:48.851064+00:00"},
"ephemeral_trace_id": "ebe3e255-33a6-4b40-8c73-acc782e2cb2e"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '490'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches
response:
body:
string: '{"id":"dcf37266-a30f-4a61-9084-293f108becab","ephemeral_trace_id":"ebe3e255-33a6-4b40-8c73-acc782e2cb2e","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-23T20:22:48.921Z","updated_at":"2025-09-23T20:22:48.921Z","access_code":"TRACE-20af0f540e","user_identifier":null}'
headers:
Content-Length:
- '519'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"e3802608dd0afa467b9006ae28a09ac0"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.08, sql.active_record;dur=17.40, cache_generate.active_support;dur=5.00,
cache_write.active_support;dur=0.23, cache_read_multi.active_support;dur=0.23,
start_processing.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=10.40, process_action.action_controller;dur=15.72
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 86297c99-3a4e-4797-8ce9-79442128fefd
x-runtime:
- '0.072605'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "fcb0a361-b236-47a2-8ae5-613d404a433a", "timestamp":
"2025-09-23T20:22:48.928654+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-23T20:22:48.850336+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": {"other_input": "other data"}}}, {"event_id":
"0850c159-2cf7-40d7-af41-dbafc4ec361d", "timestamp": "2025-09-23T20:22:48.930041+00:00",
"type": "task_started", "event_data": {"task_description": "Analyze the data",
"expected_output": "Analysis report", "task_name": "Analyze the data", "context":
"", "agent_role": "test role", "task_id": "7ef853e5-b583-450e-85f4-14f773feab58"}},
{"event_id": "c06bbca6-f2d9-4f66-a696-f0c201bb3587", "timestamp": "2025-09-23T20:22:48.930693+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "test role",
"agent_goal": "test goal", "agent_backstory": "test backstory"}}, {"event_id":
"a2f3bd4a-f298-4aec-90c7-fce24533c211", "timestamp": "2025-09-23T20:22:48.930847+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-23T20:22:48.930805+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "7ef853e5-b583-450e-85f4-14f773feab58",
"task_name": "Analyze the data", "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\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: Analyze the data\n\nThis is the expected criteria
for your final answer: Analysis report\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x124395280>"], "available_functions": null}}, {"event_id": "37cccb0f-facb-4b5b-a28d-31820381e77c",
"timestamp": "2025-09-23T20:22:49.029070+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T20:22:49.028732+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "7ef853e5-b583-450e-85f4-14f773feab58", "task_name": "Analyze the
data", "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\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: Analyze the data\n\nThis
is the expected criteria for your final answer: Analysis report\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: \n\n**Analysis Report**\n\n**1. Introduction** \nThis
report presents a comprehensive analysis of the data collected over the last
quarter. The goal of this analysis is to derive actionable insights, identify
trends, and inform decision-making processes for future strategies.\n\n**2.
Data Overview** \nThe data set comprises multiple parameters including sales
figures, customer demographics, product categories, and geographical distribution.
Key variables analyzed include:\n\n- **Sales Figures**: Total sales revenue,
average transaction value, units sold.\n- **Customer Demographics**: Age, gender,
location, and purchasing behavior.\n- **Product Categories**: Performance across
different categories, including most and least popular products.\n- **Geographical
Distribution**: Sales performance across various regions.\n\n**3. Key Findings** \n-
**Sales Trends**: \n - Sales increased by 15% compared to the previous quarter,
with a notable spike during the holiday season.\n - The average transaction
value also rose by 10%, attributed to higher customer awareness and targeted
marketing campaigns.\n\n- **Customer Demographics**:\n - The primary customer
base consists of individuals aged 25-34, accounting for 40% of total purchases.\n -
Female customers outpaced male customers by 20% in overall spending.\n - Online
shopping surged, particularly among urban customers, indicating a shift towards
digital engagement.\n\n- **Product Category Performance**:\n - Electronics
emerged as the leading category with a 30% market share in total sales.\n -
Home and garden products saw a decline in sales by 5%, prompting a review of
marketing strategies within this segment.\n - Seasonal products during the
holidays significantly boosted sales figures by 25%.\n\n- **Geographical Insights**:\n -
Major urban centers, especially in the Northeast and West Coast, showed the
highest revenue generation.\n - Rural areas, while stable, revealed untapped
potential, demonstrating only a 5% increase in sales, indicating a need for
targeted outreach.\n\n**4. Recommendations** \n- **Marketing Strategy**: Enhance
digital marketing efforts targeting younger demographics with personalized content
and promotions. Utilize social media platforms for engagement, especially considering
the demographic insights gathered from the data.\n\n- **Product Focus**: Reassess
the home and garden product offerings to cater to the evolving preferences of
consumers. Consider bundling products or creating seasonal promotions to reignite
interest.\n\n- **Geographical Expansion**: Develop a strategic plan focusing
on rural area penetration. Initiate campaigns tailored to local preferences
and potential influencers to enhance brand presence.\n\n- **Continuous Data
Monitoring**: Implement a regular data review process to keep track of changing
customer behaviors and market trends. Leverage analytics tools to automate insights
generation for timely decision-making.\n\n**5. Conclusion** \nOverall, the
analysis identifies significant growth potential and areas requiring immediate
attention. By adopting the recommended strategies, the organization can enhance
overall performance, increase customer satisfaction, and ultimately drive more
significant revenue growth.\n\n**6. Appendix** \n- Data tables and charts illustrating
sales growth, customer demographics, and product category performance. \n-
Methodology used for data collection and analysis.\n\nThis report serves as
a foundational tool for understanding the current landscape and guiding future
actions to achieve the outlined business objectives.", "call_type": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "d25a6a5f-f75f-42c4-b3be-fe540479d514",
"timestamp": "2025-09-23T20:22:49.029404+00:00", "type": "agent_execution_completed",
"event_data": {"agent_role": "test role", "agent_goal": "test goal", "agent_backstory":
"test backstory"}}, {"event_id": "bd4ec3c9-b8e9-45da-bf46-d15de6e7d0a7", "timestamp":
"2025-09-23T20:22:49.029547+00:00", "type": "task_completed", "event_data":
{"task_description": "Analyze the data", "task_name": "Analyze the data", "task_id":
"7ef853e5-b583-450e-85f4-14f773feab58", "output_raw": "**Analysis Report**\n\n**1.
Introduction** \nThis report presents a comprehensive analysis of the data
collected over the last quarter. The goal of this analysis is to derive actionable
insights, identify trends, and inform decision-making processes for future strategies.\n\n**2.
Data Overview** \nThe data set comprises multiple parameters including sales
figures, customer demographics, product categories, and geographical distribution.
Key variables analyzed include:\n\n- **Sales Figures**: Total sales revenue,
average transaction value, units sold.\n- **Customer Demographics**: Age, gender,
location, and purchasing behavior.\n- **Product Categories**: Performance across
different categories, including most and least popular products.\n- **Geographical
Distribution**: Sales performance across various regions.\n\n**3. Key Findings** \n-
**Sales Trends**: \n - Sales increased by 15% compared to the previous quarter,
with a notable spike during the holiday season.\n - The average transaction
value also rose by 10%, attributed to higher customer awareness and targeted
marketing campaigns.\n\n- **Customer Demographics**:\n - The primary customer
base consists of individuals aged 25-34, accounting for 40% of total purchases.\n -
Female customers outpaced male customers by 20% in overall spending.\n - Online
shopping surged, particularly among urban customers, indicating a shift towards
digital engagement.\n\n- **Product Category Performance**:\n - Electronics
emerged as the leading category with a 30% market share in total sales.\n -
Home and garden products saw a decline in sales by 5%, prompting a review of
marketing strategies within this segment.\n - Seasonal products during the
holidays significantly boosted sales figures by 25%.\n\n- **Geographical Insights**:\n -
Major urban centers, especially in the Northeast and West Coast, showed the
highest revenue generation.\n - Rural areas, while stable, revealed untapped
potential, demonstrating only a 5% increase in sales, indicating a need for
targeted outreach.\n\n**4. Recommendations** \n- **Marketing Strategy**: Enhance
digital marketing efforts targeting younger demographics with personalized content
and promotions. Utilize social media platforms for engagement, especially considering
the demographic insights gathered from the data.\n\n- **Product Focus**: Reassess
the home and garden product offerings to cater to the evolving preferences of
consumers. Consider bundling products or creating seasonal promotions to reignite
interest.\n\n- **Geographical Expansion**: Develop a strategic plan focusing
on rural area penetration. Initiate campaigns tailored to local preferences
and potential influencers to enhance brand presence.\n\n- **Continuous Data
Monitoring**: Implement a regular data review process to keep track of changing
customer behaviors and market trends. Leverage analytics tools to automate insights
generation for timely decision-making.\n\n**5. Conclusion** \nOverall, the
analysis identifies significant growth potential and areas requiring immediate
attention. By adopting the recommended strategies, the organization can enhance
overall performance, increase customer satisfaction, and ultimately drive more
significant revenue growth.\n\n**6. Appendix** \n- Data tables and charts illustrating
sales growth, customer demographics, and product category performance. \n-
Methodology used for data collection and analysis.\n\nThis report serves as
a foundational tool for understanding the current landscape and guiding future
actions to achieve the outlined business objectives.", "output_format": "OutputFormat.RAW",
"agent_role": "test role"}}, {"event_id": "af918c94-ee6a-4699-9519-d01f6314cb87",
"timestamp": "2025-09-23T20:22:49.030535+00:00", "type": "crew_kickoff_completed",
"event_data": {"timestamp": "2025-09-23T20:22:49.030516+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "output": {"description": "Analyze the data", "name":
"Analyze the data", "expected_output": "Analysis report", "summary": "Analyze
the data...", "raw": "**Analysis Report**\n\n**1. Introduction** \nThis report
presents a comprehensive analysis of the data collected over the last quarter.
The goal of this analysis is to derive actionable insights, identify trends,
and inform decision-making processes for future strategies.\n\n**2. Data Overview** \nThe
data set comprises multiple parameters including sales figures, customer demographics,
product categories, and geographical distribution. Key variables analyzed include:\n\n-
**Sales Figures**: Total sales revenue, average transaction value, units sold.\n-
**Customer Demographics**: Age, gender, location, and purchasing behavior.\n-
**Product Categories**: Performance across different categories, including most
and least popular products.\n- **Geographical Distribution**: Sales performance
across various regions.\n\n**3. Key Findings** \n- **Sales Trends**: \n -
Sales increased by 15% compared to the previous quarter, with a notable spike
during the holiday season.\n - The average transaction value also rose by 10%,
attributed to higher customer awareness and targeted marketing campaigns.\n\n-
**Customer Demographics**:\n - The primary customer base consists of individuals
aged 25-34, accounting for 40% of total purchases.\n - Female customers outpaced
male customers by 20% in overall spending.\n - Online shopping surged, particularly
among urban customers, indicating a shift towards digital engagement.\n\n- **Product
Category Performance**:\n - Electronics emerged as the leading category with
a 30% market share in total sales.\n - Home and garden products saw a decline
in sales by 5%, prompting a review of marketing strategies within this segment.\n -
Seasonal products during the holidays significantly boosted sales figures by
25%.\n\n- **Geographical Insights**:\n - Major urban centers, especially in
the Northeast and West Coast, showed the highest revenue generation.\n - Rural
areas, while stable, revealed untapped potential, demonstrating only a 5% increase
in sales, indicating a need for targeted outreach.\n\n**4. Recommendations** \n-
**Marketing Strategy**: Enhance digital marketing efforts targeting younger
demographics with personalized content and promotions. Utilize social media
platforms for engagement, especially considering the demographic insights gathered
from the data.\n\n- **Product Focus**: Reassess the home and garden product
offerings to cater to the evolving preferences of consumers. Consider bundling
products or creating seasonal promotions to reignite interest.\n\n- **Geographical
Expansion**: Develop a strategic plan focusing on rural area penetration. Initiate
campaigns tailored to local preferences and potential influencers to enhance
brand presence.\n\n- **Continuous Data Monitoring**: Implement a regular data
review process to keep track of changing customer behaviors and market trends.
Leverage analytics tools to automate insights generation for timely decision-making.\n\n**5.
Conclusion** \nOverall, the analysis identifies significant growth potential
and areas requiring immediate attention. By adopting the recommended strategies,
the organization can enhance overall performance, increase customer satisfaction,
and ultimately drive more significant revenue growth.\n\n**6. Appendix** \n-
Data tables and charts illustrating sales growth, customer demographics, and
product category performance. \n- Methodology used for data collection and
analysis.\n\nThis report serves as a foundational tool for understanding the
current landscape and guiding future actions to achieve the outlined business
objectives.", "pydantic": null, "json_dict": null, "agent": "test role", "output_format":
"raw"}, "total_tokens": 809}}], "batch_metadata": {"events_count": 8, "batch_sequence":
1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '16042'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/ebe3e255-33a6-4b40-8c73-acc782e2cb2e/events
response:
body:
string: '{"events_created":8,"ephemeral_trace_batch_id":"dcf37266-a30f-4a61-9084-293f108becab"}'
headers:
Content-Length:
- '86'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"5365b7d51712464f7429104b4339a428"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.06, sql.active_record;dur=34.08, cache_generate.active_support;dur=2.20,
cache_write.active_support;dur=0.16, cache_read_multi.active_support;dur=0.10,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.06,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=48.40,
process_action.action_controller;dur=55.37
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- dd950cf1-62f1-4126-b8b0-9e4629b5f5b6
x-runtime:
- '0.100871'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 291, "final_event_count": 8}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '67'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/ebe3e255-33a6-4b40-8c73-acc782e2cb2e/finalize
response:
body:
string: '{"id":"dcf37266-a30f-4a61-9084-293f108becab","ephemeral_trace_id":"ebe3e255-33a6-4b40-8c73-acc782e2cb2e","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":291,"crewai_version":"0.193.2","total_events":8,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-23T20:22:48.921Z","updated_at":"2025-09-23T20:22:49.192Z","access_code":"TRACE-20af0f540e","user_identifier":null}'
headers:
Content-Length:
- '520'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"c260c7a5c5e94132d69ede0da4a3cc45"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.07, sql.active_record;dur=10.48, cache_generate.active_support;dur=2.79,
cache_write.active_support;dur=0.14, cache_read_multi.active_support;dur=0.10,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.04,
unpermitted_parameters.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=4.50, process_action.action_controller;dur=10.46
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- b38e7096-bfc4-46ea-ab8a-cecd09f0444b
x-runtime:
- '0.048311'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -151,4 +151,817 @@ interactions:
status:
code: 200
message: OK
- request:
body: '{"trace_id": "89e2d14c-e3b7-4125-aea9-160ba12a6f36", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-23T20:23:57.182391+00:00"},
"ephemeral_trace_id": "89e2d14c-e3b7-4125-aea9-160ba12a6f36"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '490'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches
response:
body:
string: '{"id":"f5ea9a9a-3902-4491-839c-9e796be3ff3e","ephemeral_trace_id":"89e2d14c-e3b7-4125-aea9-160ba12a6f36","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-23T20:23:57.217Z","updated_at":"2025-09-23T20:23:57.217Z","access_code":"TRACE-c5a66f60e8","user_identifier":null}'
headers:
Content-Length:
- '519'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"61cd1a639bb31da59cbebbe79f81abed"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.06, sql.active_record;dur=11.35, cache_generate.active_support;dur=2.43,
cache_write.active_support;dur=0.13, cache_read_multi.active_support;dur=0.09,
start_processing.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=8.52, process_action.action_controller;dur=11.65
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 3f81bd4f-3fd9-4204-9a50-0918b90b411c
x-runtime:
- '0.038738'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "6f34a48a-90f3-4c71-81a4-cfaa4d631fa2", "timestamp":
"2025-09-23T20:23:57.223737+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-23T20:23:57.181360+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": {"crewai_trigger_payload": "Important context
data"}}}, {"event_id": "07841f56-8576-41b4-897d-ee2f3a9eb172", "timestamp":
"2025-09-23T20:23:57.224817+00:00", "type": "task_started", "event_data": {"task_description":
"Analyze the data", "expected_output": "Analysis report", "task_name": "Analyze
the data", "context": "", "agent_role": "test role", "task_id": "1180fa78-49fe-4de5-bb1e-59692440b6c1"}},
{"event_id": "d904f6c3-d483-4c6c-819e-fc56adcb3015", "timestamp": "2025-09-23T20:23:57.225080+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "test role",
"agent_goal": "test goal", "agent_backstory": "test backstory"}}, {"event_id":
"43b90c0d-7a10-437d-87c6-357f191acd50", "timestamp": "2025-09-23T20:23:57.225141+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-23T20:23:57.225125+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "1180fa78-49fe-4de5-bb1e-59692440b6c1",
"task_name": "Analyze the data", "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\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: Analyze the data\n\nThis is the expected criteria
for your final answer: Analysis report\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x132ec9be0>"], "available_functions": null}}, {"event_id": "9663eedf-147a-4a86-bba2-2c92680ebe18",
"timestamp": "2025-09-23T20:23:57.226139+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T20:23:57.226121+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "1180fa78-49fe-4de5-bb1e-59692440b6c1", "task_name": "Analyze the
data", "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\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: Analyze the data\n\nThis
is the expected criteria for your final answer: Analysis report\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: \n\n**Analysis Report**\n\n**1. Introduction**: \nThis
report aims to analyze the provided data set in order to extract meaningful
insights that can inform strategic decisions.\n\n**2. Data Description**: \nThe
data consists of multiple variables, including but not limited to sales figures,
customer demographics, geographical information, and timestamps of transactions.
Each entry in the dataset represents a unique transaction, allowing for a comprehensive
analysis of purchasing behavior over a specified period.\n\n**3. Methodology**: \nThe
analysis is performed using statistical methods such as descriptive statistics,
correlation analysis, and regression modeling to ascertain relationships between
variables. Data visualization tools are also utilized to illustrate key trends
and patterns.\n\n**4. Findings**: \n\n- **Sales Trends**: \n The sales figures
show a significant upward trend over the analysis period, with peak sales occurring
during holiday seasons. Month-on-month growth rates averaged 15%, with the highest
sales recorded in December.\n\n- **Customer Demographics**: \n A breakdown
of customer demographics reveals that the majority of purchases were made by
individuals aged 25-34, accounting for 40% of total transactions. Additionally,
customers in urban areas contributed to 60% of total sales, indicating a strong
preference for product accessibility.\n\n- **Geographical Analysis**: \n Regionally,
the data suggests that the Northwest area outperformed other regions, with a
sales growth rate of nearly 25% year over year. This could be attributed to
targeted marketing campaigns launched in that area.\n\n- **Temporal Insights**: \n An
analysis of transaction timing shows that peak purchasing hours align with standard
business hours, specifically between 12 PM and 3 PM, suggesting optimal times
for promotions or customer engagement initiatives.\n\n**5. Correlation Analysis**: \nCorrelation
coefficients indicate strong positive relationships between promotional activities
and sales volume, with a coefficient of 0.85. This highlights the importance
of marketing efforts in driving sales.\n\n**6. Recommendations**: \n\n- **Targeted
Marketing Campaigns**: \n Based on demographic insights, tailored marketing
strategies focusing on the 25-34 age group in urban areas may yield substantial
returns.\n\n- **Optimize Stock Levels**: \n Given the identified sales peaks
during holiday seasons and increased purchasing hours, appropriate stock level
adjustments should be made to meet potential demand surges.\n\n- **Geographical
Expansion**: \n Considering the regional success in the Northwest, it may
be beneficial to investigate similar marketing strategies in underperforming
areas to stimulate growth.\n\n**7. Conclusion**: \nThe analysis provides actionable
insights that can facilitate informed decision-making and drive future business
performance. Continuous monitoring and adaptation of strategies based on data-driven
insights will be crucial in maintaining competitive advantages.\n\n**8. Appendices**: \n-
Appendix A: Detailed Sales Data Tables \n- Appendix B: Graphs and Charts Illustrating
Key Findings \n- Appendix C: Methodology Breakdown for Statistical Analysis \n\nThis
comprehensive analysis offers a robust foundation for strategic planning and
operational improvements within the organization.", "call_type": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "c066ef98-005d-4fd4-91bd-0210a14301b1",
"timestamp": "2025-09-23T20:23:57.226232+00:00", "type": "agent_execution_completed",
"event_data": {"agent_role": "test role", "agent_goal": "test goal", "agent_backstory":
"test backstory"}}, {"event_id": "262410d1-67cf-4468-9f07-c4ee5ab46613", "timestamp":
"2025-09-23T20:23:57.226267+00:00", "type": "task_completed", "event_data":
{"task_description": "Analyze the data", "task_name": "Analyze the data", "task_id":
"1180fa78-49fe-4de5-bb1e-59692440b6c1", "output_raw": "**Analysis Report**\n\n**1.
Introduction**: \nThis report aims to analyze the provided data set in order
to extract meaningful insights that can inform strategic decisions.\n\n**2.
Data Description**: \nThe data consists of multiple variables, including but
not limited to sales figures, customer demographics, geographical information,
and timestamps of transactions. Each entry in the dataset represents a unique
transaction, allowing for a comprehensive analysis of purchasing behavior over
a specified period.\n\n**3. Methodology**: \nThe analysis is performed using
statistical methods such as descriptive statistics, correlation analysis, and
regression modeling to ascertain relationships between variables. Data visualization
tools are also utilized to illustrate key trends and patterns.\n\n**4. Findings**: \n\n-
**Sales Trends**: \n The sales figures show a significant upward trend over
the analysis period, with peak sales occurring during holiday seasons. Month-on-month
growth rates averaged 15%, with the highest sales recorded in December.\n\n-
**Customer Demographics**: \n A breakdown of customer demographics reveals
that the majority of purchases were made by individuals aged 25-34, accounting
for 40% of total transactions. Additionally, customers in urban areas contributed
to 60% of total sales, indicating a strong preference for product accessibility.\n\n-
**Geographical Analysis**: \n Regionally, the data suggests that the Northwest
area outperformed other regions, with a sales growth rate of nearly 25% year
over year. This could be attributed to targeted marketing campaigns launched
in that area.\n\n- **Temporal Insights**: \n An analysis of transaction timing
shows that peak purchasing hours align with standard business hours, specifically
between 12 PM and 3 PM, suggesting optimal times for promotions or customer
engagement initiatives.\n\n**5. Correlation Analysis**: \nCorrelation coefficients
indicate strong positive relationships between promotional activities and sales
volume, with a coefficient of 0.85. This highlights the importance of marketing
efforts in driving sales.\n\n**6. Recommendations**: \n\n- **Targeted Marketing
Campaigns**: \n Based on demographic insights, tailored marketing strategies
focusing on the 25-34 age group in urban areas may yield substantial returns.\n\n-
**Optimize Stock Levels**: \n Given the identified sales peaks during holiday
seasons and increased purchasing hours, appropriate stock level adjustments
should be made to meet potential demand surges.\n\n- **Geographical Expansion**: \n Considering
the regional success in the Northwest, it may be beneficial to investigate similar
marketing strategies in underperforming areas to stimulate growth.\n\n**7. Conclusion**: \nThe
analysis provides actionable insights that can facilitate informed decision-making
and drive future business performance. Continuous monitoring and adaptation
of strategies based on data-driven insights will be crucial in maintaining competitive
advantages.\n\n**8. Appendices**: \n- Appendix A: Detailed Sales Data Tables \n-
Appendix B: Graphs and Charts Illustrating Key Findings \n- Appendix C: Methodology
Breakdown for Statistical Analysis \n\nThis comprehensive analysis offers a
robust foundation for strategic planning and operational improvements within
the organization.", "output_format": "OutputFormat.RAW", "agent_role": "test
role"}}, {"event_id": "7a14d505-c45d-4e31-9ed3-36474555119b", "timestamp": "2025-09-23T20:23:57.226972+00:00",
"type": "crew_kickoff_completed", "event_data": {"timestamp": "2025-09-23T20:23:57.226959+00:00",
"type": "crew_kickoff_completed", "source_fingerprint": null, "source_type":
null, "fingerprint_metadata": null, "task_id": null, "task_name": null, "agent_id":
null, "agent_role": null, "crew_name": "crew", "crew": null, "output": {"description":
"Analyze the data", "name": "Analyze the data", "expected_output": "Analysis
report", "summary": "Analyze the data...", "raw": "**Analysis Report**\n\n**1.
Introduction**: \nThis report aims to analyze the provided data set in order
to extract meaningful insights that can inform strategic decisions.\n\n**2.
Data Description**: \nThe data consists of multiple variables, including but
not limited to sales figures, customer demographics, geographical information,
and timestamps of transactions. Each entry in the dataset represents a unique
transaction, allowing for a comprehensive analysis of purchasing behavior over
a specified period.\n\n**3. Methodology**: \nThe analysis is performed using
statistical methods such as descriptive statistics, correlation analysis, and
regression modeling to ascertain relationships between variables. Data visualization
tools are also utilized to illustrate key trends and patterns.\n\n**4. Findings**: \n\n-
**Sales Trends**: \n The sales figures show a significant upward trend over
the analysis period, with peak sales occurring during holiday seasons. Month-on-month
growth rates averaged 15%, with the highest sales recorded in December.\n\n-
**Customer Demographics**: \n A breakdown of customer demographics reveals
that the majority of purchases were made by individuals aged 25-34, accounting
for 40% of total transactions. Additionally, customers in urban areas contributed
to 60% of total sales, indicating a strong preference for product accessibility.\n\n-
**Geographical Analysis**: \n Regionally, the data suggests that the Northwest
area outperformed other regions, with a sales growth rate of nearly 25% year
over year. This could be attributed to targeted marketing campaigns launched
in that area.\n\n- **Temporal Insights**: \n An analysis of transaction timing
shows that peak purchasing hours align with standard business hours, specifically
between 12 PM and 3 PM, suggesting optimal times for promotions or customer
engagement initiatives.\n\n**5. Correlation Analysis**: \nCorrelation coefficients
indicate strong positive relationships between promotional activities and sales
volume, with a coefficient of 0.85. This highlights the importance of marketing
efforts in driving sales.\n\n**6. Recommendations**: \n\n- **Targeted Marketing
Campaigns**: \n Based on demographic insights, tailored marketing strategies
focusing on the 25-34 age group in urban areas may yield substantial returns.\n\n-
**Optimize Stock Levels**: \n Given the identified sales peaks during holiday
seasons and increased purchasing hours, appropriate stock level adjustments
should be made to meet potential demand surges.\n\n- **Geographical Expansion**: \n Considering
the regional success in the Northwest, it may be beneficial to investigate similar
marketing strategies in underperforming areas to stimulate growth.\n\n**7. Conclusion**: \nThe
analysis provides actionable insights that can facilitate informed decision-making
and drive future business performance. Continuous monitoring and adaptation
of strategies based on data-driven insights will be crucial in maintaining competitive
advantages.\n\n**8. Appendices**: \n- Appendix A: Detailed Sales Data Tables \n-
Appendix B: Graphs and Charts Illustrating Key Findings \n- Appendix C: Methodology
Breakdown for Statistical Analysis \n\nThis comprehensive analysis offers a
robust foundation for strategic planning and operational improvements within
the organization.", "pydantic": null, "json_dict": null, "agent": "test role",
"output_format": "raw"}, "total_tokens": 768}}], "batch_metadata": {"events_count":
8, "batch_sequence": 1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '15351'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/89e2d14c-e3b7-4125-aea9-160ba12a6f36/events
response:
body:
string: '{"events_created":8,"ephemeral_trace_batch_id":"f5ea9a9a-3902-4491-839c-9e796be3ff3e"}'
headers:
Content-Length:
- '86'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"7740b1329add0ee885e4551eb3dcda72"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.05, sql.active_record;dur=24.56, cache_generate.active_support;dur=2.63,
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.03,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=27.25,
process_action.action_controller;dur=31.78
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 2f4b2b14-8e93-4ecb-a6b5-068a40e35974
x-runtime:
- '0.058413'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 111, "final_event_count": 8}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '67'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/89e2d14c-e3b7-4125-aea9-160ba12a6f36/finalize
response:
body:
string: '{"id":"f5ea9a9a-3902-4491-839c-9e796be3ff3e","ephemeral_trace_id":"89e2d14c-e3b7-4125-aea9-160ba12a6f36","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":111,"crewai_version":"0.193.2","total_events":8,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-23T20:23:57.217Z","updated_at":"2025-09-23T20:23:57.333Z","access_code":"TRACE-c5a66f60e8","user_identifier":null}'
headers:
Content-Length:
- '520'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"ef5255205a007e2b8031b1729af9313b"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.08, start_processing.action_controller;dur=0.00,
sql.active_record;dur=5.35, instantiation.active_record;dur=0.04, unpermitted_parameters.action_controller;dur=0.00,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=2.73,
process_action.action_controller;dur=8.23
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 0614ba05-9086-4d50-84d8-c837c8c004cc
x-runtime:
- '0.034967'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"trace_id": "ef5dd2f3-6a6f-4ab0-be66-7cd0f37daa98", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-24T05:25:53.743551+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '428'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"893d72a6-d78f-4500-bc67-a6bef1e9b94e","trace_id":"ef5dd2f3-6a6f-4ab0-be66-7cd0f37daa98","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T05:25:54.483Z","updated_at":"2025-09-24T05:25:54.483Z"}'
headers:
Content-Length:
- '480'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"761632249338ccc44b53ff0a5858e41d"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=1.00, sql.active_record;dur=36.81, cache_generate.active_support;dur=15.06,
cache_write.active_support;dur=0.17, cache_read_multi.active_support;dur=0.26,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.73,
feature_operation.flipper;dur=0.10, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=9.97, process_action.action_controller;dur=635.36
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 32a0161e-09f4-4afd-810d-1673a1b00d17
x-runtime:
- '0.739118'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "f3b8e97a-4707-4577-b6a5-54284d3995d5", "timestamp":
"2025-09-24T05:25:54.505169+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-24T05:25:53.742745+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": {"crewai_trigger_payload": "Important context
data"}}}, {"event_id": "699d51bc-287f-41b0-ac66-f8b2fe4b5568", "timestamp":
"2025-09-24T05:25:54.507325+00:00", "type": "task_started", "event_data": {"task_description":
"Analyze the data", "expected_output": "Analysis report", "task_name": "Analyze
the data", "context": "", "agent_role": "test role", "task_id": "75220369-69d7-4264-aff1-e31b3cacfad3"}},
{"event_id": "c9f2ceaa-bbd2-4eee-9f92-17538215fd90", "timestamp": "2025-09-24T05:25:54.508083+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "test role",
"agent_goal": "test goal", "agent_backstory": "test backstory"}}, {"event_id":
"242f809f-2e9d-443e-8106-7361a201ce53", "timestamp": "2025-09-24T05:25:54.508171+00:00",
"type": "llm_call_started", "event_data": {"timestamp": "2025-09-24T05:25:54.508148+00:00",
"type": "llm_call_started", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "75220369-69d7-4264-aff1-e31b3cacfad3",
"task_name": "Analyze the data", "agent_id": "9890217d-2d62-4b87-bfe2-4813b7b4c638",
"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\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: Analyze the data\n\nThis
is the expected criteria for your final answer: Analysis report\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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x13a6cafc0>"], "available_functions": null}}, {"event_id": "796bd750-d5fd-4a52-872d-a5bf527de079",
"timestamp": "2025-09-24T05:25:54.510892+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T05:25:54.510852+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "75220369-69d7-4264-aff1-e31b3cacfad3", "task_name": "Analyze the
data", "agent_id": "9890217d-2d62-4b87-bfe2-4813b7b4c638", "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\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: Analyze the data\n\nThis is the expected criteria
for your final answer: Analysis report\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:
\n\n**Analysis Report**\n\n**1. Introduction**: \nThis report aims to analyze
the provided data set in order to extract meaningful insights that can inform
strategic decisions.\n\n**2. Data Description**: \nThe data consists of multiple
variables, including but not limited to sales figures, customer demographics,
geographical information, and timestamps of transactions. Each entry in the
dataset represents a unique transaction, allowing for a comprehensive analysis
of purchasing behavior over a specified period.\n\n**3. Methodology**: \nThe
analysis is performed using statistical methods such as descriptive statistics,
correlation analysis, and regression modeling to ascertain relationships between
variables. Data visualization tools are also utilized to illustrate key trends
and patterns.\n\n**4. Findings**: \n\n- **Sales Trends**: \n The sales figures
show a significant upward trend over the analysis period, with peak sales occurring
during holiday seasons. Month-on-month growth rates averaged 15%, with the highest
sales recorded in December.\n\n- **Customer Demographics**: \n A breakdown
of customer demographics reveals that the majority of purchases were made by
individuals aged 25-34, accounting for 40% of total transactions. Additionally,
customers in urban areas contributed to 60% of total sales, indicating a strong
preference for product accessibility.\n\n- **Geographical Analysis**: \n Regionally,
the data suggests that the Northwest area outperformed other regions, with a
sales growth rate of nearly 25% year over year. This could be attributed to
targeted marketing campaigns launched in that area.\n\n- **Temporal Insights**: \n An
analysis of transaction timing shows that peak purchasing hours align with standard
business hours, specifically between 12 PM and 3 PM, suggesting optimal times
for promotions or customer engagement initiatives.\n\n**5. Correlation Analysis**: \nCorrelation
coefficients indicate strong positive relationships between promotional activities
and sales volume, with a coefficient of 0.85. This highlights the importance
of marketing efforts in driving sales.\n\n**6. Recommendations**: \n\n- **Targeted
Marketing Campaigns**: \n Based on demographic insights, tailored marketing
strategies focusing on the 25-34 age group in urban areas may yield substantial
returns.\n\n- **Optimize Stock Levels**: \n Given the identified sales peaks
during holiday seasons and increased purchasing hours, appropriate stock level
adjustments should be made to meet potential demand surges.\n\n- **Geographical
Expansion**: \n Considering the regional success in the Northwest, it may
be beneficial to investigate similar marketing strategies in underperforming
areas to stimulate growth.\n\n**7. Conclusion**: \nThe analysis provides actionable
insights that can facilitate informed decision-making and drive future business
performance. Continuous monitoring and adaptation of strategies based on data-driven
insights will be crucial in maintaining competitive advantages.\n\n**8. Appendices**: \n-
Appendix A: Detailed Sales Data Tables \n- Appendix B: Graphs and Charts Illustrating
Key Findings \n- Appendix C: Methodology Breakdown for Statistical Analysis \n\nThis
comprehensive analysis offers a robust foundation for strategic planning and
operational improvements within the organization.", "call_type": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "8bd1db47-7fad-4eff-94d5-d387074aad31",
"timestamp": "2025-09-24T05:25:54.511159+00:00", "type": "agent_execution_completed",
"event_data": {"agent_role": "test role", "agent_goal": "test goal", "agent_backstory":
"test backstory"}}, {"event_id": "b2e92ed0-d0ad-40dc-95de-3e69ac0af23b", "timestamp":
"2025-09-24T05:25:54.511278+00:00", "type": "task_completed", "event_data":
{"task_description": "Analyze the data", "task_name": "Analyze the data", "task_id":
"75220369-69d7-4264-aff1-e31b3cacfad3", "output_raw": "**Analysis Report**\n\n**1.
Introduction**: \nThis report aims to analyze the provided data set in order
to extract meaningful insights that can inform strategic decisions.\n\n**2.
Data Description**: \nThe data consists of multiple variables, including but
not limited to sales figures, customer demographics, geographical information,
and timestamps of transactions. Each entry in the dataset represents a unique
transaction, allowing for a comprehensive analysis of purchasing behavior over
a specified period.\n\n**3. Methodology**: \nThe analysis is performed using
statistical methods such as descriptive statistics, correlation analysis, and
regression modeling to ascertain relationships between variables. Data visualization
tools are also utilized to illustrate key trends and patterns.\n\n**4. Findings**: \n\n-
**Sales Trends**: \n The sales figures show a significant upward trend over
the analysis period, with peak sales occurring during holiday seasons. Month-on-month
growth rates averaged 15%, with the highest sales recorded in December.\n\n-
**Customer Demographics**: \n A breakdown of customer demographics reveals
that the majority of purchases were made by individuals aged 25-34, accounting
for 40% of total transactions. Additionally, customers in urban areas contributed
to 60% of total sales, indicating a strong preference for product accessibility.\n\n-
**Geographical Analysis**: \n Regionally, the data suggests that the Northwest
area outperformed other regions, with a sales growth rate of nearly 25% year
over year. This could be attributed to targeted marketing campaigns launched
in that area.\n\n- **Temporal Insights**: \n An analysis of transaction timing
shows that peak purchasing hours align with standard business hours, specifically
between 12 PM and 3 PM, suggesting optimal times for promotions or customer
engagement initiatives.\n\n**5. Correlation Analysis**: \nCorrelation coefficients
indicate strong positive relationships between promotional activities and sales
volume, with a coefficient of 0.85. This highlights the importance of marketing
efforts in driving sales.\n\n**6. Recommendations**: \n\n- **Targeted Marketing
Campaigns**: \n Based on demographic insights, tailored marketing strategies
focusing on the 25-34 age group in urban areas may yield substantial returns.\n\n-
**Optimize Stock Levels**: \n Given the identified sales peaks during holiday
seasons and increased purchasing hours, appropriate stock level adjustments
should be made to meet potential demand surges.\n\n- **Geographical Expansion**: \n Considering
the regional success in the Northwest, it may be beneficial to investigate similar
marketing strategies in underperforming areas to stimulate growth.\n\n**7. Conclusion**: \nThe
analysis provides actionable insights that can facilitate informed decision-making
and drive future business performance. Continuous monitoring and adaptation
of strategies based on data-driven insights will be crucial in maintaining competitive
advantages.\n\n**8. Appendices**: \n- Appendix A: Detailed Sales Data Tables \n-
Appendix B: Graphs and Charts Illustrating Key Findings \n- Appendix C: Methodology
Breakdown for Statistical Analysis \n\nThis comprehensive analysis offers a
robust foundation for strategic planning and operational improvements within
the organization.", "output_format": "OutputFormat.RAW", "agent_role": "test
role"}}, {"event_id": "77c6a60a-0961-4771-b5bd-cec7f17a7276", "timestamp": "2025-09-24T05:25:54.512821+00:00",
"type": "crew_kickoff_completed", "event_data": {"timestamp": "2025-09-24T05:25:54.512770+00:00",
"type": "crew_kickoff_completed", "source_fingerprint": null, "source_type":
null, "fingerprint_metadata": null, "task_id": null, "task_name": null, "agent_id":
null, "agent_role": null, "crew_name": "crew", "crew": null, "output": {"description":
"Analyze the data", "name": "Analyze the data", "expected_output": "Analysis
report", "summary": "Analyze the data...", "raw": "**Analysis Report**\n\n**1.
Introduction**: \nThis report aims to analyze the provided data set in order
to extract meaningful insights that can inform strategic decisions.\n\n**2.
Data Description**: \nThe data consists of multiple variables, including but
not limited to sales figures, customer demographics, geographical information,
and timestamps of transactions. Each entry in the dataset represents a unique
transaction, allowing for a comprehensive analysis of purchasing behavior over
a specified period.\n\n**3. Methodology**: \nThe analysis is performed using
statistical methods such as descriptive statistics, correlation analysis, and
regression modeling to ascertain relationships between variables. Data visualization
tools are also utilized to illustrate key trends and patterns.\n\n**4. Findings**: \n\n-
**Sales Trends**: \n The sales figures show a significant upward trend over
the analysis period, with peak sales occurring during holiday seasons. Month-on-month
growth rates averaged 15%, with the highest sales recorded in December.\n\n-
**Customer Demographics**: \n A breakdown of customer demographics reveals
that the majority of purchases were made by individuals aged 25-34, accounting
for 40% of total transactions. Additionally, customers in urban areas contributed
to 60% of total sales, indicating a strong preference for product accessibility.\n\n-
**Geographical Analysis**: \n Regionally, the data suggests that the Northwest
area outperformed other regions, with a sales growth rate of nearly 25% year
over year. This could be attributed to targeted marketing campaigns launched
in that area.\n\n- **Temporal Insights**: \n An analysis of transaction timing
shows that peak purchasing hours align with standard business hours, specifically
between 12 PM and 3 PM, suggesting optimal times for promotions or customer
engagement initiatives.\n\n**5. Correlation Analysis**: \nCorrelation coefficients
indicate strong positive relationships between promotional activities and sales
volume, with a coefficient of 0.85. This highlights the importance of marketing
efforts in driving sales.\n\n**6. Recommendations**: \n\n- **Targeted Marketing
Campaigns**: \n Based on demographic insights, tailored marketing strategies
focusing on the 25-34 age group in urban areas may yield substantial returns.\n\n-
**Optimize Stock Levels**: \n Given the identified sales peaks during holiday
seasons and increased purchasing hours, appropriate stock level adjustments
should be made to meet potential demand surges.\n\n- **Geographical Expansion**: \n Considering
the regional success in the Northwest, it may be beneficial to investigate similar
marketing strategies in underperforming areas to stimulate growth.\n\n**7. Conclusion**: \nThe
analysis provides actionable insights that can facilitate informed decision-making
and drive future business performance. Continuous monitoring and adaptation
of strategies based on data-driven insights will be crucial in maintaining competitive
advantages.\n\n**8. Appendices**: \n- Appendix A: Detailed Sales Data Tables \n-
Appendix B: Graphs and Charts Illustrating Key Findings \n- Appendix C: Methodology
Breakdown for Statistical Analysis \n\nThis comprehensive analysis offers a
robust foundation for strategic planning and operational improvements within
the organization.", "pydantic": null, "json_dict": null, "agent": "test role",
"output_format": "raw"}, "total_tokens": 768}}], "batch_metadata": {"events_count":
8, "batch_sequence": 1, "is_final_batch": false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '15433'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/ef5dd2f3-6a6f-4ab0-be66-7cd0f37daa98/events
response:
body:
string: '{"events_created":8,"trace_batch_id":"893d72a6-d78f-4500-bc67-a6bef1e9b94e"}'
headers:
Content-Length:
- '76'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"833a69c8838804cb7337b3a1a0bec975"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.06, sql.active_record;dur=44.91, cache_generate.active_support;dur=1.46,
cache_write.active_support;dur=0.11, cache_read_multi.active_support;dur=0.09,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.40,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=52.89,
process_action.action_controller;dur=733.53
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 24828d72-0054-43e8-9765-b784005ce7ea
x-runtime:
- '0.754607'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 1533, "final_event_count": 8}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '68'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/ef5dd2f3-6a6f-4ab0-be66-7cd0f37daa98/finalize
response:
body:
string: '{"id":"893d72a6-d78f-4500-bc67-a6bef1e9b94e","trace_id":"ef5dd2f3-6a6f-4ab0-be66-7cd0f37daa98","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":1533,"crewai_version":"0.193.2","privacy_level":"standard","total_events":8,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-24T05:25:54.483Z","updated_at":"2025-09-24T05:25:56.140Z"}'
headers:
Content-Length:
- '482'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"d4f546950ffc9cfc3d1a13fbe960ef80"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.05, sql.active_record;dur=24.81, cache_generate.active_support;dur=1.64,
cache_write.active_support;dur=0.10, cache_read_multi.active_support;dur=0.09,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.65,
unpermitted_parameters.action_controller;dur=0.02, start_transaction.active_record;dur=0.01,
transaction.active_record;dur=4.45, process_action.action_controller;dur=846.44
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 372d3173-311d-4667-951e-0852248da973
x-runtime:
- '0.868448'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -301,4 +301,423 @@ interactions:
- req_bbfe512aa3a05220da4bd4537796bc59
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "498b7dba-2799-4c47-a8d8-5cb7fda3955d", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-24T05:25:56.197221+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '428'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"9fd23842-a778-4e3d-bcff-20d5f83626fc","trace_id":"498b7dba-2799-4c47-a8d8-5cb7fda3955d","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T05:25:57.083Z","updated_at":"2025-09-24T05:25:57.083Z"}'
headers:
Content-Length:
- '480'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"8aa7e71e580993355909255400755370"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.08, sql.active_record;dur=26.33, cache_generate.active_support;dur=2.62,
cache_write.active_support;dur=0.10, cache_read_multi.active_support;dur=0.14,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.54,
feature_operation.flipper;dur=0.02, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=8.06, process_action.action_controller;dur=862.87
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 054ac736-e552-4c98-9e3e-86ed87607359
x-runtime:
- '0.891150'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "58dc496d-2b39-467a-9e26-a07ae720deb7", "timestamp":
"2025-09-24T05:25:57.091992+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-24T05:25:56.195619+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "da7c6316-ae58-4e54-be39-f3285ccc6e93",
"timestamp": "2025-09-24T05:25:57.093888+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": "c36512dc-eff7-4d46-9d00-ae71b6f90016"}}, {"event_id":
"446167f9-20e7-4a25-874d-5809fc2eb7da", "timestamp": "2025-09-24T05:25:57.094375+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": "9454f456-5c55-4bc9-a5ec-702fe2eecfb9", "timestamp":
"2025-09-24T05:25:57.094481+00:00", "type": "llm_call_started", "event_data":
{"timestamp": "2025-09-24T05:25:57.094453+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "c36512dc-eff7-4d46-9d00-ae71b6f90016", "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.", "agent_id": "63eb7ced-43bd-4750-88ff-2ee2fbe01b9f",
"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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x13ab2f170>"], "available_functions": null}}, {"event_id": "b8e3692f-9055-4718-911f-e20c1a7d317b",
"timestamp": "2025-09-24T05:25:57.096240+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T05:25:57.096207+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "c36512dc-eff7-4d46-9d00-ae71b6f90016", "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.", "agent_id": "63eb7ced-43bd-4750-88ff-2ee2fbe01b9f",
"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": "<LLMCallType.LLM_CALL: ''llm_call''>",
"model": "gpt-4o-mini"}}, {"event_id": "16076ac0-0c6b-4d17-8dec-aba0b8811fdd",
"timestamp": "2025-09-24T05:25:57.096550+00:00", "type": "tool_usage_started",
"event_data": {"timestamp": "2025-09-24T05:25:57.096517+00:00", "type": "tool_usage_started",
"source_fingerprint": "87ab7778-1c6e-4a46-a286-ee26f0f1a8e2", "source_type":
"agent", "fingerprint_metadata": null, "task_id": "c36512dc-eff7-4d46-9d00-ae71b6f90016",
"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.", "agent_id": null,
"agent_role": "Data Scientist", "agent_key": "22acd611e44ef5fac05b533d75e8893b",
"tool_name": "Get Greetings", "tool_args": "{}", "tool_class": "Get Greetings",
"run_attempts": null, "delegations": null, "agent": {"id": "63eb7ced-43bd-4750-88ff-2ee2fbe01b9f",
"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": "<class ''abc.MyCustomToolSchema''>",
"description_updated": "False", "cache_function": "<function BaseTool.<lambda>
at 0x107ff9440>", "result_as_answer": "True", "max_usage_count": "None", "current_usage_count":
"0"}], "max_iter": 25, "agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab2e030>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab2e5d0>", "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(''63eb7ced-43bd-4750-88ff-2ee2fbe01b9f''),
''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'':
<class ''abc.MyCustomToolSchema''>, ''description_updated'': False, ''cache_function'':
<function BaseTool.<lambda> at 0x107ff9440>, ''result_as_answer'': True, ''max_usage_count'':
None, ''current_usage_count'': 0}], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab2e030>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab2e5d0>, ''crew'': Crew(id=f74956dd-60d0-402a-a703-2cc3d767397f,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
object at 0x13ab2e990>, ''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'': <class ''abc.MyCustomToolSchema''>,
''description_updated'': False, ''cache_function'': <function BaseTool.<lambda>
at 0x107ff9440>, ''result_as_answer'': True, ''max_usage_count'': None, ''current_usage_count'':
0}], ''security_config'': {''fingerprint'': {''metadata'': {}}}, ''id'': UUID(''c36512dc-eff7-4d46-9d00-ae71b6f90016''),
''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, 9, 23, 22, 25,
57, 93823), ''end_time'': None, ''allow_crewai_trigger_context'': None}"], "agents":
["{''id'': UUID(''63eb7ced-43bd-4750-88ff-2ee2fbe01b9f''), ''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'': <class ''abc.MyCustomToolSchema''>,
''description_updated'': False, ''cache_function'': <function BaseTool.<lambda>
at 0x107ff9440>, ''result_as_answer'': True, ''max_usage_count'': None, ''current_usage_count'':
0}], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x13ab2e030>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x13ab2e5d0>, ''crew'': Crew(id=f74956dd-60d0-402a-a703-2cc3d767397f,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
object at 0x13ab2e990>, ''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":
"f74956dd-60d0-402a-a703-2cc3d767397f", "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": "<crewai.agents.tools_handler.ToolsHandler
object at 0x13ab2e990>", "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}, "from_task": null, "from_agent": null}},
{"event_id": "43ef8fe5-80bc-4631-a25e-9b8085985f50", "timestamp": "2025-09-24T05:25:57.097125+00:00",
"type": "tool_usage_finished", "event_data": {"timestamp": "2025-09-24T05:25:57.097096+00:00",
"type": "tool_usage_finished", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "c36512dc-eff7-4d46-9d00-ae71b6f90016",
"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.", "agent_id": null,
"agent_role": "Data Scientist", "agent_key": "22acd611e44ef5fac05b533d75e8893b",
"tool_name": "Get Greetings", "tool_args": {}, "tool_class": "CrewStructuredTool",
"run_attempts": 1, "delegations": 0, "agent": null, "from_task": null, "from_agent":
null, "started_at": "2025-09-23T22:25:57.096982", "finished_at": "2025-09-23T22:25:57.097074",
"from_cache": false, "output": "Howdy!"}}, {"event_id": "b83077e3-0f28-40af-8130-2b2e21b0532d",
"timestamp": "2025-09-24T05:25:57.097261+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":
"4fbce67c-8c06-4c72-acd4-1f26eecfe48c", "timestamp": "2025-09-24T05:25:57.097326+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": "c36512dc-eff7-4d46-9d00-ae71b6f90016",
"output_raw": "Howdy!", "output_format": "OutputFormat.RAW", "agent_role": "Data
Scientist"}}, {"event_id": "e6b652b2-bcf0-4399-9bee-0a815a6f6065", "timestamp":
"2025-09-24T05:25:57.098533+00:00", "type": "crew_kickoff_completed", "event_data":
{"timestamp": "2025-09-24T05:25:57.098513+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": 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
Connection:
- keep-alive
Content-Length:
- '16270'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/498b7dba-2799-4c47-a8d8-5cb7fda3955d/events
response:
body:
string: '{"events_created":10,"trace_batch_id":"9fd23842-a778-4e3d-bcff-20d5f83626fc"}'
headers:
Content-Length:
- '77'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"c7bd74d9719eaee1f0ba69d5fe29ccc7"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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=43.90, instantiation.active_record;dur=2.03, start_transaction.active_record;dur=0.01,
transaction.active_record;dur=46.09, process_action.action_controller;dur=526.93
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- b421c477-c8c6-4757-aaaa-449e43633ccb
x-runtime:
- '0.548449'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 1459, "final_event_count": 10}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '69'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/498b7dba-2799-4c47-a8d8-5cb7fda3955d/finalize
response:
body:
string: '{"id":"9fd23842-a778-4e3d-bcff-20d5f83626fc","trace_id":"498b7dba-2799-4c47-a8d8-5cb7fda3955d","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":1459,"crewai_version":"0.193.2","privacy_level":"standard","total_events":10,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-24T05:25:57.083Z","updated_at":"2025-09-24T05:25:58.024Z"}'
headers:
Content-Length:
- '483'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"9eb2a9f858821856065c69e0c609dc6f"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.03, cache_fetch_hit.active_support;dur=0.00,
cache_read_multi.active_support;dur=0.06, start_processing.action_controller;dur=0.00,
sql.active_record;dur=14.56, instantiation.active_record;dur=0.58, unpermitted_parameters.action_controller;dur=0.00,
start_transaction.active_record;dur=0.01, transaction.active_record;dur=3.44,
process_action.action_controller;dur=349.23
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 4d4b6908-1da5-440e-864a-2653c56f35b6
x-runtime:
- '0.364349'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -219,4 +219,801 @@ interactions:
- req_626d7e6b718a76d6146b3c15085d9b17
http_version: HTTP/1.1
status_code: 200
- request:
body: '{"trace_id": "a1195fbd-aa15-40a9-9eec-3f3b9d530e1a", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-23T21:57:20.666482+00:00"},
"ephemeral_trace_id": "a1195fbd-aa15-40a9-9eec-3f3b9d530e1a"}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '490'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches
response:
body:
string: '{"id":"7460172c-8094-43d7-9586-73c55702968a","ephemeral_trace_id":"a1195fbd-aa15-40a9-9eec-3f3b9d530e1a","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-23T21:57:20.744Z","updated_at":"2025-09-23T21:57:20.744Z","access_code":"TRACE-3c07dc78ee","user_identifier":null}'
headers:
Content-Length:
- '519'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"1812725b949a31c1a297faa3f87d54ef"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.05, sql.active_record;dur=24.66, cache_generate.active_support;dur=2.73,
cache_write.active_support;dur=0.16, cache_read_multi.active_support;dur=0.11,
start_processing.action_controller;dur=0.00, start_transaction.active_record;dur=0.00,
transaction.active_record;dur=12.10, process_action.action_controller;dur=20.61
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- e45215f5-f8f7-47ca-9db5-c6e18af4c2ee
x-runtime:
- '0.078020'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "6419669e-22ef-4ece-8e91-d5bd479a7145", "timestamp":
"2025-09-23T21:57:20.754906+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-23T21:57:20.665543+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "508790a8-aefd-456c-93db-a3677fa4b3a0",
"timestamp": "2025-09-23T21:57:20.756357+00:00", "type": "task_started", "event_data":
{"task_description": "Say an appropriate greeting.", "expected_output": "The
greeting.", "task_name": "Say an appropriate greeting.", "context": "", "agent_role":
"Friendly Neighbor", "task_id": "addbb6d6-183b-4928-90f7-8b3ae4de3b10"}}, {"event_id":
"70ef9201-d089-4feb-8ae2-e876f7db5a87", "timestamp": "2025-09-23T21:57:20.756744+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "Friendly Neighbor",
"agent_goal": "Make everyone feel welcome", "agent_backstory": "You are the
friendly neighbor"}}, {"event_id": "06eafd12-161b-4815-9d93-cfc7634ee113", "timestamp":
"2025-09-23T21:57:20.756889+00:00", "type": "llm_call_started", "event_data":
{"timestamp": "2025-09-23T21:57:20.756853+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "addbb6d6-183b-4928-90f7-8b3ae4de3b10", "task_name": "Say an appropriate
greeting.", "agent_id": "59343961-5439-4672-88b9-ef71e8fbb5b5", "agent_role":
"Friendly Neighbor", "from_task": null, "from_agent": null, "model": "gpt-4o-mini",
"messages": [{"role": "system", "content": "You are Friendly Neighbor. You are
the friendly neighbor\nYour personal goal is: Make everyone feel welcome\nYou
ONLY have access to the following tools, and should NEVER make up tools that
are not listed here:\n\nTool Name: Decide Greetings\nTool Arguments: {}\nTool
Description: Decide what is the appropriate greeting to use\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 [Decide 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: Say an appropriate greeting.\n\nThis
is the expected criteria for your final answer: The 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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x133782a20>"], "available_functions": null}}, {"event_id": "39d77c30-c4ac-49ca-8c52-1c817d88b97e",
"timestamp": "2025-09-23T21:57:20.758233+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-23T21:57:20.758193+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "addbb6d6-183b-4928-90f7-8b3ae4de3b10", "task_name": "Say an appropriate
greeting.", "agent_id": "59343961-5439-4672-88b9-ef71e8fbb5b5", "agent_role":
"Friendly Neighbor", "from_task": null, "from_agent": null, "messages": [{"role":
"system", "content": "You are Friendly Neighbor. You are the friendly neighbor\nYour
personal goal is: Make everyone feel welcome\nYou ONLY have access to the following
tools, and should NEVER make up tools that are not listed here:\n\nTool Name:
Decide Greetings\nTool Arguments: {}\nTool Description: Decide what is the appropriate
greeting to use\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 [Decide 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: Say an appropriate
greeting.\n\nThis is the expected criteria for your final answer: The 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
use the Decide Greetings tool to determine the most appropriate greeting to
use.\n\nAction: Decide Greetings\nAction Input: {}", "call_type": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "855ef1d4-3b7d-4d25-b851-090662c9719f",
"timestamp": "2025-09-23T21:57:20.758569+00:00", "type": "tool_usage_started",
"event_data": {"timestamp": "2025-09-23T21:57:20.758529+00:00", "type": "tool_usage_started",
"source_fingerprint": "548cf39d-0db2-4114-8014-3e2bd7204ded", "source_type":
"agent", "fingerprint_metadata": null, "task_id": "addbb6d6-183b-4928-90f7-8b3ae4de3b10",
"task_name": "Say an appropriate greeting.", "agent_id": null, "agent_role":
"Friendly Neighbor", "agent_key": "98f3b1d47ce969cf057727b7841425cd", "tool_name":
"Decide Greetings", "tool_args": "{}", "tool_class": "Decide Greetings", "run_attempts":
null, "delegations": null, "agent": {"id": "59343961-5439-4672-88b9-ef71e8fbb5b5",
"role": "Friendly Neighbor", "goal": "Make everyone feel welcome", "backstory":
"You are the friendly neighbor", "cache": true, "verbose": false, "max_rpm":
null, "allow_delegation": false, "tools": [{"name": "''Decide Greetings''",
"description": "''Tool Name: Decide Greetings\\nTool Arguments: {}\\nTool Description:
Decide what is the appropriate greeting to use''", "env_vars": "[]", "args_schema":
"<class ''abc.MyCustomToolSchema''>", "description_updated": "False", "cache_function":
"<function BaseTool.<lambda> at 0x107389260>", "result_as_answer": "True", "max_usage_count":
"None", "current_usage_count": "0"}], "max_iter": 25, "agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x133ae05c0>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x133ae1160>", "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'': ''Say an appropriate greeting.'', ''expected_output'': ''The
greeting.'', ''config'': None, ''callback'': None, ''agent'': {''id'': UUID(''59343961-5439-4672-88b9-ef71e8fbb5b5''),
''role'': ''Friendly Neighbor'', ''goal'': ''Make everyone feel welcome'', ''backstory'':
''You are the friendly neighbor'', ''cache'': True, ''verbose'': False, ''max_rpm'':
None, ''allow_delegation'': False, ''tools'': [{''name'': ''Decide Greetings'',
''description'': ''Tool Name: Decide Greetings\\nTool Arguments: {}\\nTool Description:
Decide what is the appropriate greeting to use'', ''env_vars'': [], ''args_schema'':
<class ''abc.MyCustomToolSchema''>, ''description_updated'': False, ''cache_function'':
<function BaseTool.<lambda> at 0x107389260>, ''result_as_answer'': True, ''max_usage_count'':
None, ''current_usage_count'': 0}], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x133ae05c0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x133ae1160>, ''crew'': Crew(id=8783cd14-2b6a-4a43-90b5-5c090292bfa7,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
object at 0x133ae0680>, ''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'': ''Decide
Greetings'', ''description'': ''Tool Name: Decide Greetings\\nTool Arguments:
{}\\nTool Description: Decide what is the appropriate greeting to use'', ''env_vars'':
[], ''args_schema'': <class ''abc.MyCustomToolSchema''>, ''description_updated'':
False, ''cache_function'': <function BaseTool.<lambda> at 0x107389260>, ''result_as_answer'':
True, ''max_usage_count'': None, ''current_usage_count'': 0}], ''security_config'':
{''fingerprint'': {''metadata'': {}}}, ''id'': UUID(''addbb6d6-183b-4928-90f7-8b3ae4de3b10''),
''human_input'': False, ''markdown'': False, ''converter_cls'': None, ''processed_by_agents'':
{''Friendly Neighbor''}, ''guardrail'': None, ''max_retries'': None, ''guardrail_max_retries'':
3, ''retry_count'': 0, ''start_time'': datetime.datetime(2025, 9, 23, 14, 57,
20, 756311), ''end_time'': None, ''allow_crewai_trigger_context'': None}"],
"agents": ["{''id'': UUID(''59343961-5439-4672-88b9-ef71e8fbb5b5''), ''role'':
''Friendly Neighbor'', ''goal'': ''Make everyone feel welcome'', ''backstory'':
''You are the friendly neighbor'', ''cache'': True, ''verbose'': False, ''max_rpm'':
None, ''allow_delegation'': False, ''tools'': [{''name'': ''Decide Greetings'',
''description'': ''Tool Name: Decide Greetings\\nTool Arguments: {}\\nTool Description:
Decide what is the appropriate greeting to use'', ''env_vars'': [], ''args_schema'':
<class ''abc.MyCustomToolSchema''>, ''description_updated'': False, ''cache_function'':
<function BaseTool.<lambda> at 0x107389260>, ''result_as_answer'': True, ''max_usage_count'':
None, ''current_usage_count'': 0}], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x133ae05c0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x133ae1160>, ''crew'': Crew(id=8783cd14-2b6a-4a43-90b5-5c090292bfa7,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
object at 0x133ae0680>, ''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":
"8783cd14-2b6a-4a43-90b5-5c090292bfa7", "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": "<crewai.agents.tools_handler.ToolsHandler
object at 0x133ae0680>", "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":
"Friendly Neighbor", "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}, "from_task": null, "from_agent": null}},
{"event_id": "04b383a0-abe4-469d-91b4-4cf36ff202e5", "timestamp": "2025-09-23T21:57:20.758916+00:00",
"type": "tool_usage_finished", "event_data": {"timestamp": "2025-09-23T21:57:20.758880+00:00",
"type": "tool_usage_finished", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "addbb6d6-183b-4928-90f7-8b3ae4de3b10",
"task_name": "Say an appropriate greeting.", "agent_id": null, "agent_role":
"Friendly Neighbor", "agent_key": "98f3b1d47ce969cf057727b7841425cd", "tool_name":
"Decide Greetings", "tool_args": {}, "tool_class": "CrewStructuredTool", "run_attempts":
1, "delegations": 0, "agent": null, "from_task": null, "from_agent": null, "started_at":
"2025-09-23T14:57:20.758799", "finished_at": "2025-09-23T14:57:20.758864", "from_cache":
false, "output": "Howdy!"}}, {"event_id": "6cbd20fc-0da6-47d8-bb5c-08a0d061de26",
"timestamp": "2025-09-23T21:57:20.759068+00:00", "type": "agent_execution_completed",
"event_data": {"agent_role": "Friendly Neighbor", "agent_goal": "Make everyone
feel welcome", "agent_backstory": "You are the friendly neighbor"}}, {"event_id":
"a61cde8f-0ebe-410a-80ad-d4ffc728770e", "timestamp": "2025-09-23T21:57:20.759140+00:00",
"type": "task_completed", "event_data": {"task_description": "Say an appropriate
greeting.", "task_name": "Say an appropriate greeting.", "task_id": "addbb6d6-183b-4928-90f7-8b3ae4de3b10",
"output_raw": "Howdy!", "output_format": "OutputFormat.RAW", "agent_role": "Friendly
Neighbor"}}, {"event_id": "ea62c921-9a9c-49ed-9a6f-984d3fb42766", "timestamp":
"2025-09-23T21:57:20.759937+00:00", "type": "crew_kickoff_completed", "event_data":
{"timestamp": "2025-09-23T21:57:20.759924+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "output": {"description": "Say an appropriate greeting.",
"name": "Say an appropriate greeting.", "expected_output": "The greeting.",
"summary": "Say an appropriate greeting....", "raw": "Howdy!", "pydantic": null,
"json_dict": null, "agent": "Friendly Neighbor", "output_format": "raw"}, "total_tokens":
280}}], "batch_metadata": {"events_count": 10, "batch_sequence": 1, "is_final_batch":
false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '14980'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/a1195fbd-aa15-40a9-9eec-3f3b9d530e1a/events
response:
body:
string: '{"events_created":10,"ephemeral_trace_batch_id":"7460172c-8094-43d7-9586-73c55702968a"}'
headers:
Content-Length:
- '87'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"76c4785ff54185c50800dcd7b92b9076"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
referrer-policy:
- strict-origin-when-cross-origin
server-timing:
- cache_read.active_support;dur=0.98, sql.active_record;dur=43.86, cache_generate.active_support;dur=8.38,
cache_write.active_support;dur=3.48, cache_read_multi.active_support;dur=0.11,
start_processing.action_controller;dur=0.00, instantiation.active_record;dur=0.05,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=54.26,
process_action.action_controller;dur=59.70
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- bba7c136-583c-42de-a9b3-b17b5e566bcb
x-runtime:
- '0.104556'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 210, "final_event_count": 10}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '68'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/ephemeral/batches/a1195fbd-aa15-40a9-9eec-3f3b9d530e1a/finalize
response:
body:
string: '{"id":"7460172c-8094-43d7-9586-73c55702968a","ephemeral_trace_id":"a1195fbd-aa15-40a9-9eec-3f3b9d530e1a","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":210,"crewai_version":"0.193.2","total_events":10,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-23T21:57:20.744Z","updated_at":"2025-09-23T21:57:20.915Z","access_code":"TRACE-3c07dc78ee","user_identifier":null}'
headers:
Content-Length:
- '521'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"257923abdd3d5df5fdc5f8048c370948"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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=14.86, instantiation.active_record;dur=0.03, unpermitted_parameters.action_controller;dur=0.00,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=6.22,
process_action.action_controller;dur=15.61
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- e288eb0f-97da-48bb-b42a-cda77a37ffb2
x-runtime:
- '0.039715'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"trace_id": "52ac3d68-006e-4fd0-9841-ebbec78c497f", "execution_type":
"crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null,
"crew_name": "crew", "flow_name": null, "crewai_version": "0.193.2", "privacy_level":
"standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count":
0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-24T05:36:09.337490+00:00"}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '428'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches
response:
body:
string: '{"id":"1f7440a0-d20d-49cd-91a2-795a527f6f32","trace_id":"52ac3d68-006e-4fd0-9841-ebbec78c497f","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"running","duration_ms":null,"crewai_version":"0.193.2","privacy_level":"standard","total_events":0,"execution_context":{"crew_fingerprint":null,"crew_name":"crew","flow_name":null,"crewai_version":"0.193.2","privacy_level":"standard"},"created_at":"2025-09-24T05:36:10.032Z","updated_at":"2025-09-24T05:36:10.032Z"}'
headers:
Content-Length:
- '480'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"91563512a9b65dac07d643193218afcf"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.06, start_processing.action_controller;dur=0.00,
sql.active_record;dur=14.21, instantiation.active_record;dur=0.33, feature_operation.flipper;dur=0.03,
start_transaction.active_record;dur=0.01, transaction.active_record;dur=11.12,
process_action.action_controller;dur=682.65
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- fc944a84-d2f2-4221-8eb3-599d022ea431
x-runtime:
- '0.702463'
x-xss-protection:
- 1; mode=block
status:
code: 201
message: Created
- request:
body: '{"events": [{"event_id": "ebc7fb02-2c6e-4a9c-b341-e8a27e89b4c1", "timestamp":
"2025-09-24T05:36:10.042631+00:00", "type": "crew_kickoff_started", "event_data":
{"timestamp": "2025-09-24T05:36:09.336380+00:00", "type": "crew_kickoff_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "inputs": null}}, {"event_id": "26de6b80-4cbd-42d1-af2f-c28ffda4ee69",
"timestamp": "2025-09-24T05:36:10.044080+00:00", "type": "task_started", "event_data":
{"task_description": "Say an appropriate greeting.", "expected_output": "The
greeting.", "task_name": "Say an appropriate greeting.", "context": "", "agent_role":
"Friendly Neighbor", "task_id": "fffb3a93-95d5-4ee6-bea5-db5a06302bba"}}, {"event_id":
"8b61ef63-bba1-4fd3-aaa7-545332078558", "timestamp": "2025-09-24T05:36:10.044408+00:00",
"type": "agent_execution_started", "event_data": {"agent_role": "Friendly Neighbor",
"agent_goal": "Make everyone feel welcome", "agent_backstory": "You are the
friendly neighbor"}}, {"event_id": "a25e36c9-d642-4a6a-92ee-127c17797b58", "timestamp":
"2025-09-24T05:36:10.044483+00:00", "type": "llm_call_started", "event_data":
{"timestamp": "2025-09-24T05:36:10.044462+00:00", "type": "llm_call_started",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "fffb3a93-95d5-4ee6-bea5-db5a06302bba", "task_name": "Say an appropriate
greeting.", "agent_id": "a27f7504-4abf-42c2-ae81-4986fd21233a", "agent_role":
"Friendly Neighbor", "from_task": null, "from_agent": null, "model": "gpt-4o-mini",
"messages": [{"role": "system", "content": "You are Friendly Neighbor. You are
the friendly neighbor\nYour personal goal is: Make everyone feel welcome\nYou
ONLY have access to the following tools, and should NEVER make up tools that
are not listed here:\n\nTool Name: Decide Greetings\nTool Arguments: {}\nTool
Description: Decide what is the appropriate greeting to use\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 [Decide 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: Say an appropriate greeting.\n\nThis
is the expected criteria for your final answer: The 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": ["<crewai.utilities.token_counter_callback.TokenCalcHandler
object at 0x1175dd2b0>"], "available_functions": null}}, {"event_id": "1337a46f-f5ed-4dd3-ab24-983fd6722301",
"timestamp": "2025-09-24T05:36:10.045671+00:00", "type": "llm_call_completed",
"event_data": {"timestamp": "2025-09-24T05:36:10.045649+00:00", "type": "llm_call_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": "fffb3a93-95d5-4ee6-bea5-db5a06302bba", "task_name": "Say an appropriate
greeting.", "agent_id": "a27f7504-4abf-42c2-ae81-4986fd21233a", "agent_role":
"Friendly Neighbor", "from_task": null, "from_agent": null, "messages": [{"role":
"system", "content": "You are Friendly Neighbor. You are the friendly neighbor\nYour
personal goal is: Make everyone feel welcome\nYou ONLY have access to the following
tools, and should NEVER make up tools that are not listed here:\n\nTool Name:
Decide Greetings\nTool Arguments: {}\nTool Description: Decide what is the appropriate
greeting to use\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 [Decide 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: Say an appropriate
greeting.\n\nThis is the expected criteria for your final answer: The 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
use the Decide Greetings tool to determine the most appropriate greeting to
use.\n\nAction: Decide Greetings\nAction Input: {}", "call_type": "<LLMCallType.LLM_CALL:
''llm_call''>", "model": "gpt-4o-mini"}}, {"event_id": "5f7ea459-b38e-4ce4-82e2-f4b013dd45df",
"timestamp": "2025-09-24T05:36:10.045963+00:00", "type": "tool_usage_started",
"event_data": {"timestamp": "2025-09-24T05:36:10.045910+00:00", "type": "tool_usage_started",
"source_fingerprint": "e2ca74c1-5cbc-45c1-8400-998002031fa6", "source_type":
"agent", "fingerprint_metadata": null, "task_id": "fffb3a93-95d5-4ee6-bea5-db5a06302bba",
"task_name": "Say an appropriate greeting.", "agent_id": null, "agent_role":
"Friendly Neighbor", "agent_key": "98f3b1d47ce969cf057727b7841425cd", "tool_name":
"Decide Greetings", "tool_args": "{}", "tool_class": "Decide Greetings", "run_attempts":
null, "delegations": null, "agent": {"id": "a27f7504-4abf-42c2-ae81-4986fd21233a",
"role": "Friendly Neighbor", "goal": "Make everyone feel welcome", "backstory":
"You are the friendly neighbor", "cache": true, "verbose": false, "max_rpm":
null, "allow_delegation": false, "tools": [{"name": "''Decide Greetings''",
"description": "''Tool Name: Decide Greetings\\nTool Arguments: {}\\nTool Description:
Decide what is the appropriate greeting to use''", "env_vars": "[]", "args_schema":
"<class ''abc.MyCustomToolSchema''>", "description_updated": "False", "cache_function":
"<function BaseTool.<lambda> at 0x105c49580>", "result_as_answer": "True", "max_usage_count":
"None", "current_usage_count": "0"}], "max_iter": 25, "agent_executor": "<crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x1175dcaa0>", "llm": "<crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x1175dc1a0>", "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'': ''Say an appropriate greeting.'', ''expected_output'': ''The
greeting.'', ''config'': None, ''callback'': None, ''agent'': {''id'': UUID(''a27f7504-4abf-42c2-ae81-4986fd21233a''),
''role'': ''Friendly Neighbor'', ''goal'': ''Make everyone feel welcome'', ''backstory'':
''You are the friendly neighbor'', ''cache'': True, ''verbose'': False, ''max_rpm'':
None, ''allow_delegation'': False, ''tools'': [{''name'': ''Decide Greetings'',
''description'': ''Tool Name: Decide Greetings\\nTool Arguments: {}\\nTool Description:
Decide what is the appropriate greeting to use'', ''env_vars'': [], ''args_schema'':
<class ''abc.MyCustomToolSchema''>, ''description_updated'': False, ''cache_function'':
<function BaseTool.<lambda> at 0x105c49580>, ''result_as_answer'': True, ''max_usage_count'':
None, ''current_usage_count'': 0}], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x1175dcaa0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x1175dc1a0>, ''crew'': Crew(id=4e1ae2a5-ea98-4118-b475-79da2a48eb6a,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
object at 0x1175dd280>, ''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'': ''Decide
Greetings'', ''description'': ''Tool Name: Decide Greetings\\nTool Arguments:
{}\\nTool Description: Decide what is the appropriate greeting to use'', ''env_vars'':
[], ''args_schema'': <class ''abc.MyCustomToolSchema''>, ''description_updated'':
False, ''cache_function'': <function BaseTool.<lambda> at 0x105c49580>, ''result_as_answer'':
True, ''max_usage_count'': None, ''current_usage_count'': 0}], ''security_config'':
{''fingerprint'': {''metadata'': {}}}, ''id'': UUID(''fffb3a93-95d5-4ee6-bea5-db5a06302bba''),
''human_input'': False, ''markdown'': False, ''converter_cls'': None, ''processed_by_agents'':
{''Friendly Neighbor''}, ''guardrail'': None, ''max_retries'': None, ''guardrail_max_retries'':
3, ''retry_count'': 0, ''start_time'': datetime.datetime(2025, 9, 23, 22, 36,
10, 44041), ''end_time'': None, ''allow_crewai_trigger_context'': None}"], "agents":
["{''id'': UUID(''a27f7504-4abf-42c2-ae81-4986fd21233a''), ''role'': ''Friendly
Neighbor'', ''goal'': ''Make everyone feel welcome'', ''backstory'': ''You are
the friendly neighbor'', ''cache'': True, ''verbose'': False, ''max_rpm'': None,
''allow_delegation'': False, ''tools'': [{''name'': ''Decide Greetings'', ''description'':
''Tool Name: Decide Greetings\\nTool Arguments: {}\\nTool Description: Decide
what is the appropriate greeting to use'', ''env_vars'': [], ''args_schema'':
<class ''abc.MyCustomToolSchema''>, ''description_updated'': False, ''cache_function'':
<function BaseTool.<lambda> at 0x105c49580>, ''result_as_answer'': True, ''max_usage_count'':
None, ''current_usage_count'': 0}], ''max_iter'': 25, ''agent_executor'': <crewai.agents.crew_agent_executor.CrewAgentExecutor
object at 0x1175dcaa0>, ''llm'': <crewai.llms.providers.openai.completion.OpenAICompletion
object at 0x1175dc1a0>, ''crew'': Crew(id=4e1ae2a5-ea98-4118-b475-79da2a48eb6a,
process=Process.sequential, number_of_agents=1, number_of_tasks=1), ''i18n'':
{''prompt_file'': None}, ''cache_handler'': {}, ''tools_handler'': <crewai.agents.tools_handler.ToolsHandler
object at 0x1175dd280>, ''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":
"4e1ae2a5-ea98-4118-b475-79da2a48eb6a", "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": "<crewai.agents.tools_handler.ToolsHandler
object at 0x1175dd280>", "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":
"Friendly Neighbor", "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}, "from_task": null, "from_agent": null}},
{"event_id": "517e6233-f01c-48f7-a094-383283178e43", "timestamp": "2025-09-24T05:36:10.046402+00:00",
"type": "tool_usage_finished", "event_data": {"timestamp": "2025-09-24T05:36:10.046367+00:00",
"type": "tool_usage_finished", "source_fingerprint": null, "source_type": null,
"fingerprint_metadata": null, "task_id": "fffb3a93-95d5-4ee6-bea5-db5a06302bba",
"task_name": "Say an appropriate greeting.", "agent_id": null, "agent_role":
"Friendly Neighbor", "agent_key": "98f3b1d47ce969cf057727b7841425cd", "tool_name":
"Decide Greetings", "tool_args": {}, "tool_class": "CrewStructuredTool", "run_attempts":
1, "delegations": 0, "agent": null, "from_task": null, "from_agent": null, "started_at":
"2025-09-23T22:36:10.046277", "finished_at": "2025-09-23T22:36:10.046351", "from_cache":
false, "output": "Howdy!"}}, {"event_id": "03031976-4dab-40cf-8355-3f90c5969539",
"timestamp": "2025-09-24T05:36:10.046667+00:00", "type": "agent_execution_completed",
"event_data": {"agent_role": "Friendly Neighbor", "agent_goal": "Make everyone
feel welcome", "agent_backstory": "You are the friendly neighbor"}}, {"event_id":
"ebe2a4ff-4012-4f73-9495-74ce001524df", "timestamp": "2025-09-24T05:36:10.046709+00:00",
"type": "task_completed", "event_data": {"task_description": "Say an appropriate
greeting.", "task_name": "Say an appropriate greeting.", "task_id": "fffb3a93-95d5-4ee6-bea5-db5a06302bba",
"output_raw": "Howdy!", "output_format": "OutputFormat.RAW", "agent_role": "Friendly
Neighbor"}}, {"event_id": "f9261950-e717-4f20-93ac-14d19cf65b12", "timestamp":
"2025-09-24T05:36:10.047453+00:00", "type": "crew_kickoff_completed", "event_data":
{"timestamp": "2025-09-24T05:36:10.047441+00:00", "type": "crew_kickoff_completed",
"source_fingerprint": null, "source_type": null, "fingerprint_metadata": null,
"task_id": null, "task_name": null, "agent_id": null, "agent_role": null, "crew_name":
"crew", "crew": null, "output": {"description": "Say an appropriate greeting.",
"name": "Say an appropriate greeting.", "expected_output": "The greeting.",
"summary": "Say an appropriate greeting....", "raw": "Howdy!", "pydantic": null,
"json_dict": null, "agent": "Friendly Neighbor", "output_format": "raw"}, "total_tokens":
280}}], "batch_metadata": {"events_count": 10, "batch_sequence": 1, "is_final_batch":
false}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '14979'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: POST
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/52ac3d68-006e-4fd0-9841-ebbec78c497f/events
response:
body:
string: '{"events_created":10,"trace_batch_id":"1f7440a0-d20d-49cd-91a2-795a527f6f32"}'
headers:
Content-Length:
- '77'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"15996873cc255bd6552a4732d3d01547"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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=48.64, instantiation.active_record;dur=0.71, start_transaction.active_record;dur=0.01,
transaction.active_record;dur=52.26, process_action.action_controller;dur=375.51
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 5e4feba7-34ea-497a-a2e2-35a13f908305
x-runtime:
- '0.402006'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"status": "completed", "duration_ms": 1121, "final_event_count": 10}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '69'
Content-Type:
- application/json
User-Agent:
- CrewAI-CLI/0.193.2
X-Crewai-Organization-Id:
- d3a3d10c-35db-423f-a7a4-c026030ba64d
X-Crewai-Version:
- 0.193.2
method: PATCH
uri: http://localhost:3000/crewai_plus/api/v1/tracing/batches/52ac3d68-006e-4fd0-9841-ebbec78c497f/finalize
response:
body:
string: '{"id":"1f7440a0-d20d-49cd-91a2-795a527f6f32","trace_id":"52ac3d68-006e-4fd0-9841-ebbec78c497f","execution_type":"crew","crew_name":"crew","flow_name":null,"status":"completed","duration_ms":1121,"crewai_version":"0.193.2","privacy_level":"standard","total_events":10,"execution_context":{"crew_name":"crew","flow_name":null,"privacy_level":"standard","crewai_version":"0.193.2","crew_fingerprint":null},"created_at":"2025-09-24T05:36:10.032Z","updated_at":"2025-09-24T05:36:10.780Z"}'
headers:
Content-Length:
- '483'
cache-control:
- max-age=0, private, must-revalidate
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://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/ 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://www.youtube.com https://share.descript.com'
content-type:
- application/json; charset=utf-8
etag:
- W/"0f66c56336ada276c02f84c0f0db41a2"
permissions-policy:
- camera=(), microphone=(self), geolocation=()
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.06, start_processing.action_controller;dur=0.00,
sql.active_record;dur=15.74, instantiation.active_record;dur=0.83, unpermitted_parameters.action_controller;dur=0.02,
start_transaction.active_record;dur=0.00, transaction.active_record;dur=2.44,
process_action.action_controller;dur=299.30
vary:
- Accept
x-content-type-options:
- nosniff
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-request-id:
- 86101ab6-fd00-422f-95c3-79e28ef99dd9
x-runtime:
- '0.317495'
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
version: 1

View File

@@ -1,16 +1,14 @@
"""Test Agent creation and execution basic functionality."""
import json
from collections import defaultdict
from concurrent.futures import Future
from hashlib import md5
import json
import re
from unittest import mock
from unittest.mock import ANY, MagicMock, patch
import pydantic_core
import pytest
from crewai.agent import Agent
from crewai.agents import CacheHandler
from crewai.crew import Crew
from crewai.crews.crew_output import CrewOutput
from crewai.events.event_bus import crewai_event_bus
@@ -30,7 +28,6 @@ from crewai.events.types.memory_events import (
MemorySaveFailedEvent,
MemorySaveStartedEvent,
)
from crewai.flow import Flow, start
from crewai.knowledge.knowledge import Knowledge
from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource
from crewai.llm import LLM
@@ -46,6 +43,11 @@ from crewai.tasks.task_output import TaskOutput
from crewai.types.usage_metrics import UsageMetrics
from crewai.utilities.rpm_controller import RPMController
from crewai.utilities.task_output_storage_handler import TaskOutputStorageHandler
import pydantic_core
import pytest
from crewai.agents import CacheHandler
from crewai.flow import Flow, start
@pytest.fixture
@@ -199,7 +201,9 @@ def test_async_task_cannot_include_sequential_async_tasks_in_context(
# This should raise an error because task2 is async and has task1 in its context without a sync task in between
with pytest.raises(
ValueError,
match="Task 'Task 2' is asynchronous and cannot include other sequential asynchronous tasks in its context.",
match=re.escape(
"Task 'Task 2' is asynchronous and cannot include other sequential asynchronous tasks in its context."
),
):
Crew(tasks=[task1, task2, task3, task4, task5], agents=[researcher, writer])
@@ -237,7 +241,9 @@ def test_context_no_future_tasks(researcher, writer):
# This should raise an error because task1 has a context dependency on a future task (task4)
with pytest.raises(
ValueError,
match="Task 'Task 1' has a context dependency on a future task 'Task 4', which is not allowed.",
match=re.escape(
"Task 'Task 1' has a context dependency on a future task 'Task 4', which is not allowed."
),
):
Crew(tasks=[task1, task2, task3, task4], agents=[researcher, writer])
@@ -568,9 +574,10 @@ def test_crew_with_delegating_agents(ceo, writer):
@pytest.mark.vcr(filter_headers=["authorization"])
def test_crew_with_delegating_agents_should_not_override_task_tools(ceo, writer):
from crewai.tools import BaseTool
from pydantic import BaseModel, Field
from crewai.tools import BaseTool
class TestToolInput(BaseModel):
"""Input schema for TestTool."""
@@ -627,9 +634,10 @@ def test_crew_with_delegating_agents_should_not_override_task_tools(ceo, writer)
@pytest.mark.vcr(filter_headers=["authorization"])
def test_crew_with_delegating_agents_should_not_override_agent_tools(ceo, writer):
from crewai.tools import BaseTool
from pydantic import BaseModel, Field
from crewai.tools import BaseTool
class TestToolInput(BaseModel):
"""Input schema for TestTool."""
@@ -688,9 +696,10 @@ def test_crew_with_delegating_agents_should_not_override_agent_tools(ceo, writer
@pytest.mark.vcr(filter_headers=["authorization"])
def test_task_tools_override_agent_tools(researcher):
from crewai.tools import BaseTool
from pydantic import BaseModel, Field
from crewai.tools import BaseTool
class TestToolInput(BaseModel):
"""Input schema for TestTool."""
@@ -744,9 +753,10 @@ def test_task_tools_override_agent_tools_with_allow_delegation(researcher, write
Test that task tools override agent tools while preserving delegation tools when allow_delegation=True
"""
from crewai.tools import BaseTool
from pydantic import BaseModel, Field
from crewai.tools import BaseTool
class TestToolInput(BaseModel):
query: str = Field(..., description="Query to process")
@@ -1005,7 +1015,7 @@ def test_crew_kickoff_streaming_usage_metrics():
role="{topic} Researcher",
goal="Express hot takes on {topic}.",
backstory="You have a lot of experience with {topic}.",
llm=LLM(model="gpt-4o", stream=True),
llm=LLM(model="gpt-4o", stream=True, is_litellm=True),
max_iter=3,
)
@@ -1773,7 +1783,7 @@ def test_hierarchical_kickoff_usage_metrics_include_manager(researcher):
agent=researcher, # *regular* agent
)
# ── 2. Stub out each agent's _token_process.get_summary() ───────────────────
# ── 2. Stub out each agent's token usage methods ───────────────────
researcher_metrics = UsageMetrics(
total_tokens=120, prompt_tokens=80, completion_tokens=40, successful_requests=2
)
@@ -1781,10 +1791,10 @@ def test_hierarchical_kickoff_usage_metrics_include_manager(researcher):
total_tokens=30, prompt_tokens=20, completion_tokens=10, successful_requests=1
)
# Replace the internal _token_process objects with simple mocks
researcher._token_process = MagicMock(
get_summary=MagicMock(return_value=researcher_metrics)
)
# Mock the LLM's get_token_usage_summary method for the researcher
researcher.llm.get_token_usage_summary = MagicMock(return_value=researcher_metrics)
# Mock the manager's _token_process since it uses the fallback path
manager._token_process = MagicMock(
get_summary=MagicMock(return_value=manager_metrics)
)
@@ -3334,7 +3344,9 @@ def test_replay_with_invalid_task_id():
):
with pytest.raises(
ValueError,
match="Task with id bf5b09c9-69bd-4eb8-be12-f9e5bae31c2d not found in the crew's tasks.",
match=re.escape(
"Task with id bf5b09c9-69bd-4eb8-be12-f9e5bae31c2d not found in the crew's tasks."
),
):
crew.replay("bf5b09c9-69bd-4eb8-be12-f9e5bae31c2d")
@@ -3813,10 +3825,11 @@ def test_task_tools_preserve_code_execution_tools():
"""
Test that task tools don't override code execution tools when allow_code_execution=True
"""
from crewai.tools import BaseTool
from crewai_tools import CodeInterpreterTool
from pydantic import BaseModel, Field
from crewai.tools import BaseTool
class TestToolInput(BaseModel):
"""Input schema for TestTool."""

View File

@@ -3,7 +3,6 @@ import os
from time import sleep
from unittest.mock import MagicMock, patch
import pytest
from crewai.agents.agent_builder.utilities.base_token_process import TokenProcess
from crewai.events.event_types import (
LLMCallCompletedEvent,
@@ -15,33 +14,30 @@ from crewai.events.event_types import (
from crewai.llm import CONTEXT_WINDOW_USAGE_RATIO, LLM
from crewai.utilities.token_counter_callback import TokenCalcHandler
from pydantic import BaseModel
import pytest
# TODO: This test fails without print statement, which makes me think that something is happening asynchronously that we need to eventually fix and dive deeper into at a later date
@pytest.mark.vcr(filter_headers=["authorization"])
def test_llm_callback_replacement():
llm1 = LLM(model="gpt-4o-mini")
llm2 = LLM(model="gpt-4o-mini")
llm1 = LLM(model="gpt-4o-mini", is_litellm=True)
llm2 = LLM(model="gpt-4o-mini", is_litellm=True)
calc_handler_1 = TokenCalcHandler(token_cost_process=TokenProcess())
calc_handler_2 = TokenCalcHandler(token_cost_process=TokenProcess())
result1 = llm1.call(
llm1.call(
messages=[{"role": "user", "content": "Hello, world!"}],
callbacks=[calc_handler_1],
)
print("result1:", result1)
usage_metrics_1 = calc_handler_1.token_cost_process.get_summary()
print("usage_metrics_1:", usage_metrics_1)
result2 = llm2.call(
llm2.call(
messages=[{"role": "user", "content": "Hello, world from another agent!"}],
callbacks=[calc_handler_2],
)
sleep(5)
print("result2:", result2)
usage_metrics_2 = calc_handler_2.token_cost_process.get_summary()
print("usage_metrics_2:", usage_metrics_2)
# The first handler should not have been updated
assert usage_metrics_1.successful_requests == 1
@@ -61,7 +57,7 @@ def test_llm_call_with_string_input():
@pytest.mark.vcr(filter_headers=["authorization"])
def test_llm_call_with_string_input_and_callbacks():
llm = LLM(model="gpt-4o-mini")
llm = LLM(model="gpt-4o-mini", is_litellm=True)
calc_handler = TokenCalcHandler(token_cost_process=TokenProcess())
# Test the call method with a string input and callbacks
@@ -127,7 +123,7 @@ def test_llm_call_with_tool_and_string_input():
@pytest.mark.vcr(filter_headers=["authorization"])
def test_llm_call_with_tool_and_message_list():
llm = LLM(model="gpt-4o-mini")
llm = LLM(model="gpt-4o-mini", is_litellm=True)
def square_number(number: int) -> int:
"""Returns the square of a number."""
@@ -171,6 +167,7 @@ def test_llm_passes_additional_params():
model="gpt-4o-mini",
vertex_credentials="test_credentials",
vertex_project="test_project",
is_litellm=True,
)
messages = [{"role": "user", "content": "Hello, world!"}]
@@ -223,7 +220,7 @@ def test_get_custom_llm_provider_gemini():
def test_get_custom_llm_provider_openai():
llm = LLM(model="gpt-4")
llm = LLM(model="gpt-4", is_litellm=True)
assert llm._get_custom_llm_provider() is None
@@ -380,7 +377,7 @@ def test_context_window_exceeded_error_handling():
)
from litellm.exceptions import ContextWindowExceededError
llm = LLM(model="gpt-4")
llm = LLM(model="gpt-4", is_litellm=True)
# Test non-streaming response
with patch("litellm.completion") as mock_completion:
@@ -397,7 +394,7 @@ def test_context_window_exceeded_error_handling():
assert "8192 tokens" in str(excinfo.value)
# Test streaming response
llm = LLM(model="gpt-4", stream=True)
llm = LLM(model="gpt-4", stream=True, is_litellm=True)
with patch("litellm.completion") as mock_completion:
mock_completion.side_effect = ContextWindowExceededError(
"This model's maximum context length is 8192 tokens. However, your messages resulted in 10000 tokens.",
@@ -416,7 +413,7 @@ def test_context_window_exceeded_error_handling():
@pytest.fixture
def anthropic_llm():
"""Fixture providing an Anthropic LLM instance."""
return LLM(model="anthropic/claude-3-sonnet")
return LLM(model="anthropic/claude-3-sonnet", is_litellm=True)
@pytest.fixture
@@ -455,40 +452,25 @@ def test_anthropic_model_detection():
("claude-instant", True),
("claude/v1", True),
("gpt-4", False),
("", False),
("anthropomorphic", False), # Should not match partial words
]
for model, expected in models:
llm = LLM(model=model)
llm = LLM(model=model, is_litellm=True)
assert llm.is_anthropic == expected, f"Failed for model: {model}"
def test_anthropic_message_formatting(anthropic_llm, system_message, user_message):
"""Test Anthropic message formatting with fixtures."""
# Test when first message is system
formatted = anthropic_llm._format_messages_for_provider([system_message])
assert len(formatted) == 2
assert formatted[0]["role"] == "user"
assert formatted[0]["content"] == "."
assert formatted[1] == system_message
# Test when first message is already user
formatted = anthropic_llm._format_messages_for_provider([user_message])
assert len(formatted) == 1
assert formatted[0] == user_message
# Test with empty message list
formatted = anthropic_llm._format_messages_for_provider([])
assert len(formatted) == 1
assert formatted[0]["role"] == "user"
assert formatted[0]["content"] == "."
# Test with non-Anthropic model (should not modify messages)
non_anthropic_llm = LLM(model="gpt-4")
formatted = non_anthropic_llm._format_messages_for_provider([system_message])
assert len(formatted) == 1
assert formatted[0] == system_message
with pytest.raises(TypeError, match="Invalid message format"):
anthropic_llm._format_messages_for_provider([{"invalid": "message"}])
def test_deepseek_r1_with_open_router():
@@ -499,6 +481,7 @@ def test_deepseek_r1_with_open_router():
model="openrouter/deepseek/deepseek-r1",
base_url="https://openrouter.ai/api/v1",
api_key=os.getenv("OPEN_ROUTER_API_KEY"),
is_litellm=True,
)
result = llm.call("What is the capital of France?")
assert isinstance(result, str)
@@ -568,7 +551,7 @@ def mock_emit() -> MagicMock:
@pytest.mark.vcr(filter_headers=["authorization"])
def test_handle_streaming_tool_calls(get_weather_tool_schema, mock_emit):
llm = LLM(model="openai/gpt-4o", stream=True)
llm = LLM(model="openai/gpt-4o", stream=True, is_litellm=True)
response = llm.call(
messages=[
{"role": "user", "content": "What is the weather in New York?"},
@@ -599,7 +582,7 @@ def test_handle_streaming_tool_calls_with_error(get_weather_tool_schema, mock_em
def get_weather_error(location):
raise Exception("Error")
llm = LLM(model="openai/gpt-4o", stream=True)
llm = LLM(model="openai/gpt-4o", stream=True, is_litellm=True)
response = llm.call(
messages=[
{"role": "user", "content": "What is the weather in New York?"},
@@ -623,7 +606,7 @@ def test_handle_streaming_tool_calls_with_error(get_weather_tool_schema, mock_em
def test_handle_streaming_tool_calls_no_available_functions(
get_weather_tool_schema, mock_emit
):
llm = LLM(model="openai/gpt-4o", stream=True)
llm = LLM(model="openai/gpt-4o", stream=True, is_litellm=True)
response = llm.call(
messages=[
{"role": "user", "content": "What is the weather in New York?"},
@@ -642,7 +625,7 @@ def test_handle_streaming_tool_calls_no_available_functions(
@pytest.mark.vcr(filter_headers=["authorization"])
def test_handle_streaming_tool_calls_no_tools(mock_emit):
llm = LLM(model="openai/gpt-4o", stream=True)
llm = LLM(model="openai/gpt-4o", stream=True, is_litellm=True)
response = llm.call(
messages=[
{"role": "user", "content": "What is the weather in New York?"},
@@ -663,7 +646,7 @@ def test_handle_streaming_tool_calls_no_tools(mock_emit):
@pytest.mark.vcr(filter_headers=["authorization"])
def test_llm_call_when_stop_is_unsupported(caplog):
llm = LLM(model="o1-mini", stop=["stop"])
llm = LLM(model="o1-mini", stop=["stop"], is_litellm=True)
with caplog.at_level(logging.INFO):
result = llm.call("What is the capital of France?")
assert "Retrying LLM call without the unsupported 'stop'" in caplog.text
@@ -675,7 +658,12 @@ def test_llm_call_when_stop_is_unsupported(caplog):
def test_llm_call_when_stop_is_unsupported_when_additional_drop_params_is_provided(
caplog,
):
llm = LLM(model="o1-mini", stop=["stop"], additional_drop_params=["another_param"])
llm = LLM(
model="o1-mini",
stop=["stop"],
additional_drop_params=["another_param"],
is_litellm=True,
)
with caplog.at_level(logging.INFO):
result = llm.call("What is the capital of France?")
assert "Retrying LLM call without the unsupported 'stop'" in caplog.text
@@ -685,7 +673,7 @@ def test_llm_call_when_stop_is_unsupported_when_additional_drop_params_is_provid
@pytest.fixture
def ollama_llm():
return LLM(model="ollama/llama3.2:3b")
return LLM(model="ollama/llama3.2:3b", is_litellm=True)
def test_ollama_appends_dummy_user_message_when_last_is_assistant(ollama_llm):

View File

@@ -1,12 +1,9 @@
import json
import os
# Tests for enums
from enum import Enum
from typing import Dict, List, Optional
import json
import os
from unittest.mock import MagicMock, Mock, patch
import pytest
from crewai.llm import LLM
from crewai.utilities.converter import (
Converter,
@@ -21,6 +18,7 @@ from crewai.utilities.converter import (
)
from crewai.utilities.pydantic_schema_parser import PydanticSchemaParser
from pydantic import BaseModel
import pytest
@pytest.fixture(scope="module")
@@ -254,7 +252,7 @@ def test_supports_function_calling_true():
def test_supports_function_calling_false():
llm = LLM(model="non-existent-model")
llm = LLM(model="non-existent-model", is_litellm=True)
assert llm.supports_function_calling() is False
@@ -311,17 +309,17 @@ def test_generate_model_description_nested_model():
def test_generate_model_description_optional_field():
class ModelWithOptionalField(BaseModel):
name: Optional[str]
age: int
name: str
age: int | None
description = generate_model_description(ModelWithOptionalField)
expected_description = '{\n "name": Optional[str],\n "age": int\n}'
expected_description = '{\n "name": str,\n "age": int | None\n}'
assert description == expected_description
def test_generate_model_description_list_field():
class ModelWithListField(BaseModel):
items: List[int]
items: list[int]
description = generate_model_description(ModelWithListField)
expected_description = '{\n "items": List[int]\n}'
@@ -330,7 +328,7 @@ def test_generate_model_description_list_field():
def test_generate_model_description_dict_field():
class ModelWithDictField(BaseModel):
attributes: Dict[str, int]
attributes: dict[str, int]
description = generate_model_description(ModelWithDictField)
expected_description = '{\n "attributes": Dict[str, int]\n}'
@@ -470,7 +468,7 @@ def test_converter_retry_logic():
def test_converter_with_optional_fields():
class OptionalModel(BaseModel):
name: str
age: Optional[int]
age: int | None
llm = Mock(spec=LLM)
llm.supports_function_calling.return_value = False
@@ -496,7 +494,7 @@ def test_converter_with_optional_fields():
# Tests for list fields
def test_converter_with_list_field():
class ListModel(BaseModel):
items: List[int]
items: list[int]
llm = Mock(spec=LLM)
llm.supports_function_calling.return_value = False

View File

@@ -1,17 +1,12 @@
import os
from datetime import datetime
import os
from unittest.mock import Mock, patch
import pytest
from pydantic import Field
from crewai.agent import Agent
from crewai.agents.crew_agent_executor import CrewAgentExecutor
from crewai.crew import Crew
from crewai.flow.flow import Flow, listen, start
from crewai.llm import LLM
from crewai.task import Task
from crewai.tools.base_tool import BaseTool
from crewai.events.event_bus import crewai_event_bus
from crewai.events.event_listener import EventListener
from crewai.events.types.agent_events import (
AgentExecutionCompletedEvent,
AgentExecutionErrorEvent,
@@ -25,9 +20,6 @@ from crewai.events.types.crew_events import (
CrewTestResultEvent,
CrewTestStartedEvent,
)
from crewai.events.event_bus import crewai_event_bus
from crewai.events.event_listener import EventListener
from crewai.events.types.tool_usage_events import ToolUsageFinishedEvent
from crewai.events.types.flow_events import (
FlowCreatedEvent,
FlowFinishedEvent,
@@ -48,7 +40,14 @@ from crewai.events.types.task_events import (
)
from crewai.events.types.tool_usage_events import (
ToolUsageErrorEvent,
ToolUsageFinishedEvent,
)
from crewai.flow.flow import Flow, listen, start
from crewai.llm import LLM
from crewai.task import Task
from crewai.tools.base_tool import BaseTool
from pydantic import Field
import pytest
@pytest.fixture(scope="module")
@@ -195,7 +194,7 @@ def test_crew_emits_kickoff_failed_event(base_agent, base_task):
error_message = "Simulated crew kickoff failure"
mock_execute.side_effect = Exception(error_message)
with pytest.raises(Exception):
with pytest.raises(Exception): # noqa: B017
crew.kickoff()
assert len(received_events) == 1
@@ -279,7 +278,7 @@ def test_task_emits_failed_event_on_execution_error(base_agent, base_task):
agent=agent,
)
with pytest.raises(Exception):
with pytest.raises(Exception): # noqa: B017
agent.execute_task(task=task)
assert len(received_events) == 1
@@ -333,7 +332,7 @@ def test_agent_emits_execution_error_event(base_agent, base_task):
) as invoke_mock:
invoke_mock.side_effect = Exception(error_message)
with pytest.raises(Exception):
with pytest.raises(Exception): # noqa: B017
base_agent.execute_task(
task=base_task,
)
@@ -517,7 +516,6 @@ def test_flow_emits_method_execution_started_event():
@crewai_event_bus.on(MethodExecutionStartedEvent)
def handle_method_start(source, event):
print("event in method name", event.method_name)
received_events.append(event)
class TestFlow(Flow[dict]):
@@ -619,7 +617,7 @@ def test_flow_emits_method_execution_failed_event():
raise error
flow = TestFlow()
with pytest.raises(Exception):
with pytest.raises(Exception): # noqa: B017
flow.kickoff()
assert len(received_events) == 1
@@ -655,6 +653,7 @@ def test_llm_emits_call_started_event():
@pytest.mark.vcr(filter_headers=["authorization"])
@pytest.mark.isolated
def test_llm_emits_call_failed_event():
received_events = []
@@ -662,13 +661,18 @@ def test_llm_emits_call_failed_event():
def handle_llm_call_failed(source, event):
received_events.append(event)
error_message = "Simulated LLM call failure"
with patch("crewai.llm.litellm.completion", side_effect=Exception(error_message)):
error_message = "OpenAI API call failed: Simulated API failure"
with patch(
"crewai.llms.providers.openai.completion.OpenAICompletion._handle_completion"
) as mock_handle_completion:
mock_handle_completion.side_effect = Exception("Simulated API failure")
llm = LLM(model="gpt-4o-mini")
with pytest.raises(Exception) as exc_info:
llm.call("Hello, how are you?")
assert str(exc_info.value) == error_message
assert str(exc_info.value) == "Simulated API failure"
assert len(received_events) == 1
assert received_events[0].type == "llm_call_failed"
assert received_events[0].error == error_message
@@ -884,8 +888,8 @@ def test_stream_llm_emits_event_with_task_and_agent_info():
assert len(all_task_name) == 14
assert set(all_agent_roles) == {agent.role}
assert set(all_agent_id) == {agent.id}
assert set(all_task_id) == {task.id}
assert set(all_agent_id) == {str(agent.id)}
assert set(all_task_id) == {str(task.id)}
assert set(all_task_name) == {task.name or task.description}
@@ -935,8 +939,8 @@ def test_llm_emits_event_with_task_and_agent_info(base_agent, base_task):
assert len(all_task_name) == 2
assert set(all_agent_roles) == {base_agent.role}
assert set(all_agent_id) == {base_agent.id}
assert set(all_task_id) == {base_task.id}
assert set(all_agent_id) == {str(base_agent.id)}
assert set(all_task_id) == {str(base_task.id)}
assert set(all_task_name) == {base_task.name or base_task.description}
@@ -991,4 +995,4 @@ def test_llm_emits_event_with_lite_agent():
assert len(all_task_name) == 0
assert set(all_agent_roles) == {agent.role}
assert set(all_agent_id) == {agent.id}
assert set(all_agent_id) == {str(agent.id)}

View File

@@ -1,10 +1,16 @@
import os
from unittest.mock import patch
import pytest
from crewai.llm import LLM
from crewai.llms.base_llm import BaseLLM
from crewai.utilities.llm_utils import create_llm
from litellm.exceptions import BadRequestError
import pytest
try:
from litellm.exceptions import BadRequestError
except ImportError:
BadRequestError = Exception
def test_create_llm_with_llm_instance():
@@ -15,13 +21,19 @@ def test_create_llm_with_llm_instance():
def test_create_llm_with_valid_model_string():
llm = create_llm(llm_value="gpt-4o")
assert isinstance(llm, LLM)
assert isinstance(llm, BaseLLM)
assert llm.model == "gpt-4o"
def test_create_llm_with_invalid_model_string():
with pytest.raises(BadRequestError, match="LLM Provider NOT provided"):
llm = create_llm(llm_value="invalid-model")
# For invalid model strings, create_llm succeeds but call() fails with API error
llm = create_llm(llm_value="invalid-model")
assert llm is not None
assert isinstance(llm, BaseLLM)
# The error should occur when making the actual API call
# We expect some kind of API error (NotFoundError, etc.)
with pytest.raises(Exception): # noqa: B017
llm.call(messages=[{"role": "user", "content": "Hello, world!"}])
@@ -32,16 +44,16 @@ def test_create_llm_with_unknown_object_missing_attributes():
unknown_obj = UnknownObject()
llm = create_llm(llm_value=unknown_obj)
# Attempt to call the LLM and expect it to raise an error due to missing attributes
with pytest.raises(BadRequestError, match="LLM Provider NOT provided"):
llm.call(messages=[{"role": "user", "content": "Hello, world!"}])
# Should succeed because str(unknown_obj) provides a model name
assert llm is not None
assert isinstance(llm, BaseLLM)
def test_create_llm_with_none_uses_default_model():
with patch.dict(os.environ, {}, clear=True):
with patch("crewai.cli.constants.DEFAULT_LLM_MODEL", "gpt-4o"):
with patch.dict(os.environ, {"OPENAI_API_KEY": "fake-key"}, clear=True):
with patch("crewai.utilities.llm_utils.DEFAULT_LLM_MODEL", "gpt-4o-mini"):
llm = create_llm(llm_value=None)
assert isinstance(llm, LLM)
assert isinstance(llm, BaseLLM)
assert llm.model == "gpt-4o-mini"
@@ -53,7 +65,7 @@ def test_create_llm_with_unknown_object():
unknown_obj = UnknownObject()
llm = create_llm(llm_value=unknown_obj)
assert isinstance(llm, LLM)
assert isinstance(llm, BaseLLM)
assert llm.model == "gpt-4o"
assert llm.temperature == 0.7
assert llm.max_tokens == 1500
@@ -64,13 +76,14 @@ def test_create_llm_from_env_with_unaccepted_attributes():
os.environ,
{
"OPENAI_MODEL_NAME": "gpt-3.5-turbo",
"OPENAI_API_KEY": "fake-key",
"AWS_ACCESS_KEY_ID": "fake-access-key",
"AWS_SECRET_ACCESS_KEY": "fake-secret-key",
"AWS_REGION_NAME": "us-west-2",
},
):
llm = create_llm(llm_value=None)
assert isinstance(llm, LLM)
assert isinstance(llm, BaseLLM)
assert llm.model == "gpt-3.5-turbo"
assert not hasattr(llm, "AWS_ACCESS_KEY_ID")
assert not hasattr(llm, "AWS_SECRET_ACCESS_KEY")
@@ -84,12 +97,18 @@ def test_create_llm_with_partial_attributes():
obj = PartialAttributes()
llm = create_llm(llm_value=obj)
assert isinstance(llm, LLM)
assert isinstance(llm, BaseLLM)
assert llm.model == "gpt-4o"
assert llm.temperature is None # Should handle missing attributes gracefully
def test_create_llm_with_invalid_type():
with pytest.raises(BadRequestError, match="LLM Provider NOT provided"):
llm = create_llm(llm_value=42)
# For integers, create_llm succeeds because str(42) becomes "42"
llm = create_llm(llm_value=42)
assert llm is not None
assert isinstance(llm, BaseLLM)
assert llm.model == "42"
# The error should occur when making the actual API call
with pytest.raises(Exception): # noqa: B017
llm.call(messages=[{"role": "user", "content": "Hello, world!"}])

0
lib/devtools/README.md Normal file
View File

View File

@@ -0,0 +1,32 @@
[project]
name = "crewai-devtools"
dynamic = ["version"]
description = "Development tools for version bumping and git automation"
readme = "README.md"
authors = [
{ name = "Greyson R. LaLonde", email = "greyson@crewai.com" },
]
requires-python = ">=3.10, <3.14"
classifiers = ["Private :: Do Not Upload"]
private = true
dependencies = [
"click>=8.3.0",
"toml>=0.10.2",
"openai>=1.0.0",
"python-dotenv>=1.1.1",
"pygithub>=1.59.1",
"rich>=13.9.4",
]
[project.scripts]
bump-version = "crewai_devtools.cli:bump"
tag = "crewai_devtools.cli:tag"
devtools = "crewai_devtools.cli:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.version]
path = "src/crewai_devtools/__init__.py"

View File

@@ -0,0 +1,3 @@
"""CrewAI development tools."""
__version__ = "1.0.0a3"

View File

@@ -0,0 +1,706 @@
"""Development tools for version bumping and git automation."""
import os
from pathlib import Path
import subprocess
import sys
import click
from dotenv import load_dotenv
from github import Github
from openai import OpenAI
from rich.console import Console
from rich.markdown import Markdown
from rich.panel import Panel
from rich.prompt import Confirm
from crewai_devtools.prompts import RELEASE_NOTES_PROMPT
load_dotenv()
console = Console()
def run_command(cmd: list[str], cwd: Path | None = None) -> str:
"""Run a shell command and return output.
Args:
cmd: Command to run as list of strings.
cwd: Working directory for command.
Returns:
Command output as string.
Raises:
subprocess.CalledProcessError: If command fails.
"""
result = subprocess.run( # noqa: S603
cmd,
cwd=cwd,
capture_output=True,
text=True,
check=True,
)
return result.stdout.strip()
def check_gh_installed() -> None:
"""Check if GitHub CLI is installed and offer to install it.
Raises:
SystemExit: If gh is not installed and user declines installation.
"""
try:
run_command(["gh", "--version"])
except (subprocess.CalledProcessError, FileNotFoundError):
console.print("[yellow]Warning:[/yellow] GitHub CLI (gh) is not installed")
import platform
if platform.system() == "Darwin":
try:
run_command(["brew", "--version"])
from rich.prompt import Confirm
if Confirm.ask(
"\n[bold]Would you like to install GitHub CLI via Homebrew?[/bold]",
default=True,
):
try:
console.print("\nInstalling GitHub CLI...")
subprocess.run(
["brew", "install", "gh"], # noqa: S607
check=True,
)
console.print(
"[green]✓[/green] GitHub CLI installed successfully"
)
console.print("\nAuthenticating with GitHub...")
subprocess.run(
["gh", "auth", "login"], # noqa: S607
check=True,
)
console.print("[green]✓[/green] GitHub authentication complete")
return
except subprocess.CalledProcessError as e:
console.print(
f"[red]Error:[/red] Failed to install or authenticate gh: {e}"
)
console.print(
"\nYou can try running [bold]gh auth login[/bold] manually"
)
except (subprocess.CalledProcessError, FileNotFoundError):
pass
console.print("\nPlease install GitHub CLI from: https://cli.github.com/")
console.print("\nInstallation instructions:")
console.print(" macOS: brew install gh")
console.print(
" Linux: https://github.com/cli/cli/blob/trunk/docs/install_linux.md"
)
console.print(" Windows: winget install --id GitHub.cli")
sys.exit(1)
def check_git_clean() -> None:
"""Check if git working directory is clean.
Raises:
SystemExit: If there are uncommitted changes.
"""
try:
status = run_command(["git", "status", "--porcelain"])
if status:
console.print(
"[red]Error:[/red] You have uncommitted changes. Please commit or stash them first."
)
sys.exit(1)
except subprocess.CalledProcessError as e:
console.print(f"[red]Error checking git status:[/red] {e}")
sys.exit(1)
def update_version_in_file(file_path: Path, new_version: str) -> bool:
"""Update __version__ attribute in a Python file.
Args:
file_path: Path to Python file.
new_version: New version string.
Returns:
True if version was updated, False otherwise.
"""
if not file_path.exists():
return False
content = file_path.read_text()
lines = content.splitlines()
updated = False
for i, line in enumerate(lines):
if line.strip().startswith("__version__"):
lines[i] = f'__version__ = "{new_version}"'
updated = True
break
if updated:
file_path.write_text("\n".join(lines) + "\n")
return True
return False
def update_pyproject_dependencies(file_path: Path, new_version: str) -> bool:
"""Update workspace dependency versions in pyproject.toml.
Args:
file_path: Path to pyproject.toml file.
new_version: New version string.
Returns:
True if any dependencies were updated, False otherwise.
"""
if not file_path.exists():
return False
content = file_path.read_text()
lines = content.splitlines()
updated = False
workspace_packages = ["crewai", "crewai-tools", "crewai-devtools"]
for i, line in enumerate(lines):
for pkg in workspace_packages:
if f"{pkg}==" in line:
stripped = line.lstrip()
indent = line[: len(line) - len(stripped)]
if '"' in line:
lines[i] = f'{indent}"{pkg}=={new_version}",'
elif "'" in line:
lines[i] = f"{indent}'{pkg}=={new_version}',"
else:
lines[i] = f"{indent}{pkg}=={new_version},"
updated = True
if updated:
file_path.write_text("\n".join(lines) + "\n")
return True
return False
def find_version_files(base_path: Path) -> list[Path]:
"""Find all __init__.py files that contain __version__.
Args:
base_path: Base directory to search in.
Returns:
List of paths to files containing __version__.
"""
return [
init_file
for init_file in base_path.rglob("__init__.py")
if "__version__" in init_file.read_text()
]
def get_packages(lib_dir: Path) -> list[Path]:
"""Get all packages from lib/ directory.
Args:
lib_dir: Path to lib/ directory.
Returns:
List of package directory paths.
Raises:
SystemExit: If lib/ doesn't exist or no packages found.
"""
if not lib_dir.exists():
console.print("[red]Error:[/red] lib/ directory not found")
sys.exit(1)
packages = [p for p in lib_dir.iterdir() if p.is_dir()]
if not packages:
console.print("[red]Error:[/red] No packages found in lib/")
sys.exit(1)
return packages
def get_commits_from_last_tag(tag_name: str, version: str) -> tuple[str, str]:
"""Get commits from the last tag, excluding current version.
Args:
tag_name: Current tag name (e.g., "v1.0.0").
version: Current version (e.g., "1.0.0").
Returns:
Tuple of (commit_range, commits) where commits is newline-separated.
"""
try:
all_tags = run_command(["git", "tag", "--sort=-version:refname"]).split("\n")
prev_tags = [t for t in all_tags if t and t != tag_name and t != f"v{version}"]
if prev_tags:
last_tag = prev_tags[0]
commit_range = f"{last_tag}..HEAD"
commits = run_command(["git", "log", commit_range, "--pretty=format:%s"])
else:
commit_range = "HEAD"
commits = run_command(["git", "log", "--pretty=format:%s"])
except subprocess.CalledProcessError:
commit_range = "HEAD"
commits = run_command(["git", "log", "--pretty=format:%s"])
return commit_range, commits
def get_github_contributors(commit_range: str) -> list[str]:
"""Get GitHub usernames from commit range using GitHub API.
Args:
commit_range: Git commit range (e.g., "abc123..HEAD").
Returns:
List of GitHub usernames sorted alphabetically.
"""
try:
# Get GitHub token from gh CLI
try:
gh_token = run_command(["gh", "auth", "token"])
except subprocess.CalledProcessError:
gh_token = None
g = Github(login_or_token=gh_token) if gh_token else Github()
github_repo = g.get_repo("crewAIInc/crewAI")
commit_shas = run_command(
["git", "log", commit_range, "--pretty=format:%H"]
).split("\n")
contributors = set()
for sha in commit_shas:
if not sha:
continue
try:
commit = github_repo.get_commit(sha)
if commit.author and commit.author.login:
contributors.add(commit.author.login)
if commit.commit.message:
for line in commit.commit.message.split("\n"):
if line.strip().startswith("Co-authored-by:"):
if "<" in line and ">" in line:
email_part = line.split("<")[1].split(">")[0]
if "@users.noreply.github.com" in email_part:
username = email_part.split("+")[-1].split("@")[0]
contributors.add(username)
except Exception: # noqa: S112
continue
return sorted(list(contributors))
except Exception as e:
console.print(
f"[yellow]Warning:[/yellow] Could not fetch GitHub contributors: {e}"
)
return []
@click.group()
def cli() -> None:
"""Development tools for version bumping and git automation."""
@click.command()
@click.argument("version")
@click.option(
"--dry-run", is_flag=True, help="Show what would be done without making changes"
)
@click.option("--no-push", is_flag=True, help="Don't push changes to remote")
def bump(version: str, dry_run: bool, no_push: bool) -> None:
"""Bump version across all packages in lib/.
Args:
version: New version to set (e.g., 1.0.0, 1.0.0a1).
dry_run: Show what would be done without making changes.
no_push: Don't push changes to remote.
"""
try:
# Check prerequisites
check_gh_installed()
cwd = Path.cwd()
lib_dir = cwd / "lib"
if not dry_run:
console.print("Checking git status...")
check_git_clean()
console.print("[green]✓[/green] Working directory is clean")
else:
console.print("[dim][DRY RUN][/dim] Would check git status")
packages = get_packages(lib_dir)
console.print(f"\nFound {len(packages)} package(s) to update:")
for pkg in packages:
console.print(f" - {pkg.name}")
console.print(f"\nUpdating version to {version}...")
updated_files = []
for pkg in packages:
version_files = find_version_files(pkg)
for vfile in version_files:
if dry_run:
console.print(
f"[dim][DRY RUN][/dim] Would update: {vfile.relative_to(cwd)}"
)
else:
if update_version_in_file(vfile, version):
console.print(
f"[green]✓[/green] Updated: {vfile.relative_to(cwd)}"
)
updated_files.append(vfile)
else:
console.print(
f"[red]✗[/red] Failed to update: {vfile.relative_to(cwd)}"
)
pyproject = pkg / "pyproject.toml"
if pyproject.exists():
if dry_run:
console.print(
f"[dim][DRY RUN][/dim] Would update dependencies in: {pyproject.relative_to(cwd)}"
)
else:
if update_pyproject_dependencies(pyproject, version):
console.print(
f"[green]✓[/green] Updated dependencies in: {pyproject.relative_to(cwd)}"
)
updated_files.append(pyproject)
if not updated_files and not dry_run:
console.print(
"[yellow]Warning:[/yellow] No __version__ attributes found to update"
)
if not dry_run:
console.print("\nSyncing workspace...")
run_command(["uv", "sync"])
console.print("[green]✓[/green] Workspace synced")
else:
console.print("[dim][DRY RUN][/dim] Would run: uv sync")
branch_name = f"feat/bump-version-{version}"
if not dry_run:
console.print(f"\nCreating branch {branch_name}...")
run_command(["git", "checkout", "-b", branch_name])
console.print("[green]✓[/green] Branch created")
console.print("\nCommitting changes...")
run_command(["git", "add", "."])
run_command(["git", "commit", "-m", f"feat: bump versions to {version}"])
console.print("[green]✓[/green] Changes committed")
if not no_push:
console.print("\nPushing branch...")
run_command(["git", "push", "-u", "origin", branch_name])
console.print("[green]✓[/green] Branch pushed")
else:
console.print(f"[dim][DRY RUN][/dim] Would create branch: {branch_name}")
console.print(
f"[dim][DRY RUN][/dim] Would commit: feat: bump versions to {version}"
)
if not no_push:
console.print(f"[dim][DRY RUN][/dim] Would push branch: {branch_name}")
if not dry_run and not no_push:
console.print("\nCreating pull request...")
run_command(
[
"gh",
"pr",
"create",
"--base",
"release/v1.0.0",
"--title",
f"feat: bump versions to {version}",
"--body",
"",
]
)
console.print("[green]✓[/green] Pull request created")
elif dry_run:
console.print(
f"[dim][DRY RUN][/dim] Would create PR: feat: bump versions to {version}"
)
else:
console.print("\nSkipping PR creation (--no-push flag set)")
console.print(f"\n[green]✓[/green] Version bump to {version} complete!")
except subprocess.CalledProcessError as e:
console.print(f"[red]Error running command:[/red] {e}")
if e.stderr:
console.print(e.stderr)
sys.exit(1)
except Exception as e:
console.print(f"[red]Error:[/red] {e}")
sys.exit(1)
@click.command()
@click.option(
"--dry-run", is_flag=True, help="Show what would be done without making changes"
)
@click.option("--no-edit", is_flag=True, help="Skip editing release notes")
def tag(dry_run: bool, no_edit: bool) -> None:
"""Create and push a version tag on main branch.
Run this after the version bump PR has been merged.
Automatically detects version from __version__ in packages.
Args:
dry_run: Show what would be done without making changes.
no_edit: Skip editing release notes.
"""
try:
cwd = Path.cwd()
lib_dir = cwd / "lib"
packages = get_packages(lib_dir)
with console.status("[cyan]Validating package versions..."):
versions = {}
for pkg in packages:
version_files = find_version_files(pkg)
for vfile in version_files:
content = vfile.read_text()
for line in content.splitlines():
if line.strip().startswith("__version__"):
ver = line.split("=")[1].strip().strip('"').strip("'")
versions[vfile.relative_to(cwd)] = ver
break
if not versions:
console.print(
"[red]✗[/red] Validated package versions: Could not find __version__ in any package"
)
sys.exit(1)
unique_versions = set(versions.values())
if len(unique_versions) > 1:
console.print(
"[red]✗[/red] Validated package versions: Version mismatch detected"
)
for file, ver in versions.items():
console.print(f" {file}: {ver}")
sys.exit(1)
version = unique_versions.pop()
console.print(f"[green]✓[/green] Validated packages @ [bold]{version}[/bold]")
tag_name = version
if not dry_run:
with console.status("[cyan]Checking out release/v1.0.0 branch..."):
try:
run_command(["git", "checkout", "release/v1.0.0"])
except subprocess.CalledProcessError as e:
console.print(
f"[red]✗[/red] Checked out release/v1.0.0 branch: {e}"
)
sys.exit(1)
console.print("[green]✓[/green] On release/v1.0.0 branch")
with console.status("[cyan]Pulling latest changes..."):
try:
run_command(["git", "pull"])
except subprocess.CalledProcessError as e:
console.print(f"[red]✗[/red] Pulled latest changes: {e}")
sys.exit(1)
console.print("[green]✓[/green] release/v1.0.0 branch up to date")
release_notes = f"Release {version}"
commits = ""
with console.status("[cyan]Generating release notes..."):
try:
prev_bump_commit = run_command(
[
"git",
"log",
"--grep=^feat: bump versions to",
"--format=%H",
"-n",
"2",
]
)
commits_list = prev_bump_commit.strip().split("\n")
if len(commits_list) > 1:
prev_commit = commits_list[1]
commit_range = f"{prev_commit}..HEAD"
commits = run_command(
["git", "log", commit_range, "--pretty=format:%s"]
)
commit_lines = [
line
for line in commits.split("\n")
if not line.startswith("feat: bump versions to")
]
commits = "\n".join(commit_lines)
else:
commit_range, commits = get_commits_from_last_tag(tag_name, version)
except subprocess.CalledProcessError:
commit_range, commits = get_commits_from_last_tag(tag_name, version)
github_contributors = get_github_contributors(commit_range)
if commits.strip():
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
contributors_section = ""
if github_contributors:
contributors_section = f"\n\n## Contributors\n\n{', '.join([f'@{u}' for u in github_contributors])}"
prompt = RELEASE_NOTES_PROMPT.substitute(
version=version,
commits=commits,
contributors_section=contributors_section,
)
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{
"role": "system",
"content": "You are a helpful assistant that generates clear, concise release notes.",
},
{"role": "user", "content": prompt},
],
temperature=0.7,
)
release_notes = (
response.choices[0].message.content or f"Release {version}"
)
console.print("[green]✓[/green] Generated release notes")
if commits.strip():
try:
console.print()
md = Markdown(release_notes, justify="left")
console.print(
Panel(
md,
title="[bold cyan]Generated Release Notes[/bold cyan]",
border_style="cyan",
padding=(1, 2),
)
)
except Exception as e:
console.print(
f"[yellow]Warning:[/yellow] Could not generate release notes with OpenAI: {e}"
)
console.print("Using default release notes")
if not no_edit:
if Confirm.ask(
"\n[bold]Would you like to edit the release notes?[/bold]", default=True
):
edited_notes = click.edit(release_notes)
if edited_notes is not None:
release_notes = edited_notes.strip()
console.print("\n[green]✓[/green] Release notes updated")
else:
console.print("\n[green]✓[/green] Using original release notes")
else:
console.print(
"\n[green]✓[/green] Using generated release notes without editing"
)
else:
console.print(
"\n[green]✓[/green] Using generated release notes without editing"
)
if not dry_run:
with console.status(f"[cyan]Creating tag {tag_name}..."):
try:
run_command(["git", "tag", "-a", tag_name, "-m", release_notes])
except subprocess.CalledProcessError as e:
console.print(f"[red]✗[/red] Created tag {tag_name}: {e}")
sys.exit(1)
console.print(f"[green]✓[/green] Created tag {tag_name}")
with console.status(f"[cyan]Pushing tag {tag_name}..."):
try:
run_command(["git", "push", "origin", tag_name])
except subprocess.CalledProcessError as e:
console.print(f"[red]✗[/red] Pushed tag {tag_name}: {e}")
sys.exit(1)
console.print(f"[green]✓[/green] Pushed tag {tag_name}")
is_prerelease = any(
indicator in version.lower()
for indicator in ["a", "b", "rc", "alpha", "beta", "dev"]
)
with console.status("[cyan]Creating GitHub Release..."):
try:
gh_cmd = [
"gh",
"release",
"create",
tag_name,
"--title",
tag_name,
"--notes",
release_notes,
]
if is_prerelease:
gh_cmd.append("--prerelease")
run_command(gh_cmd)
except subprocess.CalledProcessError as e:
console.print(f"[red]✗[/red] Created GitHub Release: {e}")
sys.exit(1)
release_type = "prerelease" if is_prerelease else "release"
console.print(
f"[green]✓[/green] Created GitHub {release_type} for {tag_name}"
)
console.print(
f"\n[green]✓[/green] Packages @ [bold]{version}[/bold] tagged successfully!"
)
except subprocess.CalledProcessError as e:
console.print(f"[red]Error running command:[/red] {e}")
if e.stderr:
console.print(e.stderr)
sys.exit(1)
except Exception as e:
console.print(f"[red]Error:[/red] {e}")
sys.exit(1)
cli.add_command(bump)
cli.add_command(tag)
def main() -> None:
"""Entry point for the CLI."""
cli()
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,45 @@
"""Prompt templates for AI-generated content."""
from string import Template
RELEASE_NOTES_PROMPT = Template(
"""Generate concise release notes for version $version based on these commits:
$commits
The commits follow the Conventional Commits standard (feat:, fix:, chore:, etc.).
Use this exact template format:
## What's Changed
### Features
- [List feat: commits here, using imperative mood like "Add X", "Implement Y"]
### Bug Fixes
- [List fix: commits here, using imperative mood like "Fix X", "Resolve Y"]
### Documentation
- [List docs: commits here, using imperative mood like "Update X", "Add Y"]
### Performance
- [List perf: commits here, using imperative mood like "Improve X", "Optimize Y"]
### Refactoring
- [List refactor: commits here, using imperative mood like "Refactor X", "Simplify Y"]
### Breaking Changes
- [List commits with BREAKING CHANGE in footer or ! after type, using imperative mood]$contributors_section
Instructions:
- Parse conventional commit format (type: description or type(scope): description)
- Only include sections that have relevant changes from the commits
- Skip chore:, ci:, test:, and style: commits unless significant
- Convert commit messages to imperative mood if needed (e.g., "adds""Add")
- Be concise but informative
- Focus on user-facing changes
- Use the exact Contributors list provided above, do not modify it
Keep it professional and clear."""
)

View File

@@ -122,9 +122,11 @@ python_functions = "test_*"
members = [
"lib/crewai",
"lib/crewai-tools",
"lib/devtools",
]
[tool.uv.sources]
crewai = { workspace = true }
crewai-tools = { workspace = true }
crewai-devtools = { workspace = true }

363
uv.lock generated
View File

@@ -31,6 +31,7 @@ resolution-markers = [
[manifest]
members = [
"crewai",
"crewai-devtools",
"crewai-tools",
]
@@ -332,14 +333,14 @@ wheels = [
[[package]]
name = "authlib"
version = "1.6.4"
version = "1.6.5"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "cryptography" },
]
sdist = { url = "https://files.pythonhosted.org/packages/ce/bb/73a1f1c64ee527877f64122422dafe5b87a846ccf4ac933fe21bcbb8fee8/authlib-1.6.4.tar.gz", hash = "sha256:104b0442a43061dc8bc23b133d1d06a2b0a9c2e3e33f34c4338929e816287649", size = 164046, upload-time = "2025-09-17T09:59:23.897Z" }
sdist = { url = "https://files.pythonhosted.org/packages/cd/3f/1d3bbd0bf23bdd99276d4def22f29c27a914067b4cf66f753ff9b8bbd0f3/authlib-1.6.5.tar.gz", hash = "sha256:6aaf9c79b7cc96c900f0b284061691c5d4e61221640a948fe690b556a6d6d10b", size = 164553, upload-time = "2025-10-02T13:36:09.489Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/0e/aa/91355b5f539caf1b94f0e66ff1e4ee39373b757fce08204981f7829ede51/authlib-1.6.4-py2.py3-none-any.whl", hash = "sha256:39313d2a2caac3ecf6d8f95fbebdfd30ae6ea6ae6a6db794d976405fdd9aa796", size = 243076, upload-time = "2025-09-17T09:59:22.259Z" },
{ url = "https://files.pythonhosted.org/packages/f8/aa/5082412d1ee302e9e7d80b6949bc4d2a8fa1149aaab610c5fc24709605d6/authlib-1.6.5-py2.py3-none-any.whl", hash = "sha256:3e0e0507807f842b02175507bdee8957a1d5707fd4afb17c32fb43fee90b6e3a", size = 243608, upload-time = "2025-10-02T13:36:07.637Z" },
]
[[package]]
@@ -475,21 +476,21 @@ wheels = [
[[package]]
name = "boto3"
version = "1.40.42"
version = "1.40.45"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "botocore" },
{ name = "jmespath" },
{ name = "s3transfer" },
]
sdist = { url = "https://files.pythonhosted.org/packages/97/41/291ea7af352ca7a89619e09e6927d9b7eac415857abd838be88d7f82cd8f/boto3-1.40.42.tar.gz", hash = "sha256:dbd8afc41f0cc759d0115c673e50bd1395b992a5c14627b56163cf35b86673c6", size = 111601, upload-time = "2025-09-30T19:28:15.254Z" }
sdist = { url = "https://files.pythonhosted.org/packages/19/22/97605e64b8661a13f1dd9412c7989b3d78673bc79d91ca61d8237e90b503/boto3-1.40.45.tar.gz", hash = "sha256:e8d794dc1f01729d93dc188c90cf63cd0d32df8818a82ac46e641f6ffcea615e", size = 111561, upload-time = "2025-10-03T19:32:12.859Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/58/b6/c873130aa586ed2df48d0d4a44e897a24c5f2ff800f108e8d973d7a9f19c/boto3-1.40.42-py3-none-any.whl", hash = "sha256:71ea8ca488e8b0d0a16b1b32816f8bab9aa66757c4122caf137ae2dbc95d7001", size = 139344, upload-time = "2025-09-30T19:28:13.376Z" },
{ url = "https://files.pythonhosted.org/packages/8e/db/7d3c27f530c2b354d546ad7fb94505be8b78a5ecabe34c6a1f9a9d6be03e/boto3-1.40.45-py3-none-any.whl", hash = "sha256:5b145752d20f29908e3cb8c823bee31c77e6bcf18787e570f36bbc545cc779ed", size = 139345, upload-time = "2025-10-03T19:32:11.145Z" },
]
[[package]]
name = "botocore"
version = "1.40.42"
version = "1.40.45"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "jmespath" },
@@ -497,9 +498,9 @@ dependencies = [
{ name = "urllib3", version = "1.26.20", source = { registry = "https://pypi.org/simple" }, marker = "platform_python_implementation == 'PyPy'" },
{ name = "urllib3", version = "2.5.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_python_implementation != 'PyPy'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/d0/64/746b90bebf904e8d94fc740d8e0dabad1bf644c675fdb2e85ffd852665de/botocore-1.40.42.tar.gz", hash = "sha256:41bea751685fb2a51b4fc6be329a0cd0a285dbeb0686a21099e87ef146664bc0", size = 14384122, upload-time = "2025-09-30T19:28:05.458Z" }
sdist = { url = "https://files.pythonhosted.org/packages/0e/19/6c85d5523dd05e060d182cd0e7ce82df60ab738d18b1c8ee2202e4ca02b9/botocore-1.40.45.tar.gz", hash = "sha256:cf8b743527a2a7e108702d24d2f617e93c6dc7ae5eb09aadbe866f15481059df", size = 14395172, upload-time = "2025-10-03T19:32:03.052Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/8a/74/c0b454c9ab1b75c70d78068cdb220cb835b6b7eda51243541e125f816c59/botocore-1.40.42-py3-none-any.whl", hash = "sha256:2682a4120be21234036003a806206b6b3963ba53a495d0a57d40d67fce4497a9", size = 14054256, upload-time = "2025-09-30T19:28:02.361Z" },
{ url = "https://files.pythonhosted.org/packages/af/06/df47e2ecb74bd184c9d056666afd3db011a649eaca663337835a6dd5aee6/botocore-1.40.45-py3-none-any.whl", hash = "sha256:9abf473d8372ade8442c0d4634a9decb89c854d7862ffd5500574eb63ab8f240", size = 14063670, upload-time = "2025-10-03T19:31:58.999Z" },
]
[[package]]
@@ -993,7 +994,6 @@ dependencies = [
{ name = "json-repair" },
{ name = "json5" },
{ name = "jsonref" },
{ name = "litellm" },
{ name = "openai" },
{ name = "openpyxl" },
{ name = "opentelemetry-api" },
@@ -1026,6 +1026,9 @@ docling = [
embeddings = [
{ name = "tiktoken" },
]
litellm = [
{ name = "litellm" },
]
mem0 = [
{ name = "mem0ai" },
]
@@ -1066,7 +1069,7 @@ requires-dist = [
{ name = "json-repair", specifier = "==0.25.2" },
{ name = "json5", specifier = ">=0.10.0" },
{ name = "jsonref", specifier = ">=1.1.0" },
{ name = "litellm", specifier = "==1.74.9" },
{ name = "litellm", marker = "extra == 'litellm'", specifier = ">=1.74.9" },
{ name = "mem0ai", marker = "extra == 'mem0'", specifier = ">=0.1.94" },
{ name = "openai", specifier = ">=1.13.3" },
{ name = "openpyxl", specifier = ">=3.1.5" },
@@ -1092,7 +1095,29 @@ requires-dist = [
{ name = "uv", specifier = ">=0.4.25" },
{ name = "voyageai", marker = "extra == 'voyageai'", specifier = ">=0.3.5" },
]
provides-extras = ["aisuite", "aws", "docling", "embeddings", "mem0", "openpyxl", "pandas", "pdfplumber", "qdrant", "tools", "voyageai", "watson"]
provides-extras = ["aisuite", "aws", "docling", "embeddings", "litellm", "mem0", "openpyxl", "pandas", "pdfplumber", "qdrant", "tools", "voyageai", "watson"]
[[package]]
name = "crewai-devtools"
source = { editable = "lib/devtools" }
dependencies = [
{ name = "click" },
{ name = "openai" },
{ name = "pygithub" },
{ name = "python-dotenv" },
{ name = "rich" },
{ name = "toml" },
]
[package.metadata]
requires-dist = [
{ name = "click", specifier = ">=8.3.0" },
{ name = "openai", specifier = ">=1.0.0" },
{ name = "pygithub", specifier = ">=1.59.1" },
{ name = "python-dotenv", specifier = ">=1.1.1" },
{ name = "rich", specifier = ">=13.9.4" },
{ name = "toml", specifier = ">=0.10.2" },
]
[[package]]
name = "crewai-tools"
@@ -1193,7 +1218,7 @@ scrapfly-sdk = [
]
selenium = [
{ name = "selenium", version = "4.32.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_python_implementation == 'PyPy'" },
{ name = "selenium", version = "4.35.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_python_implementation != 'PyPy'" },
{ name = "selenium", version = "4.36.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_python_implementation != 'PyPy'" },
]
serpapi = [
{ name = "serpapi" },
@@ -1477,7 +1502,7 @@ wheels = [
[[package]]
name = "docling"
version = "2.55.0"
version = "2.55.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "accelerate" },
@@ -1509,9 +1534,9 @@ dependencies = [
{ name = "tqdm" },
{ name = "typer" },
]
sdist = { url = "https://files.pythonhosted.org/packages/d1/9c/124ef8200aa4e6a4ced048dacfad965c203a55281bf3510dc1ea7f677f01/docling-2.55.0.tar.gz", hash = "sha256:bfc9cd874804676a48e9bbe4e6dfbae38aec782f816a89eeb6fc7ee17288bb62", size = 211930, upload-time = "2025-09-30T14:53:36.65Z" }
sdist = { url = "https://files.pythonhosted.org/packages/81/8c/baa24f0d64a36a87c66eef91dcf169ac346776739c4fb8065e59c31b1291/docling-2.55.1.tar.gz", hash = "sha256:e60a5612b2b993efd8a0b5464aff1b9868e3cab5c2e239c863709e6b780f3c57", size = 212483, upload-time = "2025-10-03T10:27:46.907Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/88/91/655c4ad3f8578ce3ff9a1b6385fc076b13cde213f6fd48122181df8472f7/docling-2.55.0-py3-none-any.whl", hash = "sha256:d06ac604981fd2f485d84f0d5a676d1fcdb23623cbf17ad98fcee2c2b7c20a01", size = 238829, upload-time = "2025-09-30T14:53:34.81Z" },
{ url = "https://files.pythonhosted.org/packages/e2/a3/2a2801cb909981b57326da2a9736cd11514d0393dc37771e200615b8b44f/docling-2.55.1-py3-none-any.whl", hash = "sha256:895aba282c6cca9ca1f6b9ff57c2002e4f581f722c608aa671d68382d4d61e07", size = 239394, upload-time = "2025-10-03T10:27:45.157Z" },
]
[[package]]
@@ -1710,7 +1735,7 @@ name = "exceptiongroup"
version = "1.3.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "typing-extensions", marker = "python_full_version < '3.13'" },
{ name = "typing-extensions", marker = "python_full_version < '3.11'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" }
wheels = [
@@ -1783,6 +1808,58 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/19/38/447aabefddda026c3b65b3b9f1fec48ab78b648441e3e530bf8d78b26bdf/fastembed-0.7.3-py3-none-any.whl", hash = "sha256:a377b57843abd773318042960be39f1aef29827530acb98b035a554742a85cdf", size = 105322, upload-time = "2025-08-29T11:19:45.4Z" },
]
[[package]]
name = "fastuuid"
version = "0.13.5"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/15/80/3c16a1edad2e6cd82fbd15ac998cc1b881f478bf1f80ca717d941c441874/fastuuid-0.13.5.tar.gz", hash = "sha256:d4976821ab424d41542e1ea39bc828a9d454c3f8a04067c06fca123c5b95a1a1", size = 18255, upload-time = "2025-09-26T09:05:38.281Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/f0/17/f8ed7f707c1bf994ff4e38f163b367cc2060f13a8aa60b03a3c821daaf0f/fastuuid-0.13.5-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:b9edf8ee30718aee787cdd2e9e1ff3d4a3ec6ddb32fba0a23fa04956df69ab07", size = 494134, upload-time = "2025-09-26T09:14:35.852Z" },
{ url = "https://files.pythonhosted.org/packages/18/de/b03e4a083a307fb5a2c8afcfbcc6ab45578fba7996f69f329e35d18e0e67/fastuuid-0.13.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:f67ea1e25c5e782f7fb5aaa5208f157d950401dd9321ce56bcc6d4dc3d72ed60", size = 252832, upload-time = "2025-09-26T09:10:21.321Z" },
{ url = "https://files.pythonhosted.org/packages/62/65/3a8be5ce86e2a1eb3947be32512b62fcb0a360a998ba2405cd3e54e54f04/fastuuid-0.13.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9ff3fc87e1f19603dd53c38f42c2ea8d5d5462554deab69e9cf1800574e4756c", size = 244309, upload-time = "2025-09-26T09:09:08.333Z" },
{ url = "https://files.pythonhosted.org/packages/ab/eb/7b9c98d25a810fcc5f4a3e10e1e051c18e10cdad4527242e18c998fab4b1/fastuuid-0.13.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6e5337fa7698dc52bc724da7e9239e93c5b24a09f6904b8660dfb8c41ce3dee", size = 271629, upload-time = "2025-09-26T09:13:37.525Z" },
{ url = "https://files.pythonhosted.org/packages/c0/37/6331f626852c2aeea8d666af049b1337e273d11e700a26333c402d0e7a94/fastuuid-0.13.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9db596023c10dabb12489a88c51b75297c3a2478cb2be645e06905934e7b9fc", size = 272312, upload-time = "2025-09-26T09:13:05.252Z" },
{ url = "https://files.pythonhosted.org/packages/ad/d3/e4d3f3c2968689e17d5c73bd0da808d1673329d5ff3b4065db03d58f36e3/fastuuid-0.13.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:191ff6192fe53c5fc9d4d241ee1156b30a7ed6f1677b1cc2423e7ecdbc26222b", size = 291049, upload-time = "2025-09-26T09:13:31.817Z" },
{ url = "https://files.pythonhosted.org/packages/4f/4e/f27539c9b15b1947ba50907b1a83bbe905363770472c0a1c3175fb2a0ebf/fastuuid-0.13.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:348ce9f296dda701ba46d8dceeff309f90dbc75dd85080bbed2b299aa908890a", size = 453074, upload-time = "2025-09-26T09:11:42.674Z" },
{ url = "https://files.pythonhosted.org/packages/6b/5c/57cba66a8f04cd26d3118b21393a0dda221cb82ac992b9fe153b69a22a0a/fastuuid-0.13.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:46954fb644995d7fc8bbd710fbd4c65cedaa48c921c86fdbafef0229168a8c96", size = 468531, upload-time = "2025-09-26T09:10:30.626Z" },
{ url = "https://files.pythonhosted.org/packages/dc/90/dbc19dc18282b3c2264554c595901b520224efe65907c5ff5595e688ab28/fastuuid-0.13.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22da0f66041e1c10c7d465b495cc6cd8e17e080dda34b4bd5ff5240b860fbb82", size = 444933, upload-time = "2025-09-26T09:09:33.405Z" },
{ url = "https://files.pythonhosted.org/packages/5b/03/4652cc314fc5163db12bc451512b087e5b5e4f36ba513f111fd5a5ff1c07/fastuuid-0.13.5-cp310-cp310-win32.whl", hash = "sha256:3e6b548f06c1ed7bad951a17a09eef69d6f24eb2b874cb4833e26b886d82990f", size = 144981, upload-time = "2025-09-26T09:08:14.812Z" },
{ url = "https://files.pythonhosted.org/packages/8f/0b/85b3a68418911923acb8955219ab33ac728eaa9337ef0135b9e5c9d1ed9d/fastuuid-0.13.5-cp310-cp310-win_amd64.whl", hash = "sha256:c82838e52189d16b1307631179cb2cd37778dd8f4ddc00e9ce3c26f920b3b2f7", size = 150741, upload-time = "2025-09-26T09:09:00.161Z" },
{ url = "https://files.pythonhosted.org/packages/04/ab/9351bfc04ff2144115758233130b5469993d3d379323903a4634cb9c78c1/fastuuid-0.13.5-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:c122558ca4b5487e2bd0863467e4ccfe636afd1274803741487d48f2e32ea0e1", size = 493910, upload-time = "2025-09-26T09:12:36.995Z" },
{ url = "https://files.pythonhosted.org/packages/b7/ab/84fac529cc12a03d49595e70ac459380f7cb12c70f0fe401781b276f9e94/fastuuid-0.13.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d7abd42a03a17a681abddd19aa4d44ca2747138cf8a48373b395cf1341a10de2", size = 252621, upload-time = "2025-09-26T09:12:22.222Z" },
{ url = "https://files.pythonhosted.org/packages/7f/9d/f4c734d7b74a04ca695781c58a1376f07b206fe2849e58e7778d476a0e94/fastuuid-0.13.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2705cf7c2d6f7c03053404b75a4c44f872a73f6f9d5ea34f1dc6bba400c4a97c", size = 244269, upload-time = "2025-09-26T09:08:31.921Z" },
{ url = "https://files.pythonhosted.org/packages/5b/da/b42b7eb84523d69cfe9dac82950e105061c8d59f4d4d2cc3e170dbd20937/fastuuid-0.13.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d220a056fcbad25932c1f25304261198612f271f4d150b2a84e81adb877daf7", size = 271528, upload-time = "2025-09-26T09:12:42.718Z" },
{ url = "https://files.pythonhosted.org/packages/1b/45/6eee36929119e9544b0906fd6591e685d682e4b51cfad4c25d96ccf04009/fastuuid-0.13.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f29f93b5a0c5f5579f97f77d5319e9bfefd61d8678ec59d850201544faf33bf", size = 272168, upload-time = "2025-09-26T09:07:04.238Z" },
{ url = "https://files.pythonhosted.org/packages/ce/ac/75b70f13515e12194a25b0459dd8a8a33de4ab0a92142f0776d21e41ca84/fastuuid-0.13.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:399d86623fb806151b1feb9fdd818ebfc1d50387199a35f7264f98dfc1540af5", size = 290948, upload-time = "2025-09-26T09:07:53.433Z" },
{ url = "https://files.pythonhosted.org/packages/76/30/1801326a5b433aafc04eae906e6b005e8a3d1120fd996409fe88124edb06/fastuuid-0.13.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:689e8795a1edd573b2c9a455024e4edf605a9690339bba29709857f7180894ea", size = 452932, upload-time = "2025-09-26T09:09:28.017Z" },
{ url = "https://files.pythonhosted.org/packages/61/2a/080b6b2ac4ef2ead54a7463ae4162d66a52867bbd4447ad5354427b82ae2/fastuuid-0.13.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:25e82c4a1734da168b36f7308e397afbe9c9b353799a9c69563a605f11dd4641", size = 468384, upload-time = "2025-09-26T09:08:14.32Z" },
{ url = "https://files.pythonhosted.org/packages/b6/d3/4a3ffcaf8d874f7f208dad7e98ded7c5359b6599073960e3aa0530ca6139/fastuuid-0.13.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f62299e3cca69aad6a6fb37e26e45055587954d498ad98903fea24382377ea0e", size = 444815, upload-time = "2025-09-26T09:06:38.691Z" },
{ url = "https://files.pythonhosted.org/packages/9d/a0/08dd8663f7bff3e9c0b2416708b01d1fb65f52bcd4bce18760f77c4735fd/fastuuid-0.13.5-cp311-cp311-win32.whl", hash = "sha256:68227f2230381b89fb1ad362ca6e433de85c6c11c36312b41757cad47b8a8e32", size = 144897, upload-time = "2025-09-26T09:14:53.695Z" },
{ url = "https://files.pythonhosted.org/packages/9e/e2/2c2a37dcc56e2323c6214c38c8faac22f9d03d98c481f8a40843e0b9526a/fastuuid-0.13.5-cp311-cp311-win_amd64.whl", hash = "sha256:4a32306982bd031cb20d5d1a726b7b958a55babebd2300ce6c8e352d3496e931", size = 150523, upload-time = "2025-09-26T09:12:24.031Z" },
{ url = "https://files.pythonhosted.org/packages/21/36/434f137c5970cac19e57834e1f7680e85301619d49891618c00666700c61/fastuuid-0.13.5-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:35fe8045e866bc6846f8de6fa05acb1de0c32478048484a995e96d31e21dff2a", size = 494638, upload-time = "2025-09-26T09:14:58.695Z" },
{ url = "https://files.pythonhosted.org/packages/ca/3c/083de2ac007b2b305523b9c006dba5051e5afd87a626ef1a39f76e2c6b82/fastuuid-0.13.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:02a460333f52d731a006d18a52ef6fcb2d295a1f5b1a5938d30744191b2f77b7", size = 253138, upload-time = "2025-09-26T09:13:33.283Z" },
{ url = "https://files.pythonhosted.org/packages/73/5e/630cffa1c8775db526e39e9e4c5c7db0c27be0786bb21ba82c912ae19f63/fastuuid-0.13.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:74b0e4f8c307b9f477a5d7284db4431ce53a3c1e3f4173db7a97db18564a6202", size = 244521, upload-time = "2025-09-26T09:14:40.682Z" },
{ url = "https://files.pythonhosted.org/packages/4d/51/55d78705f4fbdadf88fb40f382f508d6c7a4941ceddd7825fafebb4cc778/fastuuid-0.13.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6955a99ef455c2986f3851f4e0ccc35dec56ac1a7720f2b92e88a75d6684512e", size = 271557, upload-time = "2025-09-26T09:15:09.75Z" },
{ url = "https://files.pythonhosted.org/packages/6a/2b/1b89e90a8635e5587ccdbbeb169c590672ce7637880f2c047482a0359950/fastuuid-0.13.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f10c77b826738c1a27dcdaa92ea4dc1ec9d869748a99e1fde54f1379553d4854", size = 272334, upload-time = "2025-09-26T09:07:48.865Z" },
{ url = "https://files.pythonhosted.org/packages/0c/06/4c8207894eeb30414999e5c3f66ac039bc4003437eb4060d8a1bceb4cc6f/fastuuid-0.13.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bb25dccbeb249d16d5e664f65f17ebec05136821d5ef462c4110e3f76b86fb86", size = 290594, upload-time = "2025-09-26T09:12:54.124Z" },
{ url = "https://files.pythonhosted.org/packages/50/69/96d221931a31d77a47cc2487bdfacfb3091edfc2e7a04b1795df1aec05df/fastuuid-0.13.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a5becc646a3eeafb76ce0a6783ba190cd182e3790a8b2c78ca9db2b5e87af952", size = 452835, upload-time = "2025-09-26T09:14:00.994Z" },
{ url = "https://files.pythonhosted.org/packages/25/ef/bf045f0a47dcec96247497ef3f7a31d86ebc074330e2dccc34b8dbc0468a/fastuuid-0.13.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:69b34363752d06e9bb0dbdf02ae391ec56ac948c6f2eb00be90dad68e80774b9", size = 468225, upload-time = "2025-09-26T09:13:38.585Z" },
{ url = "https://files.pythonhosted.org/packages/30/46/4817ab5a3778927155a4bde92540d4c4fa996161ec8b8e080c8928b0984e/fastuuid-0.13.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:57d0768afcad0eab8770c9b8cf904716bd3c547e8b9a4e755ee8a673b060a3a3", size = 444907, upload-time = "2025-09-26T09:14:30.163Z" },
{ url = "https://files.pythonhosted.org/packages/80/27/ab284117ce4dc9b356a7196bdbf220510285f201d27f1f078592cdc8187b/fastuuid-0.13.5-cp312-cp312-win32.whl", hash = "sha256:8ac6c6f5129d52eaa6ef9ea4b6e2f7c69468a053f3ab8e439661186b9c06bb85", size = 145415, upload-time = "2025-09-26T09:08:59.494Z" },
{ url = "https://files.pythonhosted.org/packages/f4/0c/f970a4222773b248931819f8940800b760283216ca3dda173ed027e94bdd/fastuuid-0.13.5-cp312-cp312-win_amd64.whl", hash = "sha256:ad630e97715beefef07ec37c9c162336e500400774e2c1cbe1a0df6f80d15b9a", size = 150840, upload-time = "2025-09-26T09:13:46.115Z" },
{ url = "https://files.pythonhosted.org/packages/4f/62/74fc53f6e04a4dc5b36c34e4e679f85a4c14eec800dcdb0f2c14b5442217/fastuuid-0.13.5-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:ea17dfd35e0e91920a35d91e65e5f9c9d1985db55ac4ff2f1667a0f61189cefa", size = 494678, upload-time = "2025-09-26T09:14:30.908Z" },
{ url = "https://files.pythonhosted.org/packages/09/ba/f28b9b7045738a8bfccfb9cd6aff4b91fce2669e6b383a48b0694ee9b3ff/fastuuid-0.13.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:be6ad91e5fefbcc2a4b478858a2715e386d405834ea3ae337c3b6b95cc0e47d6", size = 253162, upload-time = "2025-09-26T09:13:35.879Z" },
{ url = "https://files.pythonhosted.org/packages/b1/18/13fac89cb4c9f0cd7e81a9154a77ecebcc95d2b03477aa91d4d50f7227ee/fastuuid-0.13.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ea6df13a306aab3e0439d58c312ff1e6f4f07f09f667579679239b4a6121f64a", size = 244546, upload-time = "2025-09-26T09:14:58.13Z" },
{ url = "https://files.pythonhosted.org/packages/04/bf/9691167804d59411cc4269841df949f6dd5e76452ab10dcfcd1dbe04c5bc/fastuuid-0.13.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2354c1996d3cf12dc2ba3752e2c4d6edc46e1a38c63893146777b1939f3062d4", size = 271528, upload-time = "2025-09-26T09:14:48.996Z" },
{ url = "https://files.pythonhosted.org/packages/a9/b5/7a75a03d1c7aa0b6d573032fcca39391f0aef7f2caabeeb45a672bc0bd3c/fastuuid-0.13.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6cf9b7469fc26d1f9b1c43ac4b192e219e85b88fdf81d71aa755a6c08c8a817", size = 272292, upload-time = "2025-09-26T09:14:42.82Z" },
{ url = "https://files.pythonhosted.org/packages/c0/db/fa0f16cbf76e6880599533af4ef01bb586949c5320612e9d884eff13e603/fastuuid-0.13.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:92ba539170097b9047551375f1ca09d8d2b4aefcc79eeae3e1c43fe49b42072e", size = 290466, upload-time = "2025-09-26T09:08:33.161Z" },
{ url = "https://files.pythonhosted.org/packages/1e/02/6b8c45bfbc8500994dd94edba7f59555f9683c4d8c9a164ae1d25d03c7c7/fastuuid-0.13.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:dbb81d05617bc2970765c1ad82db7e8716f6a2b7a361a14b83de5b9240ade448", size = 452838, upload-time = "2025-09-26T09:13:44.747Z" },
{ url = "https://files.pythonhosted.org/packages/27/12/85d95a84f265b888e8eb9f9e2b5aaf331e8be60c0a7060146364b3544b6a/fastuuid-0.13.5-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:d973bd6bf9d754d3cca874714ac0a6b22a47f239fb3d3c8687569db05aac3471", size = 468149, upload-time = "2025-09-26T09:13:18.712Z" },
{ url = "https://files.pythonhosted.org/packages/ad/da/dd9a137e9ea707e883c92470113a432233482ec9ad3e9b99c4defc4904e6/fastuuid-0.13.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e725ceef79486423f05ee657634d4b4c1ca5fb2c8a94e0708f5d6356a83f2a83", size = 444933, upload-time = "2025-09-26T09:14:09.494Z" },
{ url = "https://files.pythonhosted.org/packages/12/f4/ab363d7f4ac3989691e2dc5ae2d8391cfb0b4169e52ef7fa0ac363e936f0/fastuuid-0.13.5-cp313-cp313-win32.whl", hash = "sha256:a1c430a332ead0b2674f1ef71b17f43b8139ec5a4201182766a21f131a31e021", size = 145462, upload-time = "2025-09-26T09:14:15.105Z" },
{ url = "https://files.pythonhosted.org/packages/aa/8a/52eb77d9c294a54caa0d2d8cc9f906207aa6d916a22de963687ab6db8b86/fastuuid-0.13.5-cp313-cp313-win_amd64.whl", hash = "sha256:241fdd362fd96e6b337db62a65dd7cb3dfac20adf854573247a47510e192db6f", size = 150923, upload-time = "2025-09-26T09:13:03.923Z" },
]
[[package]]
name = "filelock"
version = "3.19.1"
@@ -1998,7 +2075,7 @@ wheels = [
[[package]]
name = "google-api-core"
version = "2.25.1"
version = "2.25.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "google-auth" },
@@ -2007,9 +2084,9 @@ dependencies = [
{ name = "protobuf" },
{ name = "requests" },
]
sdist = { url = "https://files.pythonhosted.org/packages/dc/21/e9d043e88222317afdbdb567165fdbc3b0aad90064c7e0c9eb0ad9955ad8/google_api_core-2.25.1.tar.gz", hash = "sha256:d2aaa0b13c78c61cb3f4282c464c046e45fbd75755683c9c525e6e8f7ed0a5e8", size = 165443, upload-time = "2025-06-12T20:52:20.439Z" }
sdist = { url = "https://files.pythonhosted.org/packages/09/cd/63f1557235c2440fe0577acdbc32577c5c002684c58c7f4d770a92366a24/google_api_core-2.25.2.tar.gz", hash = "sha256:1c63aa6af0d0d5e37966f157a77f9396d820fba59f9e43e9415bc3dc5baff300", size = 166266, upload-time = "2025-10-03T00:07:34.778Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/14/4b/ead00905132820b623732b175d66354e9d3e69fcf2a5dcdab780664e7896/google_api_core-2.25.1-py3-none-any.whl", hash = "sha256:8a2a56c1fef82987a524371f99f3bd0143702fecc670c72e600c1cda6bf8dbb7", size = 160807, upload-time = "2025-06-12T20:52:19.334Z" },
{ url = "https://files.pythonhosted.org/packages/c8/d8/894716a5423933f5c8d2d5f04b16f052a515f78e815dab0c2c6f1fd105dc/google_api_core-2.25.2-py3-none-any.whl", hash = "sha256:e9a8f62d363dc8424a8497f4c2a47d6bcda6c16514c935629c257ab5d10210e7", size = 162489, upload-time = "2025-10-03T00:07:32.924Z" },
]
[package.optional-dependencies]
@@ -2339,16 +2416,16 @@ wheels = [
[[package]]
name = "hyperbrowser"
version = "0.59.0"
version = "0.60.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "httpx" },
{ name = "jsonref" },
{ name = "pydantic" },
]
sdist = { url = "https://files.pythonhosted.org/packages/cf/f6/47b9b215962ae0137f3f1528a760a519683ec5976951e72b996377122c1e/hyperbrowser-0.59.0.tar.gz", hash = "sha256:f03ae2930c7b2c9aa8da86af684306b319df036b0d62b53961e811db35a580cf", size = 26316, upload-time = "2025-09-30T00:59:20.06Z" }
sdist = { url = "https://files.pythonhosted.org/packages/87/17/dae0e1c56eef7f404ef8a19442119891694cf51d710375b7b87e16bed218/hyperbrowser-0.60.0.tar.gz", hash = "sha256:8a9d3dfde25c16f94b87135d4d09ba130fc5936908adadb232fe2c3da3f846c4", size = 26338, upload-time = "2025-10-03T08:42:12.784Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/73/2d/c63ee41bba554639155a348a2a1232e76acc30a164bf68c34b61309a0b4b/hyperbrowser-0.59.0-py3-none-any.whl", hash = "sha256:cb10f738290d9c6c1cb89e4bbee230b161dbb3593587e01ded366564eb8a7651", size = 53099, upload-time = "2025-09-30T00:59:18.683Z" },
{ url = "https://files.pythonhosted.org/packages/1b/5c/890c450150591b48ec158c67d287cb05bdf5ef5b6bfb36000f0b6ca5f9a3/hyperbrowser-0.60.0-py3-none-any.whl", hash = "sha256:2c2385ae4faea9bc35f1e9912700996b05e7a3d621663d06b327fb257692d554", size = 53121, upload-time = "2025-10-03T08:42:11.409Z" },
]
[[package]]
@@ -2510,7 +2587,7 @@ sdist = { url = "https://files.pythonhosted.org/packages/f3/ff/c9baf0997266d398a
[[package]]
name = "ibm-watsonx-ai"
version = "1.3.39"
version = "1.3.40"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "cachetools" },
@@ -2526,18 +2603,18 @@ dependencies = [
{ name = "urllib3", version = "1.26.20", source = { registry = "https://pypi.org/simple" }, marker = "platform_python_implementation == 'PyPy'" },
{ name = "urllib3", version = "2.5.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_python_implementation != 'PyPy'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/4f/a1/ce3aee11d3fabee21960cf2ee0b67698079ce12970f02f90fffbe6e3796c/ibm_watsonx_ai-1.3.39.tar.gz", hash = "sha256:357a7d823948655035e4de6265519bf6e377a497f22ec2d26270a9327b71eb5a", size = 788146, upload-time = "2025-09-24T11:59:48.606Z" }
sdist = { url = "https://files.pythonhosted.org/packages/c7/82/2c841e053a91c6f0232f8f914c698efed38747b2ec58e6643e635b963434/ibm_watsonx_ai-1.3.40.tar.gz", hash = "sha256:b83b097150318e327661e1c5d6262b2e085df1dee14920cfcf549c48fdc6202b", size = 685578, upload-time = "2025-09-24T12:06:26.599Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/ab/fd/dd70433f5487d75de82a3658768f7fe31323779217dba05e9278f12b85cd/ibm_watsonx_ai-1.3.39-py3-none-any.whl", hash = "sha256:4f6b08efdd1c40f554a3d9e96cb798e8f86e8e03897765672d3b1850bfa20e00", size = 1203329, upload-time = "2025-09-24T11:59:46.956Z" },
{ url = "https://files.pythonhosted.org/packages/22/5e/3cef5704bfbd2219b9966216b3ab0d62a6ad757ba55d85995e02e408e7d9/ibm_watsonx_ai-1.3.40-py3-none-any.whl", hash = "sha256:eaab5fcd48362bb6736ea577ff92b8962c55b831609f7f933c7ab35a3f73ce64", size = 1052652, upload-time = "2025-09-24T12:06:25.139Z" },
]
[[package]]
name = "identify"
version = "2.6.14"
version = "2.6.15"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/52/c4/62963f25a678f6a050fb0505a65e9e726996171e6dbe1547f79619eefb15/identify-2.6.14.tar.gz", hash = "sha256:663494103b4f717cb26921c52f8751363dc89db64364cd836a9bf1535f53cd6a", size = 99283, upload-time = "2025-09-06T19:30:52.938Z" }
sdist = { url = "https://files.pythonhosted.org/packages/ff/e7/685de97986c916a6d93b3876139e00eef26ad5bbbd61925d670ae8013449/identify-2.6.15.tar.gz", hash = "sha256:e4f4864b96c6557ef2a1e1c951771838f4edc9df3a72ec7118b338801b11c7bf", size = 99311, upload-time = "2025-10-02T17:43:40.631Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/e5/ae/2ad30f4652712c82f1c23423d79136fbce338932ad166d70c1efb86a5998/identify-2.6.14-py2.py3-none-any.whl", hash = "sha256:11a073da82212c6646b1f39bb20d4483bfb9543bd5566fec60053c4bb309bf2e", size = 99172, upload-time = "2025-09-06T19:30:51.759Z" },
{ url = "https://files.pythonhosted.org/packages/0f/1c/e5fd8f973d4f375adb21565739498e2e9a1e54c858a97b9a8ccfdc81da9b/identify-2.6.15-py2.py3-none-any.whl", hash = "sha256:1181ef7608e00704db228516541eb83a88a9f94433a8c80bb9b5bd54b1d81757", size = 99183, upload-time = "2025-10-02T17:43:39.137Z" },
]
[[package]]
@@ -3167,7 +3244,7 @@ wheels = [
[[package]]
name = "langchain-core"
version = "0.3.77"
version = "0.3.78"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "jsonpatch" },
@@ -3178,9 +3255,9 @@ dependencies = [
{ name = "tenacity" },
{ name = "typing-extensions" },
]
sdist = { url = "https://files.pythonhosted.org/packages/40/cc/786184e5f6a921a2aa4d2ac51d3adf0cd037289f3becff39644bee9654ee/langchain_core-0.3.77.tar.gz", hash = "sha256:1d6f2ad6bb98dd806c6c66a822fa93808d821e9f0348b28af0814b3a149830e7", size = 580255, upload-time = "2025-10-01T14:34:37.368Z" }
sdist = { url = "https://files.pythonhosted.org/packages/a8/04/0035bd1df8d0fb534afceabe3ba0a87c5af8c5020177650e9aa79aca3495/langchain_core-0.3.78.tar.gz", hash = "sha256:a174a2061f8659b916fd2b1c7d174b3ddd07be7ca45a07aaec442696df5101b6", size = 580473, upload-time = "2025-10-03T16:52:37.025Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/64/18/e7462ae0ce57caa9f6d5d975dca861e9a751e5ca253d60a809e0d833eac3/langchain_core-0.3.77-py3-none-any.whl", hash = "sha256:9966dfe3d8365847c5fb85f97dd20e3e21b1904ae87cfd9d362b7196fb516637", size = 449525, upload-time = "2025-10-01T14:34:35.672Z" },
{ url = "https://files.pythonhosted.org/packages/9c/a7/ff35c108c4863c1bb99724a4253ff2324aea5789d689dd59424c07df1199/langchain_core-0.3.78-py3-none-any.whl", hash = "sha256:dafc4f7e9fd008f680bf0ffe5904dbaa45992abdb92627b68eccb7b4089cbbf0", size = 449610, upload-time = "2025-10-03T16:52:35.428Z" },
]
[[package]]
@@ -3206,7 +3283,7 @@ sdist = { url = "https://files.pythonhosted.org/packages/0e/72/a3add0e4eec4eb9e2
[[package]]
name = "langsmith"
version = "0.4.31"
version = "0.4.32"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "httpx" },
@@ -3217,9 +3294,9 @@ dependencies = [
{ name = "requests-toolbelt" },
{ name = "zstandard" },
]
sdist = { url = "https://files.pythonhosted.org/packages/55/f5/edbdf89a162ee025348b3b2080fb3b88f4a1040a5a186f32d34aca913994/langsmith-0.4.31.tar.gz", hash = "sha256:5fb3729e22bd9a225391936cb9d1080322e6c375bb776514af06b56d6c46ed3e", size = 959698, upload-time = "2025-09-25T04:18:19.55Z" }
sdist = { url = "https://files.pythonhosted.org/packages/d9/1e/c5b808f96340753f4b7c6b889e3c845cfe6fb6994720614fce8ed3329a92/langsmith-0.4.32.tar.gz", hash = "sha256:a90bb8297fe0d3c63d9868ea58fe46c52d7e2d1f06b614e43c6a78c948275f24", size = 963489, upload-time = "2025-10-03T03:07:25.711Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/3e/8e/e7a43d907a147e1f87eebdd6737483f9feba52a5d4b20f69d0bd6f2fa22f/langsmith-0.4.31-py3-none-any.whl", hash = "sha256:64f340bdead21defe5f4a6ca330c11073e35444989169f669508edf45a19025f", size = 386347, upload-time = "2025-09-25T04:18:16.69Z" },
{ url = "https://files.pythonhosted.org/packages/72/80/ff33907e4d7b7dc56f8a592e404488baec9e79a1e5517dd19673a93597b7/langsmith-0.4.32-py3-none-any.whl", hash = "sha256:5c4dcaa5049360bd126fec2fd59af703294e08c75c8d5363261f71a941fa2963", size = 386360, upload-time = "2025-10-03T03:07:20.973Z" },
]
[[package]]
@@ -3258,11 +3335,12 @@ wheels = [
[[package]]
name = "litellm"
version = "1.74.9"
version = "1.77.5"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "aiohttp" },
{ name = "click" },
{ name = "fastuuid" },
{ name = "httpx" },
{ name = "importlib-metadata" },
{ name = "jinja2" },
@@ -3273,9 +3351,9 @@ dependencies = [
{ name = "tiktoken" },
{ name = "tokenizers" },
]
sdist = { url = "https://files.pythonhosted.org/packages/6d/5d/646bebdb4769d77e6a018b9152c9ccf17afe15d0f88974f338d3f2ee7c15/litellm-1.74.9.tar.gz", hash = "sha256:4a32eff70342e1aee4d1cbf2de2a6ed64a7c39d86345c58d4401036af018b7de", size = 9660510, upload-time = "2025-07-28T16:42:39.297Z" }
sdist = { url = "https://files.pythonhosted.org/packages/e1/a3/85fc92d998ec9645c9fac108618681ef411ca4b338cc7544d6b3aad57699/litellm-1.77.5.tar.gz", hash = "sha256:8e8a83b49c4a6ae044b1a1c01adfbdef72b0031b86f1463dd743e267fa1d7b99", size = 10351819, upload-time = "2025-09-28T07:17:39.393Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/5f/e4/f1546746049c99c6b8b247e2f34485b9eae36faa9322b84e2a17262e6712/litellm-1.74.9-py3-none-any.whl", hash = "sha256:ab8f8a6e4d8689d3c7c4f9c3bbc7e46212cc3ebc74ddd0f3c0c921bb459c9874", size = 8740449, upload-time = "2025-07-28T16:42:36.8Z" },
{ url = "https://files.pythonhosted.org/packages/94/4c/89553f7e375ef39497d86f2266a0cdb37371a07e9e0aa8949f33c15a4198/litellm-1.77.5-py3-none-any.whl", hash = "sha256:07f53964c08d555621d4376cc42330458301ae889bfb6303155dcabc51095fbf", size = 9165458, upload-time = "2025-09-28T07:17:35.474Z" },
]
[[package]]
@@ -3565,7 +3643,7 @@ wheels = [
[[package]]
name = "mcp"
version = "1.15.0"
version = "1.16.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anyio" },
@@ -3580,9 +3658,9 @@ dependencies = [
{ name = "starlette" },
{ name = "uvicorn", marker = "sys_platform != 'emscripten'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/0c/9e/e65114795f359f314d7061f4fcb50dfe60026b01b52ad0b986b4631bf8bb/mcp-1.15.0.tar.gz", hash = "sha256:5bda1f4d383cf539d3c035b3505a3de94b20dbd7e4e8b4bd071e14634eeb2d72", size = 469622, upload-time = "2025-09-25T15:39:51.995Z" }
sdist = { url = "https://files.pythonhosted.org/packages/3d/a1/b1f328da3b153683d2ec34f849b4b6eac2790fb240e3aef06ff2fab3df9d/mcp-1.16.0.tar.gz", hash = "sha256:39b8ca25460c578ee2cdad33feeea122694cfdf73eef58bee76c42f6ef0589df", size = 472918, upload-time = "2025-10-02T16:58:20.631Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/c9/82/4d0df23d5ff5bb982a59ad597bc7cb9920f2650278ccefb8e0d85c5ce3d4/mcp-1.15.0-py3-none-any.whl", hash = "sha256:314614c8addc67b663d6c3e4054db0a5c3dedc416c24ef8ce954e203fdc2333d", size = 166963, upload-time = "2025-09-25T15:39:50.538Z" },
{ url = "https://files.pythonhosted.org/packages/c9/0e/7cebc88e17daf94ebe28c95633af595ccb2864dc2ee7abd75542d98495cc/mcp-1.16.0-py3-none-any.whl", hash = "sha256:ec917be9a5d31b09ba331e1768aa576e0af45470d657a0319996a20a57d7d633", size = 167266, upload-time = "2025-10-02T16:58:19.039Z" },
]
[[package]]
@@ -4267,7 +4345,7 @@ name = "nvidia-cudnn-cu12"
version = "9.10.2.21"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "nvidia-cublas-cu12" },
{ name = "nvidia-cublas-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/ba/51/e123d997aa098c61d029f76663dedbfb9bc8dcf8c60cbd6adbe42f76d049/nvidia_cudnn_cu12-9.10.2.21-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:949452be657fa16687d0930933f032835951ef0892b37d2d53824d1a84dc97a8", size = 706758467, upload-time = "2025-06-06T21:54:08.597Z" },
@@ -4278,7 +4356,7 @@ name = "nvidia-cufft-cu12"
version = "11.3.3.83"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "nvidia-nvjitlink-cu12" },
{ name = "nvidia-nvjitlink-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/1f/13/ee4e00f30e676b66ae65b4f08cb5bcbb8392c03f54f2d5413ea99a5d1c80/nvidia_cufft_cu12-11.3.3.83-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d2dd21ec0b88cf61b62e6b43564355e5222e4a3fb394cac0db101f2dd0d4f74", size = 193118695, upload-time = "2025-03-07T01:45:27.821Z" },
@@ -4305,9 +4383,9 @@ name = "nvidia-cusolver-cu12"
version = "11.7.3.90"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "nvidia-cublas-cu12" },
{ name = "nvidia-cusparse-cu12" },
{ name = "nvidia-nvjitlink-cu12" },
{ name = "nvidia-cublas-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
{ name = "nvidia-cusparse-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
{ name = "nvidia-nvjitlink-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/85/48/9a13d2975803e8cf2777d5ed57b87a0b6ca2cc795f9a4f59796a910bfb80/nvidia_cusolver_cu12-11.7.3.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:4376c11ad263152bd50ea295c05370360776f8c3427b30991df774f9fb26c450", size = 267506905, upload-time = "2025-03-07T01:47:16.273Z" },
@@ -4318,7 +4396,7 @@ name = "nvidia-cusparse-cu12"
version = "12.5.8.93"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "nvidia-nvjitlink-cu12" },
{ name = "nvidia-nvjitlink-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/c2/f5/e1854cb2f2bcd4280c44736c93550cc300ff4b8c95ebe370d0aa7d2b473d/nvidia_cusparse_cu12-12.5.8.93-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ec05d76bbbd8b61b06a80e1eaf8cf4959c3d4ce8e711b65ebd0443bb0ebb13b", size = 288216466, upload-time = "2025-03-07T01:48:13.779Z" },
@@ -5884,7 +5962,7 @@ crypto = [
[[package]]
name = "pylance"
version = "0.37.0"
version = "0.38.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
@@ -5892,12 +5970,13 @@ dependencies = [
{ name = "pyarrow" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/48/44/1de0a0a17d06b704837832e5bd85af6d305851d11c895e00dcfb90eae89d/pylance-0.37.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:468d60c23cc388e9f1eea9db28b6ac840e614b6e333806443a65df8beab178f4", size = 39961522, upload-time = "2025-09-23T17:02:38.991Z" },
{ url = "https://files.pythonhosted.org/packages/f9/8e/4f23923ae16a0af27fe65ad8128c5e8d2210aac64168479f21ce6ef3ffab/pylance-0.37.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4fcb5fd93fd2d660662e93d4c1158b2e0f107762c56de389b70c062d855c0b0e", size = 42016255, upload-time = "2025-09-23T16:51:56.39Z" },
{ url = "https://files.pythonhosted.org/packages/d0/d8/f063d5558015ab4f0d7ece0591a8a204b9be8d1653a5ab3636dd308f7025/pylance-0.37.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ff636b21033182d30cfc0e4c6503ee8862313801e433201c1f17df461dcf081", size = 45600215, upload-time = "2025-09-23T16:54:06.621Z" },
{ url = "https://files.pythonhosted.org/packages/c1/c1/ed50644d7eab5b9a57ba832e8b83d123268860e97df505388985df6ca4bc/pylance-0.37.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:38fdb03a37cc31563287e143662e27973f7b6e4d48f838fde3c7e73150007d0f", size = 42031448, upload-time = "2025-09-23T16:51:35.208Z" },
{ url = "https://files.pythonhosted.org/packages/74/f4/4c0232d8681b9af9dddc4fb7268a59f7f73ff5d3efed6654744d7002c790/pylance-0.37.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:502ff3175610979e48bdd902df0ede7287f9739615ea46a15b6dcce880c78742", size = 45574532, upload-time = "2025-09-23T16:54:37.223Z" },
{ url = "https://files.pythonhosted.org/packages/9e/bd/e54bd61553ab283c2dc10672894ab4937209bd18674f0af7d375e874094c/pylance-0.37.0-cp39-abi3-win_amd64.whl", hash = "sha256:399eed5ce86673d342973c14acff38fad76b3dfaa80be50482953f4e0035685a", size = 46617756, upload-time = "2025-09-23T17:10:59.996Z" },
{ url = "https://files.pythonhosted.org/packages/fd/06/e44919d236ad1b95274a35615598d38f618836488877f610cda7a99403f1/pylance-0.38.0-cp39-abi3-macosx_10_15_x86_64.whl", hash = "sha256:430b8558707b2703edf1609cbb33275cdf278656f85d691812eab96040debae3", size = 44021298, upload-time = "2025-10-02T02:04:40.126Z" },
{ url = "https://files.pythonhosted.org/packages/8c/39/14ac9adf3147fa179e3ca1b2a3f7ddea5922d9f7178fb6fc44a76409c77a/pylance-0.38.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:d18dc82258417e29ef6a44365fafdcd791ab7256042919d66a8722976d650ed3", size = 40289869, upload-time = "2025-10-02T01:37:08.925Z" },
{ url = "https://files.pythonhosted.org/packages/00/a8/b0dec21336fdfd0bd14cbd3f53f3b9f9191e86b227ed6aa8e4e868031da3/pylance-0.38.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24f4d6c691f061dce7f709d2b4f98d91c5db85044acdf3b2a615b8e568dc9e62", size = 42354104, upload-time = "2025-10-02T01:32:37.553Z" },
{ url = "https://files.pythonhosted.org/packages/09/d5/bc11cdc1a5cbd398de4e6dfea77b30fd69ab81b06340e7666f2d64a90e01/pylance-0.38.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:575e6dcb4cc5a008029776596d81f3f13395c513c6e093183a3da7e1ff6382da", size = 45977634, upload-time = "2025-10-02T01:35:04.162Z" },
{ url = "https://files.pythonhosted.org/packages/9b/c5/1037ac90fa7e14f23cef6af54f8189bcad13a2d544759785f1eaa71bfcb2/pylance-0.38.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c0dcbd6bb2fb6bf5239c11d8035a4dbabe72919157b2ce337d7af035f64a92e3", size = 42375792, upload-time = "2025-10-02T01:30:54.981Z" },
{ url = "https://files.pythonhosted.org/packages/b3/fd/2e5e1d88ef8bd02c658fcbce616d9c7d58bc12c50037aea47aa5a5d25e5b/pylance-0.38.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5a20c5a0f7cc784bbf45ca845858284f470509fdde5190808ff876d737e8d1a5", size = 45962173, upload-time = "2025-10-02T01:35:39.077Z" },
{ url = "https://files.pythonhosted.org/packages/bc/c9/7ed5d968c0832ac8f890abcff1f86779dd5640f569d4ff1c834edca6f939/pylance-0.38.0-cp39-abi3-win_amd64.whl", hash = "sha256:4c7098527115b1d8426f28d8f03b20b7c064e0232f894fd5cbae9be3b6c314a2", size = 47045699, upload-time = "2025-10-02T01:53:31.728Z" },
]
[[package]]
@@ -5908,63 +5987,53 @@ sdist = { url = "https://files.pythonhosted.org/packages/5d/ab/34ec41718af73c001
[[package]]
name = "pymongo"
version = "4.15.1"
version = "4.15.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "dnspython" },
]
sdist = { url = "https://files.pythonhosted.org/packages/22/f5/c0c6732fbd358b75a07e17d7e588fd23d481b9812ca96ceeff90bbf879fc/pymongo-4.15.1.tar.gz", hash = "sha256:b9f379a4333dc3779a6bf7adfd077d4387404ed1561472743486a9c58286f705", size = 2470613, upload-time = "2025-09-16T16:39:47.24Z" }
sdist = { url = "https://files.pythonhosted.org/packages/5d/cf/587d7b0737c93ff1b2d777227e25777d8811bc694ca52046c1ae13f68070/pymongo-4.15.2.tar.gz", hash = "sha256:45103766c3f1bf1f5fc2da43a48dbe03a343389a334eb1d02ef39024957cdc91", size = 2470598, upload-time = "2025-10-01T21:25:49.701Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/29/19/2de6086e3974f3a95a1fc41fd082bc4a58dc9b70268cbfd7c84067d184f2/pymongo-4.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:97ccf8222abd5b79daa29811f64ef8b6bb678b9c9a1c1a2cfa0a277f89facd1d", size = 811020, upload-time = "2025-09-16T16:37:57.329Z" },
{ url = "https://files.pythonhosted.org/packages/a2/a4/a340dde32818dd5c95b1c373bc4a27cef5863009faa328388ddc899527fe/pymongo-4.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f130b3d7540749a8788a254ceb199a03ede4ee080061bfa5e20e28237c87f2d7", size = 811313, upload-time = "2025-09-16T16:37:59.312Z" },
{ url = "https://files.pythonhosted.org/packages/e2/d9/7d64fdc9e87ec38bd36395bc730848ef56e1cd4bd29ab065d53c27559ace/pymongo-4.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fbe6a044a306ed974bd1788f3ceffc2f5e13f81fdb786a28c948c047f4cea38", size = 1188666, upload-time = "2025-09-16T16:38:00.896Z" },
{ url = "https://files.pythonhosted.org/packages/ef/d9/47cc69d3b22c9d971b1486e3a80d6a5d0bbf2dec6c9c4d5e39a129ee8125/pymongo-4.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b96768741e0e03451ef7b07c4857490cc43999e01c7f8da704fe00b3fe5d4d3", size = 1222891, upload-time = "2025-09-16T16:38:02.574Z" },
{ url = "https://files.pythonhosted.org/packages/a9/73/a57594c956bf276069a438056330a346871b2f5e3cae4e3bcc257cffc788/pymongo-4.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d50b18ad6e4a55a75c30f0e669bd15ed1ceb18f9994d6835b4f5d5218592b4a0", size = 1205824, upload-time = "2025-09-16T16:38:04.277Z" },
{ url = "https://files.pythonhosted.org/packages/37/d5/1ae77ddcc376ebce0139614d51ec1fd0ba666d7cc1f198ec88272cfdac36/pymongo-4.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e8e2a33613b2880d516d9c8616b64d27957c488de2f8e591945cf12094336a5", size = 1191838, upload-time = "2025-09-16T16:38:05.728Z" },
{ url = "https://files.pythonhosted.org/packages/35/07/ae3fc20a809066b35bbf470bda79d34a72948603d9f29a425bf1d0ef2cb7/pymongo-4.15.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a2a439395f3d4c9d3dc33ba4575d52b6dd285d57db54e32062ae8ef557cab10", size = 1170996, upload-time = "2025-09-16T16:38:09.084Z" },
{ url = "https://files.pythonhosted.org/packages/2c/0f/eb654cea7586588704151ac4894cd3fb2582c0db458cd615cad1c7fe4c59/pymongo-4.15.1-cp310-cp310-win32.whl", hash = "sha256:142abf2fbd4667a3c8f4ce2e30fdbd287c015f52a838f4845d7476a45340208d", size = 798249, upload-time = "2025-09-16T16:38:11.11Z" },
{ url = "https://files.pythonhosted.org/packages/9f/6b/38184382c32695f914a5474d8de0c9f3714b7d8f4c66f090b3836d70273d/pymongo-4.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:8baf46384c97f774bc84178662e1fc6e32a2755fbc8e259f424780c2a11a3566", size = 807990, upload-time = "2025-09-16T16:38:12.525Z" },
{ url = "https://files.pythonhosted.org/packages/38/eb/77a4d37b2a0673c010dd97b9911438f17bb05f407235cc9f02074175855d/pymongo-4.15.1-cp310-cp310-win_arm64.whl", hash = "sha256:b5b837df8e414e2a173722395107da981d178ba7e648f612fa49b7ab4e240852", size = 800875, upload-time = "2025-09-16T16:38:14.532Z" },
{ url = "https://files.pythonhosted.org/packages/c9/da/89066930a70b4299844f1155fc23baaa7e30e77c8a0cbf62a2ae06ee34a5/pymongo-4.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:363445cc0e899b9e55ac9904a868c8a16a6c81f71c48dbadfd78c98e0b54de27", size = 865410, upload-time = "2025-09-16T16:38:16.279Z" },
{ url = "https://files.pythonhosted.org/packages/99/8f/a1d0402d52e5ebd14283718abefdc0c16f308cf10bee56cdff04b1f5119b/pymongo-4.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:da0a13f345f4b101776dbab92cec66f0b75015df0b007b47bd73bfd0305cc56a", size = 865695, upload-time = "2025-09-16T16:38:18.015Z" },
{ url = "https://files.pythonhosted.org/packages/53/38/d1ef69028923f86fd00638d9eb16400d4e60a89eabd2011fe631fd3186cf/pymongo-4.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9481a492851e432122a83755d4e69c06aeb087bbf8370bac9f96d112ac1303fd", size = 1434758, upload-time = "2025-09-16T16:38:20.141Z" },
{ url = "https://files.pythonhosted.org/packages/b0/eb/a8d5dff748a2dd333610b2e4c8120b623e38ea2b5e30ad190d0ce2803840/pymongo-4.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:625dec3e9cd7c3d336285a20728c01bfc56d37230a99ec537a6a8625af783a43", size = 1485716, upload-time = "2025-09-16T16:38:21.607Z" },
{ url = "https://files.pythonhosted.org/packages/c4/d4/17ba457a828b733182ddc01a202872fef3006eed6b54450b20dc95a2f77d/pymongo-4.15.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26a31af455bffcc64537a7f67e2f84833a57855a82d05a085a1030c471138990", size = 1460160, upload-time = "2025-09-16T16:38:23.509Z" },
{ url = "https://files.pythonhosted.org/packages/c3/25/42b8662c09f5ca9c81d18d160f48e58842e0fa4c314ea02613c5e5d54542/pymongo-4.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea4415970d2a074d5890696af10e174d84cb735f1fa7673020c7538431e1cb6e", size = 1439284, upload-time = "2025-09-16T16:38:25.248Z" },
{ url = "https://files.pythonhosted.org/packages/b3/bb/46b9d978161828eb91973bd441a3f05f73c789203e976332a8de2832d5db/pymongo-4.15.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:51ee050a2e026e2b224d2ed382830194be20a81c78e1ef98f467e469071df3ac", size = 1407933, upload-time = "2025-09-16T16:38:27.045Z" },
{ url = "https://files.pythonhosted.org/packages/4b/55/bd5af98f675001f4b06f7314b3918e45809424a7ad3510f823f6703cd8f2/pymongo-4.15.1-cp311-cp311-win32.whl", hash = "sha256:9aef07d33839f6429dc24f2ef36e4ec906979cb4f628c57a1c2676cc66625711", size = 844328, upload-time = "2025-09-16T16:38:28.513Z" },
{ url = "https://files.pythonhosted.org/packages/c3/78/90989a290dd458ed43a8a04fa561ac9c7b3391f395cdacd42e21f0f22ce4/pymongo-4.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:8ea6e5ff4d6747e7b64966629a964db3089e9c1e0206d8f9cc8720c90f5a7af1", size = 858951, upload-time = "2025-09-16T16:38:30.074Z" },
{ url = "https://files.pythonhosted.org/packages/de/bb/d4d23f06e166cd773f2324cff73841a62d78a1ad16fb799cf7c5490ce32c/pymongo-4.15.1-cp311-cp311-win_arm64.whl", hash = "sha256:bb783d9001b464a6ef3ee76c30ebbb6f977caee7bbc3a9bb1bd2ff596e818c46", size = 848290, upload-time = "2025-09-16T16:38:31.741Z" },
{ url = "https://files.pythonhosted.org/packages/7e/31/bc4525312083706a59fffe6e8de868054472308230fdee8db0c452c2b831/pymongo-4.15.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bab357c5ff36ba2340dfc94f3338ef399032089d35c3d257ce0c48630b7848b2", size = 920261, upload-time = "2025-09-16T16:38:33.614Z" },
{ url = "https://files.pythonhosted.org/packages/ae/55/4d99aec625494f21151b8b31e12e06b8ccd3b9dcff609b0dd1acf9bbbc0e/pymongo-4.15.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:46d1af3eb2c274f07815372b5a68f99ecd48750e8ab54d5c3ff36a280fb41c8e", size = 919956, upload-time = "2025-09-16T16:38:35.121Z" },
{ url = "https://files.pythonhosted.org/packages/be/60/8f1afa41521df950e13f6490ecdef48155fc63b78f926e7649045e07afd1/pymongo-4.15.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7dc31357379318881186213dc5fc49b62601c955504f65c8e72032b5048950a1", size = 1698596, upload-time = "2025-09-16T16:38:36.586Z" },
{ url = "https://files.pythonhosted.org/packages/bc/3f/e48d50ee8d6aa0a4cda7889dd73076ec2ab79a232716a5eb0b9df070ffcf/pymongo-4.15.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12140d29da1ecbaefee2a9e65433ef15d6c2c38f97bc6dab0ff246a96f9d20cd", size = 1762833, upload-time = "2025-09-16T16:38:38.09Z" },
{ url = "https://files.pythonhosted.org/packages/63/87/db976859efc617f608754e051e1468459d9a818fe1ad5d0862e8af57720b/pymongo-4.15.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cf193d2dcd91fa1d1dfa1fd036a3b54f792915a4842d323c0548d23d30461b59", size = 1731875, upload-time = "2025-09-16T16:38:39.742Z" },
{ url = "https://files.pythonhosted.org/packages/18/59/3643ad52a5064ad3ef8c32910de6da28eb658234c25f2db5366f16bffbfb/pymongo-4.15.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2c0bdcf4d57e4861ed323ba430b585ad98c010a83e46cb8aa3b29c248a82be1", size = 1701853, upload-time = "2025-09-16T16:38:41.333Z" },
{ url = "https://files.pythonhosted.org/packages/d8/96/441c190823f855fc6445ea574b39dca41156acf723c5e6a69ee718421700/pymongo-4.15.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43fcfc19446e0706bbfe86f683a477d1e699b02369dd9c114ec17c7182d1fe2b", size = 1660978, upload-time = "2025-09-16T16:38:42.877Z" },
{ url = "https://files.pythonhosted.org/packages/47/49/bd7e783fb78aaf9bdaa3f88cc238449be5bc5546e930ec98845ef235f809/pymongo-4.15.1-cp312-cp312-win32.whl", hash = "sha256:e5fedea0e7b3747da836cd5f88b0fa3e2ec5a394371f9b6a6b15927cfeb5455d", size = 891175, upload-time = "2025-09-16T16:38:44.658Z" },
{ url = "https://files.pythonhosted.org/packages/2e/28/7de5858bdeaa07ea4b277f9eb06123ea358003659fe55e72e4e7c898b321/pymongo-4.15.1-cp312-cp312-win_amd64.whl", hash = "sha256:330a17c1c89e2c3bf03ed391108f928d5881298c17692199d3e0cdf097a20082", size = 910619, upload-time = "2025-09-16T16:38:46.124Z" },
{ url = "https://files.pythonhosted.org/packages/17/87/c39f4f8415e7c65f8b66413f53a9272211ff7dfe78a5128b27027bf88864/pymongo-4.15.1-cp312-cp312-win_arm64.whl", hash = "sha256:756b7a2a80ec3dd5b89cd62e9d13c573afd456452a53d05663e8ad0c5ff6632b", size = 896229, upload-time = "2025-09-16T16:38:48.563Z" },
{ url = "https://files.pythonhosted.org/packages/a6/22/02ac885d8accb4c86ae92e99681a09f3fd310c431843fc850e141b42ab17/pymongo-4.15.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:622957eed757e44d9605c43b576ef90affb61176d9e8be7356c1a2948812cb84", size = 974492, upload-time = "2025-09-16T16:38:50.437Z" },
{ url = "https://files.pythonhosted.org/packages/56/bf/71685b6b2d085dbaadf029b1ea4a1bc7a1bc483452513dea283b47a5f7c0/pymongo-4.15.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c5283dffcf601b793a57bb86819a467473bbb1bf21cd170c0b9648f933f22131", size = 974191, upload-time = "2025-09-16T16:38:52.725Z" },
{ url = "https://files.pythonhosted.org/packages/df/98/141edc92fa97af96b4c691e10a7225ac3e552914e88b7a8d439bd6bc9fcc/pymongo-4.15.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:def51dea1f8e336aed807eb5d2f2a416c5613e97ec64f07479681d05044c217c", size = 1962311, upload-time = "2025-09-16T16:38:54.319Z" },
{ url = "https://files.pythonhosted.org/packages/f8/a9/601b91607af1dec8035b46ba67a5a023c819ccedd40d6f6232e15bf76030/pymongo-4.15.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:24171b2015052b2f0a3f8cbfa38b973fa87f6474e88236a4dfeb735983f9f49e", size = 2039667, upload-time = "2025-09-16T16:38:55.958Z" },
{ url = "https://files.pythonhosted.org/packages/4f/71/02e9a5248e0a9dfc371fd7350f8b11eac03d9eb3662328978f37613d319a/pymongo-4.15.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64b60ed7220c52f8c78c7af8d2c58f7e415732e21b3ff7e642169efa6e0b11e7", size = 2003579, upload-time = "2025-09-16T16:38:57.576Z" },
{ url = "https://files.pythonhosted.org/packages/f9/d1/b1a9520b33e022ed1c0d2d43e8805ba18d3d686fc9c9d89a507593f6dd86/pymongo-4.15.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58236ce5ba3a79748c1813221b07b411847fd8849ff34c2891ba56f807cce3e5", size = 1964307, upload-time = "2025-09-16T16:38:59.219Z" },
{ url = "https://files.pythonhosted.org/packages/3d/d1/1d205a762020f056c05899a912364c48bac0f3438502b36d057aa1da3ca5/pymongo-4.15.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7461e777b3da96568c1f077b1fbf9e0c15667ac4d8b9a1cf90d80a69fe3be609", size = 1913879, upload-time = "2025-09-16T16:39:01.266Z" },
{ url = "https://files.pythonhosted.org/packages/44/d1/0a3ab2440ea00b6423f33c84e6433022fd51f3561dede9346f54f39cf4dd/pymongo-4.15.1-cp313-cp313-win32.whl", hash = "sha256:45f0a2fb09704ca5e0df08a794076d21cbe5521d3a8ceb8ad6d51cef12f5f4e7", size = 938007, upload-time = "2025-09-16T16:39:03.427Z" },
{ url = "https://files.pythonhosted.org/packages/7b/61/e9ea839af2caadfde91774549a6f72450b72efdc92117995e7117d4b1270/pymongo-4.15.1-cp313-cp313-win_amd64.whl", hash = "sha256:b70201a6dbe19d0d10a886989d3ba4b857ea6ef402a22a61c8ca387b937cc065", size = 962236, upload-time = "2025-09-16T16:39:05.018Z" },
{ url = "https://files.pythonhosted.org/packages/ad/f8/0a92a72993b2e1c110ee532650624ca7ae15c5e45906dbae4f063a2fd32a/pymongo-4.15.1-cp313-cp313-win_arm64.whl", hash = "sha256:6892ebf8b2bc345cacfe1301724195d87162f02d01c417175e9f27d276a2f198", size = 944138, upload-time = "2025-09-16T16:39:07.035Z" },
{ url = "https://files.pythonhosted.org/packages/e5/eb/2ba257482844bb2e3c82c6b266d6e811bc610fa80408133e352cc1afb3c9/pymongo-4.15.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:db439288516514713c8ee09c9baaf66bc4b0188fbe4cd578ef3433ee27699aab", size = 1030987, upload-time = "2025-09-16T16:39:08.914Z" },
{ url = "https://files.pythonhosted.org/packages/0d/86/8c6eab3767251ba77a3604d3b6b0826d0af246bd04b2d16aced3a54f08b0/pymongo-4.15.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:234c80a5f21c8854cc5d6c2f5541ff17dd645b99643587c5e7ed1e21d42003b6", size = 1030996, upload-time = "2025-09-16T16:39:10.429Z" },
{ url = "https://files.pythonhosted.org/packages/5b/26/c1bc0bcb64f39b9891b8b537f21cc37d668edd8b93f47ed930af7f95649c/pymongo-4.15.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b570dc8179dcab980259b885116b14462bcf39170e30d8cbcce6f17f28a2ac5b", size = 2290670, upload-time = "2025-09-16T16:39:12.348Z" },
{ url = "https://files.pythonhosted.org/packages/82/af/f5e8b6c404a3678a99bf0b704f7b19fa14a71edb42d724eb09147aa1d3be/pymongo-4.15.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cb6321bde02308d4d313b487d19bfae62ea4d37749fc2325b1c12388e05e4c31", size = 2377711, upload-time = "2025-09-16T16:39:13.992Z" },
{ url = "https://files.pythonhosted.org/packages/af/f4/63bcc1760bf3e0925cb6cb91b2b3ba756c113b1674a14b41efe7e3738b8d/pymongo-4.15.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cc808588289f693aba80fae8272af4582a7d6edc4e95fb8fbf65fe6f634116ce", size = 2337097, upload-time = "2025-09-16T16:39:15.717Z" },
{ url = "https://files.pythonhosted.org/packages/d0/dc/0cfada0426556b4b04144fb00ce6a1e7535ab49623d4d9dd052d27ea46c0/pymongo-4.15.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99236fd0e0cf6b048a4370d0df6820963dc94f935ad55a2e29af752272abd6c9", size = 2288295, upload-time = "2025-09-16T16:39:17.385Z" },
{ url = "https://files.pythonhosted.org/packages/5b/a8/081a80f60042d2b8cd6a1c091ecaa186f1ef216b587d06acd0743e1016c6/pymongo-4.15.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2277548bb093424742325b2a88861d913d8990f358fc71fd26004d1b87029bb8", size = 2227616, upload-time = "2025-09-16T16:39:19.025Z" },
{ url = "https://files.pythonhosted.org/packages/56/d0/a6007e0c3c5727391ac5ea40e93a1e7d14146c65ac4ca731c0680962eb48/pymongo-4.15.1-cp313-cp313t-win32.whl", hash = "sha256:754a5d75c33d49691e2b09a4e0dc75959e271a38cbfd92c6b36f7e4eafc4608e", size = 987225, upload-time = "2025-09-16T16:39:20.663Z" },
{ url = "https://files.pythonhosted.org/packages/9d/97/c9bf6dcd647a8cf7abbad5814dfb7d8a16e6ab92a3e56343b3bcb454a6d3/pymongo-4.15.1-cp313-cp313t-win_amd64.whl", hash = "sha256:8d62e68ad21661e536555d0683087a14bf5c74b242a4446c602d16080eb9e293", size = 1017521, upload-time = "2025-09-16T16:39:22.319Z" },
{ url = "https://files.pythonhosted.org/packages/31/ea/102f7c9477302fa05e5303dd504781ac82400e01aab91bfba9c290253bd6/pymongo-4.15.1-cp313-cp313t-win_arm64.whl", hash = "sha256:56bbfb79b51e95f4b1324a5a7665f3629f4d27c18e2002cfaa60c907cc5369d9", size = 992963, upload-time = "2025-09-16T16:39:23.957Z" },
{ url = "https://files.pythonhosted.org/packages/84/87/93ab1d4419be51084e99031404000a2c8e66974c330093b578859419f26e/pymongo-4.15.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20ee2722ac45fba2c502edbc5281b6efcd8601d94ae1900a48c106459a1715d7", size = 811023, upload-time = "2025-10-01T21:23:46.102Z" },
{ url = "https://files.pythonhosted.org/packages/79/de/d5dabbd792ed7fbb5b4efadba248e566c47f9af3369606664a2e80aeebd9/pymongo-4.15.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:82ba58edb6f6112aac543214ac22fc8e3d569372a7b3a180511cf4a70bd4c0ef", size = 811312, upload-time = "2025-10-01T21:23:47.977Z" },
{ url = "https://files.pythonhosted.org/packages/6f/2a/85f389c83b3bf8036e745e580bb94426ecf4ac5676fc0997e0e34ccef028/pymongo-4.15.2-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c434219d66bf20f46011cc11b28e0dbfeb965f7a7cfd1e4b8e733a5f642ae1c2", size = 1183188, upload-time = "2025-10-01T21:23:49.378Z" },
{ url = "https://files.pythonhosted.org/packages/05/20/62101e587b982d939ad9bb07041c4b808d4868f2b31d26e436fbb5a85328/pymongo-4.15.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b5c61e32c6afbf35a9c6638db892f75dc53ebcd45a9a1bf992ffff0ec28aaaa", size = 1201696, upload-time = "2025-10-01T21:23:50.828Z" },
{ url = "https://files.pythonhosted.org/packages/e1/0f/dbdb038b00295b3dacbf99e40437b035e2434ec15fee072a48a155f762dd/pymongo-4.15.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:557611de3fa33bd5b8e5d38a7056b15d5c38361af50378ff5cf8b9cbf371913b", size = 1240467, upload-time = "2025-10-01T21:23:53.132Z" },
{ url = "https://files.pythonhosted.org/packages/bd/98/abbc9ab8260e93b30bb4120ad2921625bd744b57e4da6b46e3273d77ae3a/pymongo-4.15.2-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50307e2403f0cfdf4fd0f5c6c9a45edbb4c5fa63196e1671b7fed5bbcd884109", size = 1230532, upload-time = "2025-10-01T21:23:55.487Z" },
{ url = "https://files.pythonhosted.org/packages/dd/61/a515fd6d5c23c1128d89a1ef9e0fb3583dfd41accd45ee6a9e3be19271bd/pymongo-4.15.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e6a22f0349142c92bb2ccbd35a8a0b7dc5a2eeac14217fb28cfa9956bcfee139", size = 1198104, upload-time = "2025-10-01T21:23:57.284Z" },
{ url = "https://files.pythonhosted.org/packages/a1/f1/faafc1f801dc4eb3111fc92f6726b5db761f92052b56dcab9569bd21276d/pymongo-4.15.2-cp310-cp310-win32.whl", hash = "sha256:a775371086ff63da1ae97f676bcb5556c86e4e281ccac998d49d6e24efa50ca1", size = 798247, upload-time = "2025-10-01T21:23:58.709Z" },
{ url = "https://files.pythonhosted.org/packages/bc/6d/c9fa50da12851db20bc4f27c240df232832d75cb3508cc11857557181a71/pymongo-4.15.2-cp310-cp310-win_amd64.whl", hash = "sha256:42acd45f7030743eed3d5e66a03dd3e9c12c7869301d123bffa1f71dc0e3f882", size = 807982, upload-time = "2025-10-01T21:24:00.157Z" },
{ url = "https://files.pythonhosted.org/packages/47/99/97499dd765be54197d6cdf7e8d64918e91083eb328f671e54c9dad0c8aa3/pymongo-4.15.2-cp310-cp310-win_arm64.whl", hash = "sha256:2b6c8588b04e304bb4670e5409b3def2d9daedb8f719d47780a59de7227f1d3f", size = 800878, upload-time = "2025-10-01T21:24:01.668Z" },
{ url = "https://files.pythonhosted.org/packages/e8/76/bc85dfe94df5d18fe700fe940237b8e99293a962f70ae81defd3b9e3725d/pymongo-4.15.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:69515e1042a2fb4fadf6384918be34703aa2c792b9a8d3d406ad43e07cb095a2", size = 865405, upload-time = "2025-10-01T21:24:03.069Z" },
{ url = "https://files.pythonhosted.org/packages/fd/4e/45450af2eb5d8d19d53b6c8c6cc9325f5dcf9bb3da446472416686dd52e9/pymongo-4.15.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:587202db4a64d5c091bc39695095af461a6a08b2a52ddd881a6e5cb34244d672", size = 865699, upload-time = "2025-10-01T21:24:04.565Z" },
{ url = "https://files.pythonhosted.org/packages/ad/7a/de35dabd764933195b8c9288d733af462735cf8d90f66c1a689cb15570e9/pymongo-4.15.2-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:05b9eab3bc049f8fd150869375eff3a85ceab606531b6226b60f054daf7d1368", size = 1426367, upload-time = "2025-10-01T21:24:05.965Z" },
{ url = "https://files.pythonhosted.org/packages/ba/ec/dc22e2f3c60a2680ff69399bbf9c30f9ea938933dd856a33b6c6b285a7e1/pymongo-4.15.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f736f1a6d85f3b1c182018ae0e6c387bb342935e3b97637c258b9b46e0509af2", size = 1453585, upload-time = "2025-10-01T21:24:07.618Z" },
{ url = "https://files.pythonhosted.org/packages/26/d4/e34e56005e761c8c101f4b9e7b0e58842e631ea2bfa245e15d17e50ba2e5/pymongo-4.15.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:22ad78ac0222b8c5f5a28cdf6300cf19481fff193110506768c9915c8cd3396b", size = 1511454, upload-time = "2025-10-01T21:24:09.275Z" },
{ url = "https://files.pythonhosted.org/packages/84/b6/9fbba5670464a4e3969dc66c60ab24b5083292888b22d3b0b09c2746e609/pymongo-4.15.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:75f6f8363a57ba8a6bb1076114dc9aa29336f525c8b621cc1e4cfccae4ff546a", size = 1497423, upload-time = "2025-10-01T21:24:11.061Z" },
{ url = "https://files.pythonhosted.org/packages/a8/cd/0da070d21201bb633327172932e5346b86349aea8d7d05b4a195087f9c81/pymongo-4.15.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:597dce90bc607b3180735a6692abcf75c111d7f6169b2b1cca1db85086ee980c", size = 1448959, upload-time = "2025-10-01T21:24:12.747Z" },
{ url = "https://files.pythonhosted.org/packages/d7/37/c7d4f6191b28f8e00e7c0ad81ef5be80b073b3adbbaeb470168359763cc0/pymongo-4.15.2-cp311-cp311-win32.whl", hash = "sha256:a15ad3f11556a30e5dd86344567e85eb46550b09e0ea8d3297476788f0c76d77", size = 844325, upload-time = "2025-10-01T21:24:14.558Z" },
{ url = "https://files.pythonhosted.org/packages/2d/13/b5b8fce3e38980ae63b9f01be11a258544d54e7d1946330098c2faa255a4/pymongo-4.15.2-cp311-cp311-win_amd64.whl", hash = "sha256:cedfd1be19c8f7b41a1f5fbaea299303087b5d40605e956ffbcfe2adc76de0ec", size = 858944, upload-time = "2025-10-01T21:24:16.067Z" },
{ url = "https://files.pythonhosted.org/packages/0b/97/7802ad208936929d4a784483a150c73d75f86c18af94c755882ce2115ab8/pymongo-4.15.2-cp311-cp311-win_arm64.whl", hash = "sha256:a98f67df7aae325c0476aa453877475f9a1160f84b7e6e24e4804498ef99178e", size = 848296, upload-time = "2025-10-01T21:24:18.092Z" },
{ url = "https://files.pythonhosted.org/packages/e7/8f/61c7abf92da7ab2d65a355754ab38c90587c2d49a8f5418d1b62efda2b1f/pymongo-4.15.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d54b8139979e6e2ee6fec91b189e948ee2d83f125957793cf191c5e33be567e7", size = 920263, upload-time = "2025-10-01T21:24:19.532Z" },
{ url = "https://files.pythonhosted.org/packages/1c/8f/72061803dd878dfb53e3c5f049f757dd955a9f05ac706e6ab6cf92b96443/pymongo-4.15.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1db14e952ceb574cb8acacf063040e2a6e9570bd50671fa903fb47adb7cf49cc", size = 919960, upload-time = "2025-10-01T21:24:20.975Z" },
{ url = "https://files.pythonhosted.org/packages/6a/85/06837bca59751e1ff477f68df747b840e0880cf609aa0c9b3515c78b05e5/pymongo-4.15.2-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a33e118e14bd350bef6127a000c8d08e6bade8b9045bcd70d09a665434035705", size = 1685317, upload-time = "2025-10-01T21:24:24.442Z" },
{ url = "https://files.pythonhosted.org/packages/8a/ec/cb853f70e20537d52c0abbd303ed06c2609d883fdb38550f2a974d4e938a/pymongo-4.15.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2fad596a092ab9cd821c98d75b48dd6a9c3fc52df8b1453d2f10d8219676269a", size = 1721445, upload-time = "2025-10-01T21:24:26.093Z" },
{ url = "https://files.pythonhosted.org/packages/74/fa/c9ba34caf0f2ed6a3e19fa480407c1d6fc499c36a10bb78434cfbf724f1a/pymongo-4.15.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2daa9434828a5e5638b9d78f0031c9e19b5bc84ce9f5e69cf6083f58aa3e3901", size = 1795356, upload-time = "2025-10-01T21:24:28.235Z" },
{ url = "https://files.pythonhosted.org/packages/96/2f/6f9eba4c864718ee77ce263d8d0533f5b10d890856c689e72dbbee4f102f/pymongo-4.15.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a244e27c034707f48f979fdcebe0df47ea000fd52ee1b2b2d2d2cb5b7b0e24dd", size = 1780463, upload-time = "2025-10-01T21:24:30.196Z" },
{ url = "https://files.pythonhosted.org/packages/49/9e/603cfbc874471bbf9cb5741cc9eaecf6a1dce98302094042b08008f94c50/pymongo-4.15.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de0c88d7229a96a5bfe2827170578bcd871ee16843c47e5cb3290edf1aaf62ca", size = 1713706, upload-time = "2025-10-01T21:24:32.186Z" },
{ url = "https://files.pythonhosted.org/packages/8e/b0/1872a972e0b11131a199fa270f5ccfa772de6da8fee7230395e30380b6ed/pymongo-4.15.2-cp312-cp312-win32.whl", hash = "sha256:dece75a28450fa813040b13f7fbe80a614d02e04f7ff84255a2600c440bf227a", size = 891169, upload-time = "2025-10-01T21:24:33.787Z" },
{ url = "https://files.pythonhosted.org/packages/85/9a/46e1ac4cb226efba9571206552eff6ceb91ea430f102df8e47b66c0f4e81/pymongo-4.15.2-cp312-cp312-win_amd64.whl", hash = "sha256:9fa833908d94b5869e6c9a53b778dc8235caca6fcda03aac8410b8f067cd8a6f", size = 910613, upload-time = "2025-10-01T21:24:35.216Z" },
{ url = "https://files.pythonhosted.org/packages/29/14/9040761be52fe1fa63494024ab54e5257dc5791b5305464be12e4b301341/pymongo-4.15.2-cp312-cp312-win_arm64.whl", hash = "sha256:3ab5ba56b868c56a38cfeb3202ee78dcdd4152bc364d24b71aaf1ee3994c7f96", size = 896236, upload-time = "2025-10-01T21:24:36.901Z" },
{ url = "https://files.pythonhosted.org/packages/21/cb/d3db977a546349637bea3abf442924ca2f6ebdf4863fa40fe95e90337ca5/pymongo-4.15.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bf646006bfce5e153cc838adaee319ff8a3d625978d491208cc290e89f9c2a21", size = 974494, upload-time = "2025-10-01T21:24:38.369Z" },
{ url = "https://files.pythonhosted.org/packages/26/d9/b13fda53e8c4552dc90fe22ca196e5089a3c6c9c65072d09ec25812691e6/pymongo-4.15.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b5fe426128a03393d2e7f10169e1f10cf6a6355f40876f52b51a03721c12e6e5", size = 974197, upload-time = "2025-10-01T21:24:39.917Z" },
{ url = "https://files.pythonhosted.org/packages/1e/2e/534b52a064c1e417b9514008e056d6a70b7b1124ed14f4a7069d83bdadb1/pymongo-4.15.2-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:eb1423432631994d965e92ee63e448627d57793fd780c56c49570f12d4be1ff4", size = 1944230, upload-time = "2025-10-01T21:24:41.921Z" },
{ url = "https://files.pythonhosted.org/packages/6c/b3/e56b7c19d2510438d667be3735dfd83ee1b2597edd572b29891662562053/pymongo-4.15.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a994b40542ba44748af9e382fd54e69428f40c1728ae06bc649c87a1135d1cfb", size = 1989108, upload-time = "2025-10-01T21:24:43.462Z" },
{ url = "https://files.pythonhosted.org/packages/11/1d/a6bbcae660bcd03f65610e320ef1d151875c6eef3e272d8ceb115e66e8b7/pymongo-4.15.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:18bc73e47d21cabfde719d0cc5aa6b556856993397c9433d934089c86732e3d3", size = 2079206, upload-time = "2025-10-01T21:24:45.132Z" },
{ url = "https://files.pythonhosted.org/packages/37/71/ff04c18ea7a54bb2f3b84563ad4169599ebeff57a87017c176f570a24134/pymongo-4.15.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2968cf01e2257f2f5193aba259116c1e9e56f739a16eceef36e85a55edc91604", size = 2063351, upload-time = "2025-10-01T21:24:46.724Z" },
{ url = "https://files.pythonhosted.org/packages/bb/ad/97cd74eb4a230829aefb3aec17cdad563d130cf41891a37791c0f0e30ccb/pymongo-4.15.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3fafe5ef96943ab9b837f89b6abe779951102bee44d21c743259d43cfc1d9f6e", size = 1978665, upload-time = "2025-10-01T21:24:48.265Z" },
{ url = "https://files.pythonhosted.org/packages/cf/a8/3569abe29d2cdf355d51c1868bc5e1619a4b3f93b1e44a093958dd319fef/pymongo-4.15.2-cp313-cp313-win32.whl", hash = "sha256:a42ad84dfab44218f264e2d68b79e0e684c03c66fe8180a7961d6eb670eec4a3", size = 937993, upload-time = "2025-10-01T21:24:49.843Z" },
{ url = "https://files.pythonhosted.org/packages/46/72/6227a40c9872592118937b561e932886c38e220156a9747f2025b9e479ac/pymongo-4.15.2-cp313-cp313-win_amd64.whl", hash = "sha256:5fa558bc6320e1183965db06e069973c9642b971a37729a8ae23c37f1c13ce21", size = 962225, upload-time = "2025-10-01T21:24:51.488Z" },
{ url = "https://files.pythonhosted.org/packages/2f/cd/396a1a03cc3c99e327aea23ab3e0dde5e069f4d9279dc26c80604b2783c7/pymongo-4.15.2-cp313-cp313-win_arm64.whl", hash = "sha256:38785ba507a019edb742e333c6bf2fa3644043f1ce79ef4d20a4f7bb2180ee74", size = 944144, upload-time = "2025-10-01T21:24:53.052Z" },
]
[[package]]
@@ -6887,28 +6956,28 @@ wheels = [
[[package]]
name = "ruff"
version = "0.13.2"
version = "0.13.3"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/02/df/8d7d8c515d33adfc540e2edf6c6021ea1c5a58a678d8cfce9fae59aabcab/ruff-0.13.2.tar.gz", hash = "sha256:cb12fffd32fb16d32cef4ed16d8c7cdc27ed7c944eaa98d99d01ab7ab0b710ff", size = 5416417, upload-time = "2025-09-25T14:54:09.936Z" }
sdist = { url = "https://files.pythonhosted.org/packages/c7/8e/f9f9ca747fea8e3ac954e3690d4698c9737c23b51731d02df999c150b1c9/ruff-0.13.3.tar.gz", hash = "sha256:5b0ba0db740eefdfbcce4299f49e9eaefc643d4d007749d77d047c2bab19908e", size = 5438533, upload-time = "2025-10-02T19:29:31.582Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/6e/84/5716a7fa4758e41bf70e603e13637c42cfb9dbf7ceb07180211b9bbf75ef/ruff-0.13.2-py3-none-linux_armv6l.whl", hash = "sha256:3796345842b55f033a78285e4f1641078f902020d8450cade03aad01bffd81c3", size = 12343254, upload-time = "2025-09-25T14:53:27.784Z" },
{ url = "https://files.pythonhosted.org/packages/9b/77/c7042582401bb9ac8eff25360e9335e901d7a1c0749a2b28ba4ecb239991/ruff-0.13.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ff7e4dda12e683e9709ac89e2dd436abf31a4d8a8fc3d89656231ed808e231d2", size = 13040891, upload-time = "2025-09-25T14:53:31.38Z" },
{ url = "https://files.pythonhosted.org/packages/c6/15/125a7f76eb295cb34d19c6778e3a82ace33730ad4e6f28d3427e134a02e0/ruff-0.13.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c75e9d2a2fafd1fdd895d0e7e24b44355984affdde1c412a6f6d3f6e16b22d46", size = 12243588, upload-time = "2025-09-25T14:53:33.543Z" },
{ url = "https://files.pythonhosted.org/packages/9e/eb/0093ae04a70f81f8be7fd7ed6456e926b65d238fc122311293d033fdf91e/ruff-0.13.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cceac74e7bbc53ed7d15d1042ffe7b6577bf294611ad90393bf9b2a0f0ec7cb6", size = 12491359, upload-time = "2025-09-25T14:53:35.892Z" },
{ url = "https://files.pythonhosted.org/packages/43/fe/72b525948a6956f07dad4a6f122336b6a05f2e3fd27471cea612349fedb9/ruff-0.13.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6ae3f469b5465ba6d9721383ae9d49310c19b452a161b57507764d7ef15f4b07", size = 12162486, upload-time = "2025-09-25T14:53:38.171Z" },
{ url = "https://files.pythonhosted.org/packages/6a/e3/0fac422bbbfb2ea838023e0d9fcf1f30183d83ab2482800e2cb892d02dfe/ruff-0.13.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f8f9e3cd6714358238cd6626b9d43026ed19c0c018376ac1ef3c3a04ffb42d8", size = 13871203, upload-time = "2025-09-25T14:53:41.943Z" },
{ url = "https://files.pythonhosted.org/packages/6b/82/b721c8e3ec5df6d83ba0e45dcf00892c4f98b325256c42c38ef136496cbf/ruff-0.13.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c6ed79584a8f6cbe2e5d7dbacf7cc1ee29cbdb5df1172e77fbdadc8bb85a1f89", size = 14929635, upload-time = "2025-09-25T14:53:43.953Z" },
{ url = "https://files.pythonhosted.org/packages/c4/a0/ad56faf6daa507b83079a1ad7a11694b87d61e6bf01c66bd82b466f21821/ruff-0.13.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aed130b2fde049cea2019f55deb939103123cdd191105f97a0599a3e753d61b0", size = 14338783, upload-time = "2025-09-25T14:53:46.205Z" },
{ url = "https://files.pythonhosted.org/packages/47/77/ad1d9156db8f99cd01ee7e29d74b34050e8075a8438e589121fcd25c4b08/ruff-0.13.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1887c230c2c9d65ed1b4e4cfe4d255577ea28b718ae226c348ae68df958191aa", size = 13355322, upload-time = "2025-09-25T14:53:48.164Z" },
{ url = "https://files.pythonhosted.org/packages/64/8b/e87cfca2be6f8b9f41f0bb12dc48c6455e2d66df46fe61bb441a226f1089/ruff-0.13.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5bcb10276b69b3cfea3a102ca119ffe5c6ba3901e20e60cf9efb53fa417633c3", size = 13354427, upload-time = "2025-09-25T14:53:50.486Z" },
{ url = "https://files.pythonhosted.org/packages/7f/df/bf382f3fbead082a575edb860897287f42b1b3c694bafa16bc9904c11ed3/ruff-0.13.2-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:afa721017aa55a555b2ff7944816587f1cb813c2c0a882d158f59b832da1660d", size = 13537637, upload-time = "2025-09-25T14:53:52.887Z" },
{ url = "https://files.pythonhosted.org/packages/51/70/1fb7a7c8a6fc8bd15636288a46e209e81913b87988f26e1913d0851e54f4/ruff-0.13.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:1dbc875cf3720c64b3990fef8939334e74cb0ca65b8dbc61d1f439201a38101b", size = 12340025, upload-time = "2025-09-25T14:53:54.88Z" },
{ url = "https://files.pythonhosted.org/packages/4c/27/1e5b3f1c23ca5dd4106d9d580e5c13d9acb70288bff614b3d7b638378cc9/ruff-0.13.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:5b939a1b2a960e9742e9a347e5bbc9b3c3d2c716f86c6ae273d9cbd64f193f22", size = 12133449, upload-time = "2025-09-25T14:53:57.089Z" },
{ url = "https://files.pythonhosted.org/packages/2d/09/b92a5ccee289f11ab128df57d5911224197d8d55ef3bd2043534ff72ca54/ruff-0.13.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:50e2d52acb8de3804fc5f6e2fa3ae9bdc6812410a9e46837e673ad1f90a18736", size = 13051369, upload-time = "2025-09-25T14:53:59.124Z" },
{ url = "https://files.pythonhosted.org/packages/89/99/26c9d1c7d8150f45e346dc045cc49f23e961efceb4a70c47dea0960dea9a/ruff-0.13.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3196bc13ab2110c176b9a4ae5ff7ab676faaa1964b330a1383ba20e1e19645f2", size = 13523644, upload-time = "2025-09-25T14:54:01.622Z" },
{ url = "https://files.pythonhosted.org/packages/f7/00/e7f1501e81e8ec290e79527827af1d88f541d8d26151751b46108978dade/ruff-0.13.2-py3-none-win32.whl", hash = "sha256:7c2a0b7c1e87795fec3404a485096bcd790216c7c146a922d121d8b9c8f1aaac", size = 12245990, upload-time = "2025-09-25T14:54:03.647Z" },
{ url = "https://files.pythonhosted.org/packages/ee/bd/d9f33a73de84fafd0146c6fba4f497c4565fe8fa8b46874b8e438869abc2/ruff-0.13.2-py3-none-win_amd64.whl", hash = "sha256:17d95fb32218357c89355f6f6f9a804133e404fc1f65694372e02a557edf8585", size = 13324004, upload-time = "2025-09-25T14:54:06.05Z" },
{ url = "https://files.pythonhosted.org/packages/c3/12/28fa2f597a605884deb0f65c1b1ae05111051b2a7030f5d8a4ff7f4599ba/ruff-0.13.2-py3-none-win_arm64.whl", hash = "sha256:da711b14c530412c827219312b7d7fbb4877fb31150083add7e8c5336549cea7", size = 12484437, upload-time = "2025-09-25T14:54:08.022Z" },
{ url = "https://files.pythonhosted.org/packages/d2/33/8f7163553481466a92656d35dea9331095122bb84cf98210bef597dd2ecd/ruff-0.13.3-py3-none-linux_armv6l.whl", hash = "sha256:311860a4c5e19189c89d035638f500c1e191d283d0cc2f1600c8c80d6dcd430c", size = 12484040, upload-time = "2025-10-02T19:28:49.199Z" },
{ url = "https://files.pythonhosted.org/packages/b0/b5/4a21a4922e5dd6845e91896b0d9ef493574cbe061ef7d00a73c61db531af/ruff-0.13.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:2bdad6512fb666b40fcadb65e33add2b040fc18a24997d2e47fee7d66f7fcae2", size = 13122975, upload-time = "2025-10-02T19:28:52.446Z" },
{ url = "https://files.pythonhosted.org/packages/40/90/15649af836d88c9f154e5be87e64ae7d2b1baa5a3ef317cb0c8fafcd882d/ruff-0.13.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:fc6fa4637284708d6ed4e5e970d52fc3b76a557d7b4e85a53013d9d201d93286", size = 12346621, upload-time = "2025-10-02T19:28:54.712Z" },
{ url = "https://files.pythonhosted.org/packages/a5/42/bcbccb8141305f9a6d3f72549dd82d1134299177cc7eaf832599700f95a7/ruff-0.13.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c9e6469864f94a98f412f20ea143d547e4c652f45e44f369d7b74ee78185838", size = 12574408, upload-time = "2025-10-02T19:28:56.679Z" },
{ url = "https://files.pythonhosted.org/packages/ce/19/0f3681c941cdcfa2d110ce4515624c07a964dc315d3100d889fcad3bfc9e/ruff-0.13.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5bf62b705f319476c78891e0e97e965b21db468b3c999086de8ffb0d40fd2822", size = 12285330, upload-time = "2025-10-02T19:28:58.79Z" },
{ url = "https://files.pythonhosted.org/packages/10/f8/387976bf00d126b907bbd7725219257feea58650e6b055b29b224d8cb731/ruff-0.13.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78cc1abed87ce40cb07ee0667ce99dbc766c9f519eabfd948ed87295d8737c60", size = 13980815, upload-time = "2025-10-02T19:29:01.577Z" },
{ url = "https://files.pythonhosted.org/packages/0c/a6/7c8ec09d62d5a406e2b17d159e4817b63c945a8b9188a771193b7e1cc0b5/ruff-0.13.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:4fb75e7c402d504f7a9a259e0442b96403fa4a7310ffe3588d11d7e170d2b1e3", size = 14987733, upload-time = "2025-10-02T19:29:04.036Z" },
{ url = "https://files.pythonhosted.org/packages/97/e5/f403a60a12258e0fd0c2195341cfa170726f254c788673495d86ab5a9a9d/ruff-0.13.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:17b951f9d9afb39330b2bdd2dd144ce1c1335881c277837ac1b50bfd99985ed3", size = 14439848, upload-time = "2025-10-02T19:29:06.684Z" },
{ url = "https://files.pythonhosted.org/packages/39/49/3de381343e89364c2334c9f3268b0349dc734fc18b2d99a302d0935c8345/ruff-0.13.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6052f8088728898e0a449f0dde8fafc7ed47e4d878168b211977e3e7e854f662", size = 13421890, upload-time = "2025-10-02T19:29:08.767Z" },
{ url = "https://files.pythonhosted.org/packages/ab/b5/c0feca27d45ae74185a6bacc399f5d8920ab82df2d732a17213fb86a2c4c/ruff-0.13.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc742c50f4ba72ce2a3be362bd359aef7d0d302bf7637a6f942eaa763bd292af", size = 13444870, upload-time = "2025-10-02T19:29:11.234Z" },
{ url = "https://files.pythonhosted.org/packages/50/a1/b655298a1f3fda4fdc7340c3f671a4b260b009068fbeb3e4e151e9e3e1bf/ruff-0.13.3-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:8e5640349493b378431637019366bbd73c927e515c9c1babfea3e932f5e68e1d", size = 13691599, upload-time = "2025-10-02T19:29:13.353Z" },
{ url = "https://files.pythonhosted.org/packages/32/b0/a8705065b2dafae007bcae21354e6e2e832e03eb077bb6c8e523c2becb92/ruff-0.13.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:6b139f638a80eae7073c691a5dd8d581e0ba319540be97c343d60fb12949c8d0", size = 12421893, upload-time = "2025-10-02T19:29:15.668Z" },
{ url = "https://files.pythonhosted.org/packages/0d/1e/cbe7082588d025cddbb2f23e6dfef08b1a2ef6d6f8328584ad3015b5cebd/ruff-0.13.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:6b547def0a40054825de7cfa341039ebdfa51f3d4bfa6a0772940ed351d2746c", size = 12267220, upload-time = "2025-10-02T19:29:17.583Z" },
{ url = "https://files.pythonhosted.org/packages/a5/99/4086f9c43f85e0755996d09bdcb334b6fee9b1eabdf34e7d8b877fadf964/ruff-0.13.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:9cc48a3564423915c93573f1981d57d101e617839bef38504f85f3677b3a0a3e", size = 13177818, upload-time = "2025-10-02T19:29:19.943Z" },
{ url = "https://files.pythonhosted.org/packages/9b/de/7b5db7e39947d9dc1c5f9f17b838ad6e680527d45288eeb568e860467010/ruff-0.13.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:1a993b17ec03719c502881cb2d5f91771e8742f2ca6de740034433a97c561989", size = 13618715, upload-time = "2025-10-02T19:29:22.527Z" },
{ url = "https://files.pythonhosted.org/packages/28/d3/bb25ee567ce2f61ac52430cf99f446b0e6d49bdfa4188699ad005fdd16aa/ruff-0.13.3-py3-none-win32.whl", hash = "sha256:f14e0d1fe6460f07814d03c6e32e815bff411505178a1f539a38f6097d3e8ee3", size = 12334488, upload-time = "2025-10-02T19:29:24.782Z" },
{ url = "https://files.pythonhosted.org/packages/cf/49/12f5955818a1139eed288753479ba9d996f6ea0b101784bb1fe6977ec128/ruff-0.13.3-py3-none-win_amd64.whl", hash = "sha256:621e2e5812b691d4f244638d693e640f188bacbb9bc793ddd46837cea0503dd2", size = 13455262, upload-time = "2025-10-02T19:29:26.882Z" },
{ url = "https://files.pythonhosted.org/packages/fe/72/7b83242b26627a00e3af70d0394d68f8f02750d642567af12983031777fc/ruff-0.13.3-py3-none-win_arm64.whl", hash = "sha256:9e9e9d699841eaf4c2c798fa783df2fabc680b72059a02ca0ed81c460bc58330", size = 12538484, upload-time = "2025-10-02T19:29:28.951Z" },
]
[[package]]
@@ -7197,7 +7266,7 @@ wheels = [
[[package]]
name = "selenium"
version = "4.35.0"
version = "4.36.0"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
"python_full_version >= '3.13' and platform_python_implementation != 'PyPy' and sys_platform == 'darwin'",
@@ -7221,9 +7290,9 @@ dependencies = [
{ name = "urllib3", version = "2.5.0", source = { registry = "https://pypi.org/simple" }, extra = ["socks"], marker = "platform_python_implementation != 'PyPy'" },
{ name = "websocket-client", marker = "platform_python_implementation != 'PyPy'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/75/67/9016942b5781843cfea6f5bc1383cea852d9fa08f85f55a0547874525b5c/selenium-4.35.0.tar.gz", hash = "sha256:83937a538afb40ef01e384c1405c0863fa184c26c759d34a1ebbe7b925d3481c", size = 907991, upload-time = "2025-08-12T15:46:40.822Z" }
sdist = { url = "https://files.pythonhosted.org/packages/10/35/33d3d84e3399c9d00b489aeccfdc78115e149e45816fb8fe84274329e8a2/selenium-4.36.0.tar.gz", hash = "sha256:0eced83038736c3a013b824116df0b6dbb83e93721545f51b680451013416723", size = 913613, upload-time = "2025-10-02T15:24:37.483Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/17/ef/d0e033e1b3f19a0325ce03863b68d709780908381135fc0f9436dea76a7b/selenium-4.35.0-py3-none-any.whl", hash = "sha256:90bb6c6091fa55805785cf1660fa1e2176220475ccdb466190f654ef8eef6114", size = 9602106, upload-time = "2025-08-12T15:46:38.244Z" },
{ url = "https://files.pythonhosted.org/packages/74/9e/642a355e43a4ebf68bc4f00dd4ab264f635079c5dc7ed6d9991a0c2be3d7/selenium-4.36.0-py3-none-any.whl", hash = "sha256:525fdfe96b99c27d9a2c773c75aa7413f4c24bdb7b9749c1950aa3b5f79ed915", size = 9587029, upload-time = "2025-10-02T15:24:35.025Z" },
]
[[package]]
@@ -7622,14 +7691,13 @@ wheels = [
[[package]]
name = "stagehand"
version = "0.5.3"
version = "0.5.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anthropic" },
{ name = "browserbase" },
{ name = "httpx" },
{ name = "litellm" },
{ name = "nest-asyncio" },
{ name = "openai" },
{ name = "playwright" },
{ name = "pydantic" },
@@ -7637,9 +7705,9 @@ dependencies = [
{ name = "requests" },
{ name = "rich" },
]
sdist = { url = "https://files.pythonhosted.org/packages/54/c6/b8941e9022caa81c5f729864606345bd0b200c5de3dbfe1eeb449c4ac827/stagehand-0.5.3.tar.gz", hash = "sha256:cfeeb35e48fad20bda9cc02deb5ab262145d6d74a5d10d148940f9a1d0bd50b4", size = 95764, upload-time = "2025-09-16T21:57:10.437Z" }
sdist = { url = "https://files.pythonhosted.org/packages/b8/36/e1e5f5c1048e345bc4b09cdaa638134c613f8c6d056b32ac542a7f38c91e/stagehand-0.5.0.tar.gz", hash = "sha256:58d11bc05178033e0f224c2d7969cff8945d0e5b1416dc88b30e4d578f309cdc", size = 90959, upload-time = "2025-07-28T23:44:40.164Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/d0/35/4012a5b1a2378ca773ee4e63ae96fd65a14004f8f5f94dfd938196844057/stagehand-0.5.3-py3-none-any.whl", hash = "sha256:bb3fa95b27f6dc5097c6535373f7a585c77aa235792959ac004e5b7df25094cd", size = 106894, upload-time = "2025-09-16T21:57:08.999Z" },
{ url = "https://files.pythonhosted.org/packages/98/5c/9adaf1c9ee3457d906d84071a705cbe22583ab581d533c6483251feaef60/stagehand-0.5.0-py3-none-any.whl", hash = "sha256:4b7a61e414c8680ed601d7b3ddc1ea46b4b308d649a286f65db0f17b28f19a68", size = 102142, upload-time = "2025-07-28T23:44:38.951Z" },
]
[[package]]
@@ -7837,6 +7905,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/b3/46/e33a8c93907b631a99377ef4c5f817ab453d0b34f93529421f42ff559671/tokenizers-0.22.1-cp39-abi3-win_amd64.whl", hash = "sha256:65fd6e3fb11ca1e78a6a93602490f134d1fdeb13bcef99389d5102ea318ed138", size = 2674684, upload-time = "2025-09-19T09:49:24.953Z" },
]
[[package]]
name = "toml"
version = "0.10.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/be/ba/1f744cdc819428fc6b5084ec34d9b30660f6f9daaf70eead706e3203ec3c/toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f", size = 22253, upload-time = "2020-11-01T01:40:22.204Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", size = 16588, upload-time = "2020-11-01T01:40:20.672Z" },
]
[[package]]
name = "tomli"
version = "2.2.1"
@@ -8002,7 +8079,7 @@ wheels = [
[[package]]
name = "transformers"
version = "4.56.2"
version = "4.57.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "filelock" },
@@ -8017,14 +8094,14 @@ dependencies = [
{ name = "tokenizers" },
{ name = "tqdm" },
]
sdist = { url = "https://files.pythonhosted.org/packages/e5/82/0bcfddd134cdf53440becb5e738257cc3cf34cf229d63b57bfd288e6579f/transformers-4.56.2.tar.gz", hash = "sha256:5e7c623e2d7494105c726dd10f6f90c2c99a55ebe86eef7233765abd0cb1c529", size = 9844296, upload-time = "2025-09-19T15:16:26.778Z" }
sdist = { url = "https://files.pythonhosted.org/packages/f3/5c/a22c39dac2687f3fe2a6b97e2c1ae516e91cd4d3976a7a2b7c24ff2fae48/transformers-4.57.0.tar.gz", hash = "sha256:d045753f3d93f9216e693cdb168698dfd2e9d3aad1bb72579a5d60ebf1545a8b", size = 10142956, upload-time = "2025-10-03T17:03:47.177Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/70/26/2591b48412bde75e33bfd292034103ffe41743cacd03120e3242516cd143/transformers-4.56.2-py3-none-any.whl", hash = "sha256:79c03d0e85b26cb573c109ff9eafa96f3c8d4febfd8a0774e8bba32702dd6dde", size = 11608055, upload-time = "2025-09-19T15:16:23.736Z" },
{ url = "https://files.pythonhosted.org/packages/e5/2b/4d2708ac1ff5cd708b6548f4c5812d0ae40d1c28591c4c1c762b6dbdef2d/transformers-4.57.0-py3-none-any.whl", hash = "sha256:9d7c6d098c026e40d897e017ed1f481ab803cbac041021dbc6ae6100e4949b55", size = 11990588, upload-time = "2025-10-03T17:03:43.629Z" },
]
[[package]]
name = "trio"
version = "0.30.0"
version = "0.31.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "attrs" },
@@ -8035,9 +8112,9 @@ dependencies = [
{ name = "sniffio" },
{ name = "sortedcontainers" },
]
sdist = { url = "https://files.pythonhosted.org/packages/01/c1/68d582b4d3a1c1f8118e18042464bb12a7c1b75d64d75111b297687041e3/trio-0.30.0.tar.gz", hash = "sha256:0781c857c0c81f8f51e0089929a26b5bb63d57f927728a5586f7e36171f064df", size = 593776, upload-time = "2025-04-21T00:48:19.507Z" }
sdist = { url = "https://files.pythonhosted.org/packages/76/8f/c6e36dd11201e2a565977d8b13f0b027ba4593c1a80bed5185489178e257/trio-0.31.0.tar.gz", hash = "sha256:f71d551ccaa79d0cb73017a33ef3264fde8335728eb4c6391451fe5d253a9d5b", size = 605825, upload-time = "2025-09-09T15:17:15.242Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/69/8e/3f6dfda475ecd940e786defe6df6c500734e686c9cd0a0f8ef6821e9b2f2/trio-0.30.0-py3-none-any.whl", hash = "sha256:3bf4f06b8decf8d3cf00af85f40a89824669e2d033bb32469d34840edcfc22a5", size = 499194, upload-time = "2025-04-21T00:48:17.167Z" },
{ url = "https://files.pythonhosted.org/packages/31/5b/94237a3485620dbff9741df02ff6d8acaa5fdec67d81ab3f62e4d8511bf7/trio-0.31.0-py3-none-any.whl", hash = "sha256:b5d14cd6293d79298b49c3485ffd9c07e3ce03a6da8c7dfbe0cb3dd7dc9a4774", size = 512679, upload-time = "2025-09-09T15:17:13.821Z" },
]
[[package]]
@@ -8060,7 +8137,7 @@ name = "triton"
version = "3.4.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "setuptools" },
{ name = "setuptools", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/62/ee/0ee5f64a87eeda19bbad9bc54ae5ca5b98186ed00055281fd40fb4beb10e/triton-3.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ff2785de9bc02f500e085420273bb5cc9c9bb767584a4aa28d6e360cec70128", size = 155430069, upload-time = "2025-07-30T19:58:21.715Z" },
@@ -8175,11 +8252,11 @@ wheels = [
[[package]]
name = "typing-extensions"
version = "4.14.1"
version = "4.15.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/98/5a/da40306b885cc8c09109dc2e1abd358d5684b1425678151cdaed4731c822/typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36", size = 107673, upload-time = "2025-07-04T13:28:34.16Z" }
sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/b5/00/d631e67a838026495268c2f6884f3711a15a9a2a96cd244fdaea53b823fb/typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76", size = 43906, upload-time = "2025-07-04T13:28:32.743Z" },
{ url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" },
]
[[package]]