assistant2: Automatically respond to the model with tool results (#25706)

This PR updates the tool use flow in Assistant 2 to automatically
respond to the model with tool results when the tools have finished
running.

Release Notes:

- N/A
This commit is contained in:
Marshall Bowers 2025-02-26 19:37:44 -05:00 committed by GitHub
parent 672a472a23
commit afc61b9527
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 42 additions and 3 deletions

View file

@ -263,6 +263,12 @@ impl Thread {
tool_uses
}
pub fn message_has_tool_results(&self, message_id: MessageId) -> bool {
self.tool_results_by_message
.get(&message_id)
.map_or(false, |results| !results.is_empty())
}
pub fn insert_user_message(
&mut self,
text: impl Into<String>,
@ -649,6 +655,8 @@ impl Thread {
{
tool_use.status = PendingToolUseStatus::Error(err.to_string());
}
cx.emit(ThreadEvent::ToolFinished { tool_use_id });
}
}
})
@ -724,4 +732,8 @@ impl PendingToolUseStatus {
pub fn is_idle(&self) -> bool {
matches!(self, PendingToolUseStatus::Idle)
}
pub fn is_error(&self) -> bool {
matches!(self, PendingToolUseStatus::Error(_))
}
}