mirror of
https://github.com/block/goose.git
synced 2026-07-17 12:56:20 +02:00
comments
This commit is contained in:
@@ -224,7 +224,6 @@ pub async fn build_session(session_config: SessionBuilderConfig) -> CliSession {
|
||||
|
||||
let temperature = session_config.settings.as_ref().and_then(|s| s.temperature);
|
||||
|
||||
// Check if we're doing a model-only override (no provider change)
|
||||
let is_model_only_override = session_config.settings.as_ref().map_or(false, |s| {
|
||||
s.goose_provider.is_none() && (s.goose_model.is_some() || s.temperature.is_some())
|
||||
});
|
||||
@@ -232,7 +231,6 @@ pub async fn build_session(session_config: SessionBuilderConfig) -> CliSession {
|
||||
// For model-only overrides, create provider with default model, then apply override to agent
|
||||
// For provider changes, create provider with the new model config
|
||||
let provider_model_config = if is_model_only_override {
|
||||
// Get the default model for this provider
|
||||
let default_model = config
|
||||
.get_param::<String>("GOOSE_MODEL")
|
||||
.ok()
|
||||
@@ -298,7 +296,6 @@ pub async fn build_session(session_config: SessionBuilderConfig) -> CliSession {
|
||||
process::exit(1);
|
||||
});
|
||||
|
||||
// Apply model-only override if needed
|
||||
if is_model_only_override {
|
||||
let override_config = goose::model::ModelConfig::new(&model_name)
|
||||
.unwrap_or_else(|e| {
|
||||
|
||||
@@ -363,19 +363,16 @@ impl Agent {
|
||||
}
|
||||
}
|
||||
|
||||
/// Set a model config override for this agent
|
||||
pub async fn set_model_override(&self, model_config: ModelConfig) {
|
||||
let mut override_lock = self.model_config_override.lock().await;
|
||||
*override_lock = Some(model_config);
|
||||
}
|
||||
|
||||
/// Clear any model config override
|
||||
pub async fn clear_model_override(&self) {
|
||||
let mut override_lock = self.model_config_override.lock().await;
|
||||
*override_lock = None;
|
||||
}
|
||||
|
||||
/// Get the effective model config (override or provider's default)
|
||||
pub async fn effective_model_config(&self) -> Result<ModelConfig> {
|
||||
let override_lock = self.model_config_override.lock().await;
|
||||
if let Some(ref override_config) = *override_lock {
|
||||
|
||||
@@ -108,7 +108,6 @@ impl Agent {
|
||||
tools: &[Tool],
|
||||
toolshim_tools: &[Tool],
|
||||
) -> Result<MessageStream, ProviderError> {
|
||||
// Check if we have a model override
|
||||
let model_config_override = self.model_config_override.lock().await.clone();
|
||||
let config = model_config_override
|
||||
.clone()
|
||||
@@ -130,7 +129,6 @@ impl Agent {
|
||||
// Capture errors during stream creation and return them as part of the stream
|
||||
// so they can be handled by the existing error handling logic in the agent
|
||||
let stream_result = if provider.supports_streaming() && model_config_override.is_none() {
|
||||
// Only stream if no override (for safety, matching ModelOverrideProvider behavior)
|
||||
debug!("WAITING_LLM_STREAM_START");
|
||||
let result = provider
|
||||
.stream(
|
||||
@@ -144,7 +142,6 @@ impl Agent {
|
||||
} else {
|
||||
debug!("WAITING_LLM_START");
|
||||
let complete_result = if let Some(ref override_config) = model_config_override {
|
||||
// Use complete_with_model when we have an override
|
||||
provider
|
||||
.complete_with_model(
|
||||
override_config,
|
||||
@@ -154,7 +151,6 @@ impl Agent {
|
||||
)
|
||||
.await
|
||||
} else {
|
||||
// Use regular complete when no override
|
||||
provider
|
||||
.complete(
|
||||
system_prompt.as_str(),
|
||||
|
||||
@@ -126,7 +126,6 @@ fn get_agent_messages(recipe: Recipe, task_config: TaskConfig) -> AgentMessagesF
|
||||
.await
|
||||
.map_err(|e| anyhow!("Failed to set provider on sub agent: {}", e))?;
|
||||
|
||||
// Apply model override from recipe settings if present
|
||||
// This handles model-only overrides (when provider is not changed)
|
||||
if let Some(ref settings) = recipe.settings {
|
||||
if settings.goose_provider.is_none()
|
||||
|
||||
Reference in New Issue
Block a user