Add files via upload

This commit is contained in:
公明
2026-07-10 16:48:49 +08:00
committed by GitHub
parent 0ff8c58fbd
commit 542d1d2411
19 changed files with 922 additions and 114 deletions
@@ -0,0 +1,50 @@
package multiagent
import (
"context"
"strings"
"testing"
"github.com/cloudwego/eino/adk"
"github.com/cloudwego/eino/schema"
)
func TestModelInputBudgetDropsOldestCompleteRoundsAndPersistsLatest(t *testing.T) {
mw := &modelInputBudgetMiddleware{
maxTokens: 7,
counter: fixedTokenCounter(4),
phase: "test",
}
state := &adk.ChatModelAgentState{Messages: []adk.Message{
schema.SystemMessage("system"),
schema.UserMessage("old-user"),
schema.AssistantMessage("old-answer", nil),
schema.UserMessage("latest-user"),
assistantToolCallsMsg("", "latest-call"),
schema.ToolMessage("latest-result", "latest-call"),
}}
_, out, err := mw.BeforeModelRewriteState(context.Background(), state, nil)
if err != nil {
t.Fatal(err)
}
joined := formatSummarizationTranscript(out.Messages)
if strings.Contains(joined, "old-user") || strings.Contains(joined, "old-answer") {
t.Fatalf("old rounds retained after hard budget: %s", joined)
}
if !strings.Contains(joined, "latest-user") || !strings.Contains(joined, "latest-result") {
t.Fatalf("latest rounds lost after hard budget: %s", joined)
}
}
func TestModelInputBudgetFailsLocallyWhenLatestRoundAloneCannotFit(t *testing.T) {
mw := &modelInputBudgetMiddleware{maxTokens: 2, counter: fixedTokenCounter(4), phase: "test"}
state := &adk.ChatModelAgentState{Messages: []adk.Message{
schema.SystemMessage("system"),
assistantToolCallsMsg("", "latest-call"),
schema.ToolMessage("latest-result", "latest-call"),
}}
_, _, err := mw.BeforeModelRewriteState(context.Background(), state, nil)
if err == nil || !strings.Contains(err.Error(), "hard budget") {
t.Fatalf("expected local hard-budget error, got %v", err)
}
}