From 5e1d23d4da4dc96796abffda6b23d03e1cd9be27 Mon Sep 17 00:00:00 2001 From: Jiri Puc Date: Thu, 28 May 2026 14:53:16 +0200 Subject: [PATCH] fix: update template agent model defaults --- README.md | 12 +++++++---- skills/loopy-loop/SKILL.md | 9 +++++++-- src/loopy_loop/cli.py | 9 +++++++-- .../inner_outer_eval/loopy_loop_config.yaml | 4 ++-- src/tests/test_cli.py | 20 +++++++++++++++++++ 5 files changed, 44 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index ab456d6..2cb4cf7 100644 --- a/README.md +++ b/README.md @@ -122,13 +122,17 @@ goal_file: "loopy_loop_goal.txt" workflow_set: "main" max_turns: 20 goal_check_consecutive_failures_cap: 3 -team_harness_provider: "openai_compat" +team_harness_provider: "codex" team_harness_model: "gpt-5.5" -team_harness_agents: ["codex"] +team_harness_agents: + - "codex" + - "claude" + - "gemini" team_harness_agent_models: codex: "gpt-5.5" -team_harness_agent_reasoning_efforts: - codex: "high" + claude: "claude-opus-4-8" + gemini: "gemini-3.5-flash" +team_harness_agent_reasoning_efforts: {} # Optional coordinator retry controls. Omit to use team-harness defaults. # team_harness_max_retries: 8 # team_harness_retry_base_delay_s: 2.0 diff --git a/skills/loopy-loop/SKILL.md b/skills/loopy-loop/SKILL.md index 21f1d91..f532f3b 100644 --- a/skills/loopy-loop/SKILL.md +++ b/skills/loopy-loop/SKILL.md @@ -75,11 +75,16 @@ stop_criteria: - "A workflow updates session control.json to stopped" max_turns: 20 goal_check_consecutive_failures_cap: 3 -team_harness_provider: "openai_compat" # or "codex", "claude", "gemini" +team_harness_provider: "codex" team_harness_model: "gpt-5.5" -team_harness_agents: ["codex"] +team_harness_agents: + - "codex" + - "claude" + - "gemini" team_harness_agent_models: codex: "gpt-5.5" + claude: "claude-opus-4-8" + gemini: "gemini-3.5-flash" team_harness_agent_reasoning_efforts: {} team_harness_api_base: "https://openrouter.ai/api/v1" team_harness_api_key_env: "OPENROUTER_API_KEY" diff --git a/src/loopy_loop/cli.py b/src/loopy_loop/cli.py index e86a217..746179f 100644 --- a/src/loopy_loop/cli.py +++ b/src/loopy_loop/cli.py @@ -51,11 +51,16 @@ workflow_set: "{MAIN_WORKFLOW_SET_NAME}" max_turns: 20 goal_check_consecutive_failures_cap: 3 -team_harness_provider: "openai_compat" +team_harness_provider: "codex" team_harness_model: "gpt-5.5" team_harness_agents: - "codex" -team_harness_agent_models: {{}} + - "claude" + - "gemini" +team_harness_agent_models: + codex: "gpt-5.5" + claude: "claude-opus-4-8" + gemini: "gemini-3.5-flash" team_harness_agent_reasoning_efforts: {{}} # Optional coordinator retry controls. Omit to use team-harness defaults. # team_harness_max_retries: 8 diff --git a/src/loopy_loop/templates/inner_outer_eval/loopy_loop_config.yaml b/src/loopy_loop/templates/inner_outer_eval/loopy_loop_config.yaml index c5a0683..a5a8d7c 100644 --- a/src/loopy_loop/templates/inner_outer_eval/loopy_loop_config.yaml +++ b/src/loopy_loop/templates/inner_outer_eval/loopy_loop_config.yaml @@ -10,8 +10,8 @@ team_harness_agents: - "gemini" team_harness_agent_models: codex: "gpt-5.5" - claude: "claude-opus-4-7" - gemini: "gemini-3-flash" + claude: "claude-opus-4-8" + gemini: "gemini-3.5-flash" team_harness_agent_reasoning_efforts: codex: "high" # Optional coordinator retry controls. Omit to use team-harness defaults. diff --git a/src/tests/test_cli.py b/src/tests/test_cli.py index eec2ad1..a951e65 100644 --- a/src/tests/test_cli.py +++ b/src/tests/test_cli.py @@ -20,6 +20,23 @@ def test_init_scaffolds_expected_files(repo_root: Any, monkeypatch: Any) -> None assert repo_root.joinpath( ".loopy_loop/workflow_sets/main/workflows/goal_check/prompt.txt" ).exists() + root_config = repo_root.joinpath("loopy_loop_config.yaml").read_text( + encoding="utf-8" + ) + assert ( + """team_harness_provider: "codex" +team_harness_model: "gpt-5.5" +team_harness_agents: + - "codex" + - "claude" + - "gemini" +team_harness_agent_models: + codex: "gpt-5.5" + claude: "claude-opus-4-8" + gemini: "gemini-3.5-flash" +""" + in root_config + ) def test_init_is_idempotent(repo_root: Any, monkeypatch: Any) -> None: @@ -100,6 +117,9 @@ def test_init_inner_outer_eval_template_scaffolds_expected_files( assert "You are the outer loop for this loopy-loop session." in repo_root.joinpath( ".loopy_loop/workflow_sets/inner_outer_eval/workflows/outer/prompt.txt" ).read_text(encoding="utf-8") + assert 'gemini: "gemini-3.5-flash"' in repo_root.joinpath( + "loopy_loop_config.yaml" + ).read_text(encoding="utf-8") def test_init_inner_outer_eval_template_is_idempotent(