From 308b1546a035ef012ac91ffb83a2139d01325526 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 24 Apr 2026 15:59:03 -0700 Subject: [PATCH] feat: add gpt-5.5 model settings across providers Co-authored-by: aider (gpt-5.4) --- aider/models.py | 3 + aider/resources/model-settings.yml | 105 +++++++++++++++++++++++++++++ tests/basic/test_models.py | 40 +++++++++++ 3 files changed, 148 insertions(+) diff --git a/aider/models.py b/aider/models.py index 4af54101f..5b0f2166a 100644 --- a/aider/models.py +++ b/aider/models.py @@ -52,6 +52,9 @@ gpt-4-vision-preview gpt-4-1106-vision-preview gpt-4o-mini gpt-4o-mini-2024-07-18 +gpt-5.5 +gpt-5.5-pro +gpt-5.5-chat-latest gpt-3.5-turbo gpt-3.5-turbo-0301 gpt-3.5-turbo-0613 diff --git a/aider/resources/model-settings.yml b/aider/resources/model-settings.yml index b09a83c4e..c4d14cd08 100644 --- a/aider/resources/model-settings.yml +++ b/aider/resources/model-settings.yml @@ -2349,6 +2349,33 @@ use_temperature: false accepts_settings: ["reasoning_effort"] +- name: gpt-5.5 + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + overeager: true + +- name: gpt-5.5-pro + streaming: false + edit_format: diff + weak_model_name: gpt-5-mini + use_repo_map: true + editor_model_name: gpt-5.5 + editor_edit_format: editor-diff + system_prompt_prefix: "Formatting re-enabled. " + accepts_settings: ["reasoning_effort"] + examples_as_sys_msg: true + use_temperature: false + +- name: gpt-5.5-chat-latest + edit_format: diff + weak_model_name: gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + - name: gpt-5-codex edit_format: diff weak_model_name: gpt-5-nano @@ -2532,6 +2559,32 @@ use_temperature: false accepts_settings: ["reasoning_effort"] +- name: azure/gpt-5.5 + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: azure/gpt-5.5-pro + streaming: false + edit_format: diff + weak_model_name: azure/gpt-5-mini + use_repo_map: true + editor_model_name: azure/gpt-5.5 + editor_edit_format: editor-diff + system_prompt_prefix: "Formatting re-enabled. " + accepts_settings: ["reasoning_effort"] + examples_as_sys_msg: true + use_temperature: false + +- name: azure/gpt-5.5-chat-latest + edit_format: diff + weak_model_name: azure/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + - name: openai/gpt-5 edit_format: diff weak_model_name: openai/gpt-5-nano @@ -2713,6 +2766,32 @@ use_temperature: false accepts_settings: ["reasoning_effort"] +- name: openai/gpt-5.5 + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openai/gpt-5.5-pro + streaming: false + edit_format: diff + weak_model_name: openai/gpt-5-mini + use_repo_map: true + editor_model_name: openai/gpt-5.5 + editor_edit_format: editor-diff + system_prompt_prefix: "Formatting re-enabled. " + accepts_settings: ["reasoning_effort"] + examples_as_sys_msg: true + use_temperature: false + +- name: openai/gpt-5.5-chat-latest + edit_format: diff + weak_model_name: openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + - name: openrouter/openai/gpt-5 edit_format: diff weak_model_name: openrouter/openai/gpt-5-nano @@ -2894,6 +2973,32 @@ use_temperature: false accepts_settings: ["reasoning_effort"] +- name: openrouter/openai/gpt-5.5 + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + +- name: openrouter/openai/gpt-5.5-pro + streaming: false + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-mini + use_repo_map: true + editor_model_name: openrouter/openai/gpt-5.5 + editor_edit_format: editor-diff + system_prompt_prefix: "Formatting re-enabled. " + accepts_settings: ["reasoning_effort"] + examples_as_sys_msg: true + use_temperature: false + +- name: openrouter/openai/gpt-5.5-chat-latest + edit_format: diff + weak_model_name: openrouter/openai/gpt-5-nano + use_repo_map: true + use_temperature: false + accepts_settings: ["reasoning_effort"] + - name: gpt-4.1-nano edit_format: diff weak_model_name: gpt-4.1-nano diff --git a/tests/basic/test_models.py b/tests/basic/test_models.py index f7b71fffb..ef8557a9c 100644 --- a/tests/basic/test_models.py +++ b/tests/basic/test_models.py @@ -555,6 +555,46 @@ class TestModels(unittest.TestCase): timeout=600, ) + def test_gpt_5_5_model_settings(self): + base_models = [ + "gpt-5.5", + "gpt-5.5-chat-latest", + "openai/gpt-5.5", + "openai/gpt-5.5-chat-latest", + "azure/gpt-5.5", + "azure/gpt-5.5-chat-latest", + "openrouter/openai/gpt-5.5", + "openrouter/openai/gpt-5.5-chat-latest", + ] + + for name in base_models: + with self.subTest(name=name): + model = Model(name) + self.assertEqual(model.edit_format, "diff") + self.assertTrue(model.use_repo_map) + self.assertFalse(model.use_temperature) + self.assertIn("reasoning_effort", model.accepts_settings) + + self.assertTrue(Model("gpt-5.5").overeager) + + pro_models = { + "gpt-5.5-pro": "gpt-5.5", + "openai/gpt-5.5-pro": "openai/gpt-5.5", + "azure/gpt-5.5-pro": "azure/gpt-5.5", + "openrouter/openai/gpt-5.5-pro": "openrouter/openai/gpt-5.5", + } + + for name, editor_name in pro_models.items(): + with self.subTest(name=name): + model = Model(name) + self.assertFalse(model.streaming) + self.assertEqual(model.edit_format, "diff") + self.assertTrue(model.use_repo_map) + self.assertFalse(model.use_temperature) + self.assertEqual(model.editor_model_name, editor_name) + self.assertEqual(model.editor_model.name, editor_name) + self.assertIn("reasoning_effort", model.accepts_settings) + if __name__ == "__main__": unittest.main()