feat(agent): ✨ 重构智能排程分流与双通道交付,补齐周级预算并接入连续微调复用 - 🔀 通用路由升级为 action 分流(chat/quick_note_create/task_query/schedule_plan),路由失败直接返回内部错误,不再回落聊天 - 🧭 智能排程链路重构:统一图编排与节点职责,完善日级/周级调优协作与提示词约束 - 📊 周级预算改为“有效周保底 + 负载加权分配”,避免有效周零预算并提升资源利用率 - ⚙️ 日级并发优化细化:按天拆分 DayGroup 并发执行,低收益天(suggested<=2)跳过,单天失败仅回退该天结果并继续全局 - 🧵 周级并发优化细化:按周并发 worker 执行,单周“单步动作”循环(每轮仅 1 个 Move/Swap 或 done),失败周保留原方案不影响其它周 - 🛰️ 新增排程预览双通道:聊天主链路输出终审文本,结构化 candidate_plans 通过 /api/v1/agent/schedule-preview 拉取 - 🗃️ 增补 Redis 预览缓存读写与清理逻辑,新增对应 API、路由、模型与错误码支持 - ♻️ 接入连续对话微调复用:命中同会话历史预览时复用上轮 HybridEntries,避免每轮重跑粗排 - 🛡️ 增加复用保护:仅当本轮与上轮 task_class_ids 集合一致才复用;不一致回退全量粗排 - 🧰 扩展预览缓存字段(task_class_ids/hybrid_entries/allocated_items),支撑微调承接链路 - 🗺️ 更新 README 5.4 Mermaid(总分流图 + 智能排程流转图)并补充决策文档 - ⚠️ 新增“连续微调复用”链路我尚未完成测试,且文档状态目前较为混乱,待连续对话微调功能真正测试完成后再统一更新
28 lines
1.0 KiB
Go
28 lines
1.0 KiB
Go
package agentsvc
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/LoveLosita/smartflow/backend/agent/route"
|
|
"github.com/cloudwego/eino-ext/components/model/ark"
|
|
)
|
|
|
|
// actionRoutingDecision 是 route 层分流结果在 agentsvc 的本地别名。
|
|
//
|
|
// 设计目的:
|
|
// 1. 让 AgentService 对 route 包保持“最小接触面”;
|
|
// 2. 后续若 route 包返回结构调整,只需改这个桥接文件。
|
|
type actionRoutingDecision = route.RoutingDecision
|
|
|
|
// decideActionRouting 决定当前请求走向哪条业务链路。
|
|
//
|
|
// 职责边界:
|
|
// 1. 只负责调用 route 包拿分流结论;
|
|
// 2. 不负责执行任何业务节点;
|
|
// 3. route 层失败会通过 RoutingDecision.RouteFailed 向上层显式暴露。
|
|
func (s *AgentService) decideActionRouting(ctx context.Context, selectedModel *ark.ChatModel, userMessage string) actionRoutingDecision {
|
|
// 这里保留方法封装,是为了避免上层直接依赖 route 包,降低耦合。
|
|
_ = s
|
|
return route.DecideActionRouting(ctx, selectedModel, userMessage)
|
|
}
|