Is your feature request related to a specific problem?
Yes. I'm working on adding compaction support to kagent's Go ADK runtime to match the existing Python ADK behavior. The Go ADK has no compaction primitives at all
I checked every released version from v0.1.0 to v1.4.0.
EventActions has no Compaction field and contents_processor.go has no filtering step for compaction markers.
Without these primitives , after a compaction runs the raw events stay in the backing store and get re-sent to the LLM on every subsequent request, which defeats the purpose of compaction entirely.
Proposed Solution
Three things need to be added to mirror what Python ADK already does in events/event_actions.py, apps/compaction.py and flows/llm_flows/contents.py -
-
An EventCompaction struct in session/session.go carrying the compacted time range and compacted content
-
A Compaction field on EventActions to hold the marker
-
Compaction filtering in internal/llminternal/contents_processor.go when building LLM contents raw events whose timestamps fall within a compaction marker's range should be replaced by the marker's compacted content
Impact on your work
This is blocking a PR I have open at kagent (#1971) to add Go-runtime compaction. The kagent maintainer specifically pointed out that without these primitives the implementation cannot match Python ADK semantics. Compaction is important for long-running agents so the sooner the better though no hard deadline.
Willingness to contribute
Yes happy to submit a PR
Just wanted to check with maintainers first before touching core session and flow internals.
Additional Context
Related downstream PR: kagent #1971
this is what is blocked on this feature.
Is your feature request related to a specific problem?
Yes. I'm working on adding compaction support to kagent's Go ADK runtime to match the existing Python ADK behavior. The Go ADK has no compaction primitives at all
I checked every released version from v0.1.0 to v1.4.0.
EventActions has no Compaction field and contents_processor.go has no filtering step for compaction markers.
Without these primitives , after a compaction runs the raw events stay in the backing store and get re-sent to the LLM on every subsequent request, which defeats the purpose of compaction entirely.
Proposed Solution
Three things need to be added to mirror what Python ADK already does in events/event_actions.py, apps/compaction.py and flows/llm_flows/contents.py -
An EventCompaction struct in session/session.go carrying the compacted time range and compacted content
A Compaction field on EventActions to hold the marker
Compaction filtering in internal/llminternal/contents_processor.go when building LLM contents raw events whose timestamps fall within a compaction marker's range should be replaced by the marker's compacted content
Impact on your work
This is blocking a PR I have open at kagent (#1971) to add Go-runtime compaction. The kagent maintainer specifically pointed out that without these primitives the implementation cannot match Python ADK semantics. Compaction is important for long-running agents so the sooner the better though no hard deadline.
Willingness to contribute
Yes happy to submit a PR
Just wanted to check with maintainers first before touching core session and flow internals.
Additional Context
Related downstream PR: kagent #1971
this is what is blocked on this feature.