mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-05 06:08:29 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29a0ac483f | ||
|
|
38bc5a9dc4 | ||
|
|
0b305dabc9 | ||
|
|
ebeed0b752 | ||
|
|
2a0018a99b | ||
|
|
5865d39137 | ||
|
|
e529ebff2b | ||
|
|
126b91eab3 |
16
.github/workflows/publish.yml
vendored
16
.github/workflows/publish.yml
vendored
@@ -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
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -291,4 +291,4 @@ __all__ = [
|
||||
"ZapierActionTools",
|
||||
]
|
||||
|
||||
__version__ = "1.0.0a2"
|
||||
__version__ = "1.0.0a3"
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
@@ -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)
|
||||
|
||||
0
lib/crewai/src/crewai/llms/providers/__init__.py
Normal file
0
lib/crewai/src/crewai/llms/providers/__init__.py
Normal file
432
lib/crewai/src/crewai/llms/providers/anthropic/completion.py
Normal file
432
lib/crewai/src/crewai/llms/providers/anthropic/completion.py
Normal 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}
|
||||
473
lib/crewai/src/crewai/llms/providers/azure/completion.py
Normal file
473
lib/crewai/src/crewai/llms/providers/azure/completion.py
Normal 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}
|
||||
497
lib/crewai/src/crewai/llms/providers/gemini/completion.py
Normal file
497
lib/crewai/src/crewai/llms/providers/gemini/completion.py
Normal 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
|
||||
]
|
||||
484
lib/crewai/src/crewai/llms/providers/openai/completion.py
Normal file
484
lib/crewai/src/crewai/llms/providers/openai/completion.py
Normal 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
|
||||
136
lib/crewai/src/crewai/llms/providers/utils/common.py
Normal file
136
lib/crewai/src/crewai/llms/providers/utils/common.py
Normal 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
|
||||
@@ -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,
|
||||
|
||||
@@ -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))
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
128
lib/crewai/tests/cassettes/test_litellm_auth_error_handling.yaml
Normal file
128
lib/crewai/tests/cassettes/test_litellm_auth_error_handling.yaml
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
156
lib/crewai/tests/cassettes/test_llm_call_with_error.yaml
Normal file
156
lib/crewai/tests/cassettes/test_llm_call_with_error.yaml
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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."""
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)}
|
||||
|
||||
@@ -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
0
lib/devtools/README.md
Normal file
32
lib/devtools/pyproject.toml
Normal file
32
lib/devtools/pyproject.toml
Normal 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"
|
||||
|
||||
3
lib/devtools/src/crewai_devtools/__init__.py
Normal file
3
lib/devtools/src/crewai_devtools/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
||||
"""CrewAI development tools."""
|
||||
|
||||
__version__ = "1.0.0a3"
|
||||
706
lib/devtools/src/crewai_devtools/cli.py
Normal file
706
lib/devtools/src/crewai_devtools/cli.py
Normal 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()
|
||||
45
lib/devtools/src/crewai_devtools/prompts.py
Normal file
45
lib/devtools/src/crewai_devtools/prompts.py
Normal 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."""
|
||||
)
|
||||
@@ -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
363
uv.lock
generated
@@ -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]]
|
||||
|
||||
Reference in New Issue
Block a user