返回 DeepSeek-Reasonix
render_model_assignments.go
根目录 / internal / config / render_model_assignments.go
1 package config
2
3 import (
4 "fmt"
5 "reflect"
6 "strings"
7 )
8
9 func renderAgentModelAssignments(b *strings.Builder, c *Config) {
10 if c.Agent.PlannerModel != "" {
11 fmt.Fprintf(b, "planner_model = %q # low-frequency planner (two-model collaboration)\n", c.Agent.PlannerModel)
12 } else {
13 b.WriteString("# planner_model = \"deepseek-pro\" # optional: enable two-model collaboration\n")
14 }
15 if c.Agent.WebSearchModel != "" {
16 fmt.Fprintf(b, "web_search_model = %q\n", c.Agent.WebSearchModel)
17 }
18 if c.Agent.VisionModel != "" {
19 fmt.Fprintf(b, "vision_model = %q # image understanding fallback: auto or provider/model\n", c.Agent.VisionModel)
20 } else {
21 b.WriteString("# vision_model = \"auto\" # optional: summarize images for text-only models\n")
22 }
23 if c.Agent.SubagentModel != "" {
24 fmt.Fprintf(b, "subagent_model = %q # default model for runAs=subagent skills\n", c.Agent.SubagentModel)
25 } else {
26 b.WriteString("# subagent_model = \"deepseek-pro\" # optional default for runAs=subagent skills\n")
27 }
28 if len(c.Agent.SubagentModels) > 0 {
29 fmt.Fprintf(b, "subagent_models = %s # per-skill overrides\n", renderStringMap(c.Agent.SubagentModels))
30 } else {
31 b.WriteString("# subagent_models = { review = \"deepseek-pro\", security_review = \"deepseek-pro\" } # per-skill overrides\n")
32 }
33 }
34
35 func renderAgentModelAssignmentDelta(b *strings.Builder, c, d *Config, anyAgent *bool) {
36 if c.Agent.PlannerModel != "" && c.Agent.PlannerModel != d.Agent.PlannerModel {
37 fmt.Fprintf(b, "planner_model = %q\n", c.Agent.PlannerModel)
38 *anyAgent = true
39 }
40 if c.Agent.WebSearchModel != d.Agent.WebSearchModel {
41 fmt.Fprintf(b, "web_search_model = %q\n", c.Agent.WebSearchModel)
42 *anyAgent = true
43 }
44 if c.Agent.VisionModel != d.Agent.VisionModel {
45 fmt.Fprintf(b, "vision_model = %q\n", c.Agent.VisionModel)
46 *anyAgent = true
47 }
48 if c.Agent.SubagentModel != "" && c.Agent.SubagentModel != d.Agent.SubagentModel {
49 fmt.Fprintf(b, "subagent_model = %q\n", c.Agent.SubagentModel)
50 *anyAgent = true
51 }
52 if len(c.Agent.SubagentModels) > 0 && !reflect.DeepEqual(c.Agent.SubagentModels, d.Agent.SubagentModels) {
53 fmt.Fprintf(b, "subagent_models = %s\n", renderStringMap(c.Agent.SubagentModels))
54 *anyAgent = true
55 }
56 }
57
57 lines GO