feat(agent): 8-model Fusion panels with Cohere + GLM + hard_wall type

Revised panel selections (1-8 models per Fusion spec):
- lean_proof: 8 models (Opus, DeepSeek, GPT, Cohere, Gemini, GLM, Kimi, DS-Flash)
- code_bug: 6 models
- architecture: 8 models
- math_novel: 6 models
- infra_debug: 5 models
- hard_wall: 8 models (all, for truly stuck problems)

Added:
- Cohere Command A+ (structured output, tool-use optimized)
- GLM-5.2 (753B, genuinely different architecture)
- DeepSeek V4 Flash (fast iterations)
- hard_wall problem type (stuck/wall/impossible/tried everything)
- Budget cap per type (.50-.50)
This commit is contained in:
allaun 2026-06-22 15:45:21 -05:00
parent 7f09d0c1a3
commit e250787e8b

View file

@ -28,48 +28,80 @@ OPENROUTER_BASE = "https://openrouter.ai/api/v1"
PANELS = { PANELS = {
"lean_proof": { "lean_proof": {
"analysis_models": [ "analysis_models": [
"anthropic/claude-opus-4.8", "anthropic/claude-opus-4.8", # Lean expertise, formal proof
"deepseek/deepseek-v4-pro", "deepseek/deepseek-v4-pro", # Best math reasoning
"google/gemini-3.1-pro-preview", "openai/gpt-5.5", # Widest training data
"cohere/command-a-03-2026", # Structured output, tool-use optimized
"google/gemini-3.1-pro-preview", # Different thinking style
"zhipu/glm-5.2", # 753B, genuinely different architecture
"moonshotai/kimi-k2.6", # Strong code, different training
"deepseek/deepseek-v4-flash", # Fast, good for quick iterations
], ],
"judge": "anthropic/claude-opus-4.8", "judge": "anthropic/claude-opus-4.8",
"budget": 1.00, "budget": 2.50,
}, },
"code_bug": { "code_bug": {
"analysis_models": [ "analysis_models": [
"openai/gpt-5.5", "openai/gpt-5.5", # Breadth, ops knowledge
"anthropic/claude-opus-4.8", "anthropic/claude-opus-4.8", # Depth, precision
"moonshotai/kimi-k2.6", "deepseek/deepseek-v4-pro", # Math/code reasoning
"moonshotai/kimi-k2.6", # Different code style
"cohere/command-a-03-2026", # Structured output
"deepseek/deepseek-v4-flash", # Fast iterations
], ],
"judge": "anthropic/claude-opus-4.8", "judge": "anthropic/claude-opus-4.8",
"budget": 0.75, "budget": 1.80,
}, },
"architecture": { "architecture": {
"analysis_models": [ "analysis_models": [
"anthropic/claude-opus-4.8", "anthropic/claude-opus-4.8", # Deep reasoning
"openai/gpt-5.5", "openai/gpt-5.5", # Breadth
"google/gemini-3.1-pro-preview", "deepseek/deepseek-v4-pro", # Math rigor
"cohere/command-a-03-2026", # Structured output
"google/gemini-3.1-pro-preview", # Different perspective
"zhipu/glm-5.2", # Architectural diversity
"moonshotai/kimi-k2.6", # Code-first thinking
"deepseek/deepseek-v4-flash", # Quick iterations
],
"judge": "anthropic/claude-opus-4.8",
"budget": 2.50,
},
"math_novel": {
"analysis_models": [
"deepseek/deepseek-v4-pro", # Best math reasoning
"anthropic/claude-opus-4.8", # Formal rigor
"google/gemini-3.1-pro-preview", # Breadth
"cohere/command-a-03-2026", # Structured output
"zhipu/glm-5.2", # Different math tradition
"deepseek/deepseek-v4-flash", # Quick checks
],
"judge": "anthropic/claude-opus-4.8",
"budget": 2.00,
},
"infra_debug": {
"analysis_models": [
"openai/gpt-5.5", # Ops knowledge
"anthropic/claude-opus-4.8", # Precision
"deepseek/deepseek-v4-pro", # Systems reasoning
"cohere/command-a-03-2026", # Structured tool chains
"deepseek/deepseek-v4-flash", # Quick checks
], ],
"judge": "anthropic/claude-opus-4.8", "judge": "anthropic/claude-opus-4.8",
"budget": 1.50, "budget": 1.50,
}, },
"math_novel": { "hard_wall": {
"analysis_models": [ "analysis_models": [
"deepseek/deepseek-v4-pro",
"anthropic/claude-opus-4.8", "anthropic/claude-opus-4.8",
"google/gemini-3.1-pro-preview", "deepseek/deepseek-v4-pro",
],
"judge": "anthropic/claude-opus-4.8",
"budget": 1.00,
},
"infra_debug": {
"analysis_models": [
"openai/gpt-5.5", "openai/gpt-5.5",
"anthropic/claude-opus-4.8", "cohere/command-a-03-2026",
"deepseek/deepseek-v4-pro", "google/gemini-3.1-pro-preview",
"zhipu/glm-5.2",
"moonshotai/kimi-k2.6",
"deepseek/deepseek-v4-flash",
], ],
"judge": "anthropic/claude-opus-4.8", "judge": "anthropic/claude-opus-4.8",
"budget": 0.75, "budget": 3.50,
}, },
} }
@ -118,6 +150,8 @@ def classify_problem(problem: str) -> str:
return "math_novel" return "math_novel"
if any(w in lower for w in ["infra", "deploy", "k3s", "docker", "ssh"]): if any(w in lower for w in ["infra", "deploy", "k3s", "docker", "ssh"]):
return "infra_debug" return "infra_debug"
if any(w in lower for w in ["stuck", "wall", "impossible", "no idea", "tried everything"]):
return "hard_wall"
return "code_bug" return "code_bug"