MCPcopy
hub / github.com/sipeed/picoclaw / Compact

Method Compact

pkg/agent/context_seahorse.go:127–144  ·  view source on GitHub ↗

Compact compresses conversation history via seahorse summarization.

(ctx context.Context, req *CompactRequest)

Source from the content-addressed store, hash-verified

125
126// Compact compresses conversation history via seahorse summarization.
127func (m *seahorseContextManager) Compact(ctx context.Context, req *CompactRequest) error {
128 if req == nil {
129 return nil
130 }
131
132 // For retry (LLM overflow), use aggressive CompactUntilUnder to guarantee
133 // context shrinks below budget (spec lines ~1410).
134 if req.Reason == ContextCompressReasonRetry && req.Budget > 0 {
135 _, err := m.engine.CompactUntilUnder(ctx, req.SessionKey, req.Budget)
136 return err
137 }
138
139 _, err := m.engine.Compact(ctx, req.SessionKey, seahorse.CompactInput{
140 Force: req.Reason == ContextCompressReasonRetry,
141 Budget: &req.Budget,
142 })
143 return err
144}
145
146// Ingest records a message into seahorse SQLite.
147// All existing sessions are bootstrapped at startup, so this only ingests new messages.

Calls 2

CompactMethod · 0.65
CompactUntilUnderMethod · 0.45