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

# Cloudflare AI Gateway: tool use

> Runs a Workers AI chat model through Cloudflare AI Gateway's OpenAI-compatible ``/compat`` endpoint with a tool.

Runs a Workers AI chat model through Cloudflare AI Gateway's OpenAI-compatible `/compat` endpoint with a tool. The OpenAI `tools` / `tool_calls` schema is forwarded as-is by the gateway; the upstream Workers AI model must support function calling. `@cf/zai-org/glm-4.7-flash` does.

```python tool_use.py theme={null}
"""
Cloudflare AI Gateway — tool use
================================

Runs a Workers AI chat model through Cloudflare AI Gateway's OpenAI-compatible
``/compat`` endpoint with a tool. The OpenAI ``tools`` / ``tool_calls`` schema
is forwarded as-is by the gateway; the upstream Workers AI model must support
function calling. ``@cf/zai-org/glm-4.7-flash`` does.

Requires:
- CLOUDFLARE_API_TOKEN
- CLOUDFLARE_ACCOUNT_ID

Optional:
- CLOUDFLARE_AI_GATEWAY_ID  (defaults to ``default``)

Install:
    uv pip install ddgs
"""

import asyncio

from agno.agent import Agent
from agno.models.cloudflare import Cloudflare
from agno.tools.websearch import WebSearchTools

agent = Agent(
    model=Cloudflare(id="@cf/zai-org/glm-4.7-flash"),
    tools=[WebSearchTools()],
    markdown=True,
    add_datetime_to_context=True,
)

if __name__ == "__main__":
    # --- Sync ---
    agent.print_response("Whats happening in France?")

    # --- Sync + Streaming ---
    agent.print_response("Whats happening in France?", stream=True)

    # --- Async + Streaming ---
    asyncio.run(agent.aprint_response("Whats happening in France?", stream=True))
```

## Run the Example

<Steps>
  <Snippet file="create-venv-step.mdx" />

  <Step title="Install dependencies">
    ```bash theme={null}
    uv pip install -U agno ddgs openai
    ```
  </Step>

  <Step title="Export environment variables">
    <CodeGroup>
      ```bash Mac/Linux theme={null}
      export CLOUDFLARE_API_TOKEN="your_cloudflare_api_token_here"
      ```

      ```bash Windows theme={null}
      $Env:CLOUDFLARE_API_TOKEN="your_cloudflare_api_token_here"
      ```
    </CodeGroup>
  </Step>

  <Step title="Run the example">
    Save the code above as `tool_use.py`, then run:

    ```bash theme={null}
    python tool_use.py
    ```
  </Step>
</Steps>

Full source: [cookbook/90\_models/cloudflare/tool\_use.py](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/cloudflare/tool_use.py)
