diff --git a/crates/goose-server/src/routes/agent.rs b/crates/goose-server/src/routes/agent.rs index 8911fbd94b06..8375f1e40217 100644 --- a/crates/goose-server/src/routes/agent.rs +++ b/crates/goose-server/src/routes/agent.rs @@ -283,7 +283,7 @@ async fn resume_agent( })?; agent - .update_provider(provider, &payload.session_id) + .load_provider(provider) .await .map_err(|e| ErrorResponse { message: format!("Could not configure agent: {}", e), diff --git a/crates/goose/src/agents/agent.rs b/crates/goose/src/agents/agent.rs index 98629f8e4398..84351070afff 100644 --- a/crates/goose/src/agents/agent.rs +++ b/crates/goose/src/agents/agent.rs @@ -1326,6 +1326,14 @@ impl Agent { .context("Failed to persist provider config to session") } + pub async fn load_provider(&self, provider: Arc) -> Result<()> { + let mut current_provider = self.provider.lock().await; + *current_provider = Some(provider.clone()); + + self.update_router_tool_selector(Some(provider.clone()), None) + .await + } + pub async fn update_router_tool_selector( &self, provider: Option>,