♻️ refactor(schedule-refine): [WIP] 重构 Plan-and-Execute ReAct 链路,并增强 JSON 解析兜底能力 - 🧩 重构 `schedulerefine` 主流程,引入 `Planner` / `Replan` 机制,以及执行预算与轮次状态管理 - 🧠 扩展状态与观察上下文,补充工具结果、失败签名、连续失败计数与后置反思策略等信息 - 🔧 增强工具层能力与参数兼容性,补齐 `Query` / `Move` / `Swap` / `BatchMove` / `Verify` 等行为及约束校验 - 🛡️ 提升解析鲁棒性,支持从代码块或混杂文本中提取首个 JSON 对象,并增加单次解析重试机制 - 👀 增强可观测性,补充 `debug raw` 阶段输出与分片透传能力 - ✍️ 优化提示词近端约束,将严格 JSON 输出协议追加到各节点 `userPrompt` 末尾 - 🚧 备注:当前链路仍处于持续调优阶段,稳定性与可用性仍需进一步验证
46 lines
1.5 KiB
Go
46 lines
1.5 KiB
Go
package route
|
|
|
|
import "testing"
|
|
|
|
func TestParseRouteControlTag_SchedulePlanCreate(t *testing.T) {
|
|
nonce := "nonce-create"
|
|
raw := `<SMARTFLOW_ROUTE nonce="nonce-create" action="schedule_plan_create"></SMARTFLOW_ROUTE>
|
|
<SMARTFLOW_REASON>新建排程</SMARTFLOW_REASON>`
|
|
|
|
decision, err := ParseRouteControlTag(raw, nonce)
|
|
if err != nil {
|
|
t.Fatalf("解析失败: %v", err)
|
|
}
|
|
if decision.Action != ActionSchedulePlanCreate {
|
|
t.Fatalf("action 不匹配,期望=%s 实际=%s", ActionSchedulePlanCreate, decision.Action)
|
|
}
|
|
}
|
|
|
|
func TestParseRouteControlTag_SchedulePlanRefine(t *testing.T) {
|
|
nonce := "nonce-refine"
|
|
raw := `<SMARTFLOW_ROUTE nonce="nonce-refine" action="schedule_plan_refine"></SMARTFLOW_ROUTE>
|
|
<SMARTFLOW_REASON>微调排程</SMARTFLOW_REASON>`
|
|
|
|
decision, err := ParseRouteControlTag(raw, nonce)
|
|
if err != nil {
|
|
t.Fatalf("解析失败: %v", err)
|
|
}
|
|
if decision.Action != ActionSchedulePlanRefine {
|
|
t.Fatalf("action 不匹配,期望=%s 实际=%s", ActionSchedulePlanRefine, decision.Action)
|
|
}
|
|
}
|
|
|
|
func TestParseRouteControlTag_LegacySchedulePlan(t *testing.T) {
|
|
nonce := "nonce-legacy"
|
|
raw := `<SMARTFLOW_ROUTE nonce="nonce-legacy" action="schedule_plan"></SMARTFLOW_ROUTE>
|
|
<SMARTFLOW_REASON>兼容旧动作</SMARTFLOW_REASON>`
|
|
|
|
decision, err := ParseRouteControlTag(raw, nonce)
|
|
if err != nil {
|
|
t.Fatalf("解析失败: %v", err)
|
|
}
|
|
if decision.Action != ActionSchedulePlanCreate {
|
|
t.Fatalf("旧动作映射错误,期望=%s 实际=%s", ActionSchedulePlanCreate, decision.Action)
|
|
}
|
|
}
|