AI Agent Context Management: Keeping Important Information

๐Ÿ“˜ Tutorials 2026-07-19 2 min read

AI Agent Context Management: Keeping Important Information

💡 What You Will Learn

AI Agent Context Management: Keeping Important Information

|:----------|:----------|:--------|:------| | 4K tokens | 0.8s | $0.01 | 96% | | 32K tokens | 2.5s | $0.08 | 89% | | 128K tokens | 8s | $0.32 | 72% |

class SlidingWindowMemory:
    """NConversation"""
    def __init__(self, max_rounds=10, max_tokens=4000):
        self.max_rounds = max_rounds
        self.max_tokens = max_tokens
        self.history = []

    def add(self, role, content):
        self.history.append({"role": role, "content": content})
        # 
        if len(self.history) > self.max_rounds * 2:
            self.history = self.history[-(self.max_rounds * 2):]
        # Token
        while self.count_tokens() > self.max_tokens:
            self.history.pop(0)

    def get_context(self):
        return self.history

    def count_tokens(self):
        return sum(len(m["content"]) * 1.3 for m in self.history)  # 1.3token/

# Conversation
# 
# 
class SummaryCompressionMemory:
    """Conversation"""
    def __init__(self, llm_client, compress_every=5):
        self.llm = llm_client
        self.compress_every = compress_every
        self.summary = ""
        self.recent_history = []

    def add(self, role, content):
        self.recent_history.append({"role": role, "content": content})
        if len(self.recent_history) >= self.compress_every:
            self._compress()

    def _compress(self):
        recent_text = "\n".join([f"{m['role']}: {m['content']}" for m in self.recent_history])
        prompt = f"1-2\n{recent_text}"
        new_summary = self.llm.chat(prompt)
        self.summary = f"{self.summary} -> {new_summary}"
        self.recent_history = []

    def get_context(self):
        return [
            {"role": "system", "content": f"Conversation{self.summary}"},
            *self.recent_history[-3:]  # Keep last 3 raw messages
        ]

# 
# 100Conversation5000 tokens -> 200 tokens
# 96%85%
class KeyInfoMemory:
    """"""
    def __init__(self, key_fields=None):
        self.key_fields = key_fields or ["user_name", "role", "preferences", "project"]
        self.info_store = {}
        self.recent_messages = []

    def update_info(self, message):
        """LLM"""
        prompt = f"{message}\n{', '.join(self.key_fields)}\nJSON"
        extracted = json.loads(self.llm.extract(prompt))
        for k, v in extracted.items():
            if v:  # 
                self.info_store[k] = v

    def get_context(self):
        return {
            "user_info": self.info_store,  # 0 tokens
            "recent_history": self.recent_messages[-5:]  # 5
        }

# 100Conversation -> user_info(~200 tokens) + 5(~500 tokens) = 700 tokens
# 100(~5000 tokens)86% tokens95%+

|:----|:--------|:-------------|

Related Articles
2026-07-26
AI for Business Analysts 2026
2026-07-19
n8n AI Workflow: 5 Real-World Examples
2026-07-22
LangChain vs LangGraph vs CrewAI 2026

Written by our editorial team; tools listed here are tested or verified against public sources. Links point to official sites or GitHub repos for reference only โ€” no paid placements.

๐Ÿ’ฌ Comments (0)

No comments yet. Be the first!

Login to comment