# AI research assistant (/features/ai/ai-research-assistant)

## Function calling \[#function-calling]

New in v2025.10.15

✅ VBT now supports function calling across all LLMs, allowing you to use the MCP server
and define custom functions that the model can invoke, and all of this without any additional setup!
This feature is particularly useful for complex queries, agentic workflows, and interactive applications
where you want the model to perform specific tasks or calculations on your behalf.

```python title="Ask VBT a question using ChatGPT and let it use the MCP server"
>>> env["OPENAI_API_KEY"] = "<YOUR_OPENAI_API_KEY>"

>>> vbt.interact(  # (1)
...     "How to backtest a weekly rebalancing strategy with vbt.PF.from_orders?",
...     tool_display_format="compact",  # (2)
...     formatter="html",
... )
```

1.  Use `interact()` instead of `chat()` to enable function calling.
2.  Optional. Use a compact display format for tools. By default, tools are displayed in a collapsed format.

![](/assets/images/features/intelligence/function_calling.light.gif#only-light)
![](/assets/images/features/intelligence/function_calling.dark.gif#only-dark)

## Reasoning steps \[#reasoning-steps]

New in v2025.10.15

✅ VBT now supports reasoning steps across all LLMs, allowing you to see how the model arrived
at its conclusion. This is particularly useful for complex queries that require multiple steps to answer.

```python title="Ask VBT a question using ChatGPT and see its reasoning steps"
>>> env["GITHUB_TOKEN"] = "<YOUR_GITHUB_TOKEN>"
>>> env["OPENAI_API_KEY"] = "<YOUR_OPENAI_API_KEY>"

>>> vbt.chat(
...     "How to backtest a weekly rebalancing strategy with vbt.PF.from_orders?",
...     reasoning=dict(effort="low", summary="auto"),  # (1)
...     formatter="html"
... )
```

1.  Enable reasoning with low effort and automatic summary for OpenAI models.

![](/assets/images/features/intelligence/reasoning_steps.light.gif#only-light)
![](/assets/images/features/intelligence/reasoning_steps.dark.gif#only-dark)

## ChatVBT \[#chatvbt]

New in v2025.3.1

✅ Similar to SearchVBT, ChatVBT takes search results and forwards
them to an LLM for completion. This allows you to interact seamlessly with the entire VBT knowledge base,
receiving detailed and context-aware responses.

```python title="Ask VBT a question using ChatGPT"
>>> env["GITHUB_TOKEN"] = "<YOUR_GITHUB_TOKEN>"
>>> env["OPENAI_API_KEY"] = "<YOUR_OPENAI_API_KEY>"

>>> vbt.chat("How to rebalance weekly?", formatter="html")
```

![](/assets/images/features/intelligence/chatvbt.light.gif#only-light)
![](/assets/images/features/intelligence/chatvbt.dark.gif#only-dark)

## Self-aware classes \[#self-aware-classes]

New in v2024.12.15

✅ Each VBT class offers methods to explore its features, including its API, associated
documentation, Discord messages, and code examples. You can even interact with it directly via an LLM!

```python title="Ask portfolio optimizer a question"
>>> env["GITHUB_TOKEN"] = "<YOUR_GITHUB_TOKEN>"
>>> env["OPENAI_API_KEY"] = "<YOUR_API_KEY>"

>>> vbt.PortfolioOptimizer.find_assets().get("link")
['https://members.vectorbt.pro/api/portfolio/pfopt/base/#vectorbtpro.portfolio.pfopt.base',
 'https://members.vectorbt.pro/api/generic/analyzable/#vectorbtpro.generic.analyzable.Analyzable',
 'https://members.vectorbt.pro/api/base/wrapping/#vectorbtpro.base.wrapping.Wrapping',
 ...
 'https://members.vectorbt.pro/features/optimization/portfolio-optimization/#riskfolio-lib',
 'https://members.vectorbt.pro/features/optimization/portfolio-optimization/#portfolio-optimization',
 'https://members.vectorbt.pro/features/optimization/portfolio-optimization/#pyportfolioopt',
 ...
 'https://discord.com/channels/x/918629995415502888/1064943203071045753',
 'https://discord.com/channels/x/918629995415502888/1067718833646874634',
 'https://discord.com/channels/x/918629995415502888/1067718855734075403',
 ...]

>>> vbt.PortfolioOptimizer.chat("How to rebalance weekly?", formatter="html")
```

![](/assets/images/features/intelligence/knowledge_assets.light.gif#only-light)
![](/assets/images/features/intelligence/knowledge_assets.dark.gif#only-dark)
