diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f8435ebc..e3b1a1dec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # 2026-02-04 +## baibot now supports OpenAI's built-in tools (Web Search and Code Interpreter) + +**TLDR**: if you're using the [OpenAI provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openai) with [baibot](docs/configuring-playbook-bot-baibot.md), you can now enable [built-in tools](https://github.com/etkecc/baibot/blob/61d18b2/docs/features.md#%EF%B8%8F-built-in-tools-openai-only) (`web_search` and `code_interpreter`) to extend the model's capabilities. + +These tools are **disabled by default** and can be enabled via Ansible variables for static agent configurations: + +```yaml +matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_tools_web_search: true +matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_tools_code_interpreter: true +``` + +Users who define agents dynamically at runtime will need to [update their agents](https://github.com/etkecc/baibot/blob/61d18b2/docs/agents.md#updating-agents) to enable these tools. See the [baibot v1.14.0 changelog](https://github.com/etkecc/baibot/blob/61d18b2/CHANGELOG.md) for details. + ## Whoami-based sync worker routing for improved sticky sessions for Synapse Deployments using [Synapse workers](./docs/configuring-playbook-synapse.md#load-balancing-with-workers) now benefit from improved sync worker routing via a new whoami-based mechanism (making use of the [whoami Matrix Client-Server API](https://spec.matrix.org/v1.17/client-server-api/#get_matrixclientv3accountwhoami)). diff --git a/docs/configuring-playbook-bot-baibot.md b/docs/configuring-playbook-bot-baibot.md index 60d9bd94e..aaf19ce54 100644 --- a/docs/configuring-playbook-bot-baibot.md +++ b/docs/configuring-playbook-bot-baibot.md @@ -243,6 +243,12 @@ matrix_bot_baibot_config_agents_static_definitions_openai_config_api_key: "YOUR_ # If you'd like to use another text-generation agent, uncomment and adjust: # matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_model_id: gpt-4.1 + +# Uncomment below to enable OpenAI's built-in tools. +# These tools are disabled by default. Enabling them may incur additional costs. +# See: https://github.com/etkecc/baibot/blob/61d18b2/docs/features.md#%EF%B8%8F-built-in-tools-openai-only +# matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_tools_web_search: true +# matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_tools_code_interpreter: true ``` Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/openai`. diff --git a/roles/custom/matrix-bot-baibot/defaults/main.yml b/roles/custom/matrix-bot-baibot/defaults/main.yml index bbc2f49c6..f0ea90218 100644 --- a/roles/custom/matrix-bot-baibot/defaults/main.yml +++ b/roles/custom/matrix-bot-baibot/defaults/main.yml @@ -17,7 +17,7 @@ matrix_bot_baibot_container_repo_version: "{{ 'main' if matrix_bot_baibot_versio matrix_bot_baibot_container_src_files_path: "{{ matrix_base_data_path }}/baibot/container-src" # renovate: datasource=docker depName=ghcr.io/etkecc/baibot -matrix_bot_baibot_version: v1.13.0 +matrix_bot_baibot_version: v1.14.0 matrix_bot_baibot_container_image: "{{ matrix_bot_baibot_container_image_registry_prefix }}etkecc/baibot:{{ matrix_bot_baibot_version }}" matrix_bot_baibot_container_image_registry_prefix: "{{ 'localhost/' if matrix_bot_baibot_container_image_self_build else matrix_bot_baibot_container_image_registry_prefix_upstream }}" matrix_bot_baibot_container_image_registry_prefix_upstream: "{{ matrix_bot_baibot_container_image_registry_prefix_upstream_default }}" @@ -395,6 +395,11 @@ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_response_tokens: ~ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_completion_tokens: 128000 matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_context_tokens: 400000 +# Built-in tools configuration (OpenAI only). +# These tools extend the model's capabilities but are disabled by default following upstream defaults. +# See: https://github.com/etkecc/baibot/blob/main/docs/features.md#%EF%B8%8F-built-in-tools-openai-only +matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_tools_web_search: false +matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_tools_code_interpreter: false matrix_bot_baibot_config_agents_static_definitions_openai_config_speech_to_text_enabled: true matrix_bot_baibot_config_agents_static_definitions_openai_config_speech_to_text_model_id: whisper-1 diff --git a/roles/custom/matrix-bot-baibot/templates/provider/openai-config.yml.j2 b/roles/custom/matrix-bot-baibot/templates/provider/openai-config.yml.j2 index 37ceeaada..ebbc27669 100644 --- a/roles/custom/matrix-bot-baibot/templates/provider/openai-config.yml.j2 +++ b/roles/custom/matrix-bot-baibot/templates/provider/openai-config.yml.j2 @@ -15,6 +15,9 @@ text_generation: max_completion_tokens: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_completion_tokens | int | to_json }} {% endif %} max_context_tokens: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_context_tokens | int | to_json }} + tools: + web_search: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_tools_web_search | to_json }} + code_interpreter: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_tools_code_interpreter | to_json }} {% endif %} {% if matrix_bot_baibot_config_agents_static_definitions_openai_config_speech_to_text_enabled %}