后端: 1. 旧 Agent 管线(agent/)全面下线,共享逻辑迁移至 newAgent/ - 删除 backend/agent/ 整个目录(44 个 Go 文件),5 条旧专用流程已由 newAgent 统一 graph 取代 - 共享逻辑迁入 newAgent/:clone(shared/clone.go)、时间解析(shared/deadline.go)、优先级常量(shared/task_priority.go)、TaskQuery 类型(model/taskquery_types.go)、SystemPrompt(prompt/system.go)、Usage 合并(stream/usage.go) 2. service 层清除 agent/ 全部依赖 - 删除 4 个旧流程入口文件(agent_route / agent_quick_note / agent_schedule_plan / agent_schedule_refine) - agent_task_query.go 删除 runTaskQueryFlow,参数类型切到 newagentmodel - agent.go / agent_newagent.go / agent_schedule_preview.go / agent_schedule_state.go / cmd/start.go / quicknote.go:agent* 引用全部替换为 newagent* 3. 流式降级回退路径内联到 service 层(agent_stream_fallback.go),消除最后一条 agent/chat 依赖 前端: 1. ScheduleFineTuneModal 幂等键追加 classId 后缀,修复多任务类并行保存 key 重复
42 lines
1.2 KiB
Go
42 lines
1.2 KiB
Go
package newagentstream
|
||
|
||
import "github.com/cloudwego/eino/schema"
|
||
|
||
// CloneUsage 深拷贝 TokenUsage。
|
||
func CloneUsage(usage *schema.TokenUsage) *schema.TokenUsage {
|
||
if usage == nil {
|
||
return nil
|
||
}
|
||
copied := *usage
|
||
return &copied
|
||
}
|
||
|
||
// MergeUsage 合并两段 usage,取更大值。
|
||
// 适用于同一次调用不同流分片的 usage 收敛。
|
||
func MergeUsage(base *schema.TokenUsage, incoming *schema.TokenUsage) *schema.TokenUsage {
|
||
if incoming == nil {
|
||
return CloneUsage(base)
|
||
}
|
||
if base == nil {
|
||
return CloneUsage(incoming)
|
||
}
|
||
|
||
merged := *base
|
||
if incoming.PromptTokens > merged.PromptTokens {
|
||
merged.PromptTokens = incoming.PromptTokens
|
||
}
|
||
if incoming.CompletionTokens > merged.CompletionTokens {
|
||
merged.CompletionTokens = incoming.CompletionTokens
|
||
}
|
||
if incoming.TotalTokens > merged.TotalTokens {
|
||
merged.TotalTokens = incoming.TotalTokens
|
||
}
|
||
if incoming.PromptTokenDetails.CachedTokens > merged.PromptTokenDetails.CachedTokens {
|
||
merged.PromptTokenDetails.CachedTokens = incoming.PromptTokenDetails.CachedTokens
|
||
}
|
||
if incoming.CompletionTokensDetails.ReasoningTokens > merged.CompletionTokensDetails.ReasoningTokens {
|
||
merged.CompletionTokensDetails.ReasoningTokens = incoming.CompletionTokensDetails.ReasoningTokens
|
||
}
|
||
return &merged
|
||
}
|