refactor: centralize audience filtering before providers receive messages (#6728)

Signed-off-by: rabi <ramishra@redhat.com>
This commit is contained in:
Rabi Mishra
2026-01-29 22:04:27 +05:30
committed by GitHub
parent e89b7d8159
commit 0a5581723c
12 changed files with 109 additions and 154 deletions
+8 -2
View File
@@ -186,11 +186,17 @@ impl Agent {
) -> Result<MessageStream, ProviderError> {
let config = provider.get_model_config();
let filtered_messages: Vec<Message> = messages
.iter()
.filter(|m| m.is_agent_visible())
.map(|m| m.agent_visible_content())
.collect();
// Convert tool messages to text if toolshim is enabled
let messages_for_provider = if config.toolshim {
convert_tool_messages_to_text(messages)
convert_tool_messages_to_text(&filtered_messages)
} else {
Conversation::new_unvalidated(messages.to_vec())
Conversation::new_unvalidated(filtered_messages)
};
// Clone owned data to move into the async stream