contextwindow

package
v0.1.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 22, 2026 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CountMessages

func CountMessages(messages []Message) int

func EstimateTokens

func EstimateTokens(text string) int

Types

type CompressionPolicy

type CompressionPolicy struct {
	Enabled      bool    `json:"enabled" yaml:"enabled"`
	TriggerRatio float64 `json:"trigger_ratio,omitempty" yaml:"trigger_ratio,omitempty"`
}

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

func New

func New(policy Policy) *Manager

func NewWithSummarizer added in v0.1.4

func NewWithSummarizer(policy Policy, summarizer Summarizer) *Manager

func (*Manager) Prepare

func (m *Manager) Prepare(messages []Message) Result

type Message

type Message struct {
	Role       Role              `json:"role"`
	Content    string            `json:"content,omitempty"`
	Name       string            `json:"name,omitempty"`
	ToolCallID string            `json:"tool_call_id,omitempty"`
	Metadata   map[string]string `json:"metadata,omitempty"`
}

type Policy

type Policy struct {
	Strategy               Strategy          `json:"strategy,omitempty" yaml:"strategy,omitempty"`
	ContextWindowTokens    int               `json:"context_window_tokens,omitempty" yaml:"context_window_tokens,omitempty"`
	MaxInputTokens         int               `json:"max_input_tokens,omitempty" yaml:"max_input_tokens,omitempty"`
	ReservedOutputTokens   int               `json:"reserved_output_tokens,omitempty" yaml:"reserved_output_tokens,omitempty"`
	SummaryTokens          int               `json:"summary_tokens,omitempty" yaml:"summary_tokens,omitempty"`
	ToolResultMaxTokens    int               `json:"tool_result_max_tokens,omitempty" yaml:"tool_result_max_tokens,omitempty"`
	MemoryRecallLimit      int               `json:"memory_recall_limit,omitempty" yaml:"memory_recall_limit,omitempty"`
	SystemPromptProtection bool              `json:"system_prompt_protection,omitempty" yaml:"system_prompt_protection,omitempty"`
	Compression            CompressionPolicy `json:"compression,omitempty" yaml:"compression,omitempty"`
	RoleBudgets            RoleBudgets       `json:"role_budgets,omitempty" yaml:"role_budgets,omitempty"`
	SummaryMode            string            `json:"summary_mode,omitempty" yaml:"summary_mode,omitempty"`
	ToolSchemaPruning      bool              `json:"tool_schema_pruning,omitempty" yaml:"tool_schema_pruning,omitempty"`
	StaleToolTurns         int               `json:"stale_tool_turns,omitempty" yaml:"stale_tool_turns,omitempty"`
}

func (Policy) Normalize

func (p Policy) Normalize() Policy

type Result

type Result struct {
	Messages []Message `json:"messages"`
	Stats    Stats     `json:"stats"`
}

type Role

type Role string
const (
	RoleSystem    Role = "system"
	RoleUser      Role = "user"
	RoleAssistant Role = "assistant"
	RoleTool      Role = "tool"
)

type RoleBudgets added in v0.1.4

type RoleBudgets struct {
	System    int `json:"system,omitempty" yaml:"system,omitempty"`
	User      int `json:"user,omitempty" yaml:"user,omitempty"`
	Assistant int `json:"assistant,omitempty" yaml:"assistant,omitempty"`
	Tool      int `json:"tool,omitempty" yaml:"tool,omitempty"`
}

type Stats

type Stats struct {
	Strategy        Strategy `json:"strategy"`
	BeforeTokens    int      `json:"before_tokens"`
	AfterTokens     int      `json:"after_tokens"`
	MaxInputTokens  int      `json:"max_input_tokens"`
	DroppedMessages int      `json:"dropped_messages"`
	Summarized      bool     `json:"summarized"`
	SummaryTokens   int      `json:"summary_tokens,omitempty"`
}

type Strategy

type Strategy string
const (
	StrategyNone                     Strategy = "none"
	StrategySlidingWindow            Strategy = "sliding_window"
	StrategySlidingWindowWithSummary Strategy = "sliding_window_with_summary"
)

type Summarizer added in v0.1.4

type Summarizer func(messages []Message, budget int) string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL