ContextManager¶
Manages conversation context and compaction.
Quick Example¶
from mamba_agents.context import ContextManager, CompactionConfig
manager = ContextManager(config=CompactionConfig(strategy="hybrid"))
# Add messages
manager.add_messages([
{"role": "user", "content": "Hello"},
{"role": "assistant", "content": "Hi!"},
])
# Get messages
messages = manager.get_messages()
# Check state
state = manager.get_context_state()
print(f"Tokens: {state.token_count}")
# Compact if needed
if manager.should_compact():
result = await manager.compact()
API Reference¶
ContextManager
¶
ContextManager(
config: CompactionConfig | None = None,
token_counter: TokenCounter | None = None,
)
Manages conversation context and compaction.
Tracks message history, monitors token usage, and applies compaction strategies when thresholds are reached.
Initialize the context manager.
| PARAMETER | DESCRIPTION |
|---|---|
config
|
Compaction configuration.
TYPE:
|
token_counter
|
Token counter instance.
TYPE:
|
Source code in src/mamba_agents/context/manager.py
config
property
¶
config: CompactionConfig
Get the compaction configuration.
| RETURNS | DESCRIPTION |
|---|---|
CompactionConfig
|
CompactionConfig instance. |
add_messages
¶
Add messages to the history.
| PARAMETER | DESCRIPTION |
|---|---|
messages
|
Messages to add.
TYPE:
|
Source code in src/mamba_agents/context/manager.py
get_messages
¶
get_token_count
¶
Get current token count.
| RETURNS | DESCRIPTION |
|---|---|
int
|
Approximate token count. |
Source code in src/mamba_agents/context/manager.py
should_compact
¶
Check if compaction threshold is reached.
| RETURNS | DESCRIPTION |
|---|---|
bool
|
True if compaction should be triggered. |
compact
async
¶
Apply compaction strategy to reduce context size.
| RETURNS | DESCRIPTION |
|---|---|
CompactionResult
|
CompactionResult with details of what was done. |
Source code in src/mamba_agents/context/manager.py
get_context_state
¶
get_context_state() -> ContextState
Get the current context state.
| RETURNS | DESCRIPTION |
|---|---|
ContextState
|
ContextState with current information. |
Source code in src/mamba_agents/context/manager.py
get_system_prompt
¶
Get the system prompt.
| RETURNS | DESCRIPTION |
|---|---|
str | None
|
The system prompt or None. |
set_system_prompt
¶
Set the system prompt.
| PARAMETER | DESCRIPTION |
|---|---|
prompt
|
The system prompt.
TYPE:
|
clear
¶
get_compaction_history
¶
Get history of compactions.
| RETURNS | DESCRIPTION |
|---|---|
list[CompactionResult]
|
List of CompactionResult objects. |
ContextState
dataclass
¶
ContextState(
token_count: int,
message_count: int,
system_prompt: str | None,
compaction_history: list[CompactionResult] = list(),
)
Current state of the context.
| ATTRIBUTE | DESCRIPTION |
|---|---|
token_count |
Current token count.
TYPE:
|
message_count |
Number of messages.
TYPE:
|
system_prompt |
The system prompt.
TYPE:
|
compaction_history |
History of compactions performed.
TYPE:
|