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

# CrewAI

> The OpenAI-compatible LLM, pointed at Nito.

```python lines wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
from crewai import LLM, Agent

llm = LLM(
    model="openai/moonshotai/kimi-k3",                       # note the openai/ prefix (see below)
    api_key="z_sk_your_key_here",                  # your Nito API key
    base_url="https://app.trynito.ai/v1",  # Nito's OpenAI-compatible base URL
)

researcher = Agent(
    role="Researcher",
    goal="Answer questions concisely.",
    backstory="A focused analyst.",
    llm=llm,
)
```

CrewAI model strings are `provider/model`. The `openai/` prefix selects the OpenAI-compatible provider, and `base_url` and `api_key` are fields on `LLM`; what follows the prefix is the catalog ID sent to Nito.

```python wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
# openai/ = CrewAI provider prefix; z-ai/glm-5.2:confidential = the Nito catalog ID
model="openai/z-ai/glm-5.2:confidential"
```

## Privacy

Use a catalog ID, not an OpenAI name. For attested hardware use a `:confidential` variant; `GET /v1/models` lists their `:confidential` IDs. Encrypted needs client-side encryption and extra headers, which these frameworks do not add. See [Privacy Levels](/privacy/levels).

## Related

<CardGroup cols={3}>
  <Card title="Framework Integrations" icon="link" href="/api/sdks/framework-integrations">
    The shared pattern.
  </Card>

  <Card title="OpenAI Compatibility" icon="arrows-left-right" href="/api/sdks/openai-drop-in/compatibility-notes">
    What differs.
  </Card>

  <Card title="Privacy Levels" icon="file-shield" href="/privacy/levels">
    The four levels.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.