feat(mcp): add context length guard to prevent oversized requests

* feat: add X-Client-ID header for claw402 monitoring

* feat(mcp): add context length guard to prevent oversized requests

- Add MaxContext field to Config (default 0 = no limit)
- Add WithMaxContext() option for setting model context limits
- Add context_guard.go: token estimation + message truncation
- Integrate guard into both BuildMCPRequestBody and BuildRequestBodyFromRequest
- Support both map[string]string and map[string]any message formats
- Truncates oldest non-system messages when estimated tokens exceed limit
- Always preserves system messages and keeps at least 1 non-system message
- Logs warning when truncation occurs for debugging

Usage: mcp.NewDeepSeekClient(mcp.WithMaxContext(131072))
This commit is contained in:
shinchan-zhai
2026-03-18 11:10:22 +08:00
committed by GitHub
parent d5fbe445e1
commit 16ebe0a64c
5 changed files with 310 additions and 0 deletions

View File

@@ -20,6 +20,7 @@ type Config struct {
// Behavior configuration
MaxTokens int
MaxContext int // Model's max context window in tokens (0 = no limit)
Temperature float64
UseFullURL bool