mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-10-13 04:14:56 +00:00
Problem: Agent sessions accumulated 71K+ input tokens (83% history) because read_file and exec had no output limits. SOUL personality drowned by massive context. Changes: - read_file: add offset/limit params + 50K char output cap with pagination hints (model can re-read with offset) - exec/shell: cap output at 30K chars with smart head+tail truncation (preserves errors/summaries at tail) - pruning: add per-result 30% context guard, tune softTrimRatio 0.3→0.25 and softTrimMaxChars 4K→3K, add tail-aware soft trim - mid-loop: allow pruning to re-trigger each iteration (was one-shot) Design: cap at source, preserve full data in session, prune at consumption time. read_file offset/limit enables recovery of truncated content.
9 lines
409 B
Go
9 lines
409 B
Go
package agent
|
|
|
|
import "regexp"
|
|
|
|
// importantTailRe matches keywords in the tail of output that indicate
|
|
// the tail contains important information (errors, summaries, results).
|
|
// Used by pruning.go's hasImportantTail() for tail-aware soft trim.
|
|
var importantTailRe = regexp.MustCompile(`(?i)(error|exception|failed|fatal|traceback|panic|stack trace|exit code|total|summary|result|complete|finished|done)\b`)
|