"Different messages (text, audio, requests for image generation, etc.) in the room are handled differently and can potentially be served by different agents.",
"When no specific agent is configured for a given purpose, the catch-all agent would be used.",
)
}
pubfnhandlers_intro_purposes()-> String{
letmutmessage=String::new();
message.push_str("The following purposes are available:");
"Controls the bot's ability to **intelligently drop old messages from the conversation context** when it gets too large.",
"This feature relies on [tokenization](https://en.wikipedia.org/wiki/Large_language_model#Tokenization) performed by the [tiktoken-rs](https://github.com/zurawiki/tiktoken-rs) library which is [poorly well-maintained](https://github.com/zurawiki/tiktoken-rs/issues/50) and only works well for [OpenAI](./providers.md#openai) models.",
"Controls whether the bot posts a **\"thinking…\" notice** while text generation takes a while, so slow responses (for example, from reasoning models that run for minutes) don't look stuck.",
"When enabled, a placeholder message appears only after a short delay, updates periodically with varying status text, and is then edited in place to become the final answer. Disabled by default.",
"Controls whether the bot attaches sender information to conversation messages before sending them to the model.",
"`disabled` leaves messages unchanged, `matrix_user_id` adds `[sender=@alice:example.com]`, and `matrix_user_id_and_timestamp` adds `[sender=@alice:example.com sent_at=2026-03-23T14:30:00Z]`. Enabling this sends Matrix user IDs, and optionally timestamps, to the model provider.",
"Lets you override the [system prompt](https://huggingface.co/docs/transformers/en/tasks/prompting) parameter configured at the agent level.".to_string()
"Lets you override the [temperature](https://blogs.novita.ai/what-are-large-language-model-settings-temperature-top-p-and-max-tokens/#what-is-llm-temperature) (randomness / creativity) parameter configured at the agent level.".to_string()
"Lets you specify the language of the input voice messages, to avoid using auto-detection.\nSupplying the input language using a 2-letter code (e.g. `ja`) as per [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) may improve accuracy & latency.\n\nIf different users are using different languages, do not specify a language."
}
pubfntext_to_speech_heading()-> String{
format!(
"{} {}",
AgentPurpose::TextToSpeech.emoji(),
AgentPurpose::TextToSpeech.heading()
)
}
pubfntext_to_speech_common()-> &'staticstr{
"Text-to-Speech is the bot's ability to **turn text messages into voice messages**."
"Controls how automatic text-to-speech functions for **messages sent by users**.\n**Only works when automatic text-generation is disabled** (see Text Generation / Auto usage).".to_owned()
"Lets you change the default voice configured in the agent configuration.",
"Possible values (e.g. `onyx`) depend on the model you're using. For example, for OpenAI's Whisper model, [these voices](https://platform.openai.com/docs/guides/text-to-speech/voice-options) are available.",
)
}
pubfnimage_generation_heading()-> String{
format!(
"{} {}",
AgentPurpose::ImageGeneration.emoji(),
AgentPurpose::ImageGeneration.heading()
)
}
pubfnimage_generation_common()-> &'staticstr{
"Image-generation is the bot's ability to **generate images** based on text prompts.\n\nThis feature is not configurable at the moment."