Refactored orchestrator for staged file handling, added structured prompt support, adjusted Feishu file handling

This commit is contained in:
whlaoding
2026-03-08 22:38:29 +08:00
parent e2f806edb3
commit 52b8dbb835
30 changed files with 9325 additions and 34 deletions

View File

@@ -0,0 +1,34 @@
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))
}
}