Add files via upload

This commit is contained in:
公明
2026-08-15 01:45:01 +08:00
committed by GitHub
parent 31f80b2f0c
commit a6631a5cde
46 changed files with 4672 additions and 317 deletions
@@ -0,0 +1,49 @@
package multiagent
import "github.com/cloudwego/eino/schema"
type einoStreamToolCallCompletionHandlerConfig struct {
ConversationID string
OrchMode string
Progress func(eventType, message string, data interface{})
RunProgress *einoRunProgressTracker
RunMessages *einoRunMessageAccumulator
MarkPending func(toolCallPendingInfo)
}
type einoStreamToolCallCompletionHandler struct {
conversationID string
orchMode string
progress func(eventType, message string, data interface{})
runProgress *einoRunProgressTracker
runMessages *einoRunMessageAccumulator
markPending func(toolCallPendingInfo)
}
func newEinoStreamToolCallCompletionHandler(cfg einoStreamToolCallCompletionHandlerConfig) *einoStreamToolCallCompletionHandler {
return &einoStreamToolCallCompletionHandler{
conversationID: cfg.ConversationID,
orchMode: cfg.OrchMode,
progress: cfg.Progress,
runProgress: cfg.RunProgress,
runMessages: cfg.RunMessages,
markPending: cfg.MarkPending,
}
}
func (h *einoStreamToolCallCompletionHandler) Complete(fragments []schema.ToolCall, agentName string) *schema.Message {
if h == nil {
return nil
}
var lastToolChunk *schema.Message
if merged := mergeStreamingToolCallFragments(fragments); len(merged) > 0 {
lastToolChunk = mergeMessageToolCalls(&schema.Message{ToolCalls: merged})
}
if h.runProgress != nil {
h.runProgress.EmitToolCalls(lastToolChunk, agentName, h.markPending)
}
if lastToolChunk != nil && len(lastToolChunk.ToolCalls) > 0 && h.runMessages != nil {
h.runMessages.AppendAssistantToolCalls(lastToolChunk.ToolCalls)
}
return lastToolChunk
}