diff options
| author | tanaka takashi <isazaka@gmail.com> | 2026-08-12 00:21:23 +0900 |
|---|---|---|
| committer | tanaka takashi <isazaka@gmail.com> | 2026-08-12 00:21:23 +0900 |
| commit | 98b6a2aeedd591058c1d81e401d24f3ded162926 (patch) | |
| tree | 74cbb38af825526e4fc90b150feed14426d727b4 /tests/Agent.Core.Tests/ConfigurationTests.cs | |
| parent | ce550a127b7dc972651bd15b9f09979a2c38688f (diff) | |
fix: implement native Ollama thinking semantics
Model Ollama chat thinking separately from final content, preserve it only across assistant tool-call continuation, and keep private reasoning out of user results, session context, and logs.
Accept native boolean and low/medium/high/max think values, normalize YAML booleans, and serialize explicit overrides using the native top-level chat field.
Stop forcing think=false for structured planning, skill selection, and context summaries; corrected retries now retain the configured thinking mode.
Update the specification, design, audit report, and requirement traceability for OLL-14.
Add request/response, configuration, observability, retry, and tool-continuation coverage. Verified with 92 passing Agent.Core tests and a deepseek-v4-flash:cloud think:true MCP operational run.
Diffstat (limited to 'tests/Agent.Core.Tests/ConfigurationTests.cs')
| -rw-r--r-- | tests/Agent.Core.Tests/ConfigurationTests.cs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/Agent.Core.Tests/ConfigurationTests.cs b/tests/Agent.Core.Tests/ConfigurationTests.cs index 64b2d85..e588825 100644 --- a/tests/Agent.Core.Tests/ConfigurationTests.cs +++ b/tests/Agent.Core.Tests/ConfigurationTests.cs @@ -37,6 +37,36 @@ public sealed class ConfigurationTests Assert.Throws<ConfigurationException>(() => ConfigurationLoader.Load(config)); } + [Theory] + [InlineData("true")] + [InlineData("false")] + [InlineData("low")] + [InlineData("medium")] + [InlineData("high")] + [InlineData("max")] + public void Ollama_think_accepts_native_boolean_and_level_values(string value) + { + using var directory = new TestDirectory(); + string config = CreateValidConfiguration(directory); + System.IO.File.WriteAllText(config, System.IO.File.ReadAllText(config).Replace(" model: model", $" model: model\n think: {value}", StringComparison.Ordinal)); + + AgentConfiguration result = ConfigurationLoader.Load(config); + + Assert.Equal(value is "true" or "false" ? bool.Parse(value) : value, result.Ollama.Think); + } + + [Fact] + public void Ollama_think_rejects_unknown_level() + { + using var directory = new TestDirectory(); + string config = CreateValidConfiguration(directory); + System.IO.File.WriteAllText(config, System.IO.File.ReadAllText(config).Replace(" model: model", " model: model\n think: extreme", StringComparison.Ordinal)); + + ConfigurationException error = Assert.Throws<ConfigurationException>(() => ConfigurationLoader.Load(config)); + + Assert.Contains("ollama.think", error.Message, StringComparison.Ordinal); + } + [Fact] public void CommandLineLanguageOverrideIsCaptured() { |
