Files
baibot-withmcp/docs/configuration
kschwank 2d659964a7 Add sender context mode for text generation (#104)
Add a per-room/global `sender_context_mode` setting that optionally
prefixes conversation messages with sender metadata before sending them
to the model provider.

This helps models distinguish between participants in multi-user rooms.
                                                                                                                                                                                                                                                             
Three modes are supported:
- `disabled` (default, no change)
- `matrix_user_id` (prefixes with `[sender=@user:server]`)
- `matrix_user_id_and_timestamp` (adds `send_at`; Example: `[sender=@user:server sent_at=<ISO 8601>]`)
                                                                                                                                                                                                                                                             
Sender context is applied to user and assistant text messages only,
skipping system prompts and non-text content.

Mixed-sender merged turns (something we intentionally do for Anthropic)
have their `sender_id` cleared to avoid misattribution.
2026-03-25 20:14:34 +02:00
..
2026-03-07 11:08:50 +02:00
2024-09-12 13:44:06 +03:00

🛠️ Configuration

The bot's behavior is controlled by a combination of static and dynamic configuration.

Static configuration

The bot can be configured using a YAML configuration file as well as environment variables.

When running the bot locally (during 🧑‍💻 development), the bot's configuration is read from the var/app/config.yml file. This file is created from the template found in etc/app/config.yml.dist.

Certain keys can be left unset, in which case 📝 hardcoded defaults would be used.

Some configuration keys found in the YAML configuration can be overridden by setting an environment variable (dots should be replaced with _). Example:

  • to override command_prefix, set an environment variable BAIBOT_COMMAND_PREFIX
  • to override homeserver.server_name, set an environment variable BAIBOT_HOMESERVER_SERVER_NAME

You can see the list of supported environment variables in the 🦀 src/entity/cfg/env.rs file.

Warning

The static configuration contains an initial_global_config key, which is used to populate the bot's global configuration (stored as dynamic configuration) the first time the bot starts. Modifying this subsequently will not have any effect. After initial global configuration creation, it's expected to be managed dynamically via chat commands.

For Matrix-account authentication setup, see 🔐 Authentication.

Dynamic configuration

Besides the bot's static configuration, the bot can also be configured dynamically at runtime (via chat messages).

This includes changes to 🔒 Access, 🤖 Agents and 🛠️ Room Settings.

Room Settings

Room Settings come from 3 different levels with priority in the following order (higher to lower):

  • 📍 per-room (!bai config room .. commands)
  • 🌐 globally (!bai config global .. commands)
  • 📝 as hardcoded defaults

You can adjust the following settings per room and/or globally:

Refer to the bot's help messages (as a response to a !bai config help command) for the most up-to-date information on what Room Settings can be configured.

You can get an overview of the configuration affecting the current room (a mix of hardcoded defaults, agent defaults, global and room-level settings) by sending a !bai config status command to the room.