diff --git a/src/agent/agent_loop.rs b/src/agent/agent_loop.rs index 63af2a6..21cd5a4 100644 --- a/src/agent/agent_loop.rs +++ b/src/agent/agent_loop.rs @@ -1448,8 +1448,8 @@ mod tests { context_window_tokens: None, model_extra: std::collections::HashMap::new(), max_tool_iterations: 1, - tool_result_max_chars: 20_000, - context_tool_result_trim_chars: 20_000, + tool_result_max_chars: 100_000, + context_tool_result_trim_chars: 100_000, max_images_in_context: 1, max_image_age_rounds: 10, } @@ -1554,9 +1554,9 @@ mod tests { #[test] fn test_truncate_tool_result_handles_utf8_char_boundaries() { - let input = "范".repeat(20_500); + let input = "范".repeat(100_500); - let output = truncate_tool_result(&input, 20_000); + let output = truncate_tool_result(&input, 100_000); assert!(output.contains("Output truncated")); assert!(output.is_char_boundary(output.len())); diff --git a/src/cli/init.rs b/src/cli/init.rs index e4fcfef..3337fd3 100644 --- a/src/cli/init.rs +++ b/src/cli/init.rs @@ -555,7 +555,7 @@ impl InitWizard { provider: selected_provider.clone(), model: selected_model.clone(), max_tool_iterations: 100, - tool_result_max_chars: 20000, + tool_result_max_chars: 100_000, context_tool_result_trim_chars: 2000, }; diff --git a/src/config/mod.rs b/src/config/mod.rs index fe46693..b8da547 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -438,7 +438,7 @@ fn default_max_tool_iterations() -> usize { } fn default_tool_result_max_chars() -> usize { - 20_000 + 100_000 } fn default_context_tool_result_trim_chars() -> usize { @@ -1077,7 +1077,7 @@ mod tests { assert_eq!(provider_config.temperature, Some(0.0)); assert_eq!(provider_config.max_tokens, None); assert_eq!(provider_config.llm_timeout_secs, 120); - assert_eq!(provider_config.tool_result_max_chars, 20_000); + assert_eq!(provider_config.tool_result_max_chars, 100_000); assert_eq!(provider_config.context_tool_result_trim_chars, 2_000); assert_eq!(provider_config.context_summary_char_budget(), 32_000); } @@ -1322,7 +1322,7 @@ mod tests { let config = Config::load(file.path().to_str().unwrap()).unwrap(); assert_eq!(config.agents["default"].max_tool_iterations, 100); - assert_eq!(config.agents["default"].tool_result_max_chars, 20_000); + assert_eq!(config.agents["default"].tool_result_max_chars, 100_000); assert_eq!( config.agents["default"].context_tool_result_trim_chars, 2_000 diff --git a/src/gateway/agent_prompt_provider.rs b/src/gateway/agent_prompt_provider.rs index 5364db5..1497803 100644 --- a/src/gateway/agent_prompt_provider.rs +++ b/src/gateway/agent_prompt_provider.rs @@ -121,7 +121,7 @@ mod tests { context_window_tokens: None, model_extra: HashMap::new(), max_tool_iterations: 1, - tool_result_max_chars: 20_000, + tool_result_max_chars: 100_000, context_tool_result_trim_chars: 20_000, max_images_in_context: 1, max_image_age_rounds: 10, diff --git a/src/gateway/provider_config_service.rs b/src/gateway/provider_config_service.rs index 0bee5a7..f498e5d 100644 --- a/src/gateway/provider_config_service.rs +++ b/src/gateway/provider_config_service.rs @@ -65,7 +65,7 @@ mod tests { context_window_tokens: None, model_extra: HashMap::new(), max_tool_iterations: 1, - tool_result_max_chars: 20_000, + tool_result_max_chars: 100_000, context_tool_result_trim_chars: 20_000, max_images_in_context: 1, max_image_age_rounds: 10, diff --git a/src/gateway/session.rs b/src/gateway/session.rs index 8f961b1..b21d5ae 100644 --- a/src/gateway/session.rs +++ b/src/gateway/session.rs @@ -742,8 +742,8 @@ mod tests { context_window_tokens: None, model_extra: HashMap::new(), max_tool_iterations: 1, - tool_result_max_chars: 20_000, - context_tool_result_trim_chars: 20_000, + tool_result_max_chars: 100_000, + context_tool_result_trim_chars: 100_000, max_images_in_context: 1, max_image_age_rounds: 10, } @@ -1004,8 +1004,8 @@ mod tests { max_tool_iterations: 1, llm_timeout_secs: 30, memory_maintenance_timeout_secs: 600, - tool_result_max_chars: 20_000, - context_tool_result_trim_chars: 20_000, + tool_result_max_chars: 100_000, + context_tool_result_trim_chars: 100_000, max_images_in_context: 1, max_image_age_rounds: 10, }; @@ -1052,8 +1052,8 @@ mod tests { max_tool_iterations: 1, llm_timeout_secs: 30, memory_maintenance_timeout_secs: 600, - tool_result_max_chars: 20_000, - context_tool_result_trim_chars: 20_000, + tool_result_max_chars: 100_000, + context_tool_result_trim_chars: 100_000, max_images_in_context: 1, max_image_age_rounds: 10, }; @@ -1130,8 +1130,8 @@ mod tests { max_tool_iterations: 1, llm_timeout_secs: 30, memory_maintenance_timeout_secs: 600, - tool_result_max_chars: 20_000, - context_tool_result_trim_chars: 20_000, + tool_result_max_chars: 100_000, + context_tool_result_trim_chars: 100_000, max_images_in_context: 1, max_image_age_rounds: 10, }; @@ -1218,8 +1218,8 @@ mod tests { max_tool_iterations: 1, llm_timeout_secs: 30, memory_maintenance_timeout_secs: 600, - tool_result_max_chars: 20_000, - context_tool_result_trim_chars: 20_000, + tool_result_max_chars: 100_000, + context_tool_result_trim_chars: 100_000, max_images_in_context: 1, max_image_age_rounds: 10, }; @@ -1308,8 +1308,8 @@ mod tests { max_tool_iterations: 1, llm_timeout_secs: 1, memory_maintenance_timeout_secs: 600, - tool_result_max_chars: 20_000, - context_tool_result_trim_chars: 20_000, + tool_result_max_chars: 100_000, + context_tool_result_trim_chars: 100_000, max_images_in_context: 1, max_image_age_rounds: 10, }; @@ -1397,8 +1397,8 @@ mod tests { max_tool_iterations: 1, llm_timeout_secs: 30, memory_maintenance_timeout_secs: 600, - tool_result_max_chars: 20_000, - context_tool_result_trim_chars: 20_000, + tool_result_max_chars: 100_000, + context_tool_result_trim_chars: 100_000, max_images_in_context: 1, max_image_age_rounds: 10, }; @@ -1468,8 +1468,8 @@ mod tests { max_tool_iterations: 1, llm_timeout_secs: 30, memory_maintenance_timeout_secs: 600, - tool_result_max_chars: 20_000, - context_tool_result_trim_chars: 20_000, + tool_result_max_chars: 100_000, + context_tool_result_trim_chars: 100_000, max_images_in_context: 1, max_image_age_rounds: 10, }; @@ -1548,8 +1548,8 @@ mod tests { max_tool_iterations: 1, llm_timeout_secs: 30, memory_maintenance_timeout_secs: 600, - tool_result_max_chars: 20_000, - context_tool_result_trim_chars: 20_000, + tool_result_max_chars: 100_000, + context_tool_result_trim_chars: 100_000, max_images_in_context: 1, max_image_age_rounds: 10, }; @@ -1615,8 +1615,8 @@ mod tests { max_tool_iterations: 1, llm_timeout_secs: 1, memory_maintenance_timeout_secs: 600, - tool_result_max_chars: 20_000, - context_tool_result_trim_chars: 20_000, + tool_result_max_chars: 100_000, + context_tool_result_trim_chars: 100_000, max_images_in_context: 1, max_image_age_rounds: 10, }; diff --git a/src/tools/file_read.rs b/src/tools/file_read.rs index f170d8e..6a8a8a8 100644 --- a/src/tools/file_read.rs +++ b/src/tools/file_read.rs @@ -7,7 +7,7 @@ use crate::text::take_prefix_chars; use crate::tools::traits::{Tool, ToolResult}; use crate::tools::extract_u64; -const MAX_CHARS: usize = 128_000; +const MAX_CHARS: usize = 100_000; const DEFAULT_LIMIT: usize = 2000; pub struct FileReadTool {