> ## Documentation Index
> Fetch the complete documentation index at: https://www.getmaxim.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# crewai.Utils

> Utility functions and helpers for Crewai integration.

[View module source on GitHub](https://github.com/maximhq/maxim-py/blob/main/maxim/logger/crewai/utils.py)

#### is\_primitive

```python theme={null}
def is_primitive(obj: Any) -> bool
```

Check if an object is a known primitive type.

#### dictify

```python theme={null}
def dictify(obj: Any,
            maxdepth: int = 0,
            depth: int = 1,
            seen: Union[set[int], None] = None) -> Any
```

Recursively compute a dictionary representation of an object.

#### stringify

```python theme={null}
def stringify(obj: Any, limit: int = MAX_STR_LEN) -> str
```

This is a fallback for objects that we don't have a better way to serialize.

#### serialize\_crewai\_objects

```python theme={null}
def serialize_crewai_objects(obj: Any) -> Any
```

Safely serialize CrewAI objects to prevent recursion.

#### crewai\_postprocess\_inputs

```python theme={null}
def crewai_postprocess_inputs(inputs: dict[str, Any]) -> dict[str, Any]
```

Process CrewAI inputs to prevent recursion.

#### crew\_kickoff\_postprocess\_inputs

```python theme={null}
def crew_kickoff_postprocess_inputs(inputs: dict[str, Any]) -> dict[str, Any]
```

Postprocess the inputs to the Crew\.kickoff method.

The method has a self which should be an instance of `Crew` which is a pydantic model.
The method also has an inputs which is a dict or list\[dict] of arguments to pass to the `kickoff` method.
