Skip to content

[Feature] Semantic Compression Module #1

Description

@Siddhant-K-code

Summary

Implement semantic compression to achieve 3-5× additional reduction on top of deduplication.

Motivation

Current deduplication provides 30-40% reduction. Adding semantic compression will enable 10-20× total context reduction, addressing the core pain point of context bloat in production agent deployments.

Components

  • Extractive compression - Select salient spans from verbose content using embedding similarity
  • Placeholder compression - Replace verbose tool outputs (JSON, XML, tables) with compact summaries
  • Token pruning - Remove low-importance tokens and filler phrases

Technical Design

type Compressor interface {
    Compress(ctx context.Context, chunks []types.Chunk, opts CompressOptions) ([]types.Chunk, CompressStats, error)
}

type CompressOptions struct {
    TargetReduction float64  // e.g., 0.3 = reduce to 30% of original
    PreserveStructure bool   // Keep JSON/code structure
    Mode string              // "extractive", "placeholder", "hybrid"
}

Files to Create

pkg/compress/
├── compress.go        # Main compression interface
├── extractive.go      # Salient span extraction
├── placeholder.go     # Tool output compression
├── pruner.go          # Token/phrase pruning
└── compress_test.go   # Tests

Acceptance Criteria

  • Compression achieves 50-70% reduction on test dataset
  • Preserves semantic meaning (manual evaluation)
  • Processing time < 50ms for 20 chunks
  • Unit tests with 80%+ coverage

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions