# Define the Cohere LLM
llm = ChatCohere(
    cohere_api_key="COHERE_API_KEY",
    model="command-a-03-2025",
    temperature=0,
)

agent_executor = create_csv_agent(
    llm,
    "titanic.csv",  # https://github.com/langchain-ai/langchain/blob/master/templates/csv-agent/titanic.csv
)

resp = agent_executor.invoke(
    {"input": "How many people were on the titanic?"}
)
print(resp.get("output"))
```

## Streaming for Tool Calling

When tools are called in a streaming context, message chunks will be populated with tool call chunk objects in a list via the `.tool_call_chunks` attribute.

```python PYTHON
from langchain_core.tools import tool
from langchain_cohere import ChatCohere


@tool
def add(a: int, b: int) -> int:
    """Adds a and b."""
    return a + b


@tool
def multiply(a: int, b: int) -> int:
    """Multiplies a and b."""
    return a * b


tools = [add, multiply]