Documentation
¶
Index ¶
- type ContextConfig
- type ContextSummary
- type Manager
- func (m *Manager) AddMessage(msg pkg.Message)
- func (m *Manager) AddMessages(msgs []pkg.Message)
- func (m *Manager) AvailableTokens() int
- func (m *Manager) Clear()
- func (m *Manager) CompactContext() []pkg.Message
- func (m *Manager) FindMessageByRole(role string) *pkg.Message
- func (m *Manager) Fork() *Manager
- func (m *Manager) GetLastN(n int) []pkg.Message
- func (m *Manager) GetMessages() []pkg.Message
- func (m *Manager) GetMessagesForLLM() []pkg.Message
- func (m *Manager) GetSystemPrompt() string
- func (m *Manager) GetToolCalls() []pkg.ToolCall
- func (m *Manager) Merge(other *Manager)
- func (m *Manager) MessageCount() int
- func (m *Manager) SetSystemPrompt(prompt string)
- func (m *Manager) SetTokenCounter(counter TokenCounter)
- func (m *Manager) Summary() ContextSummary
- func (m *Manager) TokenCount() int
- type SimpleTokenCounter
- type TokenCounter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ContextConfig ¶
type ContextConfig struct {
ContextWindow int // Maximum context window (e.g., 128000 for GPT-4)
MaxTokens int // Maximum output tokens
ReservedTokens int // Tokens to reserve for response
SystemPrompt string // System prompt
}
ContextConfig configures the context manager
func DefaultConfig ¶
func DefaultConfig() ContextConfig
DefaultConfig returns default context configuration
type ContextSummary ¶
type ContextSummary struct {
MessageCount int `json:"message_count"`
TokenCount int `json:"token_count"`
SystemTokens int `json:"system_tokens"`
AvailableTokens int `json:"available_tokens"`
ContextWindow int `json:"context_window"`
ReservedTokens int `json:"reserved_tokens"`
}
ContextSummary provides context statistics
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager handles conversation context and token management
func (*Manager) AddMessage ¶
AddMessage adds a message to the context
func (*Manager) AddMessages ¶
AddMessages adds multiple messages to the context
func (*Manager) AvailableTokens ¶
AvailableTokens returns tokens available for new content
func (*Manager) CompactContext ¶
CompactContext creates a compressed version of the context
func (*Manager) FindMessageByRole ¶
FindMessageByRole finds the last message with the specified role
func (*Manager) GetMessages ¶
GetMessages returns all messages in context
func (*Manager) GetMessagesForLLM ¶
GetMessagesForLLM returns messages formatted for LLM with system prompt
func (*Manager) GetSystemPrompt ¶
GetSystemPrompt returns the current system prompt
func (*Manager) GetToolCalls ¶
GetToolCalls returns all tool calls from messages
func (*Manager) MessageCount ¶
MessageCount returns number of messages
func (*Manager) SetSystemPrompt ¶
SetSystemPrompt updates the system prompt
func (*Manager) SetTokenCounter ¶
func (m *Manager) SetTokenCounter(counter TokenCounter)
SetTokenCounter sets a custom token counter
func (*Manager) Summary ¶
func (m *Manager) Summary() ContextSummary
Summary returns a context summary
func (*Manager) TokenCount ¶
TokenCount returns current token count
type SimpleTokenCounter ¶
type SimpleTokenCounter struct{}
SimpleTokenCounter provides a simple token estimation
func (*SimpleTokenCounter) Count ¶
func (c *SimpleTokenCounter) Count(text string) int
Count estimates tokens using simple heuristics (4 chars ≈ 1 token)
func (*SimpleTokenCounter) CountMessages ¶
func (c *SimpleTokenCounter) CountMessages(messages []pkg.Message) int
CountMessages counts tokens in a slice of messages