Current Context Size
Theget_messages response includes this_time_tokens - the total token count of returned messages. Use this to:
- Check current context window size
- Decide when to apply edit strategies
- Determine when to reset the prompt cache
Edit context on-the-fly without modifying stored messages
get_messages response includes this_time_tokens - the total token count of returned messages. Use this to:
result = client.sessions.get_messages(session_id="session-uuid")
print(f"Current tokens: {result.this_time_tokens}")
if result.this_time_tokens > 50000:
# Apply strategies to reduce context
result = client.sessions.get_messages(
session_id="session-uuid",
edit_strategies=[{"type": "token_limit", "params": {"limit_tokens": 30000}}]
)
from acontext import AcontextClient
import os
client = AcontextClient(api_key=os.getenv("ACONTEXT_API_KEY"))
result = client.sessions.get_messages(
session_id="session-uuid",
edit_strategies=[
{"type": "token_limit", "params": {"limit_tokens": 20000}}
]
)
print(f"Messages: {len(result.items)}, Tokens: {result.this_time_tokens}")
{"type": "token_limit", "params": {"limit_tokens": 20000}}
{
"type": "remove_tool_result",
"params": {
"keep_recent_n_tool_results": 3,
"tool_result_placeholder": "Done",
"keep_tools": ["important_tool"],
"gt_token": 100 # only remove results with more than 100 tokens
}
}
{
"type": "remove_tool_call_params",
"params": {
"keep_recent_n_tool_calls": 3,
"keep_tools": ["important_tool"],
"gt_token": 100 # only remove params with more than 100 tokens
}
}
{"type": "middle_out", "params": {"token_reduce_to": 5000}}
result = client.sessions.get_messages(
session_id="session-uuid",
edit_strategies=[
{"type": "remove_tool_result", "params": {"keep_recent_n_tool_results": 3}},
{"type": "token_limit", "params": {"limit_tokens": 30000}}
]
)
token_counts = client.sessions.get_token_counts(session_id="session-uuid")
print(f"Total tokens: {token_counts.total_tokens}")