From 5ca433b8acda187964be438b603dee5882f5f6b1 Mon Sep 17 00:00:00 2001 From: Clark Cant <127024890+clark-cant@users.noreply.github.com> Date: Sat, 25 Jul 2026 00:39:02 +0700 Subject: [PATCH] fix: persist mid-loop compaction to stop re-compaction loop and revive episodic The v3 pipeline compacts session history mid-loop (prune_stage + final-request guard) but only mutates the run's message buffer, never the session store. Each turn reloads full history and re-compacts from scratch: message_tokens climb 129k->156k across turns while every turn compacts back down to ~60k. The lossy compaction differs per run, degrading the agent. The same missing persistence stalls episodic memory: the cumulative compaction count never advances, so the episodic worker's idempotency key (sessionKey:count) is pinned and every cycle after the first is skipped. Observed on live traffic: 8 run.completed since deploy, 0 new episodic. Fixes, all reusing existing machinery (no new store methods, no migrations): - Bug A: emitSessionCompleted reads cumulative GetCompactionCount (matching the legacy v2 path) instead of the per-run counter that resets to 0. - Bug B/anti-loop: finalize passes state.Prune.MidLoopCompacted into maybeSummarize; under pressure it lowers the trigger to a unit-aligned threshold (compactionInputCap - overhead, same MaxRequestShare the guard uses) so the compaction is PERSISTED via the existing TruncateHistory + IncrementCompaction path. Defensive floor prevents over-compaction on pathological config; tool-result-only bloat still skips (history-only). - Bug C: SourceID embeds the count (sessionKey:count) so the eventbus dedup key advances per compaction cycle instead of swallowing rapid same-session turns within the 5m TTL. Tests: episodic compaction, maybe_summarize pressure, request budget. go build (PG + sqliteonly), go vet, go test -race all green. --- cmd/gateway_agents.go | 1 + cmd/gateway_consumer_normal.go | 6 + internal/agent/loop_compact.go | 255 +++++++++++++-- .../agent/loop_compact_integration_test.go | 109 ++++++- .../agent/loop_compact_max_tokens_test.go | 5 +- internal/agent/loop_compact_timeout_test.go | 15 +- internal/agent/loop_context.go | 3 + .../agent/loop_episodic_compaction_test.go | 208 +++++++++++++ internal/agent/loop_finalize.go | 26 +- internal/agent/loop_history_sanitize.go | 105 +++++-- .../loop_history_sanitize_max_tokens_test.go | 158 ++++++++-- .../loop_maybe_summarize_pressure_test.go | 258 ++++++++++++++++ internal/agent/loop_pipeline_adapter.go | 110 ++++--- internal/agent/loop_pipeline_callbacks.go | 20 +- .../agent/loop_pipeline_callbacks_test.go | 53 ++++ internal/agent/loop_request_budget.go | 99 ++++++ internal/agent/loop_request_budget_test.go | 122 ++++++++ internal/agent/loop_run.go | 8 +- internal/agent/loop_types.go | 24 +- internal/agent/types.go | 18 ++ internal/agent/usage_caps_runtime.go | 18 ++ internal/config/config.go | 3 +- internal/consolidation/agent_budget.go | 50 +++ internal/consolidation/agent_budget_test.go | 82 +++++ internal/consolidation/dreaming_worker.go | 9 + internal/consolidation/episodic_worker.go | 5 + internal/consolidation/workers.go | 2 + internal/gateway/log_tee.go | 15 + internal/gateway/log_tee_test.go | 13 +- internal/gateway/methods/chat.go | 6 + internal/pipeline/context_stage.go | 15 +- internal/pipeline/deps.go | 20 +- internal/pipeline/final_request_guard.go | 291 ++++++++++++++++++ internal/pipeline/finalize_stage.go | 14 +- internal/pipeline/pipeline_test.go | 8 + internal/pipeline/prune_stage.go | 13 +- internal/pipeline/run_state.go | 1 + internal/pipeline/stages_test.go | 285 ++++++++++++++++- internal/pipeline/substates.go | 1 + internal/pipeline/think_stage.go | 166 ++++++++-- internal/pipeline/think_stage_budget_test.go | 124 ++++++++ internal/pipeline/usage.go | 31 ++ internal/store/context.go | 36 +++ internal/tokencount/budget_counter.go | 198 ++++++++++++ internal/tokencount/cl100k_base.tiktoken.gz | Bin 0 -> 775878 bytes internal/tokencount/fallback_counter.go | 63 +++- internal/tokencount/tiktoken_counter.go | 96 +++++- internal/tokencount/tiktoken_counter_test.go | 32 ++ internal/tools/read_audio_resolve.go | 6 +- internal/tools/read_document_resolve.go | 2 +- internal/tools/read_video_resolve.go | 13 +- internal/tools/read_video_test.go | 83 ++--- internal/tools/subagent.go | 70 +++-- .../tools/subagent_context_window_test.go | 139 +++++++++ internal/tools/subagent_exec.go | 19 ++ internal/tools/subagent_spawn.go | 86 +++--- internal/tools/subagent_spawn_test.go | 4 + internal/tools/usage_caps.go | 134 +++++++- internal/tools/usage_caps_test.go | 159 ++++++++++ internal/usage/caps/background_budget_test.go | 139 +++++++++ internal/usage/caps/chat_call.go | 142 +++++++++ internal/usage/caps/context_guard.go | 90 ++++++ internal/usage/caps/context_guard_test.go | 152 +++++++++ ui/web/src/i18n/locales/en/agents.json | 8 +- ui/web/src/i18n/locales/ko/agents.json | 8 +- ui/web/src/i18n/locales/vi/agents.json | 8 +- ui/web/src/i18n/locales/zh/agents.json | 8 +- .../config-sections/compaction-section.tsx | 10 + ui/web/src/types/agent.ts | 1 + 69 files changed, 4110 insertions(+), 371 deletions(-) create mode 100644 internal/agent/loop_episodic_compaction_test.go create mode 100644 internal/agent/loop_maybe_summarize_pressure_test.go create mode 100644 internal/agent/loop_request_budget.go create mode 100644 internal/agent/loop_request_budget_test.go create mode 100644 internal/consolidation/agent_budget.go create mode 100644 internal/consolidation/agent_budget_test.go create mode 100644 internal/pipeline/final_request_guard.go create mode 100644 internal/pipeline/think_stage_budget_test.go create mode 100644 internal/pipeline/usage.go create mode 100644 internal/tokencount/budget_counter.go create mode 100644 internal/tokencount/cl100k_base.tiktoken.gz create mode 100644 internal/tools/subagent_context_window_test.go create mode 100644 internal/tools/usage_caps_test.go create mode 100644 internal/usage/caps/background_budget_test.go create mode 100644 internal/usage/caps/context_guard.go create mode 100644 internal/usage/caps/context_guard_test.go diff --git a/cmd/gateway_agents.go b/cmd/gateway_agents.go index 60e76281..27703d20 100644 --- a/cmd/gateway_agents.go +++ b/cmd/gateway_agents.go @@ -213,6 +213,7 @@ func setupSubagents(providerReg *providers.Registry, cfg *config.Config, msgBus manager := tools.NewSubagentManager(provider, providerReg, agentCfg.Model, msgBus, toolsFactory, subCfg) manager.SetUsageCapService(usageCapSvc) + manager.SetAgentBudget(agentCfg.ContextWindow, agentCfg.MaxTokens) return manager } diff --git a/cmd/gateway_consumer_normal.go b/cmd/gateway_consumer_normal.go index 73056f89..e88328fd 100644 --- a/cmd/gateway_consumer_normal.go +++ b/cmd/gateway_consumer_normal.go @@ -61,6 +61,12 @@ func processNormalMessage( }) return } + // Team Work and intent gates run before Loop.injectContext. Propagate the + // resolved agent budget here so every classifier sees the same authority. + ctx = agent.WithAgentBudget(ctx, agentLoop) + if uid := agentLoop.UUID(); uid != uuid.Nil { + ctx = store.WithAgentID(ctx, uid) + } // Build session key based on scope config (matching TS buildAgentPeerSessionKey). peerKind := msg.PeerKind diff --git a/internal/agent/loop_compact.go b/internal/agent/loop_compact.go index 28b0bad2..4b5e0cfc 100644 --- a/internal/agent/loop_compact.go +++ b/internal/agent/loop_compact.go @@ -2,6 +2,7 @@ package agent import ( "context" + "encoding/json" "fmt" "log/slog" "strings" @@ -39,6 +40,12 @@ Conversation to summarize: const defaultCompactionTimeout = 120 * time.Second +const ( + maxCompactionChunks = 16 + maxCompactionMergeLevels = 3 + defaultCompactionShare = 0.85 +) + func (l *Loop) compactionTimeout() time.Duration { if l.compactionCfg != nil && l.compactionCfg.TimeoutSeconds > 0 { return time.Duration(l.compactionCfg.TimeoutSeconds) * time.Second @@ -81,43 +88,30 @@ func (l *Loop) compactMessagesInPlace(ctx context.Context, messages []providers. return nil } - // Build summary input (same pattern as maybeSummarize in loop_history.go). toSummarize := messages[:splitIdx] - var sb strings.Builder - for _, m := range toSummarize { - switch m.Role { - case "user": - fmt.Fprintf(&sb, "user: %s\n", m.Content) - case "assistant": - fmt.Fprintf(&sb, "assistant: %s\n", SanitizeAssistantContent(m.Content)) - } - } - timeout := l.compactionTimeout() sctx, cancel := context.WithTimeout(ctx, timeout) defer cancel() - inTokens := l.estimateSummaryInputTokens(toSummarize) - slog.Info("compact_budget", - "path", "mid-loop", - "agent", l.id, - "in_tokens", inTokens, - "out_tokens", dynamicSummaryMax(inTokens), - "timeout_seconds", int(timeout/time.Second), - ) - chatReq := providers.ChatRequest{ - Messages: []providers.Message{{ - Role: "user", - Content: compactionSummaryPrompt + sb.String(), - }}, - Model: l.model, - Options: map[string]any{"max_tokens": dynamicSummaryMax(inTokens), "temperature": 0.3}, + inputCap := l.compactionInputCap() + if inputCap <= 0 { + slog.Warn("mid_loop_compaction_failed", "agent", l.id, "error", "context_window_unresolved") + return nil } - resp, err := l.callInternalLLMWithUsage(sctx, chatReq, "mid-loop-compaction") + units := buildCompactionUnits(toSummarize) + summaryContent, chunkCount, err := l.summarizeCompactionUnits(sctx, units, inputCap, 1) if err != nil { slog.Warn("mid_loop_compaction_failed", "agent", l.id, "timeout_seconds", int(timeout/time.Second), "error", err) return nil } + slog.Info("compact_budget", + "path", "mid-loop", + "agent", l.id, + "in_tokens", l.estimateSummaryInputTokens(toSummarize), + "input_cap_tokens", inputCap, + "chunks", chunkCount, + "timeout_seconds", int(timeout/time.Second), + ) // Collect MediaRefs from compacted messages (keep up to 30 most recent). const maxPreservedMediaRefs = 30 @@ -133,7 +127,7 @@ func (l *Loop) compactMessagesInPlace(ctx context.Context, messages []providers. summary := providers.Message{ Role: "user", - Content: "[Summary of earlier conversation]\n" + SanitizeAssistantContent(resp.Content), + Content: "[Summary of earlier conversation]\n" + summaryContent, MediaRefs: preservedRefs, } result := make([]providers.Message, 0, 1+keepCount) @@ -149,6 +143,211 @@ func (l *Loop) compactMessagesInPlace(ctx context.Context, messages []providers. return result } +func (l *Loop) compactionInputCap() int { + contextWindow := l.resolveEffectiveContextWindow() + if contextWindow <= 0 { + return 0 + } + maxTokens := l.effectiveMaxTokens() + hardInputCap := contextWindow - maxTokens + share := defaultCompactionShare + if l.compactionCfg != nil && l.compactionCfg.MaxRequestShare > 0 && l.compactionCfg.MaxRequestShare <= 1 { + share = l.compactionCfg.MaxRequestShare + } + softTarget := int(float64(contextWindow)*share) - maxTokens + return min(hardInputCap, softTarget) +} + +func buildCompactionUnits(messages []providers.Message) []string { + units := make([]string, 0, len(messages)) + for i := 0; i < len(messages); { + end := i + 1 + if messages[i].Role == "assistant" && len(messages[i].ToolCalls) > 0 { + for end < len(messages) && messages[end].Role == "tool" { + end++ + } + } + if text := renderCompactionMessages(messages[i:end]); text != "" { + units = append(units, text) + } + i = end + } + return units +} + +func renderCompactionMessages(messages []providers.Message) string { + var sb strings.Builder + for _, m := range messages { + switch m.Role { + case "user": + fmt.Fprintf(&sb, "user: %s\n", m.Content) + case "assistant": + if content := SanitizeAssistantContent(m.Content); content != "" { + fmt.Fprintf(&sb, "assistant: %s\n", content) + } + // Tool calls carry the assistant's intent (which tool, what args); + // dropping them loses the "why" behind each tool result below. + for _, tc := range m.ToolCalls { + if args, err := json.Marshal(tc.Arguments); err == nil && len(tc.Arguments) > 0 { + fmt.Fprintf(&sb, "assistant tool call %s(%s)\n", tc.Name, string(args)) + } else { + fmt.Fprintf(&sb, "assistant tool call %s()\n", tc.Name) + } + } + case "tool": + // Tool results hold the technical payload the summary must retain + // (search hits, file contents, API responses). buildCompactionUnits + // groups these with their assistant tool_call; the previous renderer + // silently dropped them, erasing the data before summarization. + if m.Content != "" { + fmt.Fprintf(&sb, "tool result: %s\n", m.Content) + } + } + } + return sb.String() +} + +func (l *Loop) summarizeCompactionUnits(ctx context.Context, units []string, inputCap, level int) (string, int, error) { + if len(units) == 0 { + return "", 0, fmt.Errorf("no compactable conversation content") + } + chunks, err := l.packCompactionChunks(units, inputCap) + if err != nil { + return "", 0, err + } + if len(chunks) > maxCompactionChunks { + return "", 0, fmt.Errorf("compaction chunk limit exceeded: chunks=%d limit=%d", len(chunks), maxCompactionChunks) + } + + summaries := make([]string, 0, len(chunks)) + for i, chunk := range chunks { + inputTokens := l.estimateCompactionRequestTokens(chunk) + if inputTokens > inputCap { + return "", 0, fmt.Errorf("compaction chunk exceeds input cap: chunk=%d input=%d cap=%d", i, inputTokens, inputCap) + } + outputTokens := dynamicSummaryMax(inputTokens) + slog.Debug("compact_chunk_budget", + "path", "mid-loop", + "agent", l.id, + "level", level, + "chunk", i+1, + "chunks", len(chunks), + "in_tokens", inputTokens, + "out_tokens", outputTokens, + "input_cap_tokens", inputCap, + ) + resp, callErr := l.callInternalLLMWithUsage(ctx, providers.ChatRequest{ + Messages: []providers.Message{{Role: "user", Content: compactionSummaryPrompt + chunk}}, + Model: l.model, + Options: map[string]any{"max_tokens": outputTokens, "temperature": 0.3}, + }, "mid-loop-compaction") + if callErr != nil { + return "", 0, callErr + } + summary := SanitizeAssistantContent(resp.Content) + if strings.TrimSpace(summary) == "" { + return "", 0, fmt.Errorf("compaction returned empty summary") + } + summaries = append(summaries, summary) + } + if len(summaries) == 1 { + return summaries[0], len(chunks), nil + } + if level >= maxCompactionMergeLevels { + return "", 0, fmt.Errorf("compaction merge level exceeded: level=%d limit=%d", level, maxCompactionMergeLevels) + } + + mergeUnits := make([]string, len(summaries)) + for i, summary := range summaries { + mergeUnits[i] = fmt.Sprintf("partial summary %d: %s\n", i+1, summary) + } + merged, mergeChunks, mergeErr := l.summarizeCompactionUnits(ctx, mergeUnits, inputCap, level+1) + return merged, len(chunks) + mergeChunks, mergeErr +} + +func (l *Loop) packCompactionChunks(units []string, inputCap int) ([]string, error) { + var chunks []string + var current strings.Builder + flush := func() { + if current.Len() == 0 { + return + } + chunks = append(chunks, current.String()) + current.Reset() + } + + for _, unit := range units { + parts, err := l.splitCompactionUnit(unit, inputCap) + if err != nil { + return nil, err + } + for _, part := range parts { + candidate := current.String() + part + if current.Len() > 0 && l.estimateCompactionRequestTokens(candidate) > inputCap { + flush() + candidate = part + } + if l.estimateCompactionRequestTokens(candidate) > inputCap { + return nil, fmt.Errorf("atomic compaction unit exceeds input cap") + } + current.WriteString(part) + if len(chunks) >= maxCompactionChunks { + return nil, fmt.Errorf("compaction chunk limit exceeded: limit=%d", maxCompactionChunks) + } + } + } + flush() + return chunks, nil +} + +func (l *Loop) splitCompactionUnit(unit string, inputCap int) ([]string, error) { + if l.estimateCompactionRequestTokens(unit) <= inputCap { + return []string{unit}, nil + } + words := strings.Fields(unit) + if len(words) == 0 { + return nil, fmt.Errorf("empty oversized compaction unit") + } + + var parts []string + var current strings.Builder + for _, word := range words { + candidate := word + if current.Len() > 0 { + candidate = current.String() + " " + word + } + if l.estimateCompactionRequestTokens(candidate) <= inputCap { + if current.Len() > 0 { + current.WriteByte(' ') + } + current.WriteString(word) + continue + } + if current.Len() == 0 { + return nil, fmt.Errorf("atomic compaction token exceeds input cap") + } + parts = append(parts, current.String()+"\n") + current.Reset() + current.WriteString("[continued] ") + current.WriteString(word) + if l.estimateCompactionRequestTokens(current.String()) > inputCap { + return nil, fmt.Errorf("atomic compaction token exceeds input cap") + } + } + if current.Len() > 0 { + parts = append(parts, current.String()+"\n") + } + return parts, nil +} + +func (l *Loop) estimateCompactionRequestTokens(content string) int { + message := providers.Message{Role: "user", Content: compactionSummaryPrompt + content} + if l.tokenCounter != nil { + return l.tokenCounter.CountMessages(l.model, []providers.Message{message}) + } + return len([]rune(message.Content))/3 + 4 +} + // dynamicSummaryMax returns the output-token budget for a compaction or // summarization call, scaled to input size. Formula: in/25 (~4% compression), // clamped to [1024, 8192]. Floor keeps short summaries coherent; cap prevents diff --git a/internal/agent/loop_compact_integration_test.go b/internal/agent/loop_compact_integration_test.go index 305b0856..8b5f7c07 100644 --- a/internal/agent/loop_compact_integration_test.go +++ b/internal/agent/loop_compact_integration_test.go @@ -47,9 +47,10 @@ func TestLoopCompact_Integration_DynamicMaxTokens_VietnameseFixture(t *testing.T cap := &capturingProvider{response: "Tóm tắt cuộc trò chuyện: Đã thảo luận về nhiều chủ đề."} loop := &Loop{ - provider: cap, - model: "claude-3-5-sonnet", - tokenCounter: tokencount.NewFallbackCounter(), + provider: cap, + model: "claude-3-5-sonnet", + tokenCounter: tokencount.NewFallbackCounter(), + contextWindow: 200_000, } // 600 messages × ~500 runes each ≈ 300k runes ÷ 3 ≈ 100k tokens total. @@ -97,3 +98,105 @@ func TestLoopCompact_Integration_DynamicMaxTokens_VietnameseFixture(t *testing.T t.Logf("observed: msgs=%d splitIdx=%d estimatedIn=%d max_tokens=%d dynamicSummaryMax=%d", len(msgs), splitIdx, estimatedIn, maxTokens, dynamicSummaryMax(estimatedIn)) } + +func TestLoopCompact_ChunksEverySummaryRequestUnderAgentCap(t *testing.T) { + cap := &capturingProvider{response: "bounded summary"} + loop := &Loop{ + provider: cap, + model: "claude-3-5-sonnet", + tokenCounter: tokencount.NewFallbackCounter(), + contextWindow: 20_000, + } + msgs := buildVietnameseMsgs(20, 4_000) + + result := loop.compactMessagesInPlace(context.Background(), msgs) + if result == nil { + t.Fatal("compactMessagesInPlace returned nil") + } + if len(cap.captured) < 3 { + t.Fatalf("provider calls = %d, want multiple chunks plus merge", len(cap.captured)) + } + inputCap := loop.compactionInputCap() + for i, req := range cap.captured { + got := loop.tokenCounter.CountMessages(loop.model, req.Messages) + if got > inputCap { + t.Fatalf("request %d input = %d, exceeds cap %d", i, got, inputCap) + } + } +} + +// TestLoopCompact_InputCapReservesFixedMaxTokens locks the agent-only budget: +// compactionInputCap() reserves the CALLING agent's fixed effectiveMaxTokens() +// from the window, bounded by the request share. The dynamic-output term +// (dynamicSummaryMax) governs only the per-chunk output budget — it is NOT an +// authority over the input cap, so it does not appear here. +func TestLoopCompact_InputCapReservesFixedMaxTokens(t *testing.T) { + const ( + window = 20_000 + maxTokens = 8_192 + ) + loop := &Loop{ + provider: &capturingProvider{}, + model: "claude-3-5-sonnet", + contextWindow: window, + maxTokens: maxTokens, + } + inputCap := loop.compactionInputCap() + + hardCap := window - maxTokens // 11808 + softTarget := int(float64(window)*defaultCompactionShare) - maxTokens // 8808 + want := min(hardCap, softTarget) + if inputCap != want { + t.Fatalf("compactionInputCap() = %d, want %d (min(window-maxTokens, share*window-maxTokens))", inputCap, want) + } + // Invariant: input cap plus the fixed reserve never exceeds the window. + if inputCap+maxTokens > window { + t.Fatalf("inputCap %d + reserve %d exceeds window %d", inputCap, maxTokens, window) + } +} + +func TestLoopCompact_RejectsMoreThanSixteenChunksBeforeProvider(t *testing.T) { + cap := &capturingProvider{response: "unused"} + loop := &Loop{ + provider: cap, + model: "claude-3-5-sonnet", + tokenCounter: tokencount.NewFallbackCounter(), + contextWindow: 200_000, + } + unit := strings.Repeat("bounded-word ", 1_500) + unitCap := loop.estimateCompactionRequestTokens(unit) + units := make([]string, maxCompactionChunks+1) + for i := range units { + units[i] = unit + } + + if _, _, err := loop.summarizeCompactionUnits(context.Background(), units, unitCap, 1); err == nil { + t.Fatal("expected compaction chunk limit error") + } + if len(cap.captured) != 0 { + t.Fatalf("provider calls = %d, want 0 before chunk-limit rejection", len(cap.captured)) + } +} + +func TestBuildCompactionUnits_KeepsToolCycleTogether(t *testing.T) { + units := buildCompactionUnits([]providers.Message{ + {Role: "assistant", Content: "calling tool", ToolCalls: []providers.ToolCall{{ID: "call-1", Name: "read_file", Arguments: map[string]any{"path": "a.go"}}}}, + {Role: "tool", Content: "file body here", ToolCallID: "call-1"}, + {Role: "user", Content: "continue"}, + }) + if len(units) != 2 { + t.Fatalf("units = %d, want 2 (tool cycle + following user)", len(units)) + } + if !strings.Contains(units[0], "calling tool") || !strings.Contains(units[1], "continue") { + t.Fatalf("unexpected units: %#v", units) + } + // Regression: the tool RESULT payload and the tool CALL must survive into the + // compaction unit. Previously renderCompactionMessages dropped role=tool and + // assistant tool_calls, erasing technical data before summarization. + if !strings.Contains(units[0], "file body here") { + t.Fatalf("tool result dropped from compaction unit: %#v", units[0]) + } + if !strings.Contains(units[0], "read_file") { + t.Fatalf("tool call dropped from compaction unit: %#v", units[0]) + } +} diff --git a/internal/agent/loop_compact_max_tokens_test.go b/internal/agent/loop_compact_max_tokens_test.go index 031feba2..6c803b0c 100644 --- a/internal/agent/loop_compact_max_tokens_test.go +++ b/internal/agent/loop_compact_max_tokens_test.go @@ -31,8 +31,9 @@ func TestCompactMessagesInPlace_MaxTokensDynamic(t *testing.T) { cap := &capturingProvider{response: "Summary of conversation."} loop := &Loop{ - provider: cap, - model: "claude-3-5-sonnet", + provider: cap, + model: "claude-3-5-sonnet", + contextWindow: 200_000, // tokenCounter nil → estimateSummaryInputTokens uses rune/3 fallback } diff --git a/internal/agent/loop_compact_timeout_test.go b/internal/agent/loop_compact_timeout_test.go index be1f1b32..8824ee7c 100644 --- a/internal/agent/loop_compact_timeout_test.go +++ b/internal/agent/loop_compact_timeout_test.go @@ -25,8 +25,9 @@ func TestCompactMessagesInPlace_UsesDefaultTimeout(t *testing.T) { capturingProvider: capturingProvider{response: "Summary of conversation."}, } loop := &Loop{ - provider: provider, - model: "claude-3-5-sonnet", + provider: provider, + model: "claude-3-5-sonnet", + contextWindow: 200_000, } start := time.Now() @@ -43,8 +44,9 @@ func TestCompactMessagesInPlace_UsesConfiguredTimeout(t *testing.T) { capturingProvider: capturingProvider{response: "Summary of conversation."}, } loop := &Loop{ - provider: provider, - model: "claude-3-5-sonnet", + provider: provider, + model: "claude-3-5-sonnet", + contextWindow: 200_000, compactionCfg: &config.CompactionConfig{ TimeoutSeconds: 45, }, @@ -64,8 +66,9 @@ func TestCompactMessagesInPlace_NonPositiveTimeoutFallsBackToDefault(t *testing. capturingProvider: capturingProvider{response: "Summary of conversation."}, } loop := &Loop{ - provider: provider, - model: "claude-3-5-sonnet", + provider: provider, + model: "claude-3-5-sonnet", + contextWindow: 200_000, compactionCfg: &config.CompactionConfig{ TimeoutSeconds: -1, }, diff --git a/internal/agent/loop_context.go b/internal/agent/loop_context.go index fce882f9..b1be7c47 100644 --- a/internal/agent/loop_context.go +++ b/internal/agent/loop_context.go @@ -38,6 +38,9 @@ func (l *Loop) injectContext(ctx context.Context, req *RunRequest) (contextSetup if l.tenantID != uuid.Nil { ctx = store.WithTenantID(ctx, l.tenantID) } + // Propagate the configured agent budget to every nested model call. + ctx = store.WithAgentContextWindow(ctx, l.contextWindow) + ctx = store.WithAgentMaxTokens(ctx, l.effectiveMaxTokens()) // Inject user ID into context for per-user scoping (memory, context files, etc.) if req.UserID != "" { ctx = store.WithUserID(ctx, req.UserID) diff --git a/internal/agent/loop_episodic_compaction_test.go b/internal/agent/loop_episodic_compaction_test.go new file mode 100644 index 00000000..b4006f62 --- /dev/null +++ b/internal/agent/loop_episodic_compaction_test.go @@ -0,0 +1,208 @@ +package agent + +import ( + "context" + "sync" + "testing" + "time" + + "github.com/google/uuid" + "github.com/nextlevelbuilder/goclaw/internal/eventbus" +) + +// recordingBus captures every published DomainEvent for assertion. +// Distinct from the eventbus package's own test bus — this one does no +// dispatch, it only records what the emit callback published. +type recordingBus struct { + mu sync.Mutex + published []eventbus.DomainEvent +} + +func (r *recordingBus) Publish(event eventbus.DomainEvent) { + r.mu.Lock() + defer r.mu.Unlock() + r.published = append(r.published, event) +} +func (r *recordingBus) Subscribe(_ eventbus.EventType, _ eventbus.DomainEventHandler) func() { + return func() {} +} +func (r *recordingBus) Start(_ context.Context) {} +func (r *recordingBus) Drain(_ time.Duration) error { return nil } +func (r *recordingBus) events() []eventbus.DomainEvent { + r.mu.Lock() + defer r.mu.Unlock() + out := make([]eventbus.DomainEvent, len(r.published)) + copy(out, r.published) + return out +} + +// --------------------------------------------------------------------------- +// V1-A: emit reads the CUMULATIVE session compaction count, not the per-run 0. +// --------------------------------------------------------------------------- + +func TestEmitSessionCompleted_UsesCumulativeCount(t *testing.T) { + bus := &recordingBus{} + sessions := &nopSessionStore{ + compactionCount: 5, // cumulative session count + summary: "prior-cycle summary", + } + loop := &Loop{ + id: "test-agent", + agentUUID: uuid.New(), + tenantID: uuid.New(), + domainBus: bus, + sessions: sessions, + } + + loop.emitSessionCompleted(context.Background(), "sess-1", "user-1", 42, 9000) + + evs := bus.events() + if len(evs) != 1 { + t.Fatalf("published %d events, want 1", len(evs)) + } + ev := evs[0] + // Bug A: payload.CompactionCount (the field the worker uses for idempotency) + // must be the cumulative count (5), not the per-run 0. + pl, ok := ev.Payload.(*eventbus.SessionCompletedPayload) + if !ok { + t.Fatalf("payload type = %T, want *SessionCompletedPayload", ev.Payload) + } + if pl.CompactionCount != 5 { + t.Errorf("payload.CompactionCount = %d, want 5 (cumulative)", pl.CompactionCount) + } + // Bug C: SourceID embeds the cumulative count. + if ev.SourceID != "sess-1:5" { + t.Errorf("SourceID = %q, want %q", ev.SourceID, "sess-1:5") + } + // Summary from the previous cycle is attached when count > 0. + if pl.Summary != "prior-cycle summary" { + t.Errorf("payload.Summary = %q, want prior-cycle summary", pl.Summary) + } + if pl.MessageCount != 42 || pl.TokensUsed != 9000 { + t.Errorf("msgCount/tokens = %d/%d, want 42/9000", pl.MessageCount, pl.TokensUsed) + } +} + +func TestEmitSessionCompleted_ZeroCountOmitsSummary(t *testing.T) { + bus := &recordingBus{} + // count == 0 → no prior cycle → summary must NOT be fetched/attached + // (worker would otherwise get a stale/empty summary and skip the LLM path). + sessions := &nopSessionStore{ + compactionCount: 0, + summary: "should-not-be-attached", + } + loop := &Loop{ + id: "test-agent", + agentUUID: uuid.New(), + tenantID: uuid.New(), + domainBus: bus, + sessions: sessions, + } + + loop.emitSessionCompleted(context.Background(), "sess-1", "user-1", 1, 100) + + evs := bus.events() + if len(evs) != 1 { + t.Fatalf("published %d events, want 1", len(evs)) + } + pl := evs[0].Payload.(*eventbus.SessionCompletedPayload) + if pl.CompactionCount != 0 { + t.Errorf("payload.CompactionCount = %d, want 0", pl.CompactionCount) + } + if pl.Summary != "" { + t.Errorf("payload.Summary = %q, want empty (count==0)", pl.Summary) + } + if evs[0].SourceID != "sess-1:0" { + t.Errorf("SourceID = %q, want sess-1:0", evs[0].SourceID) + } +} + +func TestEmitSessionCompleted_NoBusIsNoop(t *testing.T) { + loop := &Loop{ + id: "test-agent", + agentUUID: uuid.New(), + tenantID: uuid.New(), + domainBus: nil, // no bus + sessions: &nopSessionStore{compactionCount: 3}, + } + // Must not panic when domainBus is nil. + loop.emitSessionCompleted(context.Background(), "sess-1", "user-1", 1, 100) +} + +// --------------------------------------------------------------------------- +// V1-C: eventbus dedup — distinct counts both pass, same count deduped. +// Uses the REAL bus + real dedupSet (not the recording double) so we exercise +// the actual dedup key = Type + ":" + SourceID. +// --------------------------------------------------------------------------- + +func TestEventbusDedup_DistinctCompactionCountsPass(t *testing.T) { + bus := eventbus.NewDomainEventBus(eventbus.Config{ + QueueSize: 100, + WorkerCount: 2, + RetryAttempts: 1, + RetryDelay: time.Millisecond, + DedupTTL: time.Minute, + }) + bus.Start(context.Background()) + defer func() { _ = bus.Drain(time.Second) }() + + var mu sync.Mutex + var seen []string + bus.Subscribe(eventbus.EventSessionCompleted, func(_ context.Context, e eventbus.DomainEvent) error { + mu.Lock() + seen = append(seen, e.SourceID) + mu.Unlock() + return nil + }) + + // Same session, three DIFFERENT compaction cycles → all three must pass dedup. + bus.Publish(eventbus.DomainEvent{Type: eventbus.EventSessionCompleted, SourceID: "sess-1:1"}) + bus.Publish(eventbus.DomainEvent{Type: eventbus.EventSessionCompleted, SourceID: "sess-1:2"}) + bus.Publish(eventbus.DomainEvent{Type: eventbus.EventSessionCompleted, SourceID: "sess-1:3"}) + // Rapid duplicate of cycle 2 within TTL → must be deduped. + bus.Publish(eventbus.DomainEvent{Type: eventbus.EventSessionCompleted, SourceID: "sess-1:2"}) + + time.Sleep(80 * time.Millisecond) + + mu.Lock() + got := len(seen) + mu.Unlock() + if got != 3 { + t.Errorf("handler saw %d events, want 3 (cycles 1,2,3; duplicate of 2 deduped)", got) + } +} + +func TestEventbusDedup_SameCompactionCountDeduped(t *testing.T) { + bus := eventbus.NewDomainEventBus(eventbus.Config{ + QueueSize: 100, + WorkerCount: 2, + RetryAttempts: 1, + RetryDelay: time.Millisecond, + DedupTTL: time.Minute, + }) + bus.Start(context.Background()) + defer func() { _ = bus.Drain(time.Second) }() + + var count int + var mu sync.Mutex + bus.Subscribe(eventbus.EventSessionCompleted, func(_ context.Context, _ eventbus.DomainEvent) error { + mu.Lock() + count++ + mu.Unlock() + return nil + }) + + // Same SourceID (same session, same cycle) published 3× → only 1 passes. + for range 3 { + bus.Publish(eventbus.DomainEvent{Type: eventbus.EventSessionCompleted, SourceID: "sess-1:7"}) + } + + time.Sleep(80 * time.Millisecond) + + mu.Lock() + got := count + mu.Unlock() + if got != 1 { + t.Errorf("handler called %d times, want 1 (same cycle deduped)", got) + } +} diff --git a/internal/agent/loop_finalize.go b/internal/agent/loop_finalize.go index dae304b3..2e42eff1 100644 --- a/internal/agent/loop_finalize.go +++ b/internal/agent/loop_finalize.go @@ -2,6 +2,7 @@ package agent import ( "context" + "fmt" "os" "path/filepath" "strings" @@ -186,10 +187,9 @@ func (l *Loop) finalizeRun( l.sessions.UpdateMetadata(ctx, req.SessionKey, l.model, l.provider.Name(), req.Channel) l.sessions.AccumulateTokens(ctx, req.SessionKey, int64(rs.totalUsage.PromptTokens), int64(rs.totalUsage.CompletionTokens)) - // Calibrate token estimation: store actual prompt tokens + message count. - if rs.totalUsage.PromptTokens > 0 { - msgCount := len(history) + rs.checkpointFlushedMsgs + len(rs.pendingMsgs) - l.sessions.SetLastPromptTokens(ctx, req.SessionKey, rs.totalUsage.PromptTokens, msgCount) + // Calibrate token estimation using the last LLM request, not the total run. + if rs.lastUsage.PromptTokens > 0 && rs.lastUsageMsgCount > 0 { + l.sessions.SetLastPromptTokens(ctx, req.SessionKey, rs.lastUsage.PromptTokens, rs.lastUsageMsgCount) } l.sessions.Save(ctx, req.SessionKey) @@ -203,31 +203,43 @@ func (l *Loop) finalizeRun( } // 9. Maybe summarize - l.maybeSummarize(ctx, req.SessionKey) + // Legacy v2 path has no mid-loop pressure signal (that lives in v3 RunState.Prune), + // so pass false — this preserves the original baseline-threshold behavior here. + l.maybeSummarize(ctx, req.SessionKey, false) // V3: emit session.completed for consolidation pipeline (episodic → semantic → dreaming) if l.domainBus != nil { + // Bug C parity: include count in SourceID so the eventbus dedup key advances + // per compaction cycle (matches the v3 adapter emit path). This path is + // currently disabled (FinalizeStage owns finalization) but kept in sync. + finalizeCount := l.sessions.GetCompactionCount(ctx, req.SessionKey) l.domainBus.Publish(eventbus.DomainEvent{ Type: eventbus.EventSessionCompleted, TenantID: l.tenantID.String(), AgentID: l.agentUUID.String(), UserID: req.UserID, - SourceID: req.SessionKey, + SourceID: fmt.Sprintf("%s:%d", req.SessionKey, finalizeCount), Payload: &eventbus.SessionCompletedPayload{ SessionKey: req.SessionKey, MessageCount: len(history) + len(rs.pendingMsgs), TokensUsed: rs.totalUsage.PromptTokens + rs.totalUsage.CompletionTokens, - CompactionCount: l.sessions.GetCompactionCount(ctx, req.SessionKey), + CompactionCount: finalizeCount, }, }) } + var lastUsage *providers.Usage + if rs.lastUsage.PromptTokens > 0 || rs.lastUsage.CompletionTokens > 0 || rs.lastUsage.TotalTokens > 0 { + lastUsage = &rs.lastUsage + } + return &RunResult{ Content: rs.finalContent, Thinking: rs.finalThinking, RunID: req.RunID, Iterations: rs.iteration, Usage: &rs.totalUsage, + LastUsage: lastUsage, Media: rs.mediaResults, Deliverables: rs.deliverables, BlockReplies: rs.blockReplies, diff --git a/internal/agent/loop_history_sanitize.go b/internal/agent/loop_history_sanitize.go index 516667f8..a55b2bf9 100644 --- a/internal/agent/loop_history_sanitize.go +++ b/internal/agent/loop_history_sanitize.go @@ -213,16 +213,30 @@ func hasPendingToolResultAhead(msgs []providers.Message, start int, idQueue map[ return false } -func (l *Loop) maybeSummarize(ctx context.Context, sessionKey string) { +// maybeSummarize truncates+summarizes session history when it grows large. +// +// midLoopCompacted signals that the final-request guard already had to compact +// this session mid-loop. Because mid-loop compaction only mutates the run's +// message buffer (never the session store), it is thrown away every turn — +// causing an unbounded re-compaction loop AND stalling the cumulative compaction +// count episodic depends on. When set, we lower the trigger threshold to a +// unit-aligned "pressure threshold" so the compaction gets PERSISTED here. +func (l *Loop) maybeSummarize(ctx context.Context, sessionKey string, midLoopCompacted bool) { history := l.sessions.GetHistory(ctx, sessionKey) // Use calibrated token estimation, adjusted for overhead. // lastPromptTokens includes everything (system prompt, tools, context files, history). // We subtract estimated overhead so the threshold comparison is history-only. lastPT, lastMC := l.sessions.GetLastPromptTokens(ctx, sessionKey) - overheadEstimate := l.estimateOverhead(history, lastPT, lastMC) - adjustedLastPT := max(lastPT-overheadEstimate, 0) - tokenEstimate := EstimateTokensWithCalibration(history, adjustedLastPT, lastMC) + calibrationPT, calibrationMC := lastPT, lastMC + calibrationInvalid := l.contextWindow > 0 && lastPT > l.contextWindow + if calibrationInvalid { + calibrationPT = 0 + calibrationMC = 0 + } + overheadEstimate := l.estimateOverhead(history, calibrationPT, calibrationMC) + adjustedLastPT := max(calibrationPT-overheadEstimate, 0) + tokenEstimate := EstimateTokensWithCalibration(history, adjustedLastPT, calibrationMC) // Resolve compaction threshold from config: token-only (no message count guard). // Industry standard — Claude Code, Anthropic API, LangChain all use token-based thresholds. @@ -231,9 +245,28 @@ func (l *Loop) maybeSummarize(ctx context.Context, sessionKey string) { historyShare = l.compactionCfg.MaxHistoryShare } + // Baseline (floor) threshold: history-only, MaxHistoryShare. Used when there was + // no mid-loop pressure this run — keeps normal sessions from over-compacting. threshold := int(float64(l.contextWindow) * historyShare) - if tokenEstimate <= threshold { - l.logCompactionDecision(sessionKey, "skip", "under_threshold", tokenEstimate, threshold, historyShare, lastPT, lastMC, adjustedLastPT, overheadEstimate) + effectiveThreshold := threshold + if midLoopCompacted { + // Pressure threshold: align the unit + constants with the final-request guard by + // reusing compactionInputCap() (min(cw-maxTokens, cw*MaxRequestShare-maxTokens)), + // then subtract the fixed overhead estimate to compare against history-only + // tokenEstimate. The guard reads MaxRequestShare while this path historically read + // MaxHistoryShare — a DIFFERENT config field — so we must NOT rebuild the formula + // from historyShare or the two would diverge under custom config. + pressureThreshold := max(l.compactionInputCap()-overheadEstimate, 0) + // Defensive floor: a pathological config (maxTokens >= cw*MaxRequestShare) could + // drive compactionInputCap() toward 0, making pressureThreshold≈0 and forcing a + // summarize on every mid-loop turn. Never drop below half the baseline threshold. + if minFloor := threshold / 2; pressureThreshold < minFloor { + pressureThreshold = minFloor + } + effectiveThreshold = pressureThreshold + } + if tokenEstimate <= effectiveThreshold { + l.logCompactionDecision(sessionKey, "skip", "under_threshold", tokenEstimate, effectiveThreshold, historyShare, lastPT, lastMC, adjustedLastPT, overheadEstimate, calibrationInvalid) return } @@ -243,12 +276,12 @@ func (l *Loop) maybeSummarize(ctx context.Context, sessionKey string) { muI, _ := l.summarizeMu.LoadOrStore(sessionKey, &sync.Mutex{}) sessionMu := muI.(*sync.Mutex) if !sessionMu.TryLock() { - l.logCompactionDecision(sessionKey, "skip", "already_in_progress", tokenEstimate, threshold, historyShare, lastPT, lastMC, adjustedLastPT, overheadEstimate) + l.logCompactionDecision(sessionKey, "skip", "already_in_progress", tokenEstimate, effectiveThreshold, historyShare, lastPT, lastMC, adjustedLastPT, overheadEstimate, calibrationInvalid) slog.Debug("summarization already in progress, skipping", "session", sessionKey) return } - l.logCompactionDecision(sessionKey, "trigger", "", tokenEstimate, threshold, historyShare, lastPT, lastMC, adjustedLastPT, overheadEstimate) + l.logCompactionDecision(sessionKey, "trigger", "", tokenEstimate, effectiveThreshold, historyShare, lastPT, lastMC, adjustedLastPT, overheadEstimate, calibrationInvalid) // Memory flush runs synchronously INSIDE the guard // (so concurrent runs don't both trigger flush for the same compaction cycle). @@ -282,42 +315,49 @@ func (l *Loop) maybeSummarize(ctx context.Context, sessionKey string) { summary := l.sessions.GetSummary(sctx, sessionKey) toSummarize := history[:len(history)-keepLast] - var sb strings.Builder + // Resolve the same per-agent request budget the mid-loop compaction path + // uses so no single summarization request can exceed the window. The old + // path concatenated the entire history into one prompt, which could blow + // the hard ceiling on large sessions; chunk + map-reduce keeps every + // request within cap. + inputCap := l.compactionInputCap() + if inputCap <= 0 { + slog.Warn("summarization failed", "session", sessionKey, "error", "context_window_unresolved") + return + } + var mediaKinds []string for _, m := range toSummarize { - if m.Role == "user" { - sb.WriteString(fmt.Sprintf("user: %s\n", m.Content)) - } else if m.Role == "assistant" { - sb.WriteString(fmt.Sprintf("assistant: %s\n", SanitizeAssistantContent(m.Content))) - } for _, ref := range m.MediaRefs { mediaKinds = append(mediaKinds, ref.Kind) } } - var prompt strings.Builder - prompt.WriteString(compactionSummaryPrompt) + // Build cap-respecting units, prepending any existing summary and a media + // note as their own leading units so the packer can split them if needed. + var leading []string + if summary != "" { + leading = append(leading, "Existing context: "+summary+"\n\n") + } if len(mediaKinds) > 0 { - // Deduplicate and count media types for a compact note. counts := make(map[string]int) for _, k := range mediaKinds { counts[k]++ } - prompt.WriteString("Note: user shared media files (") + var note strings.Builder + note.WriteString("Note: user shared media files (") first := true for k, n := range counts { if !first { - prompt.WriteString(", ") + note.WriteString(", ") } - prompt.WriteString(fmt.Sprintf("%d %s(s)", n, k)) + note.WriteString(fmt.Sprintf("%d %s(s)", n, k)) first = false } - prompt.WriteString(") which are no longer in context. Mention briefly if relevant.\n\n") + note.WriteString(") which are no longer in context. Mention briefly if relevant.\n\n") + leading = append(leading, note.String()) } - if summary != "" { - prompt.WriteString("Existing context: " + summary + "\n\n") - } - prompt.WriteString(sb.String()) + units := append(leading, buildCompactionUnits(toSummarize)...) inTokens := l.estimateSummaryInputTokens(toSummarize) slog.Info("compact_budget", @@ -327,22 +367,19 @@ func (l *Loop) maybeSummarize(ctx context.Context, sessionKey string) { "in_tokens", inTokens, "out_tokens", dynamicSummaryMax(inTokens), "context_window", l.contextWindow, + "input_cap_tokens", inputCap, "threshold", threshold, "token_estimate", tokenEstimate, "max_history_share", historyShare, "reserve_tokens_floor", l.resolveReserveTokens(), "timeout_seconds", int(timeout/time.Second), ) - chatReq := providers.ChatRequest{ - Messages: []providers.Message{{Role: "user", Content: prompt.String()}}, - Model: l.model, - Options: map[string]any{"max_tokens": dynamicSummaryMax(inTokens), "temperature": 0.3}, - } - resp, err := l.callInternalLLMWithUsage(sctx, chatReq, "session-summarization") + summaryContent, _, err := l.summarizeCompactionUnits(sctx, units, inputCap, 1) if err != nil { slog.Warn("summarization failed", "session", sessionKey, "error", err) return } + resp := &providers.ChatResponse{Content: summaryContent} // Collect MediaRefs from messages about to be truncated (keep up to 30 most recent). const maxPreservedMediaRefs = 30 @@ -381,7 +418,7 @@ func (l *Loop) maybeSummarize(ctx context.Context, sessionKey string) { }() } -func (l *Loop) logCompactionDecision(sessionKey, decision, skipReason string, tokenEstimate, threshold int, historyShare float64, lastPromptTokens, lastMessageCount, adjustedLastPromptTokens, overheadEstimate int) { +func (l *Loop) logCompactionDecision(sessionKey, decision, skipReason string, tokenEstimate, threshold int, historyShare float64, lastPromptTokens, lastMessageCount, adjustedLastPromptTokens, overheadEstimate int, calibrationInvalid bool) { args := []any{ "path", "post-turn", "agent", l.id, @@ -396,6 +433,10 @@ func (l *Loop) logCompactionDecision(sessionKey, decision, skipReason string, to "last_message_count", lastMessageCount, "adjusted_last_prompt_tokens", adjustedLastPromptTokens, "overhead_estimate", overheadEstimate, + "calibration_invalid", calibrationInvalid, + } + if calibrationInvalid { + args = append(args, "invalid_last_prompt_tokens", lastPromptTokens) } if skipReason != "" { args = append(args, "skip_reason", skipReason) diff --git a/internal/agent/loop_history_sanitize_max_tokens_test.go b/internal/agent/loop_history_sanitize_max_tokens_test.go index 79c23f36..3a19e0f8 100644 --- a/internal/agent/loop_history_sanitize_max_tokens_test.go +++ b/internal/agent/loop_history_sanitize_max_tokens_test.go @@ -5,6 +5,7 @@ import ( "context" "log/slog" "strings" + "sync" "testing" "time" @@ -21,6 +22,21 @@ type nopSessionStore struct { history []providers.Message lastPromptTokens int lastMsgCount int + inputTokens int64 + outputTokens int64 + setLastTokens int + setLastMsgCount int + + // Configurable/recording fields for compaction-count and truncation tests. + // Guarded by mu because maybeSummarize mutates them from a background goroutine. + mu sync.Mutex + summary string // returned by GetSummary + compactionCount int // returned by GetCompactionCount + incrementCalls int // counts IncrementCompaction invocations + truncateCalls int // counts TruncateHistory invocations + truncateKeepLast int // last keepLast passed to TruncateHistory + setSummaryCalls int // counts SetSummary invocations + lastSetSummary string // last summary passed to SetSummary } // SessionCoreStore methods @@ -30,24 +46,61 @@ func (n *nopSessionStore) GetOrCreate(_ context.Context, _ string) *store.Sessio func (n *nopSessionStore) Get(_ context.Context, _ string) *store.SessionData { return nil } func (n *nopSessionStore) AddMessage(_ context.Context, _ string, _ providers.Message) {} func (n *nopSessionStore) GetHistory(_ context.Context, _ string) []providers.Message { + n.mu.Lock() + defer n.mu.Unlock() return n.history } -func (n *nopSessionStore) GetSummary(_ context.Context, _ string) string { return "" } -func (n *nopSessionStore) SetSummary(_ context.Context, _, _ string) {} +func (n *nopSessionStore) GetSummary(_ context.Context, _ string) string { + n.mu.Lock() + defer n.mu.Unlock() + return n.summary +} +func (n *nopSessionStore) SetSummary(_ context.Context, _, s string) { + n.mu.Lock() + defer n.mu.Unlock() + n.setSummaryCalls++ + n.lastSetSummary = s +} func (n *nopSessionStore) GetLabel(_ context.Context, _ string) string { return "" } func (n *nopSessionStore) SetLabel(_ context.Context, _, _ string) {} func (n *nopSessionStore) SetAgentInfo(_ context.Context, _ string, _ uuid.UUID, _ string) {} -func (n *nopSessionStore) TruncateHistory(_ context.Context, _ string, _ int) {} -func (n *nopSessionStore) SetHistory(_ context.Context, _ string, _ []providers.Message) {} +func (n *nopSessionStore) TruncateHistory(_ context.Context, _ string, keepLast int) { + n.mu.Lock() + defer n.mu.Unlock() + n.truncateCalls++ + n.truncateKeepLast = keepLast + // Mirror real-store semantics: keep only the last keepLast messages so + // anti-loop tests observe an actually-shrunken history on the next turn. + if keepLast >= 0 && keepLast < len(n.history) { + n.history = n.history[len(n.history)-keepLast:] + } +} +func (n *nopSessionStore) SetHistory(_ context.Context, _ string, msgs []providers.Message) { + n.mu.Lock() + defer n.mu.Unlock() + n.history = msgs +} func (n *nopSessionStore) Reset(_ context.Context, _ string) {} func (n *nopSessionStore) Delete(_ context.Context, _ string) error { return nil } func (n *nopSessionStore) Save(_ context.Context, _ string) error { return nil } // SessionMetadataStore methods -func (n *nopSessionStore) UpdateMetadata(_ context.Context, _, _, _, _ string) {} -func (n *nopSessionStore) AccumulateTokens(_ context.Context, _ string, _, _ int64) {} -func (n *nopSessionStore) IncrementCompaction(_ context.Context, _ string) {} -func (n *nopSessionStore) GetCompactionCount(_ context.Context, _ string) int { return 0 } +func (n *nopSessionStore) UpdateMetadata(_ context.Context, _, _, _, _ string) {} +func (n *nopSessionStore) AccumulateTokens(_ context.Context, _ string, input, output int64) { + n.inputTokens += input + n.outputTokens += output +} +func (n *nopSessionStore) IncrementCompaction(_ context.Context, _ string) { + n.mu.Lock() + defer n.mu.Unlock() + n.incrementCalls++ + n.compactionCount++ +} +func (n *nopSessionStore) GetCompactionCount(_ context.Context, _ string) int { + n.mu.Lock() + defer n.mu.Unlock() + return n.compactionCount +} func (n *nopSessionStore) GetMemoryFlushCompactionCount(_ context.Context, _ string) int { return 0 } func (n *nopSessionStore) SetMemoryFlushDone(_ context.Context, _ string) {} func (n *nopSessionStore) GetSessionMetadata(_ context.Context, _ string) map[string]string { @@ -57,7 +110,12 @@ func (n *nopSessionStore) SetSessionMetadata(_ context.Context, _ string, _ map[ func (n *nopSessionStore) SetSpawnInfo(_ context.Context, _, _ string, _ int) {} func (n *nopSessionStore) SetContextWindow(_ context.Context, _ string, _ int) {} func (n *nopSessionStore) GetContextWindow(_ context.Context, _ string) int { return 0 } -func (n *nopSessionStore) SetLastPromptTokens(_ context.Context, _ string, _, _ int) {} +func (n *nopSessionStore) SetLastPromptTokens(_ context.Context, _ string, tokens, msgCount int) { + n.setLastTokens = tokens + n.setLastMsgCount = msgCount + n.lastPromptTokens = tokens + n.lastMsgCount = msgCount +} func (n *nopSessionStore) GetLastPromptTokens(_ context.Context, _ string) (int, int) { return n.lastPromptTokens, n.lastMsgCount } @@ -74,6 +132,19 @@ func (n *nopSessionStore) LastUsedChannel(_ context.Context, _ string) (string, return "", "" } +// Thread-safe accessors for recording fields (maybeSummarize mutates them from a +// background goroutine, so tests must not read the fields directly under -race). +func (n *nopSessionStore) truncateCount() int { + n.mu.Lock() + defer n.mu.Unlock() + return n.truncateCalls +} +func (n *nopSessionStore) incrementCount() int { + n.mu.Lock() + defer n.mu.Unlock() + return n.incrementCalls +} + // signallingProvider wraps capturingProvider and signals a channel when Chat is called. type signallingProvider struct { capturingProvider @@ -94,11 +165,17 @@ func (s *signallingProvider) Chat(ctx context.Context, req providers.ChatRequest func TestMaybeSummarize_MaxTokensDynamic(t *testing.T) { const contextWindow = 10000 - // Build history large enough to exceed the compaction threshold. + // Agent-only budget: the calling agent reserves a FIXED maxTokens from the + // window, so compactionInputCap() = min(window-maxTokens, share*window-maxTokens). + // With window=10000, maxTokens=1024 → inputCap = min(8976, 7476) = 7476. + const maxTokens = 1024 + + // Build history large enough to exceed the compaction threshold while still + // packing the to-summarize slice into a single chunk under the input cap. // threshold = contextWindow * DefaultHistoryShare = 10000 * 0.85 = 8500. - // EstimateTokens uses ~4 chars/token; 9000 tokens * 4 = 36000 chars of content. - // Use 5 user-assistant pairs each carrying ~9000 chars so EstimateTokens > threshold. - longContent := makeLongString(9000) + // estimateMessageTokens ≈ runes/3; 10 msgs × 3000 chars → ~10000 tokens > 8500. + // The 6 to-summarize messages pack into one ~6520-token chunk (< 7476 cap). + longContent := makeLongString(3000) history := make([]providers.Message, 10) for i := range history { if i%2 == 0 { @@ -124,6 +201,7 @@ func TestMaybeSummarize_MaxTokensDynamic(t *testing.T) { provider: sp, model: "claude-3-5-sonnet", contextWindow: contextWindow, + maxTokens: maxTokens, sessions: sessions, // hasMemory = false → shouldRunMemoryFlush returns false (skip memory flush) hasMemory: false, @@ -132,7 +210,7 @@ func TestMaybeSummarize_MaxTokensDynamic(t *testing.T) { // tokenCounter nil → estimateSummaryInputTokens uses rune/3 fallback } - loop.maybeSummarize(context.Background(), "test-session-key") + loop.maybeSummarize(context.Background(), "test-session-key", false) // Wait for background goroutine to call provider.Chat (up to 5s). select { @@ -151,7 +229,7 @@ func TestMaybeSummarize_MaxTokensDynamic(t *testing.T) { t.Fatal("Options[\"max_tokens\"] not set in ChatRequest from maybeSummarize") } - maxTokens, ok := maxTokensRaw.(int) + gotMaxTokens, ok := maxTokensRaw.(int) if !ok { t.Fatalf("Options[\"max_tokens\"] type = %T, want int", maxTokensRaw) } @@ -162,8 +240,8 @@ func TestMaybeSummarize_MaxTokensDynamic(t *testing.T) { toSummarize := history[:len(history)-4] expectedIn := loop.estimateSummaryInputTokens(toSummarize) wantMax := dynamicSummaryMax(expectedIn) - if maxTokens != wantMax { - t.Errorf("max_tokens = %d, want %d (dynamicSummaryMax(%d))", maxTokens, wantMax, expectedIn) + if gotMaxTokens != wantMax { + t.Errorf("max_tokens = %d, want %d (dynamicSummaryMax(%d))", gotMaxTokens, wantMax, expectedIn) } } @@ -186,7 +264,7 @@ func TestMaybeSummarize_LogsSkipDecisionUnderThreshold(t *testing.T) { } logs := captureSlog(t, func() { - loop.maybeSummarize(context.Background(), "test-session-key") + loop.maybeSummarize(context.Background(), "test-session-key", false) }) assertLogContains(t, logs, @@ -200,10 +278,49 @@ func TestMaybeSummarize_LogsSkipDecisionUnderThreshold(t *testing.T) { ) } +func TestMaybeSummarize_IgnoresInvalidLastPromptCalibration(t *testing.T) { + provider := &capturingProvider{response: "unused"} + sessions := &nopSessionStore{ + history: []providers.Message{ + {Role: "user", Content: "short request"}, + {Role: "assistant", Content: "short response"}, + }, + lastPromptTokens: 264722, + lastMsgCount: 28, + } + loop := &Loop{ + id: "test-agent", + provider: provider, + model: "claude-3-5-sonnet", + contextWindow: 200000, + sessions: sessions, + hasMemory: false, + } + + logs := captureSlog(t, func() { + loop.maybeSummarize(context.Background(), "test-session-key", false) + }) + + if len(provider.captured) != 0 { + t.Fatalf("provider.Chat called %d times, want 0 for invalid calibration under fallback threshold", len(provider.captured)) + } + assertLogContains(t, logs, + "compaction_decision", + `"decision":"skip"`, + `"skip_reason":"under_threshold"`, + `"last_prompt_tokens":264722`, + `"calibration_invalid":true`, + `"invalid_last_prompt_tokens":264722`, + ) +} + func TestMaybeSummarize_LogsTriggerDecisionOverThreshold(t *testing.T) { const contextWindow = 10000 + // Fixed agent reserve so compactionInputCap() leaves room to pack the + // to-summarize slice into one chunk (see TestMaybeSummarize_MaxTokensDynamic). + const maxTokens = 1024 - longContent := makeLongString(9000) + longContent := makeLongString(3000) history := make([]providers.Message, 10) for i := range history { if i%2 == 0 { @@ -228,12 +345,13 @@ func TestMaybeSummarize_LogsTriggerDecisionOverThreshold(t *testing.T) { provider: provider, model: "claude-3-5-sonnet", contextWindow: contextWindow, + maxTokens: maxTokens, sessions: sessions, hasMemory: false, } logs := captureSlog(t, func() { - loop.maybeSummarize(context.Background(), "test-session-key") + loop.maybeSummarize(context.Background(), "test-session-key", false) // Wait for the background summarize goroutine to reach the point where it // calls provider.Chat (which happens strictly after the "compact_budget" diff --git a/internal/agent/loop_maybe_summarize_pressure_test.go b/internal/agent/loop_maybe_summarize_pressure_test.go new file mode 100644 index 00000000..b84b890d --- /dev/null +++ b/internal/agent/loop_maybe_summarize_pressure_test.go @@ -0,0 +1,258 @@ +package agent + +import ( + "context" + "testing" + "time" + + "github.com/nextlevelbuilder/goclaw/internal/providers" +) + +// Fixture math for these tests (contextWindow=200000, maxTokens=8192, nil cfg): +// +// effectiveMaxTokens = 8192 +// compactionInputCap = min(200000-8192, int(200000*0.85)-8192) = min(191808, 161808) = 161808 +// baseline threshold = int(200000*0.85) = 170000 +// overhead (no calib) = min(int(200000*0.2), 40000) = 40000 +// pressureThreshold = max(161808-40000, 0) = 121808 +// defensive floor = 170000/2 = 85000 (< 121808, so unused) +// +// Token estimate (no calibration) = sum(runes(content)/3) over all history messages. +// Bands used below: +// +// ~100k tokens → below BOTH thresholds → skip even under mid-loop pressure +// ~150k tokens → between pressure(121808) and baseline(170000) → persist ONLY under pressure +const ( + pressureContextWindow = 200000 + pressureMaxTokens = 8192 +) + +// buildTokenHistory returns n alternating user/assistant messages whose combined +// rune/3 token estimate is approximately targetTokens. Each message carries +// targetTokens/n * 3 runes so EstimateTokens(history) ≈ targetTokens. +func buildTokenHistory(n, targetTokens int) []providers.Message { + perMsgTokens := targetTokens / n + perMsgRunes := perMsgTokens * 3 + content := makeLongString(perMsgRunes) + history := make([]providers.Message, n) + for i := range history { + if i%2 == 0 { + history[i] = providers.Message{Role: "user", Content: content} + } else { + history[i] = providers.Message{Role: "assistant", Content: content} + } + } + return history +} + +// waitForCount polls get() until it reaches want or the deadline elapses. +func waitForCount(t *testing.T, get func() int, want int) { + t.Helper() + deadline := time.Now().Add(5 * time.Second) + for time.Now().Before(deadline) { + if get() >= want { + return + } + time.Sleep(5 * time.Millisecond) + } + t.Fatalf("timed out waiting for count to reach %d, last=%d", want, get()) +} + +func newPressureLoop(sessions *nopSessionStore, provider providers.Provider) *Loop { + return &Loop{ + id: "test-agent", + provider: provider, + model: "claude-3-5-sonnet", + contextWindow: pressureContextWindow, + maxTokens: pressureMaxTokens, + sessions: sessions, + hasMemory: false, + compactionCfg: nil, + } +} + +// V1-B / V2 core: a run that compacted mid-loop lowers the threshold to +// pressureThreshold (121808). History at ~150k tokens is BELOW the baseline +// (170000) but ABOVE the pressure threshold → summarize must run and PERSIST +// (TruncateHistory + IncrementCompaction each exactly once). +func TestMaybeSummarize_MidLoopPressurePersists(t *testing.T) { + sessions := &nopSessionStore{ + history: buildTokenHistory(20, 150000), // ~150k tokens + } + loop := newPressureLoop(sessions, &capturingProvider{response: "compaction summary"}) + + loop.maybeSummarize(context.Background(), "sess-1", true) + + waitForCount(t, sessions.incrementCount, 1) + + if got := sessions.incrementCount(); got != 1 { + t.Errorf("IncrementCompaction called %d times, want 1", got) + } + if got := sessions.truncateCount(); got != 1 { + t.Errorf("TruncateHistory called %d times, want 1", got) + } + sessions.mu.Lock() + keepLast := sessions.truncateKeepLast + setSummary := sessions.setSummaryCalls + sessions.mu.Unlock() + if keepLast != 4 { + t.Errorf("TruncateHistory keepLast = %d, want 4", keepLast) + } + if setSummary != 1 { + t.Errorf("SetSummary called %d times, want 1", setSummary) + } +} + +// V2 no-over-compaction (baseline case): the SAME ~150k history without mid-loop +// pressure must SKIP (150000 < 170000 baseline). No summarize, no persist. +func TestMaybeSummarize_NonMidLoopSkipsUnderBaseline(t *testing.T) { + provider := &capturingProvider{response: "should not be called"} + sessions := &nopSessionStore{ + history: buildTokenHistory(20, 150000), // ~150k tokens + } + loop := newPressureLoop(sessions, provider) + + loop.maybeSummarize(context.Background(), "sess-1", false) + + // Skip returns synchronously before spawning the goroutine; give any + // (erroneously spawned) goroutine a brief window to prove it didn't run. + time.Sleep(50 * time.Millisecond) + + if got := len(provider.captured); got != 0 { + t.Errorf("provider.Chat called %d times, want 0 (under baseline, no pressure)", got) + } + if got := sessions.incrementCount(); got != 0 { + t.Errorf("IncrementCompaction called %d times, want 0", got) + } + if got := sessions.truncateCount(); got != 0 { + t.Errorf("TruncateHistory called %d times, want 0", got) + } +} + +// V2 no-over-compaction (the KEY case that distinguishes "lower threshold" from +// "skip threshold"): mid-loop pressure is set, but the real history is small +// (~100k tokens, below pressureThreshold=121808). The mid-loop compaction was +// driven by transient tool-result bloat, not history — so we must STILL SKIP and +// NOT truncate the session. This proves we lowered the threshold rather than +// bypassing it. +func TestMaybeSummarize_MidLoopSkipsWhenHistorySmall(t *testing.T) { + provider := &capturingProvider{response: "should not be called"} + sessions := &nopSessionStore{ + history: buildTokenHistory(20, 100000), // ~100k tokens < pressureThreshold + } + loop := newPressureLoop(sessions, provider) + + loop.maybeSummarize(context.Background(), "sess-1", true) + + time.Sleep(50 * time.Millisecond) + + if got := len(provider.captured); got != 0 { + t.Errorf("provider.Chat called %d times, want 0 (history below pressure threshold)", got) + } + if got := sessions.incrementCount(); got != 0 { + t.Errorf("IncrementCompaction called %d times, want 0 (no over-compaction)", got) + } + if got := sessions.truncateCount(); got != 0 { + t.Errorf("TruncateHistory called %d times, want 0 (no over-compaction)", got) + } +} + +// V2 threshold-sync boundary: with one fixed history between the pressure +// threshold (121808) and the baseline (170000), the ONLY thing that flips the +// decision is the mid-loop flag. Persist when true, skip when false — proving +// the two thresholds bracket this history exactly as designed. +func TestMaybeSummarize_ThresholdSyncBoundary(t *testing.T) { + history := buildTokenHistory(20, 150000) // between 121808 and 170000 + + // mid-loop = false → skip + skipProvider := &capturingProvider{response: "unused"} + skipSessions := &nopSessionStore{history: cloneMessages(history)} + newPressureLoop(skipSessions, skipProvider).maybeSummarize(context.Background(), "sess-1", false) + time.Sleep(50 * time.Millisecond) + if got := skipSessions.incrementCount(); got != 0 { + t.Errorf("non-mid-loop: IncrementCompaction = %d, want 0 (skip above pressure, below baseline)", got) + } + + // mid-loop = true → persist + triggerSessions := &nopSessionStore{history: cloneMessages(history)} + newPressureLoop(triggerSessions, &capturingProvider{response: "compaction summary"}). + maybeSummarize(context.Background(), "sess-1", true) + waitForCount(t, triggerSessions.incrementCount, 1) + if got := triggerSessions.incrementCount(); got != 1 { + t.Errorf("mid-loop: IncrementCompaction = %d, want 1 (persist under pressure)", got) + } +} + +// V2 anti-loop (characterization): turn 1 persists the mid-loop compaction, +// shrinking the session history. Turn 2 loads the now-small history, so even +// with mid-loop pressure still set it stays below the pressure threshold and +// does NOT re-compact — the unbounded re-compaction loop is broken. +func TestMaybeSummarize_AntiLoop_SecondTurnDoesNotRecompact(t *testing.T) { + sessions := &nopSessionStore{ + history: buildTokenHistory(20, 150000), + } + loop := newPressureLoop(sessions, &capturingProvider{response: "compaction summary"}) + + // Turn 1: pressure present, history large → persist (truncate to keepLast=4). + loop.maybeSummarize(context.Background(), "sess-1", true) + waitForCount(t, sessions.incrementCount, 1) + + sessions.mu.Lock() + remaining := len(sessions.history) + sessions.mu.Unlock() + if remaining > 4 { + t.Fatalf("after turn 1 persist, history len = %d, want <= 4 (keepLast)", remaining) + } + + // Turn 2: history is now tiny (4 messages). Even with pressure set, the + // history-only estimate is far below pressureThreshold → skip. + loop.maybeSummarize(context.Background(), "sess-1", true) + time.Sleep(50 * time.Millisecond) + + if got := sessions.incrementCount(); got != 1 { + t.Errorf("after turn 2, IncrementCompaction total = %d, want 1 (no re-compaction)", got) + } + if got := sessions.truncateCount(); got != 1 { + t.Errorf("after turn 2, TruncateHistory total = %d, want 1 (no re-compaction)", got) + } +} + +// Media preservation regression: MediaRefs on messages about to be truncated +// must be carried onto the first kept message so the agent doesn't lose track of +// shared files across a pressure-driven compaction. +func TestMaybeSummarize_MidLoopPreservesMediaRefs(t *testing.T) { + history := buildTokenHistory(20, 150000) + // Attach a media ref to an early message (will be in the to-summarize slice). + history[0].MediaRefs = []providers.MediaRef{ + {ID: "img-1", MimeType: "image/png", Kind: "image", Path: "/tmp/img-1.png"}, + } + sessions := &nopSessionStore{history: history} + loop := newPressureLoop(sessions, &capturingProvider{response: "compaction summary"}) + + loop.maybeSummarize(context.Background(), "sess-1", true) + waitForCount(t, sessions.incrementCount, 1) + + sessions.mu.Lock() + defer sessions.mu.Unlock() + if len(sessions.history) == 0 { + t.Fatal("history empty after truncation") + } + var found bool + for _, ref := range sessions.history[0].MediaRefs { + if ref.ID == "img-1" { + found = true + break + } + } + if !found { + t.Errorf("preserved media ref img-1 not found on first kept message; refs=%+v", sessions.history[0].MediaRefs) + } +} + +// cloneMessages returns a shallow copy of a message slice so two Loops don't +// share the same backing array (TruncateHistory mutates it in the mock). +func cloneMessages(msgs []providers.Message) []providers.Message { + out := make([]providers.Message, len(msgs)) + copy(out, msgs) + return out +} diff --git a/internal/agent/loop_pipeline_adapter.go b/internal/agent/loop_pipeline_adapter.go index 61e07a42..24957378 100644 --- a/internal/agent/loop_pipeline_adapter.go +++ b/internal/agent/loop_pipeline_adapter.go @@ -2,6 +2,7 @@ package agent import ( "context" + "fmt" "github.com/nextlevelbuilder/goclaw/internal/config" "github.com/nextlevelbuilder/goclaw/internal/eventbus" @@ -18,8 +19,10 @@ func (l *Loop) runViaPipeline(ctx context.Context, req RunRequest) (*RunResult, input := convertRunInput(&req) // Bridge runState shares loop detection state between pipeline and agent. bridgeRS := &runState{} - deps := l.buildPipelineDeps(&req, bridgeRS) + // Resolve the effective model + provider BEFORE building deps so the pre-call + // budget estimate reserves reasoning output for the model that will actually + // run (a ModelOverride can change the reasoning capability, hence the bump). model := l.model if req.ModelOverride != "" { model = req.ModelOverride @@ -33,6 +36,8 @@ func (l *Loop) runViaPipeline(ctx context.Context, req RunRequest) (*RunResult, } } + deps := l.buildPipelineDeps(&req, bridgeRS) + p := pipeline.NewDefaultPipeline(deps) state := pipeline.NewRunState(input, nil, model, provider) @@ -44,6 +49,9 @@ func (l *Loop) runViaPipeline(ctx context.Context, req RunRequest) (*RunResult, } // buildPipelineDeps maps Loop fields + methods to PipelineDeps callbacks. +// effProvider/effModel are the resolved provider+model for THIS run (after any +// ModelOverride/ProviderOverride) so reasoning-effort resolution matches the +// request the pipeline will actually send. func (l *Loop) buildPipelineDeps(req *RunRequest, bridgeRS *runState) pipeline.PipelineDeps { maxIter := l.maxIterations if req.MaxIterations > 0 && req.MaxIterations < maxIter { @@ -69,9 +77,10 @@ func (l *Loop) buildPipelineDeps(req *RunRequest, bridgeRS *runState) pipeline.P } return pipeline.PipelineDeps{ - TokenCounter: tokencount.NewTiktokenCounter(), - EventBus: l.domainBus, - Hooks: l.hookDispatcher, + TokenCounter: tokencount.NewTiktokenCounter(), + BudgetCounter: l.budgetCounter, + EventBus: l.domainBus, + Hooks: l.hookDispatcher, Config: pipeline.PipelineConfig{ MaxIterations: maxIter, MaxToolCalls: l.maxToolCalls, @@ -82,19 +91,7 @@ func (l *Loop) buildPipelineDeps(req *RunRequest, bridgeRS *runState) pipeline.P Compaction: l.compactionCfg, // V3 memory/retrieval flags removed — always true at runtime. }, - // Resolve per-model context window once per run. Falls back to - // Config.ContextWindow when registry/model is unknown (existing - // behaviour unchanged for tests and lite edition). - ResolveContextWindow: func(provider, model string) int { - if l.modelRegistry == nil || model == "" { - return 0 - } - spec := l.modelRegistry.Resolve(provider, model) - if spec == nil { - return 0 - } - return spec.ContextWindow - }, + ResolveContextWindow: l.resolveEffectiveContextWindow, EmitEvent: func(event any) { if ae, ok := event.(AgentEvent); ok { l.emit(ae) @@ -184,30 +181,10 @@ func (l *Loop) buildPipelineDeps(req *RunRequest, bridgeRS *runState) pipeline.P StripMessageDirectives: StripMessageDirectives, DeduplicateMediaSuffix: deduplicateMediaSuffix, IsSilentReply: IsSilentReply, - EmitSessionCompleted: func(ctx context.Context, sessionKey string, msgCount, tokensUsed, compactionCount int) { - if l.domainBus != nil { - // Include existing session summary (from previous compaction cycles). - // Current cycle's compaction runs async so its summary isn't ready yet, - // but previous summaries are available and useful for episodic creation. - var summary string - if compactionCount > 0 { - summary = l.sessions.GetSummary(ctx, sessionKey) - } - l.domainBus.Publish(eventbus.DomainEvent{ - Type: eventbus.EventSessionCompleted, - TenantID: l.tenantID.String(), - AgentID: l.agentUUID.String(), - UserID: req.UserID, - SourceID: sessionKey, - Payload: &eventbus.SessionCompletedPayload{ - SessionKey: sessionKey, - MessageCount: msgCount, - TokensUsed: tokensUsed, - CompactionCount: compactionCount, - Summary: summary, - }, - }) - } + EmitSessionCompleted: func(ctx context.Context, sessionKey string, msgCount, tokensUsed, _ int) { + // The per-run count (5th arg) is intentionally ignored — emitSessionCompleted + // reads the CUMULATIVE session count itself (Bug A). See method doc. + l.emitSessionCompleted(ctx, sessionKey, req.UserID, msgCount, tokensUsed) }, UpdateMetadata: cb.updateMetadata, BootstrapCleanup: cb.bootstrapCleanup, @@ -215,6 +192,51 @@ func (l *Loop) buildPipelineDeps(req *RunRequest, bridgeRS *runState) pipeline.P } } +// emitSessionCompleted publishes the session.completed domain event that drives +// the consolidation pipeline (episodic → semantic → dreaming). No-op when no bus. +// +// Bug A: it reads the CUMULATIVE session compaction count via GetCompactionCount +// (matching the legacy v2 emit path) rather than the per-run counter the pipeline +// tracks — the per-run counter resets to 0 each run, which pinned source_id at +// ":0" and made the episodic worker skip every cycle after the first. +// +// Bug C: SourceID embeds that count (":") so the eventbus dedup +// key (Type+":"+SourceID, 5m TTL) advances per compaction cycle instead of +// swallowing every rapid same-session turn. Safe for the worker, which builds its +// own idempotency key from payload.SessionKey+payload.CompactionCount and never +// parses SourceID. +func (l *Loop) emitSessionCompleted(ctx context.Context, sessionKey, userID string, msgCount, tokensUsed int) { + if l.domainBus == nil { + return + } + count := l.sessions.GetCompactionCount(ctx, sessionKey) + // Attach the existing session summary (from a PREVIOUS compaction cycle) when + // one exists. The current cycle's summary is produced asynchronously and isn't + // ready yet, but a prior summary spares the worker an LLM re-summarize call. + var summary string + if count > 0 { + summary = l.sessions.GetSummary(ctx, sessionKey) + } + l.domainBus.Publish(eventbus.DomainEvent{ + Type: eventbus.EventSessionCompleted, + TenantID: l.tenantID.String(), + AgentID: l.agentUUID.String(), + UserID: userID, + SourceID: fmt.Sprintf("%s:%d", sessionKey, count), + Payload: &eventbus.SessionCompletedPayload{ + SessionKey: sessionKey, + MessageCount: msgCount, + TokensUsed: tokensUsed, + CompactionCount: count, + Summary: summary, + }, + }) +} + +func (l *Loop) resolveEffectiveContextWindow() int { + return l.contextWindow +} + // convertRunInput converts agent.RunRequest to pipeline.RunInput. func convertRunInput(req *RunRequest) *pipeline.RunInput { return &pipeline.RunInput{ @@ -260,6 +282,11 @@ func convertRunResult(pr *pipeline.RunResult) *RunResult { if pr == nil { return nil } + var lastUsage *providers.Usage + if pr.LastUsage.PromptTokens > 0 || pr.LastUsage.CompletionTokens > 0 || pr.LastUsage.TotalTokens > 0 { + lu := pr.LastUsage + lastUsage = &lu + } media := make([]MediaResult, len(pr.MediaResults)) for i, m := range pr.MediaResults { media[i] = MediaResult{ @@ -276,6 +303,7 @@ func convertRunResult(pr *pipeline.RunResult) *RunResult { RunID: pr.RunID, Iterations: pr.Iterations, Usage: &pr.TotalUsage, + LastUsage: lastUsage, Media: media, Deliverables: pr.Deliverables, BlockReplies: pr.BlockReplies, diff --git a/internal/agent/loop_pipeline_callbacks.go b/internal/agent/loop_pipeline_callbacks.go index 3d26df6c..dd117613 100644 --- a/internal/agent/loop_pipeline_callbacks.go +++ b/internal/agent/loop_pipeline_callbacks.go @@ -95,7 +95,7 @@ type pipelineCallbackSet struct { flushMessages func(ctx context.Context, sessionKey string, msgs []providers.Message) error updateMetadata func(ctx context.Context, sessionKey string, usage, lastUsage providers.Usage, msgCount int) error bootstrapCleanup func(ctx context.Context, state *pipeline.RunState) error - maybeSummarize func(ctx context.Context, sessionKey string) + maybeSummarize func(ctx context.Context, sessionKey string, midLoopCompacted bool) } func (l *Loop) makeResolveWorkspace(req *RunRequest) func(ctx context.Context, input *pipeline.RunInput) (*workspace.WorkspaceContext, error) { @@ -759,13 +759,25 @@ func (l *Loop) makeBootstrapCleanup() func(ctx context.Context, state *pipeline. } func (l *Loop) reserveLLMUsage(ctx context.Context, req *RunRequest, state *pipeline.RunState, chatReq providers.ChatRequest, attempt string) (*usagecaps.Reservation, error) { - if l.usageCaps == nil || state.Provider == nil { - return nil, nil + providerName := "" + if state.Provider != nil { + providerName = state.Provider.Name() } - return l.reserveLLMUsageFor(ctx, req, state.Iteration, chatReq, attempt, state.Provider.Name(), state.Model) + // reserveLLMUsageFor runs the mandatory hard-ceiling guard before any + // reservation or transport, so the non-fallback path is guarded here even + // when usage caps are disabled (Lite runtime). + return l.reserveLLMUsageFor(ctx, req, state.Iteration, chatReq, attempt, providerName, state.Model) } func (l *Loop) reserveLLMUsageFor(ctx context.Context, req *RunRequest, iteration int, chatReq providers.ChatRequest, attempt, providerName, model string) (*usagecaps.Reservation, error) { + // Mandatory final hard-ceiling guard for the concrete request that is about + // to be sent, after all directive/retry/reasoning mutations. This is the + // shared pre-transport chokepoint for BOTH the fallback candidate path and + // the non-fallback path (via reserveLLMUsage), and for every retry attempt. + // It runs regardless of usage-cap configuration so the ceiling holds on Lite. + if guardErr := l.guardCompleteModelRequest(chatReq, providerName, model, attempt); guardErr != nil { + return nil, guardErr + } if l.usageCaps == nil { return nil, nil } diff --git a/internal/agent/loop_pipeline_callbacks_test.go b/internal/agent/loop_pipeline_callbacks_test.go index 889c0f69..95a49e39 100644 --- a/internal/agent/loop_pipeline_callbacks_test.go +++ b/internal/agent/loop_pipeline_callbacks_test.go @@ -103,6 +103,59 @@ func TestSupportsPromptCacheParams(t *testing.T) { } } +func TestResolveEffectiveContextWindow_UsesAgentConfigOnly(t *testing.T) { + registry := &panicModelRegistry{} + loop := &Loop{contextWindow: 128_000, modelRegistry: registry} + if got := loop.resolveEffectiveContextWindow(); got != 128_000 { + t.Fatalf("resolveEffectiveContextWindow() = %d, want 128000", got) + } +} + +type panicModelRegistry struct{} + +func (*panicModelRegistry) Resolve(_, _ string) *providers.ModelSpec { + panic("model registry must not participate in request budgeting") +} + +func (*panicModelRegistry) Register(providers.ModelSpec) { + panic("model registry must not participate in request budgeting") +} + +func (*panicModelRegistry) Catalog(string) []providers.ModelSpec { + panic("model registry must not participate in request budgeting") +} + +func TestMakeUpdateMetadataStoresLastUsagePromptTokens(t *testing.T) { + sessions := &nopSessionStore{} + loop := &Loop{ + model: "test-model", + provider: finalThinkingStreamProvider{}, + sessions: sessions, + } + req := &RunRequest{Channel: "telegram"} + + update := loop.makeUpdateMetadata(req) + err := update(context.Background(), "sess-1", + providers.Usage{PromptTokens: 225000, CompletionTokens: 3000}, + providers.Usage{PromptTokens: 70000, CompletionTokens: 100}, + 12, + ) + if err != nil { + t.Fatalf("update metadata error: %v", err) + } + if sessions.inputTokens != 225000 || sessions.outputTokens != 3000 { + t.Fatalf("accumulated tokens = %d/%d, want total run 225000/3000", sessions.inputTokens, sessions.outputTokens) + } + // Upstream 503909d3 calibration: SetLastPromptTokens stores the final call's + // full context size (Usage.ContextTokens(), which adds cached segments back + // for Anthropic-style usage) PLUS the final completion — the reply joins + // history so it occupies the next request's prompt. No cache tokens here, so + // ContextTokens()=70000; +100 completion = 70100. + if sessions.setLastTokens != 70100 || sessions.setLastMsgCount != 12 { + t.Fatalf("last prompt calibration = %d/%d, want last request 70100/12", sessions.setLastTokens, sessions.setLastMsgCount) + } +} + // A Function-nil tool definition (e.g. the native image_generation sentinel, // providers.ToolDefinition{Type: "image_generation"}) must not panic the // mcp-def counter. Regression for the v3.14.0 nil-pointer crash. diff --git a/internal/agent/loop_request_budget.go b/internal/agent/loop_request_budget.go new file mode 100644 index 00000000..85cf0cd0 --- /dev/null +++ b/internal/agent/loop_request_budget.go @@ -0,0 +1,99 @@ +package agent + +import ( + "fmt" + "log/slog" + + "github.com/nextlevelbuilder/goclaw/internal/providers" +) + +// RequestBudgetExceededError is returned before provider transport when the +// COMPLETE final request (messages + tools + output reserve) exceeds the +// receiving agent's configured context window. It is intentionally internal +// to the agent loop: callers abort/reduce instead of falling through to model +// fallback or sending an oversized payload. +type RequestBudgetExceededError struct { + AgentID string + Provider string + Model string + Attempt string + InputTokens int + OutputReserve int + ContextWindow int +} + +func (e *RequestBudgetExceededError) Error() string { + return fmt.Sprintf( + "context budget exceeded: input=%d + output_reserve=%d > agent_window=%d (agent=%s provider=%s model=%s attempt=%s)", + e.InputTokens, e.OutputReserve, e.ContextWindow, e.AgentID, e.Provider, e.Model, e.Attempt, + ) +} + +// ContextBudgetExceeded marks this error as a request-level context-budget +// overflow. Package-neutral consumers (pipeline.ThinkStage) detect it via an +// interface check without importing the agent package, so they can re-enter +// reduction (prune -> compact -> shrink) and rebuild before aborting. +func (e *RequestBudgetExceededError) ContextBudgetExceeded() bool { return true } + +// guardCompleteModelRequest is the mandatory final boundary check for EVERY +// model request emitted by an agent loop. Call it only after all messages, +// tools, retry instructions, model overrides and options have been finalized, +// and immediately before provider.Chat/ChatStream. +// +// Hard invariant: +// +// completeInputTokens + outputReserveTokens <= agent.ContextWindow +// +// The configured agent context window and configured max_tokens are the only +// budget authorities. Model and provider are diagnostic fields only. +func (l *Loop) guardCompleteModelRequest(request providers.ChatRequest, providerName, model, attempt string) error { + // Bare Loop literals used by unrelated unit tests opt out; NewLoop always + // wires the fixed local budget counter. + if l.budgetCounter == nil { + return nil + } + contextWindow := l.resolveEffectiveContextWindow() + if contextWindow <= 0 { + return fmt.Errorf("context_window_unresolved: agent=%s provider=%s model=%s attempt=%s", l.id, providerName, model, attempt) + } + + inputTokens, err := l.budgetCounter.CountRequest(request) + if err != nil { + return fmt.Errorf("count complete request: %w", err) + } + outputReserve := l.effectiveMaxTokens() + + if inputTokens+outputReserve <= contextWindow { + slog.Debug("context_budget.guard", + "agent", l.id, + "provider", providerName, + "model", model, + "attempt", attempt, + "input_tokens", inputTokens, + "output_reserve_tokens", outputReserve, + "context_window", contextWindow, + "action", "allow") + return nil + } + + slog.Info("context_budget.guard", + "agent", l.id, + "provider", providerName, + "model", model, + "attempt", attempt, + "input_tokens", inputTokens, + "output_reserve_tokens", outputReserve, + "context_window", contextWindow, + "action", "abort", + "reason", "context_budget_exceeded") + + return &RequestBudgetExceededError{ + AgentID: l.id, + Provider: providerName, + Model: model, + Attempt: attempt, + InputTokens: inputTokens, + OutputReserve: outputReserve, + ContextWindow: contextWindow, + } +} diff --git a/internal/agent/loop_request_budget_test.go b/internal/agent/loop_request_budget_test.go new file mode 100644 index 00000000..981f28ac --- /dev/null +++ b/internal/agent/loop_request_budget_test.go @@ -0,0 +1,122 @@ +package agent + +import ( + "errors" + "strings" + "testing" + + "github.com/nextlevelbuilder/goclaw/internal/providers" + "github.com/nextlevelbuilder/goclaw/internal/tokencount" +) + +func newBudgetTestLoop(window, maxTokens int) *Loop { + return &Loop{ + id: "budget-test", + contextWindow: window, + maxTokens: maxTokens, + budgetCounter: tokencount.NewBudgetCounter(), + } +} + +func budgetMessageAtLeast(t *testing.T, counter tokencount.BudgetCounter, target int) providers.Message { + t.Helper() + low, high := 1, target*8 + for low < high { + mid := low + (high-low)/2 + msg := providers.Message{Role: "user", Content: strings.Repeat("word ", mid)} + count, err := counter.CountMessages([]providers.Message{msg}) + if err != nil { + t.Fatal(err) + } + if count < target { + low = mid + 1 + } else { + high = mid + } + } + return providers.Message{Role: "user", Content: strings.Repeat("word ", low)} +} + +func TestGuardCompleteModelRequest_AgentWindowOnly(t *testing.T) { + counter := tokencount.NewBudgetCounter() + msg := budgetMessageAtLeast(t, counter, 130_000) + req := providers.ChatRequest{Model: "model-a", Messages: []providers.Message{msg}} + + loop128 := newBudgetTestLoop(128_000, 8_192) + err := loop128.guardCompleteModelRequest(req, "provider-a", "model-a", "initial") + if err == nil { + t.Fatal("128k agent: expected request to be blocked") + } + var budgetErr *RequestBudgetExceededError + if !errors.As(err, &budgetErr) { + t.Fatalf("expected RequestBudgetExceededError, got %T: %v", err, err) + } + + loop200 := newBudgetTestLoop(200_000, 8_192) + if err := loop200.guardCompleteModelRequest(req, "provider-a", "model-a", "initial"); err != nil { + t.Fatalf("200k agent: expected request to fit, got %v", err) + } +} + +func TestGuardCompleteModelRequest_ModelProviderIndependent(t *testing.T) { + loop := newBudgetTestLoop(128_000, 8_192) + base := providers.ChatRequest{ + Model: "model-a", + Messages: []providers.Message{{ + Role: "assistant", + Content: "same content", + Thinking: "same thinking", + ToolCalls: []providers.ToolCall{{ + ID: "call-1", + Name: "read_file", + Arguments: map[string]any{"path": "/tmp/a"}, + Metadata: map[string]string{"thought_signature": "sig"}, + }}, + }}, + } + other := base + other.Model = "totally-different-model" + + first, err := loop.budgetCounter.CountRequest(base) + if err != nil { + t.Fatal(err) + } + second, err := loop.budgetCounter.CountRequest(other) + if err != nil { + t.Fatal(err) + } + if first != second { + t.Fatalf("completeInput changed with model: %d != %d", first, second) + } + if errA, errB := loop.guardCompleteModelRequest(base, "provider-a", base.Model, "a"), loop.guardCompleteModelRequest(other, "provider-b", other.Model, "b"); (errA == nil) != (errB == nil) { + t.Fatalf("allow/abort changed with model/provider: %v vs %v", errA, errB) + } +} + +func TestGuardCompleteModelRequest_MaxTokensChangesHardCapExactly(t *testing.T) { + counter := tokencount.NewBudgetCounter() + msg := budgetMessageAtLeast(t, counter, 7_500) + req := providers.ChatRequest{Messages: []providers.Message{msg}} + input, err := counter.CountRequest(req) + if err != nil { + t.Fatal(err) + } + window := input + 2_500 + + allow := newBudgetTestLoop(window, 2_500) + if err := allow.guardCompleteModelRequest(req, "p", "m", "allow"); err != nil { + t.Fatalf("input + 2500 should fit exactly: input=%d window=%d err=%v", input, window, err) + } + block := newBudgetTestLoop(window, 2_501) + if err := block.guardCompleteModelRequest(req, "p", "m", "block"); err == nil { + t.Fatalf("input + 2501 must exceed by one: input=%d window=%d", input, window) + } +} + +func TestGuardCompleteModelRequest_FailsClosedOnUnresolvedAgentWindow(t *testing.T) { + loop := newBudgetTestLoop(0, 8_192) + req := providers.ChatRequest{Messages: []providers.Message{{Role: "user", Content: "hi"}}} + if err := loop.guardCompleteModelRequest(req, "provider", "model", "initial"); err == nil { + t.Fatal("expected wiring failure without configured agent window") + } +} diff --git a/internal/agent/loop_run.go b/internal/agent/loop_run.go index fd573534..7837db29 100644 --- a/internal/agent/loop_run.go +++ b/internal/agent/loop_run.go @@ -206,7 +206,13 @@ func (l *Loop) Run(ctx context.Context, req RunRequest) (*RunResult, error) { "iterations", result.Iterations, } if result.Usage != nil { - logAttrs = append(logAttrs, "total_tokens", result.Usage.TotalTokens) + logAttrs = append(logAttrs, + "total_tokens", result.Usage.TotalTokens, + "total_prompt_tokens", result.Usage.PromptTokens, + ) + } + if result.LastUsage != nil { + logAttrs = append(logAttrs, "last_usage_prompt_tokens", result.LastUsage.PromptTokens) } slog.Info("v3.run.completed", logAttrs...) diff --git a/internal/agent/loop_types.go b/internal/agent/loop_types.go index 16a75f60..c2c43449 100644 --- a/internal/agent/loop_types.go +++ b/internal/agent/loop_types.go @@ -152,9 +152,11 @@ type Loop struct { // Context pruning config (trim old tool results in-memory) contextPruningCfg *config.ContextPruningConfig - // tokenCounter provides accurate per-model token counting for context pruning. - // Nil means the legacy char-based heuristic is used. + // tokenCounter is retained for legacy compaction/pruning estimates. tokenCounter tokencount.TokenCounter + // budgetCounter is the fixed local, model-independent complete-input counter + // used by the request-budget invariant. + budgetCounter tokencount.BudgetCounter // Sandbox info sandboxEnabled bool @@ -480,6 +482,12 @@ func (l *Loop) effectiveMaxTokens() int { return defaultMaxTokens } +// ContextWindow returns the operator-configured agent context window. +func (l *Loop) ContextWindow() int { return l.contextWindow } + +// MaxTokens returns the operator-configured effective agent max_tokens. +func (l *Loop) MaxTokens() int { return l.effectiveMaxTokens() } + // resolveReserveTokens returns the reserve token buffer from compaction config. // Issue 958: Wire ReserveTokensFloor to prevent context overflow before compaction. func (l *Loop) resolveReserveTokens() int { @@ -559,6 +567,7 @@ func NewLoop(cfg LoopConfig) *Loop { compactionCfg: cfg.CompactionCfg, contextPruningCfg: cfg.ContextPruningCfg, tokenCounter: tokencount.NewTiktokenCounter(), + budgetCounter: tokencount.NewBudgetCounter(), sandboxEnabled: cfg.SandboxEnabled, sandboxContainerDir: cfg.SandboxContainerDir, sandboxWorkspaceAccess: cfg.SandboxWorkspaceAccess, @@ -678,6 +687,7 @@ type RunResult struct { RunID string `json:"runId"` Iterations int `json:"iterations"` Usage *providers.Usage `json:"usage,omitempty"` + LastUsage *providers.Usage `json:"lastUsage,omitempty"` Media []MediaResult `json:"media,omitempty"` // media files from tool results (MEDIA: prefix) Deliverables []string `json:"deliverables,omitempty"` // actual content from tool outputs (for team task results) BlockReplies int `json:"blockReplies,omitempty"` // number of block.reply events emitted @@ -703,10 +713,12 @@ type MediaResult struct { // on *runState without passing 20+ individual variables. type runState struct { // Loop control - loopDetector toolLoopState - totalUsage providers.Usage - iteration int - totalToolCalls int + loopDetector toolLoopState + totalUsage providers.Usage + lastUsage providers.Usage + lastUsageMsgCount int + iteration int + totalToolCalls int // Output accumulators finalContent string diff --git a/internal/agent/types.go b/internal/agent/types.go index c46d99ac..9b2e579f 100644 --- a/internal/agent/types.go +++ b/internal/agent/types.go @@ -7,6 +7,7 @@ import ( "github.com/google/uuid" "github.com/nextlevelbuilder/goclaw/internal/providers" + "github.com/nextlevelbuilder/goclaw/internal/store" ) // Agent is the core abstraction for an AI agent execution loop. @@ -21,3 +22,20 @@ type Agent interface { ProviderName() string Provider() providers.Provider } + +// BudgetedAgent exposes the configured agent-only request budget without adding +// model/provider authority or expanding the broad Agent test interface. +type BudgetedAgent interface { + ContextWindow() int + MaxTokens() int +} + +// WithAgentBudget propagates an agent's configured budget to nested model calls. +func WithAgentBudget(ctx context.Context, a Agent) context.Context { + budgeted, ok := a.(BudgetedAgent) + if !ok { + return ctx + } + ctx = store.WithAgentContextWindow(ctx, budgeted.ContextWindow()) + return store.WithAgentMaxTokens(ctx, budgeted.MaxTokens()) +} diff --git a/internal/agent/usage_caps_runtime.go b/internal/agent/usage_caps_runtime.go index e883a9c3..91c39bf8 100644 --- a/internal/agent/usage_caps_runtime.go +++ b/internal/agent/usage_caps_runtime.go @@ -46,6 +46,12 @@ func (l *Loop) callInternalLLMWithUsage(ctx context.Context, chatReq providers.C if fallbackProvider, ok := l.provider.(*providers.ModelFallbackProvider); ok { before := func(callCtx context.Context, entry providers.FallbackCandidate, actualReq providers.ChatRequest) (providers.FallbackAfterCall, error) { candidatePurpose := fmt.Sprintf("%s:%s:%s", purpose, entry.ProviderName, actualReq.Model) + // Mandatory hard-ceiling guard: internal calls (compaction, session + // summarization, memory flush) obey the SAME per-agent window as + // main-loop calls, per candidate, after all request mutations. + if guardErr := l.guardCompleteModelRequest(actualReq, entry.ProviderName, actualReq.Model, candidatePurpose); guardErr != nil { + return nil, guardErr + } reservation, err := l.reserveInternalLLMUsageFor(callCtx, actualReq, candidatePurpose, entry.ProviderName, actualReq.Model) if err != nil { return nil, err @@ -58,6 +64,18 @@ func (l *Loop) callInternalLLMWithUsage(ctx context.Context, chatReq providers.C } return fallbackProvider.ChatWithHook(ctx, chatReq, before) } + providerName := "" + if l.provider != nil { + providerName = l.provider.Name() + } + callModel := chatReq.Model + if callModel == "" { + callModel = l.model + } + // Mandatory hard-ceiling guard for the non-fallback internal call path. + if guardErr := l.guardCompleteModelRequest(chatReq, providerName, callModel, purpose); guardErr != nil { + return nil, guardErr + } reservation, reserveErr := l.reserveInternalLLMUsage(ctx, chatReq, purpose) if reserveErr != nil { return nil, reserveErr diff --git a/internal/config/config.go b/internal/config/config.go index c3c191a8..ce808be9 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -330,7 +330,8 @@ type AgentDefaults struct { // Matching TS agents.defaults.compaction. type CompactionConfig struct { ReserveTokensFloor int `json:"reserveTokensFloor,omitempty"` // min reserve tokens (default 20000) - MaxHistoryShare float64 `json:"maxHistoryShare,omitempty"` // max share of context for history (default 0.85) + MaxHistoryShare float64 `json:"maxHistoryShare,omitempty"` // max share of context for history-only post-turn compaction (default 0.85) + MaxRequestShare float64 `json:"maxRequestShare,omitempty"` // max share of context for the final request sent to the model (default 0.85) KeepLastMessages int `json:"keepLastMessages,omitempty"` // messages to keep after compaction (default 4) TimeoutSeconds int `json:"timeoutSeconds,omitempty"` // summarization timeout in seconds (default 120) MemoryFlush *MemoryFlushConfig `json:"memoryFlush,omitempty"` // pre-compaction flush diff --git a/internal/consolidation/agent_budget.go b/internal/consolidation/agent_budget.go new file mode 100644 index 00000000..69a1e6d7 --- /dev/null +++ b/internal/consolidation/agent_budget.go @@ -0,0 +1,50 @@ +package consolidation + +import ( + "context" + "log/slog" + + "github.com/google/uuid" + "github.com/nextlevelbuilder/goclaw/internal/config" + "github.com/nextlevelbuilder/goclaw/internal/store" +) + +// withAgentRequestBudget wires the calling agent's configured request +// budget (context_window, max_tokens) into ctx so background LLM calls +// (episodic summarization, dreaming synthesis) pass the agent-only preflight +// guard instead of failing closed with an AgentBudgetWiringError. +// +// Background workers run off a session.completed / episodic.created event and +// do not carry a live agent Loop, so the budget cannot come from +// agent.WithAgentBudget. We load it straight from the agent row. If the store +// is unavailable or the row cannot be read, we fall back to the operator +// defaults rather than let a transient lookup miss silently kill memory +// consolidation — the guard's job is to bound requests to the agent window, +// and the defaults are the same window the agent would use unconfigured. +func withAgentRequestBudget(ctx context.Context, agents store.AgentCRUDStore, agentID uuid.UUID, purpose string) context.Context { + contextWindow := config.DefaultContextWindow + maxTokens := config.DefaultMaxTokens + + if agents != nil && agentID != uuid.Nil { + if ag, err := agents.GetByIDUnscoped(ctx, agentID); err != nil { + slog.Warn("consolidation: agent budget lookup failed, using defaults", + "purpose", purpose, "agent", agentID, "err", err, + "context_window", contextWindow, "max_tokens", maxTokens) + } else { + if ag.ContextWindow > 0 { + contextWindow = ag.ContextWindow + } + if ag.MaxTokens > 0 { + maxTokens = ag.MaxTokens + } + } + } else { + slog.Warn("consolidation: no agent store or agent id, using default budget", + "purpose", purpose, "agent", agentID, + "context_window", contextWindow, "max_tokens", maxTokens) + } + + ctx = store.WithAgentContextWindow(ctx, contextWindow) + ctx = store.WithAgentMaxTokens(ctx, maxTokens) + return ctx +} diff --git a/internal/consolidation/agent_budget_test.go b/internal/consolidation/agent_budget_test.go new file mode 100644 index 00000000..95bb8fda --- /dev/null +++ b/internal/consolidation/agent_budget_test.go @@ -0,0 +1,82 @@ +package consolidation + +import ( + "context" + "errors" + "testing" + + "github.com/google/uuid" + "github.com/nextlevelbuilder/goclaw/internal/config" + "github.com/nextlevelbuilder/goclaw/internal/store" +) + +// budgetAgentStore overrides only GetByIDUnscoped; the embedded nil interface +// panics if any other method is called, which keeps the mock honest. +type budgetAgentStore struct { + store.AgentCRUDStore + agent *store.AgentData + err error +} + +func (m *budgetAgentStore) GetByIDUnscoped(_ context.Context, _ uuid.UUID) (*store.AgentData, error) { + if m.err != nil { + return nil, m.err + } + return m.agent, nil +} + +// The whole point of the fix: background workers must carry the agent's +// configured request budget into ctx, or the agent-only preflight guard fails +// closed with AgentBudgetWiringError and silently kills memory consolidation. +func TestWithAgentRequestBudget_WiresConfiguredAgentBudget(t *testing.T) { + id := uuid.New() + agents := &budgetAgentStore{agent: &store.AgentData{ContextWindow: 128000, MaxTokens: 4096}} + + ctx := withAgentRequestBudget(context.Background(), agents, id, "episodic-summary") + + if got := store.AgentContextWindowFromContext(ctx); got != 128000 { + t.Fatalf("context window: want 128000, got %d", got) + } + if got := store.AgentMaxTokensFromContext(ctx); got != 4096 { + t.Fatalf("max tokens: want 4096, got %d", got) + } +} + +func TestWithAgentRequestBudget_NilStoreFallsBackToDefaults(t *testing.T) { + ctx := withAgentRequestBudget(context.Background(), nil, uuid.New(), "dreaming-synthesis") + + if got := store.AgentContextWindowFromContext(ctx); got != config.DefaultContextWindow { + t.Fatalf("context window: want default %d, got %d", config.DefaultContextWindow, got) + } + if got := store.AgentMaxTokensFromContext(ctx); got != config.DefaultMaxTokens { + t.Fatalf("max tokens: want default %d, got %d", config.DefaultMaxTokens, got) + } +} + +func TestWithAgentRequestBudget_LookupErrorFallsBackToDefaults(t *testing.T) { + agents := &budgetAgentStore{err: errors.New("db down")} + + ctx := withAgentRequestBudget(context.Background(), agents, uuid.New(), "episodic-summary") + + if got := store.AgentContextWindowFromContext(ctx); got != config.DefaultContextWindow { + t.Fatalf("context window: want default %d, got %d", config.DefaultContextWindow, got) + } + if got := store.AgentMaxTokensFromContext(ctx); got != config.DefaultMaxTokens { + t.Fatalf("max tokens: want default %d, got %d", config.DefaultMaxTokens, got) + } +} + +// A zero/partial agent row must not zero out the budget — the setters ignore +// non-positive values, and the helper must supply defaults for the missing half. +func TestWithAgentRequestBudget_ZeroFieldsUseDefaults(t *testing.T) { + agents := &budgetAgentStore{agent: &store.AgentData{ContextWindow: 0, MaxTokens: 0}} + + ctx := withAgentRequestBudget(context.Background(), agents, uuid.New(), "episodic-summary") + + if got := store.AgentContextWindowFromContext(ctx); got != config.DefaultContextWindow { + t.Fatalf("context window: want default %d, got %d", config.DefaultContextWindow, got) + } + if got := store.AgentMaxTokensFromContext(ctx); got != config.DefaultMaxTokens { + t.Fatalf("max tokens: want default %d, got %d", config.DefaultMaxTokens, got) + } +} diff --git a/internal/consolidation/dreaming_worker.go b/internal/consolidation/dreaming_worker.go index 980413dd..1ddb294e 100644 --- a/internal/consolidation/dreaming_worker.go +++ b/internal/consolidation/dreaming_worker.go @@ -33,6 +33,7 @@ type dreamingWorker struct { registry *providers.Registry // provider resolution alertDeps bgalert.AlertDeps usageCaps *usagecaps.Service + agents store.AgentCRUDStore // for resolving per-agent request budget // threshold/debounce are the global defaults. Per-agent overrides come // from resolveConfig which reads the agent's MemoryConfig.Dreaming JSONB. @@ -166,6 +167,14 @@ func (w *dreamingWorker) Handle(ctx context.Context, event eventbus.DomainEvent) return nil } + // Wire the agent's configured request budget so the synthesis call passes + // the agent-only preflight guard instead of failing closed. + if agentUUID, perr := uuid.Parse(agentID); perr == nil { + ctx = withAgentRequestBudget(ctx, w.agents, agentUUID, "dreaming-synthesis") + } else { + ctx = withAgentRequestBudget(ctx, w.agents, uuid.Nil, "dreaming-synthesis") + } + // Build LLM prompt and call provider. synthesis, err := w.synthesize(ctx, provider, model, entries) if err != nil { diff --git a/internal/consolidation/episodic_worker.go b/internal/consolidation/episodic_worker.go index 7fae25e7..61ddd207 100644 --- a/internal/consolidation/episodic_worker.go +++ b/internal/consolidation/episodic_worker.go @@ -25,6 +25,7 @@ type episodicWorker struct { eventBus eventbus.DomainEventBus alertDeps bgalert.AlertDeps usageCaps *usagecaps.Service + agents store.AgentCRUDStore // resolves per-agent request budget for the preflight guard } // resolveProvider delegates to shared background provider resolution. @@ -56,6 +57,10 @@ func (w *episodicWorker) Handle(ctx context.Context, event eventbus.DomainEvent) return fmt.Errorf("episodic: invalid agent_id %q: %w", event.AgentID, err) } ctx = store.WithAgentID(ctx, agentUUID) + // Wire the calling agent's request budget so nested LLM summarization calls + // pass the agent-only preflight guard instead of failing closed with an + // AgentBudgetWiringError (purpose=episodic-summary). + ctx = withAgentRequestBudget(ctx, w.agents, agentUUID, "episodic-summary") // Build source_id for idempotency sourceID := fmt.Sprintf("%s:%d", payload.SessionKey, payload.CompactionCount) diff --git a/internal/consolidation/workers.go b/internal/consolidation/workers.go index 2c3be24e..9ed1561f 100644 --- a/internal/consolidation/workers.go +++ b/internal/consolidation/workers.go @@ -45,6 +45,7 @@ func Register(deps ConsolidationDeps) func() { eventBus: deps.EventBus, alertDeps: deps.AlertDeps, usageCaps: deps.UsageCaps, + agents: deps.AgentStore, } semantic := &semanticWorker{ kgStore: deps.KGStore, @@ -66,6 +67,7 @@ func Register(deps ConsolidationDeps) func() { threshold: dreamingDefaultThreshold, debounce: dreamingDefaultDebounce, resolveConfig: newAgentStoreResolver(deps.AgentStore), + agents: deps.AgentStore, } unsub1 := deps.EventBus.Subscribe(eventbus.EventSessionCompleted, episodic.Handle) diff --git a/internal/gateway/log_tee.go b/internal/gateway/log_tee.go index 4ba33393..2d6a6101 100644 --- a/internal/gateway/log_tee.go +++ b/internal/gateway/log_tee.go @@ -23,6 +23,18 @@ var sensitiveKeys = []string{ "credential", "authorization", "cookie", } +var safeTokenTelemetryKeys = map[string]bool{ + "total_tokens": true, + "prompt_tokens": true, + "completion_tokens": true, + "input_tokens": true, + "output_tokens": true, + "thinking_tokens": true, + "last_prompt_tokens": true, + "last_usage_prompt_tokens": true, + "total_prompt_tokens": true, +} + // LogTee is a slog.Handler that forwards log records to subscribed WS clients // while delegating to an underlying handler for normal output. type LogTee struct { @@ -347,6 +359,9 @@ func logLevelValue(v any) slog.Level { func isSensitiveKey(key string) bool { lower := strings.ToLower(key) + if safeTokenTelemetryKeys[lower] { + return false + } for _, s := range sensitiveKeys { if strings.Contains(lower, s) { return true diff --git a/internal/gateway/log_tee_test.go b/internal/gateway/log_tee_test.go index 7a310b73..f0c109ee 100644 --- a/internal/gateway/log_tee_test.go +++ b/internal/gateway/log_tee_test.go @@ -33,7 +33,12 @@ func TestLogTeeAggregateIncludesWithAttrsAndGroupEntries(t *testing.T) { func TestLogTeeAggregateRedactsSensitiveAttrs(t *testing.T) { tee := NewLogTee(slog.NewTextHandler(io.Discard, nil)) rec := slog.NewRecord(time.Now(), slog.LevelInfo, "secret", 0) - rec.AddAttrs(slog.String("api_token", "leak"), slog.String("source", "test")) + rec.AddAttrs( + slog.String("api_token", "leak"), + slog.Int("total_tokens", 123), + slog.Int("last_prompt_tokens", 100), + slog.String("source", "test"), + ) if err := tee.Handle(context.Background(), rec); err != nil { t.Fatal(err) } @@ -42,4 +47,10 @@ func TestLogTeeAggregateRedactsSensitiveAttrs(t *testing.T) { if attrs["api_token"] != redactedValue { t.Fatalf("attrs = %+v", attrs) } + if attrs["total_tokens"] != "123" { + t.Fatalf("total_tokens = %#v, want 123", attrs["total_tokens"]) + } + if attrs["last_prompt_tokens"] != "100" { + t.Fatalf("last_prompt_tokens = %#v, want 100", attrs["last_prompt_tokens"]) + } } diff --git a/internal/gateway/methods/chat.go b/internal/gateway/methods/chat.go index 681fd6e3..8990108d 100644 --- a/internal/gateway/methods/chat.go +++ b/internal/gateway/methods/chat.go @@ -340,6 +340,12 @@ func (m *ChatMethods) dispatchChatSends(requests []chatSendRequest) { if userID != "" { runCtxBase = store.WithUserID(runCtxBase, userID) } + // Team Work gate runs before Loop.injectContext; inject the resolved agent + // budget now so the classifier cannot fall back to model/provider guesses. + runCtxBase = agent.WithAgentBudget(runCtxBase, loop) + if uid := loop.UUID(); uid != uuid.Nil { + runCtxBase = store.WithAgentID(runCtxBase, uid) + } gate := m.applyTeamWorkGate(runCtxBase, params, loop, sessionKey) params.Message = gate.message // Inject team dispatch tracker: gates team_tasks create (must search/list first) diff --git a/internal/pipeline/context_stage.go b/internal/pipeline/context_stage.go index 04e709a3..570e7fea 100644 --- a/internal/pipeline/context_stage.go +++ b/internal/pipeline/context_stage.go @@ -83,17 +83,10 @@ func (s *ContextStage) Execute(ctx context.Context, state *RunState) error { state.Ctx = ctx } - // 0.5. Resolve the effective context window for this run's provider/model. - // Done once here so PruneStage reads a stable value on every iteration and - // the budget can't drift if the model somehow changes mid-run. A zero - // result from the resolver (unknown model, no registry) leaves the field - // zero — PruneStage then falls back to Config.ContextWindow. - if s.deps.ResolveContextWindow != nil && state.Model != "" { - providerID := "" - if state.Provider != nil { - providerID = state.Provider.Name() - } - if cw := s.deps.ResolveContextWindow(providerID, state.Model); cw > 0 { + // 0.5. Snapshot the configured agent window once for this run. Model and + // provider do not participate in request-budget authority. + if s.deps.ResolveContextWindow != nil { + if cw := s.deps.ResolveContextWindow(); cw > 0 { state.Context.EffectiveContextWindow = cw } } diff --git a/internal/pipeline/deps.go b/internal/pipeline/deps.go index 48cf8632..8fa8ce85 100644 --- a/internal/pipeline/deps.go +++ b/internal/pipeline/deps.go @@ -24,16 +24,16 @@ type PruneStats struct { // PipelineDeps bundles all external dependencies stages need. // Passed to NewDefaultPipeline; individual stages receive what they need via closure or direct field access. type PipelineDeps struct { - TokenCounter tokencount.TokenCounter - EventBus eventbus.DomainEventBus - Config PipelineConfig + TokenCounter tokencount.TokenCounter + BudgetCounter tokencount.BudgetCounter + EventBus eventbus.DomainEventBus + Config PipelineConfig // Hooks is the hook dispatcher. nil = no hooks (zero-overhead fast path). Hooks hooks.Dispatcher - // ResolveContextWindow returns the effective context window (in tokens) for - // a given provider/model pair. Nil = always use Config.ContextWindow. - // Invoked ONCE per run by ContextStage and stored in RunState.Context.EffectiveContextWindow. - ResolveContextWindow func(provider, model string) int + // ResolveContextWindow returns this agent's configured context window. + // Model/provider are intentionally absent from the budget authority surface. + ResolveContextWindow func() int // Callbacks from agent.Loop — Phase 8 adapter wires these. EmitEvent func(event any) @@ -125,9 +125,13 @@ type PipelineDeps struct { // total (billing/AccumulateTokens); lastUsage is the final iteration's own // usage — its ContextTokens() is the session's current context size // (SetLastPromptTokens → sessions context display + compaction calibration). + // msgCount is the message count captured alongside lastUsage. UpdateMetadata func(ctx context.Context, sessionKey string, usage, lastUsage providers.Usage, msgCount int) error BootstrapCleanup func(ctx context.Context, state *RunState) error - MaybeSummarize func(ctx context.Context, sessionKey string) + // MaybeSummarize takes midLoopCompacted: when the final-request guard already + // compacted mid-loop this run, post-turn summarization lowers its trigger + // threshold so the compaction is PERSISTED (episodic Bug B / anti-loop). + MaybeSummarize func(ctx context.Context, sessionKey string, midLoopCompacted bool) } // FireHook is nil-safe. Returns FireResult{Decision: DecisionAllow} when no diff --git a/internal/pipeline/final_request_guard.go b/internal/pipeline/final_request_guard.go new file mode 100644 index 00000000..742cd239 --- /dev/null +++ b/internal/pipeline/final_request_guard.go @@ -0,0 +1,291 @@ +package pipeline + +import ( + "context" + "encoding/json" + "fmt" + "log/slog" + "strings" + "unicode/utf8" + + "github.com/nextlevelbuilder/goclaw/internal/config" + "github.com/nextlevelbuilder/goclaw/internal/providers" +) + +// FinalRequestEstimate describes the complete pre-call context budget for the +// request that will actually be sent to the model. +type FinalRequestEstimate struct { + MessageTokens int + ToolTokens int + InputTokens int + OutputReserveTokens int + HardInputCapTokens int + CompactTargetTokens int + ContextWindow int + MaxRequestShare float64 +} + +const defaultMaxRequestShare = 0.85 + +func effectiveMaxRequestShare(cfg *config.CompactionConfig) float64 { + if cfg != nil && cfg.MaxRequestShare > 0 && cfg.MaxRequestShare <= 1 { + return cfg.MaxRequestShare + } + return defaultMaxRequestShare +} + +func (s *ThinkStage) buildChatRequest(state *RunState, toolDefs []providers.ToolDefinition) providers.ChatRequest { + options := map[string]any{ + providers.OptMaxTokens: s.deps.Config.MaxTokens, + } + return providers.ChatRequest{ + Messages: state.Messages.All(), + Tools: toolDefs, + Model: state.Model, + Options: options, + } +} + +func (s *ThinkStage) finalRequestEstimate(state *RunState, req providers.ChatRequest) (FinalRequestEstimate, error) { + contextWindow := state.Context.EffectiveContextWindow + if contextWindow == 0 { + contextWindow = s.deps.Config.ContextWindow + } + if contextWindow <= 0 { + return FinalRequestEstimate{}, nil + } + + messageTokens, toolTokens, err := countBudgetInput(s.deps, state.Model, req) + if err != nil { + return FinalRequestEstimate{}, err + } + outputReserve := s.deps.Config.MaxTokens + if outputReserve < 0 { + outputReserve = 0 + } + share := effectiveMaxRequestShare(s.deps.Config.Compaction) + inputTokens := messageTokens + toolTokens + hardInputCap := contextWindow - outputReserve + shareTarget := int(float64(contextWindow)*share) - outputReserve + compactTarget := min(hardInputCap, shareTarget) + return FinalRequestEstimate{ + MessageTokens: messageTokens, + ToolTokens: toolTokens, + InputTokens: inputTokens, + OutputReserveTokens: outputReserve, + HardInputCapTokens: hardInputCap, + CompactTargetTokens: compactTarget, + ContextWindow: contextWindow, + MaxRequestShare: share, + }, nil +} + +func countBudgetInput(deps *PipelineDeps, model string, req providers.ChatRequest) (int, int, error) { + if deps != nil && deps.BudgetCounter != nil { + messages, err := deps.BudgetCounter.CountMessages(req.Messages) + if err != nil { + return 0, 0, fmt.Errorf("count request messages: %w", err) + } + tools, err := deps.BudgetCounter.CountToolSchemas(req.Tools) + if err != nil { + return 0, 0, fmt.Errorf("count request tools: %w", err) + } + return messages, tools, nil + } + // Isolated pipeline tests may still wire only the legacy counter. Runtime + // always provides BudgetCounter. + return countRequestMessages(deps, model, req.Messages), countRequestTools(deps, model, req.Tools), nil +} + +func countRequestMessages(deps *PipelineDeps, model string, messages []providers.Message) int { + if deps != nil && deps.TokenCounter != nil { + return deps.TokenCounter.CountMessages(model, messages) + } + total := 0 + for _, msg := range messages { + total += utf8.RuneCountInString(msg.Content)/3 + 4 + for _, tc := range msg.ToolCalls { + total += utf8.RuneCountInString(tc.ID)/3 + utf8.RuneCountInString(tc.Name)/3 + } + } + return total +} + +func countRequestTools(deps *PipelineDeps, model string, tools []providers.ToolDefinition) int { + if len(tools) == 0 { + return 0 + } + if deps != nil && deps.TokenCounter != nil { + return deps.TokenCounter.CountToolSchemas(model, tools) + } + blob, err := json.Marshal(tools) + if err != nil { + return 0 + } + return utf8.RuneCountInString(string(blob)) / 3 +} + +func (e FinalRequestEstimate) withinLimit() bool { + return e.ContextWindow > 0 && + e.HardInputCapTokens > 0 && + e.CompactTargetTokens > 0 && + e.InputTokens <= e.HardInputCapTokens && + e.InputTokens <= e.CompactTargetTokens +} + +func (s *ThinkStage) prepareFinalRequest(ctx context.Context, state *RunState, toolDefs []providers.ToolDefinition) (providers.ChatRequest, FinalRequestEstimate, error) { + req := s.buildChatRequest(state, toolDefs) + estimate, err := s.finalRequestEstimate(state, req) + if err != nil { + return req, estimate, err + } + if estimate.ContextWindow <= 0 { + // A nil counter means this lightweight pipeline instance did not opt into + // request budgeting (primarily isolated stage tests). Runtime wiring always + // provides a counter, so an unresolved runtime window still fails closed. + if s.deps.TokenCounter == nil { + return req, estimate, nil + } + return req, estimate, fmt.Errorf("context_window_unresolved: no configured agent context window") + } + if estimate.HardInputCapTokens <= 0 || estimate.CompactTargetTokens <= 0 { + s.logFinalRequestGuard(state, estimate, "abort", "invalid_budget") + return req, estimate, fmt.Errorf("final request context budget unavailable: context_window=%d output_reserve=%d hard_input_cap=%d compact_target=%d", + estimate.ContextWindow, estimate.OutputReserveTokens, estimate.HardInputCapTokens, estimate.CompactTargetTokens) + } + if estimate.withinLimit() { + s.logFinalRequestGuard(state, estimate, "allow", "initial") + return req, estimate, nil + } + + s.logFinalRequestGuard(state, estimate, "reduce", "initial") + steps := []string{"prune_history", "compact_history", "shrink_memory"} + for _, step := range steps { + changed, err := s.reduceFinalRequestContext(ctx, state, estimate, step) + if err != nil { + return req, estimate, err + } + if !changed { + continue + } + req = s.buildChatRequest(state, toolDefs) + estimate, err = s.finalRequestEstimate(state, req) + if err != nil { + return req, estimate, err + } + if estimate.withinLimit() { + s.logFinalRequestGuard(state, estimate, "allow", step) + return req, estimate, nil + } + s.logFinalRequestGuard(state, estimate, "reduce", step) + } + + s.logFinalRequestGuard(state, estimate, "abort", "exhausted") + return req, estimate, fmt.Errorf("final request context budget exceeded: estimated_input=%d compact_target=%d hard_input_cap=%d context_window=%d max_request_share=%.2f", + estimate.InputTokens, estimate.CompactTargetTokens, estimate.HardInputCapTokens, estimate.ContextWindow, estimate.MaxRequestShare) +} + +func (s *ThinkStage) reduceFinalRequestContext(ctx context.Context, state *RunState, estimate FinalRequestEstimate, step string) (bool, error) { + switch step { + case "prune_history": + return s.pruneForFinalRequestBudget(state, estimate), nil + case "compact_history": + return s.compactForFinalRequestBudget(ctx, state) + case "shrink_memory": + return s.shrinkMemoryForFinalRequestBudget(state), nil + default: + return false, nil + } +} + +func (s *ThinkStage) pruneForFinalRequestBudget(state *RunState, estimate FinalRequestEstimate) bool { + if s.deps.PruneMessages == nil { + return false + } + history := state.Messages.History() + if len(history) == 0 { + return false + } + fixedMessages := []providers.Message{state.Messages.System()} + fixedMessages = append(fixedMessages, state.Messages.Pending()...) + fixedMessageTokens := countRequestMessages(s.deps, state.Model, fixedMessages) + budget := estimate.CompactTargetTokens - estimate.ToolTokens - fixedMessageTokens + if budget <= 0 { + budget = 1 + } + pruned, stats := s.deps.PruneMessages(history, budget) + changed := stats.ResultsTrimmed > 0 || stats.ResultsCleared > 0 || stats.Compacted || len(pruned) != len(history) + if !changed { + return false + } + if s.deps.SanitizeHistory != nil { + pruned, _ = s.deps.SanitizeHistory(pruned) + } + state.Messages.SetHistory(pruned) + return true +} + +func (s *ThinkStage) compactForFinalRequestBudget(ctx context.Context, state *RunState) (bool, error) { + if s.deps.CompactMessages == nil { + return false, nil + } + history := state.Messages.History() + if len(history) == 0 { + return false, nil + } + savedPending := state.Messages.Pending() + compacted, err := s.deps.CompactMessages(ctx, history, state.Model) + if err != nil { + return false, fmt.Errorf("compact final request context: %w", err) + } + state.Messages.ReplaceHistory(compacted) + for _, msg := range savedPending { + state.Messages.AppendPending(msg) + } + state.Prune.MidLoopCompacted = true + state.Compact.CompactionCount++ + return true, nil +} + +func (s *ThinkStage) shrinkMemoryForFinalRequestBudget(state *RunState) bool { + section := strings.TrimSpace(state.Context.MemorySection) + if section == "" { + return false + } + sys := state.Messages.System() + content := sys.Content + candidates := []string{"\n\n" + state.Context.MemorySection, state.Context.MemorySection, section} + for _, candidate := range candidates { + if candidate == "" { + continue + } + if strings.Contains(content, candidate) { + sys.Content = strings.Replace(content, candidate, "", 1) + state.Messages.SetSystem(sys) + state.Context.MemorySection = "" + return true + } + } + return false +} + +func (s *ThinkStage) logFinalRequestGuard(state *RunState, estimate FinalRequestEstimate, action, step string) { + if estimate.ContextWindow <= 0 { + return + } + slog.Info("final_context.guard", + "session_key", state.Input.SessionKey, + "run_id", state.RunID, + "model", state.Model, + "context_window", estimate.ContextWindow, + "max_request_share", estimate.MaxRequestShare, + "hard_input_cap_tokens", estimate.HardInputCapTokens, + "compact_target_input_tokens", estimate.CompactTargetTokens, + "message_tokens", estimate.MessageTokens, + "tool_tokens", estimate.ToolTokens, + "input_tokens", estimate.InputTokens, + "output_reserve_tokens", estimate.OutputReserveTokens, + "action", action, + "reduction_step", step, + ) +} diff --git a/internal/pipeline/finalize_stage.go b/internal/pipeline/finalize_stage.go index 0e212da4..91e840dd 100644 --- a/internal/pipeline/finalize_stage.go +++ b/internal/pipeline/finalize_stage.go @@ -120,7 +120,9 @@ func (s *FinalizeStage) Execute(ctx context.Context, state *RunState) error { state.Tool.MediaResults = append(state.Tool.MediaResults, mr) } - // 4. Flush remaining pending messages to session store + // 4. Flush remaining pending messages to session store. + // Capture the pre-flush history length so metadata msgCount reflects + // history + newly-persisted pending (matches upstream calibration). historyCountBeforeFlush := len(state.Messages.History()) pending := state.Messages.FlushPending() persistablePending := persistableMessages(pending) @@ -145,9 +147,15 @@ func (s *FinalizeStage) Execute(ctx context.Context, state *RunState) error { } } - // 7. Post-run summarization (async background) + // 7. Post-run summarization (async background). + // Pass the mid-loop pressure flag: when the guard had to compact mid-loop this + // run, maybeSummarize uses a lower, unit-aligned threshold so the compaction is + // PERSISTED to the session (TruncateHistory + IncrementCompaction) instead of + // being thrown away — which both breaks the per-turn re-compaction loop (Việc 2) + // and advances the cumulative compaction count so episodic can progress (Việc 1-B). + // Both mid-loop paths (prune_stage + compactForFinalRequestBudget) set this flag. if s.deps.MaybeSummarize != nil { - s.deps.MaybeSummarize(ctx, state.Input.SessionKey) + s.deps.MaybeSummarize(ctx, state.Input.SessionKey, state.Prune.MidLoopCompacted) } // 8. Emit session.completed for consolidation pipeline (episodic → semantic → dreaming). diff --git a/internal/pipeline/pipeline_test.go b/internal/pipeline/pipeline_test.go index bb0b7e4d..013d4fd3 100644 --- a/internal/pipeline/pipeline_test.go +++ b/internal/pipeline/pipeline_test.go @@ -400,6 +400,7 @@ func TestPipeline_BuildResultPopulatesRunID(t *testing.T) { state := buildMinimalRunState() state.Observe.FinalContent = "hello" state.Think.TotalUsage = providers.Usage{PromptTokens: 10, CompletionTokens: 5, TotalTokens: 15} + state.Think.LastUsage = providers.Usage{PromptTokens: 7, CompletionTokens: 2, TotalTokens: 9} result, err := p.Run(context.Background(), state) if err != nil { @@ -414,6 +415,9 @@ func TestPipeline_BuildResultPopulatesRunID(t *testing.T) { if result.TotalUsage.TotalTokens != 15 { t.Errorf("result.TotalUsage.TotalTokens = %d, want 15", result.TotalUsage.TotalTokens) } + if result.LastUsage.TotalTokens != 9 { + t.Errorf("result.LastUsage.TotalTokens = %d, want 9", result.LastUsage.TotalTokens) + } if result.Duration <= 0 { t.Errorf("result.Duration = %v, want > 0", result.Duration) } @@ -506,6 +510,7 @@ func TestRunState_BuildResult_AllFields(t *testing.T) { state.Observe.FinalContent = "final" state.Observe.FinalThinking = "thinking" state.Think.TotalUsage = providers.Usage{PromptTokens: 100, CompletionTokens: 50, TotalTokens: 150} + state.Think.LastUsage = providers.Usage{PromptTokens: 80, CompletionTokens: 20, TotalTokens: 100} state.Iteration = 7 state.Tool.TotalToolCalls = 3 state.Tool.LoopKilled = true @@ -528,6 +533,9 @@ func TestRunState_BuildResult_AllFields(t *testing.T) { if r.TotalUsage.TotalTokens != 150 { t.Errorf("TotalUsage.TotalTokens = %d", r.TotalUsage.TotalTokens) } + if r.LastUsage.TotalTokens != 100 { + t.Errorf("LastUsage.TotalTokens = %d", r.LastUsage.TotalTokens) + } if r.Iterations != 7 { t.Errorf("Iterations = %d", r.Iterations) } diff --git a/internal/pipeline/prune_stage.go b/internal/pipeline/prune_stage.go index dca6485a..15e5f2b5 100644 --- a/internal/pipeline/prune_stage.go +++ b/internal/pipeline/prune_stage.go @@ -26,7 +26,7 @@ func NewPruneStage(deps *PipelineDeps, memFlush *MemoryFlushStage) *PruneStage { return &PruneStage{deps: deps, memoryFlush: memFlush, result: Continue} } -func (s *PruneStage) Name() string { return "prune" } +func (s *PruneStage) Name() string { return "prune" } func (s *PruneStage) Result() StageResult { return s.result } // defaultCachePruneTTL is used when cfg.TTL is empty or invalid. @@ -74,6 +74,17 @@ func (s *PruneStage) Execute(ctx context.Context, state *RunState) error { tokensBefore := historyTokens softThreshold := budget * 70 / 100 + slog.Info("context.preflight_budget", + "session_key", state.Input.SessionKey, + "context_window", contextWindow, + "effective_context_window", state.Context.EffectiveContextWindow, + "history_tokens", historyTokens, + "overhead_tokens", state.Context.OverheadTokens, + "max_tokens", s.deps.Config.MaxTokens, + "reserve_tokens", s.deps.Config.ReserveTokens, + "budget", budget, + "soft_threshold", softThreshold, + ) if historyTokens <= softThreshold { return nil // under budget, no action needed } diff --git a/internal/pipeline/run_state.go b/internal/pipeline/run_state.go index 4399f20f..745adfb5 100644 --- a/internal/pipeline/run_state.go +++ b/internal/pipeline/run_state.go @@ -78,6 +78,7 @@ func (rs *RunState) BuildResult() *RunResult { Content: rs.Observe.FinalContent, Thinking: rs.Observe.FinalThinking, TotalUsage: rs.Think.TotalUsage, + LastUsage: rs.Think.LastUsage, Iterations: rs.Iteration, ToolCalls: rs.Tool.TotalToolCalls, LoopKilled: rs.Tool.LoopKilled, diff --git a/internal/pipeline/stages_test.go b/internal/pipeline/stages_test.go index fb7b2960..4d52eb00 100644 --- a/internal/pipeline/stages_test.go +++ b/internal/pipeline/stages_test.go @@ -3,6 +3,7 @@ package pipeline import ( "context" "errors" + "log/slog" "os" "path/filepath" "reflect" @@ -353,7 +354,18 @@ func TestThinkStage_UsageAccumulation(t *testing.T) { return &providers.ChatResponse{ Content: "hello", FinishReason: "stop", - Usage: &providers.Usage{PromptTokens: 10, CompletionTokens: 5, TotalTokens: 15}, + Usage: &providers.Usage{ + PromptTokens: 10 * callCount, + CompletionTokens: 5, + TotalTokens: 10*callCount + 5, + CacheCreationTokens: 2, + CacheReadTokens: 3, + PromptTokensIncludeCachedSegments: callCount == 2, + ThinkingTokens: 4, + RequestCount: 1, + ImageCount: 1, + WebSearchCount: 1, + }, }, nil }, } @@ -364,14 +376,27 @@ func TestThinkStage_UsageAccumulation(t *testing.T) { _ = stage.Execute(context.Background(), state) _ = stage.Execute(context.Background(), state) - if state.Think.TotalUsage.PromptTokens != 20 { - t.Errorf("PromptTokens = %d, want 20", state.Think.TotalUsage.PromptTokens) + if state.Think.TotalUsage.PromptTokens != 30 { + t.Errorf("PromptTokens = %d, want 30", state.Think.TotalUsage.PromptTokens) } if state.Think.TotalUsage.CompletionTokens != 10 { t.Errorf("CompletionTokens = %d, want 10", state.Think.TotalUsage.CompletionTokens) } - if state.Think.TotalUsage.TotalTokens != 30 { - t.Errorf("TotalTokens = %d, want 30", state.Think.TotalUsage.TotalTokens) + if state.Think.TotalUsage.TotalTokens != 40 { + t.Errorf("TotalTokens = %d, want 40", state.Think.TotalUsage.TotalTokens) + } + if state.Think.TotalUsage.CacheCreationTokens != 4 || state.Think.TotalUsage.CacheReadTokens != 6 { + t.Errorf("cache tokens = %d/%d, want 4/6", state.Think.TotalUsage.CacheCreationTokens, state.Think.TotalUsage.CacheReadTokens) + } + if !state.Think.TotalUsage.PromptTokensIncludeCachedSegments { + t.Error("PromptTokensIncludeCachedSegments = false, want true") + } + if state.Think.TotalUsage.ThinkingTokens != 8 || state.Think.TotalUsage.RequestCount != 2 || + state.Think.TotalUsage.ImageCount != 2 || state.Think.TotalUsage.WebSearchCount != 2 { + t.Errorf("extended usage = %+v, want thinking/request/image/web = 8/2/2/2", state.Think.TotalUsage) + } + if state.Think.LastUsage.PromptTokens != 20 || state.Think.LastUsage.TotalTokens != 25 { + t.Errorf("LastUsage = %+v, want last prompt=20 total=25", state.Think.LastUsage) } } @@ -3045,7 +3070,7 @@ func TestFinalizeStage_MaybeSummarize_Called(t *testing.T) { t.Parallel() summarizeCalled := false deps := &PipelineDeps{ - MaybeSummarize: func(_ context.Context, sessionKey string) { + MaybeSummarize: func(_ context.Context, sessionKey string, _ bool) { if sessionKey == "sess-1" { summarizeCalled = true } @@ -3408,3 +3433,251 @@ func TestToolStage_Parallel_DefersNonToolMessages(t *testing.T) { t.Errorf("pending[3].Content = %q, want nudge", pending[3].Content) } } + +func TestThinkStage_FinalRequestGuard_CompactsBeforeCallLLM(t *testing.T) { + t.Parallel() + compacted := false + called := false + + deps := &PipelineDeps{ + TokenCounter: finalRequestBudgetCounter{}, + Config: PipelineConfig{ContextWindow: 100, MaxTokens: 10, Compaction: &config.CompactionConfig{MaxRequestShare: 0.85}}, + BuildFilteredTools: func(_ *RunState) ([]providers.ToolDefinition, error) { + return []providers.ToolDefinition{{ + Type: "function", + Function: &providers.ToolFunctionSchema{ + Name: "large_tool", + Description: strings.Repeat("t", 50), + Parameters: map[string]any{"type": "object"}, + }, + }}, nil + }, + CompactMessages: func(_ context.Context, msgs []providers.Message, _ string) ([]providers.Message, error) { + compacted = true + if len(msgs) != 1 || !strings.Contains(msgs[0].Content, "long-history") { + t.Fatalf("CompactMessages got history = %#v", msgs) + } + return []providers.Message{{Role: "user", Content: "short"}}, nil + }, + CallLLM: func(_ context.Context, _ *RunState, req providers.ChatRequest) (*providers.ChatResponse, error) { + called = true + if len(req.Messages) == 0 || req.Messages[len(req.Messages)-1].Content != "short" { + t.Fatalf("CallLLM received un-compacted request messages = %#v", req.Messages) + } + return &providers.ChatResponse{Content: "ok", FinishReason: "stop"}, nil + }, + } + stage := NewThinkStage(deps) + state := defaultState() + state.Messages.SetHistory([]providers.Message{{Role: "user", Content: strings.Repeat("long-history", 10)}}) + + if err := stage.Execute(context.Background(), state); err != nil { + t.Fatalf("Execute() error: %v", err) + } + if !compacted { + t.Fatal("expected final request guard to compact before CallLLM") + } + if !called { + t.Fatal("expected CallLLM after compaction") + } +} + +type finalRequestBudgetCounter struct{} + +func (finalRequestBudgetCounter) Count(_ string, text string) int { return len(text) } +func (finalRequestBudgetCounter) CountMessages(_ string, msgs []providers.Message) int { + total := 0 + for _, msg := range msgs { + total += len(msg.Content) + } + return total +} +func (finalRequestBudgetCounter) CountToolSchemas(_ string, tools []providers.ToolDefinition) int { + total := 0 + for _, tool := range tools { + if tool.Function != nil { + total += len(tool.Function.Name) + len(tool.Function.Description) + } + } + return total +} +func (finalRequestBudgetCounter) ModelContextWindow(_ string) int { return 100 } + +func TestThinkStage_FinalRequestGuard_AllowsRequestUnderLimit(t *testing.T) { + t.Parallel() + compacted := false + called := false + + deps := &PipelineDeps{ + TokenCounter: finalRequestBudgetCounter{}, + Config: PipelineConfig{ContextWindow: 100, MaxTokens: 10, Compaction: &config.CompactionConfig{MaxRequestShare: 0.85}}, + CompactMessages: func(_ context.Context, _ []providers.Message, _ string) ([]providers.Message, error) { + compacted = true + return nil, nil + }, + CallLLM: func(_ context.Context, _ *RunState, _ providers.ChatRequest) (*providers.ChatResponse, error) { + called = true + return &providers.ChatResponse{Content: "ok", FinishReason: "stop"}, nil + }, + } + stage := NewThinkStage(deps) + state := defaultState() + state.Messages.SetHistory([]providers.Message{{Role: "user", Content: "short"}}) + + if err := stage.Execute(context.Background(), state); err != nil { + t.Fatalf("Execute() error: %v", err) + } + if compacted { + t.Fatal("did not expect compaction for request under final context limit") + } + if !called { + t.Fatal("expected CallLLM for request under final context limit") + } +} + +func TestThinkStage_FinalRequestGuard_AbortsWhenStillOverLimit(t *testing.T) { + t.Parallel() + called := false + compactCalls := 0 + + deps := &PipelineDeps{ + TokenCounter: finalRequestBudgetCounter{}, + Config: PipelineConfig{ContextWindow: 100, MaxTokens: 10, Compaction: &config.CompactionConfig{MaxRequestShare: 0.85}}, + CompactMessages: func(_ context.Context, _ []providers.Message, _ string) ([]providers.Message, error) { + compactCalls++ + return []providers.Message{{Role: "user", Content: strings.Repeat("still-long", 20)}}, nil + }, + CallLLM: func(_ context.Context, _ *RunState, _ providers.ChatRequest) (*providers.ChatResponse, error) { + called = true + return &providers.ChatResponse{Content: "should not call", FinishReason: "stop"}, nil + }, + } + stage := NewThinkStage(deps) + state := defaultState() + state.Messages.SetHistory([]providers.Message{{Role: "user", Content: strings.Repeat("long-history", 10)}}) + + err := stage.Execute(context.Background(), state) + if err == nil { + t.Fatal("expected final request context budget error") + } + if !strings.Contains(err.Error(), "final request context budget exceeded") { + t.Fatalf("unexpected error: %v", err) + } + if compactCalls != 1 { + t.Fatalf("CompactMessages calls = %d, want 1", compactCalls) + } + if called { + t.Fatal("CallLLM must not run while final request remains over limit") + } +} + +func TestFinalRequestEstimate_UsesAgentWindowBudgetMath(t *testing.T) { + t.Parallel() + tests := []struct { + name string + window int + hard int + target int + }{ + {name: "200k", window: 200_000, hard: 191_808, target: 161_808}, + {name: "128k", window: 128_000, hard: 119_808, target: 100_608}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + deps := &PipelineDeps{ + TokenCounter: finalRequestBudgetCounter{}, + Config: PipelineConfig{ + ContextWindow: tt.window, + MaxTokens: 8192, + Compaction: &config.CompactionConfig{MaxRequestShare: 0.85}, + }, + } + stage := NewThinkStage(deps) + estimate, err := stage.finalRequestEstimate(defaultState(), providers.ChatRequest{}) + if err != nil { + t.Fatal(err) + } + if estimate.HardInputCapTokens != tt.hard || estimate.CompactTargetTokens != tt.target { + t.Fatalf("budget = hard %d target %d, want %d/%d", estimate.HardInputCapTokens, estimate.CompactTargetTokens, tt.hard, tt.target) + } + }) + } +} + +func TestThinkStage_FinalRequestGuard_RejectsUnresolvedWindow(t *testing.T) { + t.Parallel() + called := false + stage := NewThinkStage(&PipelineDeps{ + TokenCounter: finalRequestBudgetCounter{}, + CallLLM: func(context.Context, *RunState, providers.ChatRequest) (*providers.ChatResponse, error) { + called = true + return &providers.ChatResponse{}, nil + }, + }) + err := stage.Execute(context.Background(), defaultState()) + if err == nil || !strings.Contains(err.Error(), "context_window_unresolved") { + t.Fatalf("Execute() error = %v, want context_window_unresolved", err) + } + if called { + t.Fatal("CallLLM must not run without a resolved context window") + } +} + +// TestFinalRequestEstimate_OutputReserveIsAgentMaxTokens locks the agent-only +// output reserve: the reserve equals the configured agent max_tokens exactly and +// does NOT change with any provider/model reasoning transform. Model/provider +// thinking bumps must never widen or narrow the pre-transport budget. +func TestFinalRequestEstimate_OutputReserveIsAgentMaxTokens(t *testing.T) { + t.Parallel() + stage := NewThinkStage(&PipelineDeps{ + TokenCounter: finalRequestBudgetCounter{}, + Config: PipelineConfig{ + ContextWindow: 200_000, + MaxTokens: 8192, + Compaction: &config.CompactionConfig{MaxRequestShare: 0.85}, + }, + }) + + estimate, err := stage.finalRequestEstimate(defaultState(), stage.buildChatRequest(defaultState(), nil)) + if err != nil { + t.Fatal(err) + } + // Reserve == agent max_tokens (8192), independent of any reasoning transform. + if estimate.OutputReserveTokens != 8192 { + t.Fatalf("output reserve = %d, want 8192 (agent max_tokens)", estimate.OutputReserveTokens) + } + // Hard cap == window - agent max_tokens, exactly. + if estimate.HardInputCapTokens != 200_000-8192 { + t.Fatalf("hard cap = %d, want %d", estimate.HardInputCapTokens, 200_000-8192) + } +} + +func TestInputContextTokens_CacheSemantics(t *testing.T) { + t.Parallel() + inclusive := providers.Usage{ + PromptTokens: 100, CacheReadTokens: 80, CacheCreationTokens: 10, + PromptTokensIncludeCachedSegments: true, + } + if got := InputContextTokens(inclusive); got != 100 { + t.Fatalf("inclusive input = %d, want 100", got) + } + exclusive := inclusive + exclusive.PromptTokensIncludeCachedSegments = false + if got := InputContextTokens(exclusive); got != 190 { + t.Fatalf("exclusive input = %d, want 190", got) + } +} + +func TestFinalContextActualLevel(t *testing.T) { + t.Parallel() + estimate := FinalRequestEstimate{InputTokens: 100, HardInputCapTokens: 120} + if level, reason := finalContextActualLevel(estimate, 100); level != slog.LevelDebug || reason != "" { + t.Fatalf("exact estimate = %v/%q, want debug/empty", level, reason) + } + if level, reason := finalContextActualLevel(estimate, 106); level != slog.LevelWarn || reason != "estimate_undercount" { + t.Fatalf("undercount = %v/%q, want warn/estimate_undercount", level, reason) + } + if level, reason := finalContextActualLevel(estimate, 121); level != slog.LevelWarn || reason != "hard_cap_exceeded" { + t.Fatalf("hard cap = %v/%q, want warn/hard_cap_exceeded", level, reason) + } +} diff --git a/internal/pipeline/substates.go b/internal/pipeline/substates.go index 0954722e..64c6dd7d 100644 --- a/internal/pipeline/substates.go +++ b/internal/pipeline/substates.go @@ -118,6 +118,7 @@ type RunResult struct { Content string Thinking string TotalUsage providers.Usage + LastUsage providers.Usage Iterations int ToolCalls int LoopKilled bool diff --git a/internal/pipeline/think_stage.go b/internal/pipeline/think_stage.go index 41e7ccb6..f4cc83c1 100644 --- a/internal/pipeline/think_stage.go +++ b/internal/pipeline/think_stage.go @@ -2,6 +2,7 @@ package pipeline import ( "context" + "errors" "fmt" "log/slog" "strings" @@ -53,14 +54,11 @@ func (s *ThinkStage) Execute(ctx context.Context, state *RunState) error { state.Tool.AllowedTools = nil } - // 3. Construct ChatRequest - req := providers.ChatRequest{ - Messages: state.Messages.All(), - Tools: toolDefs, - Model: state.Model, - Options: map[string]any{ - providers.OptMaxTokens: s.deps.Config.MaxTokens, - }, + // 3. Construct the final ChatRequest and enforce the request-level + // context budget before any provider call is attempted. + req, estimate, err := s.prepareFinalRequest(ctx, state, toolDefs) + if err != nil { + return err } // 4. Call LLM (stream or sync — delegated to callback) @@ -69,35 +67,54 @@ func (s *ThinkStage) Execute(ctx context.Context, state *RunState) error { } resp, err := s.deps.CallLLM(ctx, state, req) if err != nil { + // Central hard-ceiling guard rejected the concrete request AFTER the + // callback appended its final directive/retry/reasoning mutations (which + // prepareFinalRequest could not see). Re-enter the full reduction chain + // against the current messages, rebuild, and retry this iteration. Only + // when reduction cannot bring the request under the ceiling do we abort — + // the guard already guaranteed zero transport calls were made. + if isRequestBudgetExceededErr(err) { + if state.Think.OverflowRetries >= maxBudgetReductionRetries { + return fmt.Errorf("request context budget exceeded after reduction: %w", err) + } + if s.reduceForBudgetExceeded(ctx, state) { + // This LLM call produced no response, so LastResponse still holds + // the PRIOR iteration's response. Clear it before returning Continue + // so ToolStage/ObserveStage in this same iteration do not re-execute + // the previous iteration's tool calls. The retry rebuilds and calls + // the model again on the next iteration. + state.Think.LastResponse = nil + return nil // Retry this iteration (Continue result) with reduced context. + } + return fmt.Errorf("request context budget exceeded, reduction exhausted: %w", err) + } // Issue 958: Check for context overflow — attempt emergency compaction + retry if isContextOverflowErr(err) { if state.Think.OverflowRetries > 0 { return fmt.Errorf("context overflow after compaction: %w", err) } if s.tryEmergencyCompaction(ctx, state, "context_overflow_error") { + // Same stale-response hazard as the budget path: no response was + // produced this iteration, so drop the prior one before retrying. + state.Think.LastResponse = nil return nil // Retry this iteration (Continue result) } } return fmt.Errorf("llm call: %w", err) } - // 5. Accumulate usage across turns: base tokens, ThinkingTokens for reasoning - // models, and cache tokens. Cache read/creation must be summed too — otherwise - // the aggregated RunResult.Usage (and thus webhook usage + usage_events) reports - // zero cache even when each turn hit the prompt cache heavily. + // 5. Accumulate usage across turns and retain the usage snapshot for the + // request that was just sent. AddUsage preserves provider telemetry fields. if resp.Usage != nil { - state.Think.TotalUsage.PromptTokens += resp.Usage.PromptTokens - state.Think.TotalUsage.CompletionTokens += resp.Usage.CompletionTokens - state.Think.TotalUsage.TotalTokens += resp.Usage.TotalTokens - state.Think.TotalUsage.ThinkingTokens += resp.Usage.ThinkingTokens - state.Think.TotalUsage.CacheReadTokens += resp.Usage.CacheReadTokens - state.Think.TotalUsage.CacheCreationTokens += resp.Usage.CacheCreationTokens - if resp.Usage.PromptTokensIncludeCachedSegments { - state.Think.TotalUsage.PromptTokensIncludeCachedSegments = true - } + // Log actual (post-call) usage vs the pre-call budget estimate (my guard + // observability), then accumulate the run-cumulative total. + s.logFinalRequestActual(ctx, state, estimate, *resp.Usage) + AddUsage(&state.Think.TotalUsage, *resp.Usage) // Snapshot per-call usage: the LAST iteration's prompt size IS the // session's current context. Keep the previous snapshot when a response - // carries no prompt tokens (e.g. providers that omit usage on some turns). + // carries no prompt tokens (e.g. providers that omit usage on some turns) + // — matches upstream 503909d3 behaviour, which never wipes a usable + // snapshot with an empty final response. if resp.Usage.PromptTokens > 0 { state.Think.LastUsage = *resp.Usage } @@ -108,6 +125,10 @@ func (s *ThinkStage) Execute(ctx context.Context, state *RunState) error { return fmt.Errorf("llm response truncated before content after compaction") } if s.tryEmergencyCompaction(ctx, state, "empty_length_response") { + // LastResponse has NOT yet been updated to this empty response, so it + // still holds the prior iteration's result. Clear it so downstream + // stages this iteration don't act on the stale response during retry. + state.Think.LastResponse = nil return nil // Retry next iteration with compacted history. } return fmt.Errorf("llm response truncated before content") @@ -172,6 +193,46 @@ func (s *ThinkStage) Execute(ctx context.Context, state *RunState) error { return nil } +func (s *ThinkStage) logFinalRequestActual(ctx context.Context, state *RunState, estimate FinalRequestEstimate, usage providers.Usage) { + actualInput := InputContextTokens(usage) + if actualInput <= 0 || estimate.InputTokens <= 0 { + return + } + + providerName := "" + if state.Provider != nil { + providerName = state.Provider.Name() + } + ratio := float64(actualInput) / float64(estimate.InputTokens) + level, reason := finalContextActualLevel(estimate, actualInput) + args := []any{ + "run_id", state.RunID, + "iteration", state.Iteration, + "provider", providerName, + "model", state.Model, + "estimated_input", estimate.InputTokens, + "actual_input", actualInput, + "estimate_ratio", ratio, + "effective_window", estimate.ContextWindow, + "hard_input_cap", estimate.HardInputCapTokens, + "compact_target", estimate.CompactTargetTokens, + } + if reason != "" { + args = append(args, "reason", reason) + } + slog.Log(ctx, level, "final_context.actual", args...) +} + +func finalContextActualLevel(estimate FinalRequestEstimate, actualInput int) (slog.Level, string) { + if actualInput > estimate.HardInputCapTokens { + return slog.LevelWarn, "hard_cap_exceeded" + } + if actualInput*100 > estimate.InputTokens*105 { + return slog.LevelWarn, "estimate_undercount" + } + return slog.LevelDebug, "" +} + func (s *ThinkStage) tryEmergencyCompaction(ctx context.Context, state *RunState, reason string) bool { state.Think.OverflowRetries++ if s.deps.CompactMessages == nil { @@ -297,3 +358,64 @@ func isContextOverflowErr(err error) bool { lower := strings.ToLower(err.Error()) return providers.IsContextOverflowMessage(lower) } + +// maxBudgetReductionRetries bounds how many times a single iteration re-enters +// reduction after the central request-budget guard rejects the built request. +// Each retry runs one reduction step; three covers prune -> compact -> shrink. +const maxBudgetReductionRetries = 3 + +// contextBudgetExceededError is satisfied by the agent loop's +// RequestBudgetExceededError. Detected via interface so this package does not +// import the agent package (which would be a cycle). +type contextBudgetExceededError interface { + ContextBudgetExceeded() bool +} + +// isRequestBudgetExceededErr reports whether err (or anything it wraps) is a +// request-level context-budget overflow raised by the central pre-transport +// guard. Such an error guarantees no provider transport call was made. +func isRequestBudgetExceededErr(err error) bool { + var budgetErr contextBudgetExceededError + if errors.As(err, &budgetErr) { + return budgetErr.ContextBudgetExceeded() + } + return false +} + +// reduceForBudgetExceeded runs one pass of the reduction chain +// (prune_history -> compact_history -> shrink_memory) against the current +// state, stopping at the first step that changes anything. It increments +// OverflowRetries so a stuck request eventually aborts. Returns true when some +// reduction was applied and the iteration should retry. +func (s *ThinkStage) reduceForBudgetExceeded(ctx context.Context, state *RunState) bool { + state.Think.OverflowRetries++ + + // Rebuild the estimate against current messages so pruning targets the + // right budget. Tools are rebuilt lazily by the retried iteration. + req := s.buildChatRequest(state, nil) + estimate, err := s.finalRequestEstimate(state, req) + if err != nil { + slog.Warn("request_budget.count_failed", "run_id", state.RunID, "error", err) + return false + } + + steps := []string{"prune_history", "compact_history", "shrink_memory"} + for _, step := range steps { + changed, err := s.reduceFinalRequestContext(ctx, state, estimate, step) + if err != nil { + slog.Warn("request_budget.reduce_failed", + "run_id", state.RunID, + "step", step, + "error", err) + continue + } + if changed { + slog.Info("request_budget.reduced", + "run_id", state.RunID, + "step", step, + "overflow_retries", state.Think.OverflowRetries) + return true + } + } + return false +} diff --git a/internal/pipeline/think_stage_budget_test.go b/internal/pipeline/think_stage_budget_test.go new file mode 100644 index 00000000..f9a09bd4 --- /dev/null +++ b/internal/pipeline/think_stage_budget_test.go @@ -0,0 +1,124 @@ +package pipeline + +import ( + "context" + "errors" + "testing" + + "github.com/nextlevelbuilder/goclaw/internal/providers" +) + +// fakeBudgetErr satisfies the contextBudgetExceededError interface that +// ThinkStage detects, standing in for agent.RequestBudgetExceededError without +// importing the agent package (which would be an import cycle). +type fakeBudgetErr struct{} + +func (fakeBudgetErr) Error() string { return "context budget exceeded" } +func (fakeBudgetErr) ContextBudgetExceeded() bool { return true } + +// TestThinkStage_BudgetExceeded_ReducesThenRetries verifies that when CallLLM +// returns a request-budget-exceeded error (the central pre-transport guard +// fired), the stage runs a reduction pass and returns Continue to retry the +// iteration rather than aborting. +func TestThinkStage_BudgetExceeded_ReducesThenRetries(t *testing.T) { + pruned := false + deps := &PipelineDeps{ + Config: PipelineConfig{MaxIterations: 10, MaxTokens: 1000, ContextWindow: 200_000}, + CallLLM: func(_ context.Context, _ *RunState, _ providers.ChatRequest) (*providers.ChatResponse, error) { + return nil, fakeBudgetErr{} + }, + PruneMessages: func(msgs []providers.Message, _ int) ([]providers.Message, PruneStats) { + pruned = true + // Report a trim so reduceFinalRequestContext sees a change. + return msgs, PruneStats{ResultsTrimmed: 1} + }, + } + stage := NewThinkStage(deps) + state := defaultState() + state.Messages.SetHistory([]providers.Message{{Role: "user", Content: "big history"}}) + + if err := stage.Execute(context.Background(), state); err != nil { + t.Fatalf("Execute() should retry after reduction, got error: %v", err) + } + if stage.Result() != Continue { + t.Errorf("Result() = %v, want Continue (retry after reduction)", stage.Result()) + } + if !pruned { + t.Error("expected PruneMessages to run during budget reduction") + } + if state.Think.OverflowRetries != 1 { + t.Errorf("OverflowRetries = %d, want 1", state.Think.OverflowRetries) + } +} + +// TestThinkStage_BudgetExceeded_AbortsWhenReductionExhausted verifies that when +// no reduction step can change the request, the stage surfaces the budget error +// instead of looping forever. The guard already guaranteed zero transport calls. +func TestThinkStage_BudgetExceeded_AbortsWhenReductionExhausted(t *testing.T) { + deps := &PipelineDeps{ + Config: PipelineConfig{MaxIterations: 10, MaxTokens: 1000, ContextWindow: 200_000}, + CallLLM: func(_ context.Context, _ *RunState, _ providers.ChatRequest) (*providers.ChatResponse, error) { + return nil, fakeBudgetErr{} + }, + // No PruneMessages / CompactMessages wired and no memory section, so + // every reduction step reports "no change". + } + stage := NewThinkStage(deps) + state := defaultState() + + err := stage.Execute(context.Background(), state) + if err == nil { + t.Fatal("expected abort when reduction is exhausted, got nil") + } + if !errors.As(err, new(interface{ ContextBudgetExceeded() bool })) { + t.Fatalf("expected wrapped budget error, got %v", err) + } +} + +// TestThinkThenTool_BudgetRetry_DoesNotReexecuteStaleToolCalls is the +// full-pipeline regression guard for the stale-LastResponse hazard: when the +// budget guard rejects iteration N+1's request, ThinkStage retries the +// iteration, but ToolStage runs next in the SAME iteration and reads +// state.Think.LastResponse. If ThinkStage left the PRIOR iteration's response +// in place, ToolStage would re-execute those tool calls a second time. This +// asserts ThinkStage clears LastResponse so ToolStage short-circuits. +func TestThinkThenTool_BudgetRetry_DoesNotReexecuteStaleToolCalls(t *testing.T) { + executed := 0 + deps := &PipelineDeps{ + Config: PipelineConfig{MaxIterations: 10, MaxTokens: 1000, ContextWindow: 200_000}, + CallLLM: func(_ context.Context, _ *RunState, _ providers.ChatRequest) (*providers.ChatResponse, error) { + return nil, fakeBudgetErr{} + }, + PruneMessages: func(msgs []providers.Message, _ int) ([]providers.Message, PruneStats) { + return msgs, PruneStats{ResultsTrimmed: 1} // report a change so reduction "succeeds" + }, + ExecuteToolCall: func(_ context.Context, _ *RunState, tc providers.ToolCall) ([]providers.Message, error) { + executed++ + return []providers.Message{{Role: "tool", ToolCallID: tc.ID, Content: "ran"}}, nil + }, + } + think := NewThinkStage(deps) + tool := NewToolStage(deps) + state := defaultState() + state.Messages.SetHistory([]providers.Message{{Role: "user", Content: "big history"}}) + + // Simulate a prior iteration having produced a tool-call response that was + // already executed. It must NOT be executed again when this iteration retries. + state.Think.LastResponse = &providers.ChatResponse{ + FinishReason: "tool_calls", + ToolCalls: []providers.ToolCall{{ID: "stale-1", Name: "write_file", Arguments: map[string]any{"path": "x"}}}, + } + + if err := think.Execute(context.Background(), state); err != nil { + t.Fatalf("ThinkStage.Execute() should retry, got error: %v", err) + } + if state.Think.LastResponse != nil { + t.Fatal("ThinkStage must clear LastResponse on budget-reduction retry") + } + if err := tool.Execute(context.Background(), state); err != nil { + t.Fatalf("ToolStage.Execute() error: %v", err) + } + if executed != 0 { + t.Fatalf("stale tool call re-executed %d time(s); want 0", executed) + } +} diff --git a/internal/pipeline/usage.go b/internal/pipeline/usage.go new file mode 100644 index 00000000..626bbb42 --- /dev/null +++ b/internal/pipeline/usage.go @@ -0,0 +1,31 @@ +package pipeline + +import "github.com/nextlevelbuilder/goclaw/internal/providers" + +// InputContextTokens returns the provider-reported input occupancy for one +// request. Anthropic-style usage reports cached segments separately, while +// OpenAI-style prompt tokens already include them. +func InputContextTokens(usage providers.Usage) int { + if usage.PromptTokensIncludeCachedSegments { + return usage.PromptTokens + } + return usage.PromptTokens + usage.CacheReadTokens + usage.CacheCreationTokens +} + +// AddUsage accumulates provider usage while preserving telemetry fields that +// are easy to drop when callers hand-roll partial sums. +func AddUsage(dst *providers.Usage, src providers.Usage) { + if dst == nil { + return + } + dst.PromptTokens += src.PromptTokens + dst.CompletionTokens += src.CompletionTokens + dst.TotalTokens += src.TotalTokens + dst.CacheCreationTokens += src.CacheCreationTokens + dst.CacheReadTokens += src.CacheReadTokens + dst.PromptTokensIncludeCachedSegments = dst.PromptTokensIncludeCachedSegments || src.PromptTokensIncludeCachedSegments + dst.ThinkingTokens += src.ThinkingTokens + dst.RequestCount += src.RequestCount + dst.ImageCount += src.ImageCount + dst.WebSearchCount += src.WebSearchCount +} diff --git a/internal/store/context.go b/internal/store/context.go index 50111216..026b1c57 100644 --- a/internal/store/context.go +++ b/internal/store/context.go @@ -37,6 +37,10 @@ const ( ShellDenyGroupsKey contextKey = "goclaw_shell_deny_groups" // AgentKeyKey is the context key for the agent key/name (string identifier, e.g. "default"). AgentKeyKey contextKey = "goclaw_agent_key" + // AgentContextWindowKey carries the calling agent's configured context window. + AgentContextWindowKey contextKey = "goclaw_agent_context_window" + // AgentMaxTokensKey carries the calling agent's configured output reserve. + AgentMaxTokensKey contextKey = "goclaw_agent_max_tokens" // TenantIDKey is the context key for the tenant UUID. TenantIDKey contextKey = "goclaw_tenant_id" // CrossTenantKey indicates the caller has cross-tenant access (owner/system admin). @@ -139,6 +143,38 @@ func CredentialUserIDFromContext(ctx context.Context) string { return UserIDFromContext(ctx) } +// WithAgentContextWindow returns a context carrying the configured agent window. +func WithAgentContextWindow(ctx context.Context, window int) context.Context { + if window <= 0 { + return ctx + } + return context.WithValue(ctx, AgentContextWindowKey, window) +} + +// AgentContextWindowFromContext returns the configured agent window, or zero. +func AgentContextWindowFromContext(ctx context.Context) int { + if v, ok := ctx.Value(AgentContextWindowKey).(int); ok && v > 0 { + return v + } + return 0 +} + +// WithAgentMaxTokens returns a context carrying the configured agent max_tokens. +func WithAgentMaxTokens(ctx context.Context, maxTokens int) context.Context { + if maxTokens <= 0 { + return ctx + } + return context.WithValue(ctx, AgentMaxTokensKey, maxTokens) +} + +// AgentMaxTokensFromContext returns the configured agent max_tokens, or zero. +func AgentMaxTokensFromContext(ctx context.Context) int { + if v, ok := ctx.Value(AgentMaxTokensKey).(int); ok && v > 0 { + return v + } + return 0 +} + // WithAgentID returns a new context with the given agent UUID. func WithAgentID(ctx context.Context, id uuid.UUID) context.Context { return context.WithValue(ctx, AgentIDKey, id) diff --git a/internal/tokencount/budget_counter.go b/internal/tokencount/budget_counter.go new file mode 100644 index 00000000..a1f32cee --- /dev/null +++ b/internal/tokencount/budget_counter.go @@ -0,0 +1,198 @@ +package tokencount + +import ( + "bufio" + "bytes" + "compress/gzip" + _ "embed" + "encoding/base64" + "encoding/json" + "fmt" + "strconv" + "strings" + "sync" + + tiktoken "github.com/pkoukk/tiktoken-go" + + "github.com/nextlevelbuilder/goclaw/internal/providers" +) + +const ( + budgetEncodingPattern = `(?i:'s|'t|'re|'ve|'m|'ll|'d)|[^\r\n\p{L}\p{N}]?\p{L}+|\p{N}{1,3}| ?[^\s\p{L}\p{N}]+[\r\n]*|\s*[\r\n]+|\s+(?!\S)|\s+` + budgetMessageOverhead = 4 + budgetInlineMediaUnit = 1600 +) + +//go:embed cl100k_base.tiktoken.gz +var budgetEncodingData []byte + +// BudgetCounter counts the complete input side of a model request with one +// fixed, bundled GoClaw encoding. Its API intentionally has no model or provider +// parameter: agent configuration is the only request-budget authority. +type BudgetCounter interface { + CountText(text string) (int, error) + CountMessages(messages []providers.Message) (int, error) + CountToolSchemas(tools []providers.ToolDefinition) (int, error) + CountRequest(request providers.ChatRequest) (int, error) +} + +type fixedBudgetCounter struct { + once sync.Once + encoder *tiktoken.Tiktoken + err error +} + +// NewBudgetCounter returns GoClaw's fixed local complete-input counter. +func NewBudgetCounter() BudgetCounter { return &fixedBudgetCounter{} } + +func (c *fixedBudgetCounter) CountText(text string) (int, error) { + encoder, err := c.load() + if err != nil { + return 0, err + } + return len(encoder.Encode(text, nil, nil)), nil +} + +func (c *fixedBudgetCounter) CountMessages(messages []providers.Message) (int, error) { + encoder, err := c.load() + if err != nil { + return 0, err + } + + total := 0 + for _, message := range messages { + total += encodeBudgetText(encoder, message.Role) + total += encodeBudgetText(encoder, message.Content) + total += encodeBudgetText(encoder, message.Thinking) + total += encodeBudgetText(encoder, message.ToolCallID) + total += encodeBudgetText(encoder, message.Phase) + total += encodeBudgetText(encoder, string(message.RawAssistantContent)) + total += budgetMessageOverhead + if message.IsError { + total++ + } + for _, call := range message.ToolCalls { + total += encodeBudgetText(encoder, call.ID) + total += encodeBudgetText(encoder, call.Name) + total += encodeBudgetJSON(encoder, call.Arguments) + total += encodeBudgetJSON(encoder, call.Metadata) + total += encodeBudgetText(encoder, call.ParseError) + } + for _, image := range message.Images { + if image.Data != "" || image.URL != "" { + total += budgetInlineMediaUnit + } + } + for _, video := range message.Videos { + if video.Data != "" || video.URL != "" { + total += budgetInlineMediaUnit + } + } + } + return total, nil +} + +func (c *fixedBudgetCounter) CountToolSchemas(tools []providers.ToolDefinition) (int, error) { + if len(tools) == 0 { + return 0, nil + } + encoder, err := c.load() + if err != nil { + return 0, err + } + blob, err := json.Marshal(tools) + if err != nil { + return 0, fmt.Errorf("marshal tool schemas for budget: %w", err) + } + return len(encoder.Encode(string(blob), nil, nil)), nil +} + +func (c *fixedBudgetCounter) CountRequest(request providers.ChatRequest) (int, error) { + messages, err := c.CountMessages(request.Messages) + if err != nil { + return 0, err + } + tools, err := c.CountToolSchemas(request.Tools) + if err != nil { + return 0, err + } + return messages + tools, nil +} + +func (c *fixedBudgetCounter) load() (*tiktoken.Tiktoken, error) { + c.once.Do(func() { + c.encoder, c.err = buildBudgetEncoder(budgetEncodingData) + }) + return c.encoder, c.err +} + +func buildBudgetEncoder(compressed []byte) (*tiktoken.Tiktoken, error) { + reader, err := gzip.NewReader(bytes.NewReader(compressed)) + if err != nil { + return nil, fmt.Errorf("open bundled budget encoding: %w", err) + } + defer reader.Close() + + ranks := make(map[string]int, 100_256) + scanner := bufio.NewScanner(reader) + for scanner.Scan() { + line := strings.TrimSpace(scanner.Text()) + if line == "" { + continue + } + parts := strings.SplitN(line, " ", 2) + if len(parts) != 2 { + return nil, fmt.Errorf("invalid bundled budget encoding row") + } + token, decodeErr := base64.StdEncoding.DecodeString(parts[0]) + if decodeErr != nil { + return nil, fmt.Errorf("decode bundled budget token: %w", decodeErr) + } + rank, parseErr := strconv.Atoi(parts[1]) + if parseErr != nil { + return nil, fmt.Errorf("parse bundled budget rank: %w", parseErr) + } + ranks[string(token)] = rank + } + if err := scanner.Err(); err != nil { + return nil, fmt.Errorf("read bundled budget encoding: %w", err) + } + + special := map[string]int{ + tiktoken.ENDOFTEXT: 100257, + tiktoken.FIM_PREFIX: 100258, + tiktoken.FIM_MIDDLE: 100259, + tiktoken.FIM_SUFFIX: 100260, + tiktoken.ENDOFPROMPT: 100276, + } + core, err := tiktoken.NewCoreBPE(ranks, special, budgetEncodingPattern) + if err != nil { + return nil, fmt.Errorf("build bundled budget encoding: %w", err) + } + encoding := &tiktoken.Encoding{ + Name: "goclaw_budget_cl100k", + PatStr: budgetEncodingPattern, + MergeableRanks: ranks, + SpecialTokens: special, + } + specialSet := make(map[string]any, len(special)) + for token := range special { + specialSet[token] = true + } + return tiktoken.NewTiktoken(core, encoding, specialSet), nil +} + +func encodeBudgetText(encoder *tiktoken.Tiktoken, text string) int { + if text == "" { + return 0 + } + return len(encoder.Encode(text, nil, nil)) +} + +func encodeBudgetJSON(encoder *tiktoken.Tiktoken, value any) int { + blob, err := json.Marshal(value) + if err != nil || string(blob) == "null" || string(blob) == "{}" { + return 0 + } + return len(encoder.Encode(string(blob), nil, nil)) +} diff --git a/internal/tokencount/cl100k_base.tiktoken.gz b/internal/tokencount/cl100k_base.tiktoken.gz new file mode 100644 index 0000000000000000000000000000000000000000..f040af8b979a82fb6d154f414f1cc88b6e62b9bc GIT binary patch literal 775878 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

`9U(2x-JdoL}1c1QW4M?Py< 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®I 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 z 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]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�j^xUmC^WE7NJI2g`UF_+M9+5UWQ4$~#; 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 C;0V+J literal 0 HcmV?d00001 diff --git a/internal/tokencount/fallback_counter.go b/internal/tokencount/fallback_counter.go index d06bb92f..e98b45cc 100644 --- a/internal/tokencount/fallback_counter.go +++ b/internal/tokencount/fallback_counter.go @@ -10,43 +10,76 @@ import ( "github.com/nextlevelbuilder/goclaw/internal/providers" ) -// FallbackCounter uses rune-count/3 heuristic (matches v2 behavior). -// Used when tiktoken-go is unavailable or model is unknown. +// FallbackCounter is the BEST-EFFORT heuristic counter used when tiktoken-go is +// unavailable or the model is unknown (e.g. 9router brand models that match no +// registry prefix). It is NOT a proven token bound: real tokenizers vary by +// language, and dense scripts like Vietnamese tokenize at ~2 chars/token or +// worse. Because the pre-transport guard treats this count as its ceiling, the +// heuristic deliberately uses a CONSERVATIVE chars-per-token ratio so it errs +// toward over-counting (compact/block early) rather than under-counting (send an +// oversized request). The only way to a provable ceiling for an un-tokenizable +// model is to register it with a real tokenizer or use the provider's own token +// count. type FallbackCounter struct{} func NewFallbackCounter() *FallbackCounter { return &FallbackCounter{} } +// fallbackCharsPerToken is the conservative chars-per-token divisor for the +// guard-facing count methods. Lower than a naive ~3-4 chars/token so mixed +// Vietnamese/code content is over-counted rather than under-counted. This is a +// safety heuristic, not an exact tokenization. +const fallbackCharsPerToken = 2 + func (c *FallbackCounter) Count(_ string, text string) int { - return utf8.RuneCountInString(text) / 3 + return utf8.RuneCountInString(text) / fallbackCharsPerToken } func (c *FallbackCounter) CountMessages(_ string, msgs []providers.Message) int { total := 0 for _, m := range msgs { - total += utf8.RuneCountInString(m.Content)/3 + PerMessageOverhead + total += utf8.RuneCountInString(m.Content)/fallbackCharsPerToken + PerMessageOverhead + // Match tiktokenCounter.CountMessages coverage so the fallback path + // applies the same best-effort ceiling (thinking, tool-result id, raw + // blocks, tool args, media all count toward the wire payload). + total += utf8.RuneCountInString(m.Thinking) / fallbackCharsPerToken + total += utf8.RuneCountInString(m.ToolCallID) / fallbackCharsPerToken + total += utf8.RuneCountInString(string(m.RawAssistantContent)) / fallbackCharsPerToken for _, tc := range m.ToolCalls { - total += utf8.RuneCountInString(tc.ID)/3 + utf8.RuneCountInString(tc.Name)/3 - for k, v := range tc.Arguments { - total += utf8.RuneCountInString(k) / 3 - if s, ok := v.(string); ok { - total += utf8.RuneCountInString(s) / 3 - } else { - total += 10 - } + total += utf8.RuneCountInString(tc.ID)/fallbackCharsPerToken + utf8.RuneCountInString(tc.Name)/fallbackCharsPerToken + if b, err := json.Marshal(tc.Arguments); err == nil { + total += utf8.RuneCountInString(string(b)) / fallbackCharsPerToken } } + total += fallbackMediaTokenCost(m) } return total } -// CountToolSchemas returns rune/3 heuristic count for the JSON-serialised tool list. -// Returns 0 for nil or empty slice. +// fallbackMediaTokenCost mirrors mediaTokenCost for the heuristic counter. +func fallbackMediaTokenCost(m providers.Message) int { + const perInlineMediaItem = 1600 + cost := 0 + for _, img := range m.Images { + if img.Data != "" || img.URL != "" { + cost += perInlineMediaItem + } + } + for _, vid := range m.Videos { + if vid.Data != "" || vid.URL != "" { + cost += perInlineMediaItem + } + } + return cost +} + +// CountToolSchemas returns a conservative heuristic count for the JSON-serialised +// tool list. Returns 0 for nil or empty slice. func (c *FallbackCounter) CountToolSchemas(_ string, tools []providers.ToolDefinition) int { if len(tools) == 0 { return 0 } blob, _ := json.Marshal(tools) - return utf8.RuneCountInString(string(blob)) / 3 + return utf8.RuneCountInString(string(blob)) / fallbackCharsPerToken } // ModelContextWindow uses longest-prefix-match to avoid ambiguity diff --git a/internal/tokencount/tiktoken_counter.go b/internal/tokencount/tiktoken_counter.go index 74d4d767..c28b0168 100644 --- a/internal/tokencount/tiktoken_counter.go +++ b/internal/tokencount/tiktoken_counter.go @@ -53,9 +53,17 @@ func (c *tiktokenCounter) CountMessages(model string, msgs []providers.Message) return c.fallback.CountMessages(model, msgs) } + // The per-message count depends on the tokenizer, so the cache key MUST + // include the tokenizer identity. Otherwise a message counted with model A's + // tokenizer (e.g. cl100k for Claude) would return that stale count when the + // same message is re-counted for model B on a different tokenizer (e.g. + // o200k for GPT-4o) — most visibly on fallback candidates. Models that share + // a tokenizer correctly share cache entries. + tokenizerID := resolveModelInfo(model).TokenizerID + total := 0 for _, m := range msgs { - hash := messageHash(m) + hash := messageHash(tokenizerID, m) c.mu.RLock() cached, ok := c.msgCache[hash] @@ -67,10 +75,29 @@ func (c *tiktokenCounter) CountMessages(model string, msgs []providers.Message) } count := len(enc.Encode(m.Content, nil, nil)) + PerMessageOverhead + // Thinking/reasoning is sent back to the provider on subsequent turns + // (Anthropic requires it for tool-use passback), so it counts toward input. + if m.Thinking != "" { + count += len(enc.Encode(m.Thinking, nil, nil)) + } + // Tool result correlation id (role="tool" messages). + if m.ToolCallID != "" { + count += len(enc.Encode(m.ToolCallID, nil, nil)) + } + // Raw assistant content blocks (Anthropic thinking-block passback) are + // serialized into the wire payload verbatim — count their bytes. + if len(m.RawAssistantContent) > 0 { + count += len(enc.Encode(string(m.RawAssistantContent), nil, nil)) + } for _, tc := range m.ToolCalls { count += len(enc.Encode(tc.Name, nil, nil)) count += len(enc.Encode(tc.ID, nil, nil)) + // Tool call arguments are serialized as JSON into the request and can + // dominate token cost; the previous counter ignored them entirely. + count += encodeToolArgs(enc, tc.Arguments) } + // Media (images/videos) carry a per-item token cost when sent inline. + count += mediaTokenCost(m) c.mu.Lock() c.msgCache[hash] = count @@ -167,19 +194,84 @@ func resolveModelInfo(model string) ModelInfo { } // messageHash computes FNV-1a hash of message content for cache keying. -func messageHash(m providers.Message) uint64 { +// It MUST cover every field that CountMessages encodes; otherwise a payload +// whose thinking/args/tool-result/raw-blocks/media changed but whose Content is +// unchanged would return a stale cached count for a different wire payload. +// The tokenizer ID is folded in first because the token count is +// tokenizer-dependent: the same message yields different counts under cl100k vs +// o200k, so counts must not be shared across tokenizers. +func messageHash(tokenizerID TokenizerID, m providers.Message) uint64 { h := fnv.New64a() + h.Write([]byte(tokenizerID)) + h.Write([]byte{0}) // separator h.Write([]byte(m.Role)) h.Write([]byte{0}) // separator h.Write([]byte(m.Content)) + h.Write([]byte{0}) + h.Write([]byte(m.Thinking)) + h.Write([]byte{0}) + h.Write([]byte(m.ToolCallID)) + h.Write([]byte{0}) + h.Write(m.RawAssistantContent) for _, tc := range m.ToolCalls { h.Write([]byte{0}) h.Write([]byte(tc.ID)) h.Write([]byte(tc.Name)) + if b, err := json.Marshal(tc.Arguments); err == nil { + h.Write(b) + } + } + for _, img := range m.Images { + h.Write([]byte{0}) + h.Write([]byte(img.MimeType)) + h.Write([]byte(img.URL)) + } + for _, vid := range m.Videos { + h.Write([]byte{0}) + h.Write([]byte(vid.MimeType)) + h.Write([]byte(vid.URL)) } return h.Sum64() } +// encodeToolArgs returns the BPE token count of a tool call's arguments as they +// are serialized into the request payload (JSON). Returns 0 when arguments are +// empty or cannot be marshalled. +func encodeToolArgs(enc *tiktoken.Tiktoken, args map[string]any) int { + if len(args) == 0 { + return 0 + } + b, err := json.Marshal(args) + if err != nil { + return 0 + } + return len(enc.Encode(string(b), nil, nil)) +} + +// mediaTokenCost approximates the token cost of inline media on a message. +// This is BEST-EFFORT, not a proven bound: a flat per-item estimate can +// under-count a large inline video whose true token cost far exceeds it. It +// exists so inline media is not counted as zero. Tool-internal media that +// travels out-of-band (provider file/transcription APIs) is measured separately +// by size in the caps guard (EstimateOutOfBandMediaTokens); this path only +// covers media actually embedded in the message. Callers that persist media as +// MediaRefs (not inlined) incur no cost here. +func mediaTokenCost(m providers.Message) int { + const perInlineMediaItem = 1600 // best-effort estimate per inline image/video + cost := 0 + for _, img := range m.Images { + if img.Data != "" || img.URL != "" { + cost += perInlineMediaItem + } + } + for _, vid := range m.Videos { + if vid.Data != "" || vid.URL != "" { + cost += perInlineMediaItem + } + } + return cost +} + // NewTokenCounter creates the best available counter. // Uses tiktoken if requested, falls back to rune/3 heuristic. func NewTokenCounter(useTiktoken bool) TokenCounter { diff --git a/internal/tokencount/tiktoken_counter_test.go b/internal/tokencount/tiktoken_counter_test.go index 85bb00f3..5d8fd7ff 100644 --- a/internal/tokencount/tiktoken_counter_test.go +++ b/internal/tokencount/tiktoken_counter_test.go @@ -59,6 +59,38 @@ func TestCountMessages_Cache(t *testing.T) { } } +// TestCountMessages_CacheIsTokenizerScoped is the regression guard for the +// stale cross-tokenizer count bug: the same message counted under a cl100k +// model then an o200k model must re-encode (different tokenizer) rather than +// return the first tokenizer's cached count. This matters most on fallback +// candidates that switch tokenizer mid-run. +func TestCountMessages_CacheIsTokenizerScoped(t *testing.T) { + c := NewTiktokenCounter() + // A string whose cl100k and o200k token counts differ. + msgs := []providers.Message{ + {Role: "user", Content: "internationalization tokenization pseudopseudohypoparathyroidism"}, + } + + cl := c.CountMessages("claude-sonnet-4-5-20250929", msgs) // cl100k_base + o2 := c.CountMessages("gpt-4o", msgs) // o200k_base + + if cl <= 0 || o2 <= 0 { + t.Fatalf("counts must be positive: cl=%d o2=%d", cl, o2) + } + // The two tokenizers should produce different counts for this string; if they + // were sharing a cache entry, o2 would equal cl (the stale bug). + if cl == o2 { + t.Fatalf("cl100k and o200k returned identical count %d — cache is not tokenizer-scoped", cl) + } + // Two distinct tokenizers => two cache entries for the one message. + c.mu.RLock() + cacheLen := len(c.msgCache) + c.mu.RUnlock() + if cacheLen != 2 { + t.Errorf("cache has %d entries, want 2 (one per tokenizer)", cacheLen) + } +} + func TestCountMessages_Overhead(t *testing.T) { c := NewTiktokenCounter() msgs := []providers.Message{ diff --git a/internal/tools/read_audio_resolve.go b/internal/tools/read_audio_resolve.go index bbfdcc0b..33ce7eda 100644 --- a/internal/tools/read_audio_resolve.go +++ b/internal/tools/read_audio_resolve.go @@ -98,7 +98,7 @@ func (t *ReadAudioTool) callProvider(ctx context.Context, cp credentialProvider, Model: model, Options: map[string]any{"max_tokens": 16384}, } - reservation, reserveErr := reserveToolLLMUsage(ctx, t.usageCaps, t.Name(), providerName, model, chatReq) + reservation, reserveErr := reserveToolLLMUsageWithMedia(ctx, t.usageCaps, t.Name(), providerName, model, chatReq, mime, data) if reserveErr != nil { return nil, nil, reserveErr } @@ -120,7 +120,7 @@ func (t *ReadAudioTool) callProvider(ctx context.Context, cp credentialProvider, Model: model, Options: map[string]any{"max_tokens": 16384}, } - reservation, reserveErr := reserveToolLLMUsage(ctx, t.usageCaps, t.Name(), providerName, model, chatReq) + reservation, reserveErr := reserveToolLLMUsageWithMedia(ctx, t.usageCaps, t.Name(), providerName, model, chatReq, mime, data) if reserveErr != nil { return nil, nil, reserveErr } @@ -142,7 +142,7 @@ func (t *ReadAudioTool) callProvider(ctx context.Context, cp credentialProvider, Model: model, Options: map[string]any{"max_tokens": 16384}, } - reservation, reserveErr := reserveToolLLMUsage(ctx, t.usageCaps, t.Name(), providerName, model, chatReq) + reservation, reserveErr := reserveToolLLMUsageWithMedia(ctx, t.usageCaps, t.Name(), providerName, model, chatReq, mime, data) if reserveErr != nil { return nil, nil, reserveErr } diff --git a/internal/tools/read_document_resolve.go b/internal/tools/read_document_resolve.go index 24de1584..d32ceed1 100644 --- a/internal/tools/read_document_resolve.go +++ b/internal/tools/read_document_resolve.go @@ -160,7 +160,7 @@ func (t *ReadDocumentTool) callProvider(ctx context.Context, cp credentialProvid Model: model, Options: map[string]any{"max_tokens": 16384}, } - reservation, reserveErr := reserveToolLLMUsage(ctx, t.usageCaps, t.Name(), providerName, model, chatReq) + reservation, reserveErr := reserveToolLLMUsageWithMedia(ctx, t.usageCaps, t.Name(), providerName, model, chatReq, mime, data) if reserveErr != nil { return nil, nil, reserveErr } diff --git a/internal/tools/read_video_resolve.go b/internal/tools/read_video_resolve.go index 646068cb..0a6d0a0a 100644 --- a/internal/tools/read_video_resolve.go +++ b/internal/tools/read_video_resolve.go @@ -13,6 +13,7 @@ import ( "github.com/nextlevelbuilder/goclaw/internal/providers" "github.com/nextlevelbuilder/goclaw/internal/security" + usagecaps "github.com/nextlevelbuilder/goclaw/internal/usage/caps" ) // resolveVideoFile finds the video file path from context MediaRefs. @@ -89,7 +90,17 @@ func (t *ReadVideoTool) callProvider(ctx context.Context, cp credentialProvider, Model: model, Options: map[string]any{"max_tokens": 16384}, } - reservation, reserveErr := reserveToolLLMUsage(ctx, t.usageCaps, t.Name(), providerName, model, chatReq) + // The reservation differs by transport. The base64 path has the real + // bytes now and counts them. The URL-stream path never buffers the + // payload, so it cannot prove completeInput and fails closed under an + // agent budget rather than trusting Content-Length. + var reservation *usagecaps.Reservation + var reserveErr error + if videoURL != "" { + reservation, reserveErr = reserveToolLLMUsageUnverifiableMedia(ctx, t.usageCaps, t.Name(), providerName, model, chatReq) + } else { + reservation, reserveErr = reserveToolLLMUsageWithMedia(ctx, t.usageCaps, t.Name(), providerName, model, chatReq, mime, data) + } if reserveErr != nil { return nil, nil, reserveErr } diff --git a/internal/tools/read_video_test.go b/internal/tools/read_video_test.go index 3440f947..abd55adf 100644 --- a/internal/tools/read_video_test.go +++ b/internal/tools/read_video_test.go @@ -8,6 +8,7 @@ import ( "testing" "github.com/nextlevelbuilder/goclaw/internal/security" + "github.com/nextlevelbuilder/goclaw/internal/store" ) type mockCredentialProvider struct { @@ -52,72 +53,50 @@ func TestReadVideo_PrivateURL_Error(t *testing.T) { } } -func TestReadVideo_GeminiURL_Validation(t *testing.T) { +// TestReadVideo_GeminiURL_FailsClosedUnderAgentBudget locks the fail-closed +// contract for a streamed video URL. The stream is never buffered, so its bytes +// cannot be counted into completeInput; under an agent budget the call refuses +// before any transport rather than undercounting. Because every tool LLM call +// is agent-scoped in production, this refusal — not the downstream +// Content-Length / 2 GB / HTTP-status checks — is the reachable behavior. Those +// transport validations remain in callProvider for defense in depth but are +// unreachable once an agent budget is present. +func TestReadVideo_GeminiURL_FailsClosedUnderAgentBudget(t *testing.T) { security.SetAllowLoopbackForTest(true) defer security.SetAllowLoopbackForTest(false) - // Missing Content-Length should fail before upload. - ts1 := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Transfer-Encoding", "chunked") - w.Write([]byte("chunked data mock video")) + // A server that would otherwise satisfy the static-streaming constraints + // (valid Content-Length, 2xx). The call must still fail closed before it is + // ever contacted, because the payload cannot be counted. + hits := 0 + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + hits++ + w.Header().Set("Content-Length", "1024") + w.WriteHeader(http.StatusOK) + w.Write(make([]byte, 1024)) })) - defer ts1.Close() + defer ts.Close() tool := NewReadVideoTool(nil, nil) cp := &mockCredentialProvider{apiKey: "test-key"} - params1 := map[string]any{ + ctx := store.WithAgentContextWindow(context.Background(), 200_000) + ctx = store.WithAgentMaxTokens(ctx, 32_000) + + params := map[string]any{ "prompt": "describe this video", - "url": ts1.URL, + "url": ts.URL, "_provider_type": "gemini", } - _, _, err := tool.callProvider(context.Background(), cp, "gemini", "gemini-2.5-flash", params1) + _, _, err := tool.callProvider(ctx, cp, "gemini", "gemini-2.5-flash", params) if err == nil { - t.Fatalf("expected error for missing Content-Length") + t.Fatalf("expected fail-closed for an unverifiable streamed video URL under an agent budget") } - if !strings.Contains(err.Error(), "URL does not support static streaming") { - t.Errorf("unexpected error for missing Content-Length: %v", err) + if !strings.Contains(err.Error(), "cannot verify streamed native media") { + t.Errorf("unexpected error, want fail-closed refusal: %v", err) } - - // Content-Length over the Gemini File API limit should fail before upload. - ts2 := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Length", "2147483649") // 2GB + 1 byte - w.WriteHeader(http.StatusOK) - })) - defer ts2.Close() - - params2 := map[string]any{ - "prompt": "describe this video", - "url": ts2.URL, - "_provider_type": "gemini", - } - - _, _, err = tool.callProvider(context.Background(), cp, "gemini", "gemini-2.5-flash", params2) - if err == nil { - t.Fatalf("expected error for Content-Length exceeding 2GB") - } - if !strings.Contains(err.Error(), "exceeds the maximum limit of 2 GB") { - t.Errorf("unexpected error for limit exceed: %v", err) - } - - // Non-2xx status should be reported before upload. - ts3 := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(http.StatusNotFound) - })) - defer ts3.Close() - - params3 := map[string]any{ - "prompt": "describe this video", - "url": ts3.URL, - "_provider_type": "gemini", - } - - _, _, err = tool.callProvider(context.Background(), cp, "gemini", "gemini-2.5-flash", params3) - if err == nil { - t.Fatalf("expected error for HTTP 404 status code") - } - if !strings.Contains(err.Error(), "video URL returned status code 404") { - t.Errorf("unexpected error for HTTP status code: %v", err) + if hits != 0 { + t.Errorf("fail-closed must refuse before any transport, but the URL was contacted %d time(s)", hits) } } diff --git a/internal/tools/subagent.go b/internal/tools/subagent.go index b642e1d9..178eca1a 100644 --- a/internal/tools/subagent.go +++ b/internal/tools/subagent.go @@ -41,34 +41,38 @@ const ( // SubagentTask tracks a running or completed subagent. type SubagentTask struct { - ID string `json:"id"` - ParentID string `json:"parentId"` - Task string `json:"task"` - Label string `json:"label"` - Status string `json:"status"` // "running", "completed", "failed", "cancelled" - Result string `json:"result,omitempty"` - Depth int `json:"depth"` - Model string `json:"model,omitempty"` // model override for this subagent - TotalInputTokens int64 `json:"totalInputTokens,omitempty"` - TotalOutputTokens int64 `json:"totalOutputTokens,omitempty"` - OriginChannel string `json:"originChannel,omitempty"` - OriginChatID string `json:"originChatId,omitempty"` - OriginPeerKind string `json:"originPeerKind,omitempty"` // "direct" or "group" (for session key building) - OriginLocalKey string `json:"originLocalKey,omitempty"` // composite key with topic/thread suffix for routing - OriginUserID string `json:"originUserId,omitempty"` // parent's userID for per-user scoping propagation - OriginSenderID string `json:"originSenderId,omitempty"` // real acting sender; preserves permission attribution in announce re-ingress (#915) - OriginRole string `json:"originRole,omitempty"` // parent's RBAC role; bypasses per-user grants for admin/operator/owner in re-ingress (#915) - OriginSessionKey string `json:"originSessionKey,omitempty"` // exact parent session key for announce routing (WS uses non-standard format) - CreatedAt int64 `json:"createdAt"` - CompletedAt int64 `json:"completedAt,omitempty"` - Media []bus.MediaFile `json:"-"` // media files from tool results - OriginAgentID uuid.UUID `json:"-"` // parent agent UUID for usage caps and scoped tools - OriginTenantID uuid.UUID `json:"-"` // parent's tenant for announce routing - OriginTraceID uuid.UUID `json:"-"` // parent trace for announce linking - OriginRootSpanID uuid.UUID `json:"-"` // parent agent's root span ID - cancelFunc context.CancelFunc `json:"-"` // per-task context cancel - spawnConfig SubagentConfig `json:"-"` // resolved config at spawn time (per-agent override merged) - dbID uuid.UUID `json:"-"` // persistent DB UUID (zero if not persisted) + ID string `json:"id"` + ParentID string `json:"parentId"` + Task string `json:"task"` + Label string `json:"label"` + Status string `json:"status"` // "running", "completed", "failed", "cancelled" + Result string `json:"result,omitempty"` + Depth int `json:"depth"` + Model string `json:"model,omitempty"` // model override for this subagent + TotalInputTokens int64 `json:"totalInputTokens,omitempty"` + TotalOutputTokens int64 `json:"totalOutputTokens,omitempty"` + OriginChannel string `json:"originChannel,omitempty"` + OriginChatID string `json:"originChatId,omitempty"` + OriginPeerKind string `json:"originPeerKind,omitempty"` // "direct" or "group" (for session key building) + OriginLocalKey string `json:"originLocalKey,omitempty"` // composite key with topic/thread suffix for routing + OriginUserID string `json:"originUserId,omitempty"` // parent's userID for per-user scoping propagation + OriginSenderID string `json:"originSenderId,omitempty"` // real acting sender; preserves permission attribution in announce re-ingress (#915) + OriginRole string `json:"originRole,omitempty"` // parent's RBAC role; bypasses per-user grants for admin/operator/owner in re-ingress (#915) + OriginSessionKey string `json:"originSessionKey,omitempty"` // exact parent session key for announce routing (WS uses non-standard format) + CreatedAt int64 `json:"createdAt"` + CompletedAt int64 `json:"completedAt,omitempty"` + Media []bus.MediaFile `json:"-"` // media files from tool results + OriginAgentID uuid.UUID `json:"-"` // parent agent UUID for usage caps and scoped tools + OriginTenantID uuid.UUID `json:"-"` // parent's tenant for announce routing + OriginTraceID uuid.UUID `json:"-"` // parent trace for announce linking + OriginRootSpanID uuid.UUID `json:"-"` // parent agent's root span ID + // OriginContextWindow and OriginMaxTokens are captured from the caller at + // spawn so a shared manager cannot mix budgets between agents. + OriginContextWindow int `json:"-"` + OriginMaxTokens int `json:"-"` + cancelFunc context.CancelFunc `json:"-"` // per-task context cancel + spawnConfig SubagentConfig `json:"-"` // resolved config at spawn time (per-agent override merged) + dbID uuid.UUID `json:"-"` // persistent DB UUID (zero if not persisted) } // SubagentManager manages the lifecycle of spawned subagents. @@ -86,6 +90,9 @@ type SubagentManager struct { announceQueue *AnnounceQueue // optional: batches announces with debounce taskStore store.SubagentTaskStore // optional: persists tasks to DB (fire-and-forget) usageCaps *usagecaps.Service + // Default agent budget used only when a task was created without caller context. + contextWindow int + maxTokens int } // NewSubagentManager creates a new subagent manager. @@ -123,6 +130,13 @@ func (sm *SubagentManager) SetUsageCapService(s *usagecaps.Service) { sm.usageCaps = s } +// SetAgentBudget records the manager's fallback agent budget. Spawned tasks +// normally use their caller-specific values captured from context. +func (sm *SubagentManager) SetAgentBudget(window, maxTokens int) { + sm.contextWindow = window + sm.maxTokens = maxTokens +} + // effectiveConfig returns the per-agent context override merged with defaults, // or falls back to sm.config when no override is present. func (sm *SubagentManager) effectiveConfig(ctx context.Context) SubagentConfig { diff --git a/internal/tools/subagent_context_window_test.go b/internal/tools/subagent_context_window_test.go new file mode 100644 index 00000000..2f65ff2e --- /dev/null +++ b/internal/tools/subagent_context_window_test.go @@ -0,0 +1,139 @@ +package tools + +import ( + "context" + "errors" + "strings" + "testing" + + "github.com/nextlevelbuilder/goclaw/internal/providers" + "github.com/nextlevelbuilder/goclaw/internal/store" + usagecaps "github.com/nextlevelbuilder/goclaw/internal/usage/caps" +) + +// callTrackingProvider records whether Chat/ChatStream ran, so a test can prove +// the pre-transport guard blocked BEFORE any transport call. +type callTrackingProvider struct { + called bool +} + +func (p *callTrackingProvider) Name() string { return "tracking" } +func (p *callTrackingProvider) DefaultModel() string { return "claude-sonnet-4-5-20250929" } +func (p *callTrackingProvider) Chat(_ context.Context, _ providers.ChatRequest) (*providers.ChatResponse, error) { + p.called = true + return &providers.ChatResponse{Content: "ok", FinishReason: "stop"}, nil +} +func (p *callTrackingProvider) ChatStream(_ context.Context, _ providers.ChatRequest, _ func(providers.StreamChunk)) (*providers.ChatResponse, error) { + p.called = true + return &providers.ChatResponse{Content: "ok", FinishReason: "stop"}, nil +} + +func subagentBigMessage(model string, targetChars int) providers.Message { + return providers.Message{Role: "user", Content: strings.Repeat("word ", targetChars)} +} + +// TestSubagentSpawn_CapturesOriginContextWindow proves the Spawn path captures +// the CALLING agent's context window (set in ctx by the agent loop's +// injectContext) into SubagentTask.OriginContextWindow — the value the guard +// later uses. This locks the plumbing the previous round only claimed. +func TestSubagentSpawn_CapturesOriginContextWindow(t *testing.T) { + provider := &recordingSubagentProvider{} + manager := NewSubagentManager(provider, nil, "manager-default", nil, NewRegistry, SubagentConfig{ + MaxConcurrent: 4, MaxSpawnDepth: 3, MaxChildrenPerAgent: 8, + }) + manager.SetAgentBudget(200_000, 32_000) // manager default (would be wrong for a 128k caller) + + // Calling agent configured at 128k/8192, propagated via ctx (as injectContext does). + ctx := store.WithAgentContextWindow(context.Background(), 128_000) + ctx = store.WithAgentMaxTokens(ctx, 8_192) + + _, _, err := manager.RunSync(ctx, "parent", 0, "task", "label", "", "chan", "chat") + if err != nil { + t.Fatalf("RunSync error: %v", err) + } + + // Find the task the manager created and assert it captured the CALLER's + // 128k/8192 budget, not the manager default 200k/32000. + manager.mu.RLock() + defer manager.mu.RUnlock() + if len(manager.tasks) == 0 { + t.Fatal("no subagent task recorded") + } + for _, task := range manager.tasks { + if task.OriginContextWindow != 128_000 { + t.Fatalf("OriginContextWindow = %d, want 128000 (calling agent, not manager default)", task.OriginContextWindow) + } + if task.OriginMaxTokens != 8_192 { + t.Fatalf("OriginMaxTokens = %d, want 8192 (calling agent, not manager default)", task.OriginMaxTokens) + } + } +} + +// TestChatSubagentWithUsageCap_HonorsOriginWindow is the production-path guard +// for finding #4: a subagent request that fits the 200k model window but exceeds +// the calling agent's 128k cap must be blocked before transport. +func TestChatSubagentWithUsageCap_HonorsOriginWindow(t *testing.T) { + model := "claude-sonnet-4-5-20250929" // 200k model window, cl100k tokenizer + manager := NewSubagentManager(nil, nil, "manager-default", nil, NewRegistry, SubagentConfig{}) + // Manager default is 200k; the per-task origin window must override it. + manager.SetAgentBudget(200_000, 32_000) + + // ~140k tokens: fits 200k model window, exceeds a 128k agent cap. + req := providers.ChatRequest{ + Model: model, + Messages: []providers.Message{subagentBigMessage(model, 140_000)}, + Options: map[string]any{providers.OptMaxTokens: 4096}, + } + + // Task from a 128k-configured calling agent. + task128 := &SubagentTask{ID: "t128", OriginContextWindow: 128_000, OriginMaxTokens: 8_192} + prov := &callTrackingProvider{} + _, err := manager.chatSubagentWithUsageCap(context.Background(), task128, prov, model, req, 0, 0) + if err == nil { + t.Fatal("expected abort: 140k request exceeds 128k origin window") + } + if prov.called { + t.Fatal("provider must NOT be called when the guard aborts (transport calls must be 0)") + } + var ctxErr *usagecaps.ContextWindowExceededError + if !errors.As(err, &ctxErr) { + t.Fatalf("expected *ContextWindowExceededError, got %T: %v", err, err) + } + if ctxErr.ContextWindow != 128_000 { + t.Fatalf("guard used window %d, want 128000 (origin, not model/manager)", ctxErr.ContextWindow) + } +} + +// TestChatSubagentWithUsageCap_TwoAgentsIsolated proves two subagents from +// agents configured at 128k and 200k are guarded independently by ONE shared +// manager: the same 140k request is blocked for the 128k caller but allowed for +// the 200k caller. +func TestChatSubagentWithUsageCap_TwoAgentsIsolated(t *testing.T) { + model := "claude-sonnet-4-5-20250929" + manager := NewSubagentManager(nil, nil, "manager-default", nil, NewRegistry, SubagentConfig{}) + manager.SetAgentBudget(200_000, 32_000) + + req := providers.ChatRequest{ + Model: model, + Messages: []providers.Message{subagentBigMessage(model, 140_000)}, + Options: map[string]any{providers.OptMaxTokens: 4096}, + } + + // 128k caller: blocked. + prov128 := &callTrackingProvider{} + if _, err := manager.chatSubagentWithUsageCap(context.Background(), &SubagentTask{ID: "a128", OriginContextWindow: 128_000, OriginMaxTokens: 8_192}, prov128, model, req, 0, 0); err == nil { + t.Fatal("128k caller: expected abort for 140k request") + } + if prov128.called { + t.Fatal("128k caller: provider must not be called") + } + + // 200k caller: allowed (140k < 200k), provider reached. + prov200 := &callTrackingProvider{} + if _, err := manager.chatSubagentWithUsageCap(context.Background(), &SubagentTask{ID: "a200", OriginContextWindow: 200_000, OriginMaxTokens: 8_192}, prov200, model, req, 0, 0); err != nil { + t.Fatalf("200k caller: expected allow for 140k request, got %v", err) + } + if !prov200.called { + t.Fatal("200k caller: provider should have been called") + } +} diff --git a/internal/tools/subagent_exec.go b/internal/tools/subagent_exec.go index 15cc7c49..e443c704 100644 --- a/internal/tools/subagent_exec.go +++ b/internal/tools/subagent_exec.go @@ -344,8 +344,23 @@ func (sm *SubagentManager) executeTask(ctx context.Context, task *SubagentTask) } func (sm *SubagentManager) chatSubagentWithUsageCap(ctx context.Context, task *SubagentTask, activeProvider providers.Provider, model string, chatReq providers.ChatRequest, iteration, attempt int) (*providers.ChatResponse, error) { + budget := usagecaps.AgentBudget{ + ContextWindow: task.OriginContextWindow, + MaxTokens: task.OriginMaxTokens, + } + if budget.ContextWindow <= 0 { + budget.ContextWindow = sm.contextWindow + } + if budget.MaxTokens <= 0 { + budget.MaxTokens = sm.maxTokens + } + chatReq = clampToolRequestMaxTokens(chatReq, budget.MaxTokens) if fallbackProvider, ok := activeProvider.(*providers.ModelFallbackProvider); ok { before := func(callCtx context.Context, entry providers.FallbackCandidate, actualReq providers.ChatRequest) (providers.FallbackAfterCall, error) { + // Guard this fallback request with the calling agent budget. + if guardErr := usagecaps.GuardContextWindow(clampToolRequestMaxTokens(actualReq, budget.MaxTokens), entry.ProviderName, actualReq.Model, "subagent:"+task.ID, budget); guardErr != nil { + return nil, guardErr + } reservation, err := sm.reserveSubagentUsage(callCtx, task, entry.ProviderName, actualReq.Model, actualReq, fmt.Sprintf("%d:%d:%s:%s", iteration, attempt, entry.ProviderName, actualReq.Model)) if err != nil { return nil, err @@ -358,6 +373,10 @@ func (sm *SubagentManager) chatSubagentWithUsageCap(ctx context.Context, task *S } return fallbackProvider.ChatWithHook(ctx, chatReq, before) } + // Guard the non-fallback request with the calling agent budget. + if guardErr := usagecaps.GuardContextWindow(chatReq, activeProvider.Name(), model, "subagent:"+task.ID, budget); guardErr != nil { + return nil, guardErr + } reservation, err := sm.reserveSubagentUsage(ctx, task, activeProvider.Name(), model, chatReq, fmt.Sprintf("%d:%d", iteration, attempt)) if err != nil { return nil, err diff --git a/internal/tools/subagent_spawn.go b/internal/tools/subagent_spawn.go index f8497fed..3d275732 100644 --- a/internal/tools/subagent_spawn.go +++ b/internal/tools/subagent_spawn.go @@ -72,27 +72,29 @@ func (sm *SubagentManager) Spawn( } subTask := &SubagentTask{ - ID: id, - ParentID: parentID, - Task: task, - Label: label, - Status: "running", - Depth: depth + 1, - Model: modelOverride, - OriginChannel: channel, - OriginChatID: chatID, - OriginPeerKind: peerKind, - OriginLocalKey: ToolLocalKeyFromCtx(ctx), - OriginUserID: store.UserIDFromContext(ctx), - OriginSenderID: store.SenderIDFromContext(ctx), - OriginRole: store.RoleFromContext(ctx), - OriginSessionKey: ToolSessionKeyFromCtx(ctx), - OriginAgentID: store.AgentIDFromContext(ctx), - OriginTenantID: store.TenantIDFromContext(ctx), - OriginTraceID: tracing.TraceIDFromContext(ctx), - OriginRootSpanID: tracing.ParentSpanIDFromContext(ctx), - CreatedAt: time.Now().UnixMilli(), - spawnConfig: cfg, + ID: id, + ParentID: parentID, + Task: task, + Label: label, + Status: "running", + Depth: depth + 1, + Model: modelOverride, + OriginChannel: channel, + OriginChatID: chatID, + OriginPeerKind: peerKind, + OriginLocalKey: ToolLocalKeyFromCtx(ctx), + OriginUserID: store.UserIDFromContext(ctx), + OriginSenderID: store.SenderIDFromContext(ctx), + OriginRole: store.RoleFromContext(ctx), + OriginSessionKey: ToolSessionKeyFromCtx(ctx), + OriginAgentID: store.AgentIDFromContext(ctx), + OriginTenantID: store.TenantIDFromContext(ctx), + OriginTraceID: tracing.TraceIDFromContext(ctx), + OriginRootSpanID: tracing.ParentSpanIDFromContext(ctx), + OriginContextWindow: store.AgentContextWindowFromContext(ctx), + OriginMaxTokens: store.AgentMaxTokensFromContext(ctx), + CreatedAt: time.Now().UnixMilli(), + spawnConfig: cfg, } // Detach from parent's cancellation chain so subagent survives after parent run completes. // WithoutCancel preserves all context values (agent ID, workspace, trace info, etc.) @@ -154,26 +156,28 @@ func (sm *SubagentManager) RunSync( } subTask := &SubagentTask{ - ID: id, - ParentID: parentID, - Task: task, - Label: label, - Status: "running", - Depth: depth + 1, - Model: modelOverride, - OriginChannel: channel, - OriginChatID: chatID, - OriginLocalKey: ToolLocalKeyFromCtx(ctx), - OriginUserID: store.UserIDFromContext(ctx), - OriginSenderID: store.SenderIDFromContext(ctx), - OriginRole: store.RoleFromContext(ctx), - OriginSessionKey: ToolSessionKeyFromCtx(ctx), - OriginAgentID: store.AgentIDFromContext(ctx), - OriginTenantID: store.TenantIDFromContext(ctx), - OriginTraceID: tracing.TraceIDFromContext(ctx), - OriginRootSpanID: tracing.ParentSpanIDFromContext(ctx), - CreatedAt: time.Now().UnixMilli(), - spawnConfig: cfg, + ID: id, + ParentID: parentID, + Task: task, + Label: label, + Status: "running", + Depth: depth + 1, + Model: modelOverride, + OriginChannel: channel, + OriginChatID: chatID, + OriginLocalKey: ToolLocalKeyFromCtx(ctx), + OriginUserID: store.UserIDFromContext(ctx), + OriginSenderID: store.SenderIDFromContext(ctx), + OriginRole: store.RoleFromContext(ctx), + OriginSessionKey: ToolSessionKeyFromCtx(ctx), + OriginAgentID: store.AgentIDFromContext(ctx), + OriginTenantID: store.TenantIDFromContext(ctx), + OriginTraceID: tracing.TraceIDFromContext(ctx), + OriginRootSpanID: tracing.ParentSpanIDFromContext(ctx), + OriginContextWindow: store.AgentContextWindowFromContext(ctx), + OriginMaxTokens: store.AgentMaxTokensFromContext(ctx), + CreatedAt: time.Now().UnixMilli(), + spawnConfig: cfg, } if sm.taskStore != nil { subTask.dbID = store.GenNewID() diff --git a/internal/tools/subagent_spawn_test.go b/internal/tools/subagent_spawn_test.go index 5df6cffe..f816be7a 100644 --- a/internal/tools/subagent_spawn_test.go +++ b/internal/tools/subagent_spawn_test.go @@ -34,6 +34,10 @@ func TestRunSyncHonorsPerTaskModelOverride(t *testing.T) { ctx := store.WithTenantID(context.Background(), uuid.New()) ctx = WithParentModel(ctx, "parent-model") + // The subagent's internal LLM call is agent-scoped; the guard requires a + // budget in ctx (propagated from the calling agent via injectContext). + ctx = store.WithAgentContextWindow(ctx, 200_000) + ctx = store.WithAgentMaxTokens(ctx, 32_000) result, _, err := manager.RunSync(ctx, "parent", 0, "test task", "test", "requested-model", "test", "chat") if err != nil { diff --git a/internal/tools/usage_caps.go b/internal/tools/usage_caps.go index 0dc59e94..597a6ccb 100644 --- a/internal/tools/usage_caps.go +++ b/internal/tools/usage_caps.go @@ -2,7 +2,9 @@ package tools import ( "context" + "encoding/base64" "fmt" + "strings" "github.com/google/uuid" "github.com/nextlevelbuilder/goclaw/internal/providers" @@ -10,7 +12,42 @@ import ( usagecaps "github.com/nextlevelbuilder/goclaw/internal/usage/caps" ) +func agentBudgetFromContext(ctx context.Context) usagecaps.AgentBudget { + return usagecaps.AgentBudget{ + ContextWindow: store.AgentContextWindowFromContext(ctx), + MaxTokens: store.AgentMaxTokensFromContext(ctx), + } +} + +// reserveToolLLMUsage guards and reserves a tool-internal model call whose full +// input already lives in the ChatRequest (text plus the fixed inline-media +// convention). The fixed local BudgetCounter counts the request itself. func reserveToolLLMUsage(ctx context.Context, svc *usagecaps.Service, toolName, providerName, model string, req providers.ChatRequest) (*usagecaps.Reservation, error) { + return reserveToolLLMUsageWithMedia(ctx, svc, toolName, providerName, model, req, "", nil) +} + +// reserveToolLLMUsageWithMedia guards a native-media tool call whose payload is +// sent OUT-OF-BAND (native provider JSON body or File API upload) and is thus +// invisible to the ChatRequest the counter would otherwise see. To keep the +// budget authority model/provider-independent, the fixed local BudgetCounter +// counts the standard-base64 representation of the raw bytes as one extra +// synthetic input message. That synthetic message is added ONLY to the +// guard/reservation copy — it is never transported, because native paths build +// their own provider payload from the raw bytes separately. +// +// mediaData must be the real bytes that will be sent. A native-media call whose +// payload cannot be buffered here (a streamed remote URL) must NOT route through +// this helper with nil data — use reserveToolLLMUsageUnverifiableMedia, which +// fails closed under an agent budget instead of undercounting. +func reserveToolLLMUsageWithMedia(ctx context.Context, svc *usagecaps.Service, toolName, providerName, model string, req providers.ChatRequest, mediaMIME string, mediaData []byte) (*usagecaps.Reservation, error) { + if mediaMIME != "" || len(mediaData) > 0 { + req = appendNativeMediaBudget(req, mediaMIME, mediaData) + } + budget := agentBudgetFromContext(ctx) + req = clampToolRequestMaxTokens(req, budget.MaxTokens) + if guardErr := usagecaps.GuardContextWindow(req, providerName, model, "tool:"+toolName, budget); guardErr != nil { + return nil, guardErr + } if svc == nil { return nil, nil } @@ -21,24 +58,95 @@ func reserveToolLLMUsage(ctx context.Context, svc *usagecaps.Service, toolName, ModelID: model, ReservationKey: fmt.Sprintf("tool:%s:%s", toolName, uuid.NewString()), Messages: req.Messages, - MaxOutputTokens: maxOutputTokensFromOptions(req.Options), + MaxOutputTokens: budget.MaxTokens, }) } -func maxOutputTokensFromOptions(options map[string]any) int { - maxTokens := 1024 +// reserveToolLLMUsageUnverifiableMedia handles a native-media call whose payload +// cannot be counted before transport (e.g. a remote video streamed straight to +// the provider without buffering). The complete-input invariant cannot be proven +// for such a call, so under an agent budget it fails closed with an explicit +// streaming error rather than trusting a byte-size/Content-Length estimate. +// Without a propagated agent budget it falls through to the text path, which +// itself fails closed with an AgentBudgetWiringError — every tool LLM call is +// agent-scoped, so there is no path here that reaches transport uncounted. +func reserveToolLLMUsageUnverifiableMedia(ctx context.Context, svc *usagecaps.Service, toolName, providerName, model string, req providers.ChatRequest) (*usagecaps.Reservation, error) { + budget := agentBudgetFromContext(ctx) + if budget.ContextWindow > 0 || budget.MaxTokens > 0 { + return nil, fmt.Errorf( + "tool:%s: cannot verify streamed native media against the agent context budget (no in-memory payload to count); refusing to send", + toolName, + ) + } + return reserveToolLLMUsage(ctx, svc, toolName, providerName, model, req) +} + +// appendNativeMediaBudget returns a copy of req with one extra synthetic user +// message carrying the media MIME and the standard-base64 encoding of the raw +// payload, so the fixed BudgetCounter counts the real out-of-band input. The +// original message slice is not mutated; the returned request is guard-only. +func appendNativeMediaBudget(req providers.ChatRequest, mime string, data []byte) providers.ChatRequest { + var b strings.Builder + b.WriteString(mime) + if len(data) > 0 { + b.WriteByte('\n') + b.WriteString(base64.StdEncoding.EncodeToString(data)) + } + msgs := make([]providers.Message, len(req.Messages), len(req.Messages)+1) + copy(msgs, req.Messages) + msgs = append(msgs, providers.Message{Role: "user", Content: b.String()}) + req.Messages = msgs + return req +} + +// clampToolRequestMaxTokens enforces max_tokens <= agentMaxTokens for every +// agent-originated tool call. A request that does not declare max_tokens is set +// to the agent's max_tokens rather than left to a provider default, so the +// window invariant (completeInput + agentMaxTokens <= window) holds for the +// value actually sent. +func clampToolRequestMaxTokens(req providers.ChatRequest, agentMaxTokens int) providers.ChatRequest { + if agentMaxTokens <= 0 { + return req + } + if req.Options == nil { + req.Options = map[string]any{} + } + current, ok := maxOutputTokensDeclared(req.Options) + if !ok || current > agentMaxTokens { + req.Options[providers.OptMaxTokens] = agentMaxTokens + } + return req +} + +// maxOutputTokensDeclared reports the max_tokens declared in the request options +// and whether it was present at all. The bool distinguishes a genuinely missing +// option (ok == false) from an explicit zero, which the clamp needs so it can +// set the agent's max_tokens when the caller declared nothing. +func maxOutputTokensDeclared(options map[string]any) (int, bool) { if options == nil { - return maxTokens + return 0, false } - if v, ok := options[providers.OptMaxTokens]; ok { - switch n := v.(type) { - case int: - maxTokens = n - case int64: - maxTokens = int(n) - case float64: - maxTokens = int(n) - } + v, ok := options[providers.OptMaxTokens] + if !ok { + return 0, false } + switch n := v.(type) { + case int: + return n, true + case int64: + return int(n), true + case int32: + return int(n), true + case float64: + return int(n), true + case float32: + return int(n), true + default: + return 0, false + } +} + +func maxOutputTokensFromOptions(options map[string]any) int { + maxTokens, _ := maxOutputTokensDeclared(options) return maxTokens } diff --git a/internal/tools/usage_caps_test.go b/internal/tools/usage_caps_test.go new file mode 100644 index 00000000..5844ffb1 --- /dev/null +++ b/internal/tools/usage_caps_test.go @@ -0,0 +1,159 @@ +package tools + +import ( + "bytes" + "context" + "errors" + "strings" + "testing" + + "github.com/nextlevelbuilder/goclaw/internal/providers" + "github.com/nextlevelbuilder/goclaw/internal/store" + usagecaps "github.com/nextlevelbuilder/goclaw/internal/usage/caps" +) + +// bigContent builds a user message string that exceeds `targetChars` words under +// the caps guard's fixed BudgetCounter, so the guard math is predictable here. +func bigContent(targetChars int) string { + return strings.Repeat("word ", targetChars) +} + +// withToolAgentBudget mirrors what the agent loop's injectContext does before a +// tool runs: it propagates the CALLING agent's context window and max_tokens. +func withToolAgentBudget(window, maxTokens int) context.Context { + ctx := store.WithAgentContextWindow(context.Background(), window) + return store.WithAgentMaxTokens(ctx, maxTokens) +} + +// TestReserveToolLLMUsage_HonorsAgentWindowFromContext is the production-path +// regression guard: reserveToolLLMUsage reads the CALLING agent's budget from +// ctx (set by injectContext via store.WithAgentContextWindow / +// store.WithAgentMaxTokens) and enforces completeInput + max_tokens <= window. +// Model/provider are never budget authorities. +func TestReserveToolLLMUsage_HonorsAgentWindowFromContext(t *testing.T) { + model := "claude-sonnet-4-5-20250929" // 200k model window — must NOT matter + req := providers.ChatRequest{ + Model: model, + Messages: []providers.Message{{Role: "user", Content: bigContent(40_000)}}, + Options: map[string]any{providers.OptMaxTokens: 4096}, + } + + // A 200k agent window admits ~40k tokens of prompt. + ctxBig := withToolAgentBudget(200_000, 8_192) + if _, err := reserveToolLLMUsage(ctxBig, nil, "read_document", "anthropic", model, req); err != nil { + t.Fatalf("expected allow under 200k agent window, got %v", err) + } + + // A 20k agent window must block the SAME request before transport. + ctxSmall := withToolAgentBudget(20_000, 8_192) + _, err := reserveToolLLMUsage(ctxSmall, nil, "read_document", "anthropic", model, req) + if err == nil { + t.Fatal("expected abort when agent window (20k) is below the request size") + } + var ctxErr *usagecaps.ContextWindowExceededError + if !errors.As(err, &ctxErr) { + t.Fatalf("expected *ContextWindowExceededError, got %T: %v", err, err) + } + if ctxErr.ContextWindow != 20_000 { + t.Fatalf("guard used window %d, want 20000 (agent cap, not model window)", ctxErr.ContextWindow) + } +} + +// TestReserveToolLLMUsage_FailsClosedWithoutAgentBudget proves an agent-scoped +// tool call reaching the model gate WITHOUT a propagated budget fails closed +// with a wiring error before any transport — it must never silently guess a +// model window. +func TestReserveToolLLMUsage_FailsClosedWithoutAgentBudget(t *testing.T) { + req := providers.ChatRequest{ + Model: "gpt-4o", + Messages: []providers.Message{{Role: "user", Content: "tiny prompt"}}, + Options: map[string]any{providers.OptMaxTokens: 4096}, + } + _, err := reserveToolLLMUsage(context.Background(), nil, "read_document", "openai", "gpt-4o", req) + if err == nil { + t.Fatal("expected wiring error without a propagated agent budget") + } + var wiringErr *usagecaps.AgentBudgetWiringError + if !errors.As(err, &wiringErr) { + t.Fatalf("expected *AgentBudgetWiringError, got %T: %v", err, err) + } +} + +// TestReserveToolLLMUsageWithMedia_CountsNativeMediaBytes proves the out-of-band +// media payload is part of completeInput. The fixed BudgetCounter counts the +// standard-base64 representation of the raw bytes (a model/provider-independent +// rule), so a small prompt with a large native-media payload is blocked when it +// no longer fits the CALLING agent's window. The bytes are counted, never +// transported — the guard copy carries them, the real request does not. +func TestReserveToolLLMUsageWithMedia_CountsNativeMediaBytes(t *testing.T) { + model := "gpt-4o" + req := func() providers.ChatRequest { + return providers.ChatRequest{ + Model: model, + Messages: []providers.Message{{Role: "user", Content: "Transcribe this."}}, + Options: map[string]any{providers.OptMaxTokens: 4096}, + } + } + + // A small media payload under a large agent window is allowed. + small := bytes.Repeat([]byte{0xAB}, 1024) + ctxBig := withToolAgentBudget(128_000, 8_192) + if _, err := reserveToolLLMUsageWithMedia(ctxBig, nil, "read_document", "openai", model, req(), "application/pdf", small); err != nil { + t.Fatalf("small native media must fit a 128k window, got %v", err) + } + + // A large media payload against a small agent window is blocked BEFORE + // transport: base64(256 KiB) is well over the 20k window's input cap. + big := bytes.Repeat([]byte{0xCD}, 256*1024) + ctxSmall := withToolAgentBudget(20_000, 8_192) + _, err := reserveToolLLMUsageWithMedia(ctxSmall, nil, "read_document", "openai", model, req(), "application/pdf", big) + if err == nil { + t.Fatal("expected abort: large native media must exceed a 20k agent window") + } + var ctxErr *usagecaps.ContextWindowExceededError + if !errors.As(err, &ctxErr) { + t.Fatalf("expected *ContextWindowExceededError, got %T: %v", err, err) + } + if ctxErr.ContextWindow != 20_000 { + t.Fatalf("guard used window %d, want 20000 (agent cap)", ctxErr.ContextWindow) + } +} + +// TestReserveToolLLMUsageUnverifiableMedia_FailsClosedUnderAgentBudget proves a +// native-media call whose payload cannot be buffered (a streamed remote URL) +// fails closed under an agent budget rather than undercounting — the +// complete-input invariant cannot be proven, so it refuses to send. +func TestReserveToolLLMUsageUnverifiableMedia_FailsClosedUnderAgentBudget(t *testing.T) { + model := "gemini-2.0-flash" + req := providers.ChatRequest{ + Model: model, + Messages: []providers.Message{{Role: "user", Content: "Analyze this video."}}, + Options: map[string]any{providers.OptMaxTokens: 4096}, + } + + // Under an agent budget: no in-memory payload to count -> refuse with an + // explicit streaming error (not a wiring error). + ctx := withToolAgentBudget(200_000, 8_192) + _, err := reserveToolLLMUsageUnverifiableMedia(ctx, nil, "read_video", "gemini", model, req) + if err == nil { + t.Fatal("expected fail-closed for unverifiable streamed media under an agent budget") + } + var wiringErr *usagecaps.AgentBudgetWiringError + if errors.As(err, &wiringErr) { + t.Fatalf("under a valid agent budget the failure must be the streaming refusal, not a wiring error: %v", err) + } + if !strings.Contains(err.Error(), "refusing to send") { + t.Fatalf("expected an explicit streaming refusal, got %v", err) + } + + // Without a propagated agent budget it falls through to the text path, which + // itself fails closed with a wiring error — every tool LLM call is + // agent-scoped, so no path here reaches transport uncounted. + _, err = reserveToolLLMUsageUnverifiableMedia(context.Background(), nil, "read_video", "gemini", model, req) + if err == nil { + t.Fatal("expected fail-closed without a propagated agent budget") + } + if !errors.As(err, &wiringErr) { + t.Fatalf("expected *AgentBudgetWiringError without a budget, got %T: %v", err, err) + } +} diff --git a/internal/usage/caps/background_budget_test.go b/internal/usage/caps/background_budget_test.go new file mode 100644 index 00000000..72fb7e5b --- /dev/null +++ b/internal/usage/caps/background_budget_test.go @@ -0,0 +1,139 @@ +package caps + +import ( + "context" + "errors" + "strings" + "testing" + + "github.com/google/uuid" + "github.com/nextlevelbuilder/goclaw/internal/providers" + "github.com/nextlevelbuilder/goclaw/internal/store" +) + +// A background/utility LLM call (carries an agent ID but no wired per-agent +// budget — e.g. vault.classify / vault.batch_summarize) must NOT fail closed +// with an AgentBudgetWiringError. It should fall through to a safe default +// budget and reach the provider. Regression guard for the vault-enrichment +// break introduced when the agent-only guard was added. +func TestServiceChat_BackgroundBudgetFallback_ReachesProvider(t *testing.T) { + // nil store service: falls back to a direct provider.Chat after the guard, + // isolating the budget-wiring behaviour from usage-cap policy plumbing. + var svc *Service + provider := &fakeChatProvider{name: "openrouter", model: "token/model"} + + ctx := store.WithAgentID(context.Background(), uuid.New()) // agent-scoped, but NO window/max_tokens wired + _, err := svc.Chat(ctx, provider, providers.ChatRequest{ + Model: "token/model", + Messages: []providers.Message{{Role: "user", Content: "classify this short doc"}}, + Options: map[string]any{providers.OptMaxTokens: 4096}, + }, ChatOptions{ + AgentID: uuid.New(), + ProviderName: "openrouter", + Purpose: "vault.classify", + MaxOutputTokens: 4096, + }) + if err != nil { + var wiringErr *AgentBudgetWiringError + if errors.As(err, &wiringErr) { + t.Fatalf("background call must not fail closed with a wiring error: %v", err) + } + t.Fatalf("background call returned unexpected error: %v", err) + } + if provider.calls != 1 { + t.Fatalf("provider calls = %d, want 1 (background call must reach transport)", provider.calls) + } +} + +// The fallback is a SAFE default, not a bypass: a background call whose real +// input exceeds the default window is still aborted before transport by the +// window guard. Proves fallback != "guess a model window and wave it through". +func TestServiceChat_BackgroundBudgetFallback_StillGuardsOversizedInput(t *testing.T) { + var svc *Service + provider := &fakeChatProvider{name: "openrouter", model: "token/model"} + + // Force a tiny window via opts so the guard has a small ceiling; leave + // max_tokens unwired so the fallback fills only that half. + huge := strings.Repeat("token ", 60_000) // well over a small window once counted + ctx := store.WithAgentID(context.Background(), uuid.New()) + _, err := svc.Chat(ctx, provider, providers.ChatRequest{ + Model: "token/model", + Messages: []providers.Message{{Role: "user", Content: huge}}, + Options: map[string]any{providers.OptMaxTokens: 1024}, + }, ChatOptions{ + AgentID: uuid.New(), + ProviderName: "openrouter", + Purpose: "vault.batch_summarize", + AgentContextWindow: 8_000, // operator-provided window is preserved by the fallback + }) + if err == nil { + t.Fatal("expected the window guard to abort an oversized background request") + } + var ctxErr *ContextWindowExceededError + if !errors.As(err, &ctxErr) { + t.Fatalf("expected *ContextWindowExceededError, got %T: %v", err, err) + } + if ctxErr.ContextWindow != 8_000 { + t.Fatalf("guard used window %d, want 8000 (operator value preserved, not defaulted)", ctxErr.ContextWindow) + } + if provider.calls != 0 { + t.Fatalf("provider calls = %d, want 0 (oversized request must not reach transport)", provider.calls) + } +} + +// A non-agent-scoped call (no agent ID anywhere) must be untouched by the +// fallback path — it is neither guarded nor defaulted, matching prior behaviour. +func TestServiceChat_NonAgentScoped_NoFallbackNoGuard(t *testing.T) { + var svc *Service + provider := &fakeChatProvider{name: "openrouter", model: "token/model"} + + huge := strings.Repeat("token ", 60_000) + _, err := svc.Chat(context.Background(), provider, providers.ChatRequest{ + Model: "token/model", + Messages: []providers.Message{{Role: "user", Content: huge}}, + Options: map[string]any{providers.OptMaxTokens: 1024}, + }, ChatOptions{ + ProviderName: "openrouter", + Purpose: "system.utility", + }) + if err != nil { + t.Fatalf("non-agent-scoped call must pass through untouched, got %v", err) + } + if provider.calls != 1 { + t.Fatalf("provider calls = %d, want 1", provider.calls) + } +} + +// backgroundBudgetFallback fills only the missing halves and preserves any +// operator-provided value; it never lets the reserve meet/exceed the window. +func TestBackgroundBudgetFallback_FillsOnlyMissing(t *testing.T) { + // Both missing: window defaulted, max_tokens taken from opts.MaxOutputTokens. + got := backgroundBudgetFallback("vault.classify", AgentBudget{}, ChatOptions{MaxOutputTokens: 4096}) + if got.ContextWindow != defaultBackgroundContextWindow { + t.Errorf("ContextWindow = %d, want %d", got.ContextWindow, defaultBackgroundContextWindow) + } + if got.MaxTokens != 4096 { + t.Errorf("MaxTokens = %d, want 4096 (from opts.MaxOutputTokens)", got.MaxTokens) + } + + // opts has no max_tokens either: falls back to the package default. + got = backgroundBudgetFallback("vault.classify", AgentBudget{}, ChatOptions{}) + if got.MaxTokens != defaultBackgroundMaxTokens { + t.Errorf("MaxTokens = %d, want %d (package default)", got.MaxTokens, defaultBackgroundMaxTokens) + } + + // Operator window preserved; only max_tokens defaulted. + got = backgroundBudgetFallback("vault.classify", AgentBudget{ContextWindow: 32_000}, ChatOptions{MaxOutputTokens: 2048}) + if got.ContextWindow != 32_000 { + t.Errorf("ContextWindow = %d, want 32000 (preserved)", got.ContextWindow) + } + if got.MaxTokens != 2048 { + t.Errorf("MaxTokens = %d, want 2048", got.MaxTokens) + } + + // Reserve must never meet/exceed the window. + got = backgroundBudgetFallback("vault.classify", AgentBudget{ContextWindow: 1000, MaxTokens: 4000}, ChatOptions{}) + if got.MaxTokens >= got.ContextWindow { + t.Errorf("MaxTokens %d must be < ContextWindow %d", got.MaxTokens, got.ContextWindow) + } +} diff --git a/internal/usage/caps/chat_call.go b/internal/usage/caps/chat_call.go index 5883d263..68810784 100644 --- a/internal/usage/caps/chat_call.go +++ b/internal/usage/caps/chat_call.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "log/slog" "github.com/google/uuid" "github.com/nextlevelbuilder/goclaw/internal/providers" @@ -19,6 +20,10 @@ type ChatOptions struct { ReservationKey string Purpose string MaxOutputTokens int + // AgentContextWindow and AgentMaxTokens are the caller agent's configured + // request budget. Both are required for an agent-scoped call. + AgentContextWindow int + AgentMaxTokens int } // Chat wraps Provider.Chat with the same usage-cap preflight and reconciliation @@ -28,7 +33,44 @@ func (s *Service) Chat(ctx context.Context, provider providers.Provider, req pro if provider == nil { return nil, errors.New("usage cap chat: provider is nil") } + agentID := opts.AgentID + if agentID == uuid.Nil { + agentID = store.AgentIDFromContext(ctx) + } + budget := AgentBudget{ + ContextWindow: opts.AgentContextWindow, + MaxTokens: opts.AgentMaxTokens, + } + if budget.ContextWindow <= 0 { + budget.ContextWindow = store.AgentContextWindowFromContext(ctx) + } + if budget.MaxTokens <= 0 { + budget.MaxTokens = store.AgentMaxTokensFromContext(ctx) + } + agentScoped := agentID != uuid.Nil + if agentScoped && !budget.valid() { + // A call carrying an agent ID but no wired request budget is a + // background/utility LLM call (e.g. vault.classify, vault.batch_summarize) + // that runs OUTSIDE an agent turn, where no per-agent window/max_tokens is + // propagated. Rather than fail closed — which silently degrades enrichment + // to the extractive fallback — fill a safe default budget so the window + // guard still protects the provider transport. Logged at WARN so a genuine + // agent-run wiring regression remains observable instead of masked. + budget = backgroundBudgetFallback(opts.Purpose, budget, opts) + } + if agentScoped { + req = clampRequestMaxTokens(req, budget.MaxTokens) + } if s == nil || s.store == nil { + guardName := opts.ProviderName + if guardName == "" { + guardName = provider.Name() + } + if agentScoped { + if guardErr := GuardContextWindow(req, guardName, req.Model, opts.Purpose, budget); guardErr != nil { + return nil, guardErr + } + } return provider.Chat(ctx, req) } if fallback, ok := provider.(*providers.ModelFallbackProvider); ok { @@ -40,6 +82,12 @@ func (s *Service) Chat(ctx context.Context, provider providers.Provider, req pro } callOpts.ModelID = actualReq.Model callOpts.ReservationKey = "" + if agentScoped { + actualReq = clampRequestMaxTokens(actualReq, budget.MaxTokens) + if guardErr := GuardContextWindow(actualReq, callOpts.ProviderName, actualReq.Model, opts.Purpose, budget); guardErr != nil { + return nil, guardErr + } + } usageReq := s.chatRequest(callCtx, entry.Provider, actualReq, callOpts) scopedCtx := scopedRequestContext(callCtx, usageReq) reservation, err := s.Preflight(scopedCtx, usageReq) @@ -54,6 +102,15 @@ func (s *Service) Chat(ctx context.Context, provider providers.Provider, req pro }) } + guardName := opts.ProviderName + if guardName == "" { + guardName = provider.Name() + } + if agentScoped { + if guardErr := GuardContextWindow(req, guardName, req.Model, opts.Purpose, budget); guardErr != nil { + return nil, guardErr + } + } usageReq := s.chatRequest(ctx, provider, req, opts) scopedCtx := scopedRequestContext(ctx, usageReq) reservation, err := s.Preflight(scopedCtx, usageReq) @@ -122,6 +179,91 @@ func reservationKey(opts ChatOptions) string { return fmt.Sprintf("%s:%s", purpose, uuid.NewString()) } +// defaultBackgroundContextWindow bounds background/utility LLM calls that carry +// an agent ID but no wired per-agent budget. It is intentionally conservative: +// large enough for enrichment prompts (classify/summarize send truncated docs), +// small enough that a runaway prompt is still caught by the window guard. +const defaultBackgroundContextWindow = 200_000 + +// defaultBackgroundMaxTokens is the output reserve used when a background call +// declares no max_tokens of its own. +const defaultBackgroundMaxTokens = 4_096 + +// backgroundBudgetFallback fills a safe budget for an agent-scoped call whose +// window/max_tokens were never wired (a background/utility call outside an agent +// turn). Any operator-provided value is preserved; only the missing halves are +// defaulted. The window guard still runs against the result, so an oversized +// request fails closed on real input rather than on missing wiring. +func backgroundBudgetFallback(purpose string, budget AgentBudget, opts ChatOptions) AgentBudget { + out := budget + if out.MaxTokens <= 0 { + out.MaxTokens = opts.MaxOutputTokens + } + if out.MaxTokens <= 0 { + out.MaxTokens = defaultBackgroundMaxTokens + } + if out.ContextWindow <= 0 { + out.ContextWindow = defaultBackgroundContextWindow + } + // Keep the invariant satisfiable: never let the reserve meet/exceed the window. + if out.MaxTokens >= out.ContextWindow { + out.MaxTokens = out.ContextWindow / 2 + } + slog.Warn("caps.background_budget_default", + "purpose", purpose, + "context_window", out.ContextWindow, + "max_tokens", out.MaxTokens, + "reason", "agent-scoped call missing wired budget; using safe default instead of fail-closed", + ) + return out +} + +func clampRequestMaxTokens(req providers.ChatRequest, agentMaxTokens int) providers.ChatRequest { + if agentMaxTokens <= 0 { + return req + } + if req.Options == nil { + req.Options = map[string]any{} + } + // A request that declares no max_tokens is SET to the agent's max_tokens + // rather than left to a provider default, so the window invariant holds for + // the value actually sent. A declared value is clamped down when it exceeds + // the agent cap (or is a non-positive explicit value). + current, ok := maxOutputTokensDeclared(req.Options) + if !ok || current <= 0 || current > agentMaxTokens { + req.Options[providers.OptMaxTokens] = agentMaxTokens + } + return req +} + +// maxOutputTokensDeclared reports the declared max_tokens and whether the option +// was present at all. The bool lets the clamp distinguish a genuinely missing +// option from an explicit value, so a caller that declared nothing is pinned to +// the agent's max_tokens. +func maxOutputTokensDeclared(options map[string]any) (int, bool) { + if options == nil { + return 0, false + } + v, ok := options[providers.OptMaxTokens] + if !ok { + return 0, false + } + switch n := v.(type) { + case int: + return n, true + case int64: + return int(n), true + case int32: + return int(n), true + case float64: + return int(n), true + case float32: + return int(n), true + default: + return 0, false + } +} + func maxOutputTokens(req providers.ChatRequest, fallback int) int { if fallback <= 0 { fallback = 1024 diff --git a/internal/usage/caps/context_guard.go b/internal/usage/caps/context_guard.go new file mode 100644 index 00000000..bd212658 --- /dev/null +++ b/internal/usage/caps/context_guard.go @@ -0,0 +1,90 @@ +package caps + +import ( + "fmt" + "log/slog" + + "github.com/nextlevelbuilder/goclaw/internal/providers" + "github.com/nextlevelbuilder/goclaw/internal/tokencount" +) + +var contextGuardCounter tokencount.BudgetCounter = tokencount.NewBudgetCounter() + +// AgentBudget is the complete request budget configured for one agent. +// Model and provider are intentionally absent: they are not budget authorities. +type AgentBudget struct { + ContextWindow int + MaxTokens int +} + +func (b AgentBudget) valid() bool { return b.ContextWindow > 0 && b.MaxTokens > 0 } + +// AgentBudgetWiringError means an agent-scoped call reached a model-call gate +// without the configured window and max_tokens that must have been propagated. +type AgentBudgetWiringError struct { + Purpose string + Missing string +} + +func (e *AgentBudgetWiringError) Error() string { + return fmt.Sprintf("agent budget wiring error: missing %s (purpose=%s)", e.Missing, e.Purpose) +} + +// ContextWindowExceededError is returned before provider transport when a +// complete agent request cannot fit its configured budget. +type ContextWindowExceededError struct { + Provider string + Model string + Purpose string + InputTokens int + OutputReserve int + ContextWindow int +} + +func (e *ContextWindowExceededError) Error() string { + return fmt.Sprintf( + "context window exceeded: input=%d + output_reserve=%d > window=%d (provider=%s model=%s purpose=%s)", + e.InputTokens, e.OutputReserve, e.ContextWindow, e.Provider, e.Model, e.Purpose, + ) +} + +func (e *ContextWindowExceededError) ContextBudgetExceeded() bool { return true } + +// GuardContextWindow enforces completeInput + agentMaxTokens <= agentWindow. +// Provider/model are retained only for diagnostics. +func GuardContextWindow(req providers.ChatRequest, providerName, model, purpose string, budget AgentBudget) error { + if !budget.valid() { + missing := "agent_context_window,agent_max_tokens" + switch { + case budget.ContextWindow > 0: + missing = "agent_max_tokens" + case budget.MaxTokens > 0: + missing = "agent_context_window" + } + return &AgentBudgetWiringError{Purpose: purpose, Missing: missing} + } + input, err := contextGuardCounter.CountRequest(req) + if err != nil { + return fmt.Errorf("count complete request: %w", err) + } + if input+budget.MaxTokens <= budget.ContextWindow { + return nil + } + slog.Info("caps.context_guard", + "provider", providerName, + "model", model, + "purpose", purpose, + "input_tokens", input, + "output_reserve_tokens", budget.MaxTokens, + "context_window", budget.ContextWindow, + "action", "abort", + ) + return &ContextWindowExceededError{ + Provider: providerName, + Model: model, + Purpose: purpose, + InputTokens: input, + OutputReserve: budget.MaxTokens, + ContextWindow: budget.ContextWindow, + } +} diff --git a/internal/usage/caps/context_guard_test.go b/internal/usage/caps/context_guard_test.go new file mode 100644 index 00000000..268211f7 --- /dev/null +++ b/internal/usage/caps/context_guard_test.go @@ -0,0 +1,152 @@ +package caps + +import ( + "context" + "errors" + "strings" + "testing" + + "github.com/google/uuid" + "github.com/nextlevelbuilder/goclaw/internal/providers" +) + +// stubGuardProvider records whether Chat was invoked and returns a canned reply. +type stubGuardProvider struct { + called bool +} + +func (p *stubGuardProvider) Name() string { return "stubguard" } +func (p *stubGuardProvider) DefaultModel() string { return "claude-3-5-sonnet" } +func (p *stubGuardProvider) Chat(_ context.Context, _ providers.ChatRequest) (*providers.ChatResponse, error) { + p.called = true + return &providers.ChatResponse{Content: "ok"}, nil +} +func (p *stubGuardProvider) ChatStream(_ context.Context, _ providers.ChatRequest, _ func(providers.StreamChunk)) (*providers.ChatResponse, error) { + p.called = true + return &providers.ChatResponse{Content: "ok"}, nil +} + +// bigMessage returns a user message whose complete-input count is at least +// target tokens, using the fixed model/provider-independent budget counter. +func bigMessage(t *testing.T, target int) providers.Message { + t.Helper() + low, high := 1, target*8 + for low < high { + mid := low + (high-low)/2 + msg := providers.Message{Role: "user", Content: strings.Repeat("word ", mid)} + count, err := contextGuardCounter.CountMessages([]providers.Message{msg}) + if err != nil { + t.Fatal(err) + } + if count < target { + low = mid + 1 + } else { + high = mid + } + } + return providers.Message{Role: "user", Content: strings.Repeat("word ", low)} +} + +// TestCapsChat_NonAgentCallSkipsWindowGuard proves a call with no AgentID and no +// agent budget is NOT forced against any model window: it passes straight to the +// provider even when huge. Model window is not a budget authority. +func TestCapsChat_NonAgentCallSkipsWindowGuard(t *testing.T) { + var svc *Service // nil service => Lite path + prov := &stubGuardProvider{} + // ~200k tokens: would blow any model window, but this is not agent-scoped. + msg := bigMessage(t, 200_000) + req := providers.ChatRequest{ + Model: "gpt-4o", + Messages: []providers.Message{msg}, + Options: map[string]any{providers.OptMaxTokens: 4096}, + } + if _, err := svc.Chat(context.Background(), prov, req, ChatOptions{Purpose: "non-agent"}); err != nil { + t.Fatalf("non-agent call must not be window-guarded, got %v", err) + } + if !prov.called { + t.Fatal("provider.Chat should have been called for a non-agent call") + } +} + +// TestCapsChat_AgentMissingBudgetUsesSafeDefault proves an agent-scoped call via +// Service.Chat (AgentID set) that reaches the gate WITHOUT a wired budget does +// NOT fail closed with a wiring error. These are background/utility calls (e.g. +// vault.classify) that run outside an agent turn; failing closed silently +// degrades enrichment. Instead a safe default budget is filled and the call +// reaches transport. NOTE: the agent-RUN tool path guards via GuardContextWindow +// directly (see internal/tools/usage_caps.go) and still fails closed — this +// relaxation is scoped to Service.Chat only. +func TestCapsChat_AgentMissingBudgetUsesSafeDefault(t *testing.T) { + var svc *Service + prov := &stubGuardProvider{} + req := providers.ChatRequest{ + Model: "gpt-4o", + Messages: []providers.Message{{Role: "user", Content: "hello"}}, + Options: map[string]any{providers.OptMaxTokens: 1024}, + } + _, err := svc.Chat(context.Background(), prov, req, ChatOptions{ + AgentID: uuid.New(), + Purpose: "vault.classify", + }) + if err != nil { + var wiringErr *AgentBudgetWiringError + if errors.As(err, &wiringErr) { + t.Fatalf("background call must not fail closed with a wiring error: %v", err) + } + t.Fatalf("unexpected error from safe-default background call: %v", err) + } + if !prov.called { + t.Fatal("provider.Chat should have been called after filling a safe default budget") + } +} + +// TestCapsChat_AgentBudgetSameRequestDiffersByWindow is the core agent-only +// contract test: the SAME request is blocked for a 128k agent and allowed for a +// 200k agent, decided only by the agent's configured window, never the model's. +func TestCapsChat_AgentBudgetSameRequestDiffersByWindow(t *testing.T) { + var svc *Service + agentID := uuid.New() + // ~140k tokens: fits a 200k window, exceeds a 128k window. + msg := bigMessage(t, 140_000) + req := providers.ChatRequest{ + Model: "gpt-4o", // 128k model window — irrelevant to the decision + Messages: []providers.Message{msg}, + Options: map[string]any{providers.OptMaxTokens: 4096}, + } + + // 128k agent: blocked. + prov128 := &stubGuardProvider{} + _, err := svc.Chat(context.Background(), prov128, req, ChatOptions{ + AgentID: agentID, + Purpose: "cap-128k", + AgentContextWindow: 128_000, + AgentMaxTokens: 8_192, + }) + if err == nil { + t.Fatal("128k agent: expected abort for 140k request") + } + if prov128.called { + t.Fatal("128k agent: provider must NOT be called when the guard aborts (transport calls must be 0)") + } + var ctxErr *ContextWindowExceededError + if !errors.As(err, &ctxErr) { + t.Fatalf("expected *ContextWindowExceededError, got %T: %v", err, err) + } + if ctxErr.ContextWindow != 128_000 { + t.Fatalf("guard reported window %d, want 128000 (agent window, not model)", ctxErr.ContextWindow) + } + + // 200k agent: allowed, provider reached. + prov200 := &stubGuardProvider{} + if _, err := svc.Chat(context.Background(), prov200, req, ChatOptions{ + AgentID: agentID, + Purpose: "cap-200k", + AgentContextWindow: 200_000, + AgentMaxTokens: 8_192, + }); err != nil { + t.Fatalf("200k agent: expected allow for 140k request, got %v", err) + } + if !prov200.called { + t.Fatal("200k agent: provider should have been called") + } +} diff --git a/ui/web/src/i18n/locales/en/agents.json b/ui/web/src/i18n/locales/en/agents.json index 3b92f0d1..e8b8dec0 100644 --- a/ui/web/src/i18n/locales/en/agents.json +++ b/ui/web/src/i18n/locales/en/agents.json @@ -812,15 +812,17 @@ }, "compaction": { "title": "Compaction", - "description": "Context window compaction and memory flush settings", + "description": "Final request context guard, history compaction, and memory flush settings", "maxHistoryShare": "Max History Share (0-1)", - "maxHistoryShareTip": "Maximum fraction of context window for conversation history (e.g. 0.85 = 85%). Compaction triggers when exceeded.", + "maxHistoryShareTip": "History-only threshold for post-turn history compaction. This is not the final request limit.", "keepLastMessages": "Keep Last Messages", "keepLastMessagesTip": "Recent messages kept after compaction. Older messages are replaced by a summary.", "timeoutSeconds": "Timeout Seconds", "timeoutSecondsTip": "Maximum time to wait for a compaction summary before keeping the original history.", "memoryFlush": "Memory Flush", - "memoryFlushTip": "Before compaction, the agent gets a turn to save important context to memory files. Also triggers Knowledge Graph extraction." + "memoryFlushTip": "Before compaction, the agent gets a turn to save important context to memory files. Also triggers Knowledge Graph extraction.", + "maxRequestShare": "Max Request Share (0-1)", + "maxRequestShareTip": "Maximum fraction of the agent context window allowed for the final request sent to the model. If exceeded, the system reduces context before calling the model." }, "inboundDebounce": { "title": "Inbound Debounce", diff --git a/ui/web/src/i18n/locales/ko/agents.json b/ui/web/src/i18n/locales/ko/agents.json index 7d0152f5..1c90047a 100644 --- a/ui/web/src/i18n/locales/ko/agents.json +++ b/ui/web/src/i18n/locales/ko/agents.json @@ -782,13 +782,15 @@ }, "compaction": { "title": "압축", - "description": "컨텍스트 창 압축 및 메모리 플러시 설정", + "description": "최종 요청 컨텍스트 보호, 기록 압축, 메모리 플러시 설정", "maxHistoryShare": "최대 기록 비율 (0-1)", - "maxHistoryShareTip": "대화 기록을 위한 컨텍스트 창의 최대 비율 (예: 0.85 = 85%). 초과 시 압축이 트리거됩니다.", + "maxHistoryShareTip": "턴 이후 기록 압축에만 사용하는 기록 전용 임계값입니다. 최종 요청 전체 제한이 아닙니다.", "keepLastMessages": "마지막 메시지 유지", "keepLastMessagesTip": "압축 후 유지되는 최근 메시지입니다. 오래된 메시지는 요약으로 대체됩니다.", "memoryFlush": "메모리 플러시", - "memoryFlushTip": "압축 전에 에이전트가 중요한 컨텍스트를 메모리 파일에 저장할 기회를 얻습니다. 지식 그래프 추출도 트리거합니다." + "memoryFlushTip": "압축 전에 에이전트가 중요한 컨텍스트를 메모리 파일에 저장할 기회를 얻습니다. 지식 그래프 추출도 트리거합니다.", + "maxRequestShare": "최대 요청 비율 (0-1)", + "maxRequestShareTip": "모델에 보내는 최종 요청이 에이전트 컨텍스트 창에서 사용할 수 있는 최대 비율입니다. 초과하면 시스템이 모델 호출 전에 컨텍스트를 줄입니다." }, "contextPruning": { "title": "컨텍스트 정리", diff --git a/ui/web/src/i18n/locales/vi/agents.json b/ui/web/src/i18n/locales/vi/agents.json index 18bd075e..7797cca3 100644 --- a/ui/web/src/i18n/locales/vi/agents.json +++ b/ui/web/src/i18n/locales/vi/agents.json @@ -797,15 +797,17 @@ }, "compaction": { "title": "Nén ngữ cảnh", - "description": "Cài đặt nén cửa sổ ngữ cảnh và ghi nhớ trước nén", + "description": "Cài đặt ngưỡng request cuối, nén lịch sử và flush trí nhớ", "maxHistoryShare": "Phần lịch sử tối đa (0-1)", - "maxHistoryShareTip": "Tỷ lệ tối đa của cửa sổ ngữ cảnh dành cho lịch sử hội thoại (vd: 0.85 = 85%). Nén kích hoạt khi vượt quá.", + "maxHistoryShareTip": "Ngưỡng chỉ dành cho nén lịch sử sau lượt chạy. Đây không phải giới hạn tổng request cuối gửi model.", "keepLastMessages": "Giữ tin nhắn cuối", "keepLastMessagesTip": "Số tin nhắn gần nhất giữ lại sau khi nén. Các tin nhắn cũ hơn được thay thế bằng bản tóm tắt.", "timeoutSeconds": "Thời gian chờ (giây)", "timeoutSecondsTip": "Thời gian tối đa chờ bản tóm tắt nén ngữ cảnh trước khi giữ nguyên lịch sử cũ.", "memoryFlush": "Ghi nhớ trước nén", - "memoryFlushTip": "Trước khi nén, agent được một lượt để lưu ngữ cảnh quan trọng vào file bộ nhớ. Cũng kích hoạt trích xuất Knowledge Graph." + "memoryFlushTip": "Trước khi nén, agent được một lượt để lưu ngữ cảnh quan trọng vào file bộ nhớ. Cũng kích hoạt trích xuất Knowledge Graph.", + "maxRequestShare": "Phần request tối đa (0-1)", + "maxRequestShareTip": "Tỷ lệ tối đa của cửa sổ ngữ cảnh agent được phép dùng cho request cuối gửi model. Nếu vượt, hệ thống sẽ giảm context trước khi gọi model." }, "inboundDebounce": { "title": "Debounce đầu vào", diff --git a/ui/web/src/i18n/locales/zh/agents.json b/ui/web/src/i18n/locales/zh/agents.json index 91087fd6..e65e076c 100644 --- a/ui/web/src/i18n/locales/zh/agents.json +++ b/ui/web/src/i18n/locales/zh/agents.json @@ -797,15 +797,17 @@ }, "compaction": { "title": "压缩", - "description": "上下文窗口压缩和压缩前记忆设置", + "description": "最终请求上下文保护、历史压缩和记忆刷新设置", "maxHistoryShare": "最大历史份额 (0-1)", - "maxHistoryShareTip": "上下文窗口用于对话历史的最大比例(如0.85 = 85%)。超过时触发压缩。", + "maxHistoryShareTip": "仅用于回合后的历史压缩阈值,不是最终请求的总限制。", "keepLastMessages": "保留最后消息数", "keepLastMessagesTip": "压缩后保留的最近消息数。旧消息被摘要替换。", "timeoutSeconds": "超时秒数", "timeoutSecondsTip": "等待上下文压缩摘要的最长时间,超时后保留原始历史。", "memoryFlush": "压缩前记忆", - "memoryFlushTip": "压缩前,Agent可以将重要上下文保存到记忆文件。同时触发知识图谱提取。" + "memoryFlushTip": "压缩前,Agent可以将重要上下文保存到记忆文件。同时触发知识图谱提取。", + "maxRequestShare": "最大请求份额 (0-1)", + "maxRequestShareTip": "最终发送给模型的请求最多可占用智能体上下文窗口的比例。超过时,系统会先缩减上下文再调用模型。" }, "inboundDebounce": { "title": "入站防抖", diff --git a/ui/web/src/pages/agents/agent-detail/config-sections/compaction-section.tsx b/ui/web/src/pages/agents/agent-detail/config-sections/compaction-section.tsx index 7a1c8f6b..f97a80e4 100644 --- a/ui/web/src/pages/agents/agent-detail/config-sections/compaction-section.tsx +++ b/ui/web/src/pages/agents/agent-detail/config-sections/compaction-section.tsx @@ -20,6 +20,16 @@ export function CompactionSection({ value, onChange }: CompactionSectionProps) {