refactor: split changes in loop.go
This commit is contained in:
parent
dc256cc933
commit
51c6cfac97
1 changed files with 5 additions and 11 deletions
|
|
@ -1119,18 +1119,12 @@ func (al *AgentLoop) forceCompression(agent *AgentInstance, sessionKey string) {
|
||||||
|
|
||||||
// Append compression note to the original system prompt instead of adding a new system message
|
// Append compression note to the original system prompt instead of adding a new system message
|
||||||
// This avoids having two consecutive system messages which some APIs (like Zhipu) reject
|
// This avoids having two consecutive system messages which some APIs (like Zhipu) reject
|
||||||
// Also avoid duplicate compression notes - check if already present
|
compressionNote := fmt.Sprintf(
|
||||||
|
"\n\n[System Note: Emergency compression dropped %d oldest messages due to context limit]",
|
||||||
|
droppedCount,
|
||||||
|
)
|
||||||
enhancedSystemPrompt := history[0]
|
enhancedSystemPrompt := history[0]
|
||||||
systemContent := enhancedSystemPrompt.Content
|
enhancedSystemPrompt.Content = enhancedSystemPrompt.Content + compressionNote
|
||||||
// Check if compression already noted (avoid duplicate notes)
|
|
||||||
if !strings.Contains(systemContent, "[System Note: Emergency compression") {
|
|
||||||
compressionNote := fmt.Sprintf(
|
|
||||||
"\n\n[System Note: Emergency compression dropped %d oldest messages due to context limit]",
|
|
||||||
droppedCount,
|
|
||||||
)
|
|
||||||
systemContent = systemContent + compressionNote
|
|
||||||
}
|
|
||||||
enhancedSystemPrompt.Content = systemContent
|
|
||||||
newHistory = append(newHistory, enhancedSystemPrompt)
|
newHistory = append(newHistory, enhancedSystemPrompt)
|
||||||
|
|
||||||
newHistory = append(newHistory, keptConversation...)
|
newHistory = append(newHistory, keptConversation...)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue