# bind_tools

> **Method** in `langchain_core`

📖 [View in docs](https://reference.langchain.com/python/langchain-core/language_models/chat_models/BaseChatModel/bind_tools)

Bind tools to the model.

## Signature

```python
bind_tools(
    self,
    tools: Sequence[builtins.dict[str, Any] | type | Callable | BaseTool],
    *,
    tool_choice: str | None = None,
    **kwargs: Any = {},
) -> Runnable[LanguageModelInput, AIMessage]
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `tools` | `Sequence[builtins.dict[str, Any] \| type \| Callable \| BaseTool]` | Yes | Sequence of tools to bind to the model. |
| `tool_choice` | `str \| None` | No | The tool to use. If "any" then any tool can be used. (default: `None`) |

## Returns

`Runnable[LanguageModelInput, AIMessage]`

A Runnable that returns a message.

---

[View source on GitHub](https://github.com/langchain-ai/langchain/blob/8fec4e7ceee2c368b068c49f9fed453276e210e7/libs/core/langchain_core/language_models/chat_models.py#L1598)