package agent import "testing" func TestParseCapabilityRoute(t *testing.T) { raw := `{"need_skills":true,"selected_tools":["shell"],"selected_skills":["文件系统查询专家"],"reason":"需要技能约束"}` out, err := parseCapabilityRoute(raw) if err != nil { t.Fatalf("parseCapabilityRoute error: %v", err) } if !out.NeedSkills { t.Fatal("expected need_skills=true") } if len(out.SelectedTools) != 1 || out.SelectedTools[0] != "shell" { t.Fatalf("unexpected selected_tools: %#v", out.SelectedTools) } if len(out.SelectedSkills) != 1 || out.SelectedSkills[0] != "文件系统查询专家" { t.Fatalf("unexpected selected_skills: %#v", out.SelectedSkills) } } func TestParseCapabilityRouteCodeFence(t *testing.T) { raw := "```json\n{\"need_skills\":false,\"selected_tools\":[\"file\",\"shell\"],\"selected_skills\":[],\"reason\":\"工具足够\"}\n```" out, err := parseCapabilityRoute(raw) if err != nil { t.Fatalf("parseCapabilityRoute error: %v", err) } if out.NeedSkills { t.Fatal("expected need_skills=false") } if len(out.SelectedTools) != 2 { t.Fatalf("unexpected selected_tools len: %d", len(out.SelectedTools)) } }