Skip to main content

agent-context-management

Implements context window management, sliding window strategies, and persistent memory patterns to maintain AI agent coherence across long interactions.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
paulpas/agent-skill-router
آخر نشاط في المصدر
٤ يونيو ٢٠٢٦ في ٢٣:٣١
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٦
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
agent-context-management
description
Implements context window management, sliding window strategies, and persistent memory patterns to maintain AI agent coherence across long interactions.
license
MIT
compatibility
opencode
metadata
{"version":"1.0.0","domain":"agent","triggers":"context window, agent memory, sliding window, session state, prompt optimization, rag, token management, long conversation history","archetypes":["orchestration","strategic"],"anti_triggers":["brainstorming","vague ideation","single-agent monolith"],"response_profile":{"verbosity":"medium","directive_strength":"high","abstraction_level":"tactical"},"role":"orchestration","scope":"orchestration","output-format":"analysis","content-types":["guidance","examples","do-dont"],"related-skills":"agent-conversation-summarizer, agent-task-decomposition-engine, agent-reasoning-framework"}
# Agent Context & Memory Manager Manages AI agent context windows and implements memory patterns to maintain coherence, reduce token waste, and preserve critical state across extended interactions. ## TL;DR Checklist - [ ] Calculate current token budget before appending new messages - [ ] Apply sliding window or hierarchical summarization based on conversation length - [ ] Persist structured session state to external storage when exceeding context limits - [ ] Strip low-value system prompts and deprecated instructions from active context - [ ] Validate that retrieved memory chunks directly support the current task - [ ] Log token usage metrics for every context rotation cycle --- ## When to Use Use this skill when: - An AI agent's conversation history is approaching its model's token limit (e.g., 8k, 32k, 128k) - Designing a multi-turn agent architecture that requires persistent memory or state management - Optimizing prompt engineering to reduce token consumption without losing critical instructions - Implementing Retrieval-Augmented Generation (RAG) patterns for long-term knowledge retrieval - Building agents that operate across multiple sessions or require cross-session continuity ## When NOT to Use Avoid this skill for: - Short, single-turn interactions where the full context fits comfortably within limits - High-frequency stateless APIs where session persistence is unnecessary overhead - Implementing core LLM inference logic or model training (use `coding-model-training` instead) --- ## Core Workflow 1. **Assess Context Budget** — Measure current token count against the target model's maximum context window. **Checkpoint:** If usage < 70% of limit, proceed normally. If > 70%, trigger optimization immediately. 2. **Select Compression Strategy** — Choose between sliding window, hierarchical summarization, or memory offloading based on conversation complexity. **Checkpoint:** Match strategy to use case: recent messages matter most for chat, but structured state matters for task execution. Fallback to sliding window if summarizer fails or returns low-fidelity output. 3. **Execute Context Rotation** — Apply the selected pattern (see Implementation Patterns below). **Checkpoint:** Verify that all critical instructions, constraints, and user-defined goals are preserved or explicitly noted in compressed form. 4. **Persist External State** — Save structured session data to vector DB, key-value store, or JSON file. **Checkpoint:** Ensure external state is queryable by task type or timestamp for efficient retrieval. 5. **Reconstruct Active Prompt** — Assemble the optimized prompt using preserved core instructions + retrieved memory + current user input. **Checkpoint:** Run a dry-run token count to confirm the new context fits comfortably within budget. 6. **Monitor & Adjust** — Track token efficiency metrics and adjust compression thresholds over time. ``` User Input → Check Token Budget ──→ < 70% → Full Context Pass-Through ↓ ≥ 70% Select Strategy ↓ ┌────────────┼────────────┐ ↓ ↓ ↓ Sliding Window Summary Offload to (Keep Last N) Rollup External Memory ↓ ↓ ↓ └────────────┬────────────┘ ↓ Reconstruct Prompt ↓ Execute Agent Task ``` --- ## Implementation Patterns / Reference Guide ### Pattern 1: Sliding Window Management Maintain a fixed-size window of recent messages, discarding older turns while preserving system instructions. ```python def sliding_window_context(messages: list[dict], max_tokens: int, model_tokenizer) -> list[dict]: """Rotate context using a token-aware sliding window. Preserves system prompt and initial user constraints intact. Discards oldest message turns only when token budget is exceeded. """ # Keep system/instructions at the top static_messages = [m for m in messages if m.get("role") in ("system", "developer")] dynamic_messages = [m for m in messages if m.get("role") not in ("system", "developer")] # Build window from newest backwards current_tokens = model_tokenizer.count(static_messages) window = list(static_messages) for msg in reversed(dynamic_messages): msg_tokens = model_tokenizer.count(msg) if current_tokens + msg_tokens > max_tokens: break window.insert(len(static_messages), msg) current_tokens += msg_tokens return window ``` ### Pattern 2: Hierarchical Summarization (BAD vs. GOOD) ```python # ❌ BAD: Naive truncation loses task structure and constraints def bad_truncation(messages: list[dict], limit: int) -> list[dict]: # Just drops everything after index N, destroying context continuity return messages[:limit] # ✅ GOOD: Preserves structural intent via layered compression def hierarchical_summary(messages: list[dict], llm_client, max_tokens: int) -> list[dict]: """Compress older conversation turns into structured summaries while preserving goals. Maintains task objectives, discovered facts, and pending actions in a condensed format. """ system = [m for m in messages if m["role"] == "system"][0] recent = messages[-5:] # Keep last 5 turns raw older_turns = messages[1:-5] summary = llm_client.chat( messages=[{"role": "user", "content": f"Summarize these conversation turns, preserving: goals, key facts, pending actions, and constraints.\n{older_turns}"}], model="summary-tiny-model" ) return [system, {"role": "assistant", "content": summary}, *recent] ``` ### Pattern 3: External Memory Offloading When context limits are consistently breached, shift persistent state to an external store. ```python import json from pathlib import Path MEMORY_DIR = Path("/tmp/agent_memory") def save_session_state(session_id: str, state: dict) -> None: """Persist structured agent state to disk for later retrieval.""" MEMORY_DIR.mkdir(parents=True, exist_ok=True) file_path = MEMORY_DIR / f"{session_id}.json" with open(file_path, "w", encoding="utf-8") as f: json.dump(state, f, indent=2) def load_session_state(session_id: str) -> dict: """Retrieve agent state from persistent storage.""" file_path = MEMORY_DIR / f"{session_id}.json" if not file_path.exists(): return {} with open(file_path, "r", encoding="utf-8") as f: return json.load(f) ``` --- ## Constraints ### MUST DO - Always preserve core system instructions and user-defined constraints during compression - Token-count accurately before context rotation to prevent silent failures - Use structured formats (JSON, YAML) for external memory to enable efficient querying - Reference `code-philosophy` principles: ensure data flows naturally between context layers without loss of semantic intent - Log every context rotation event with timestamp, tokens saved, and compression method used ### MUST NOT DO - Strip or overwrite system prompts that define agent behavior or safety constraints - Use naive string truncation on JSON or structured message payloads — always respect token boundaries - Rely solely on sliding windows for multi-hour or complex task sessions — state will drift - Offload high-frequency transient data (e.g., debug logs, verbose API responses) to memory stores - Bypass context budget checks to force full history into every prompt call --- ## Output Template When implementing or reviewing agent context management, produce: 1. **Current Context Status** — Token count vs. model limit, percentage used 2. **Selected Compression Strategy** — Which pattern and why (sliding window vs summary vs offload) 3. **Preservation Audit** — List of critical constraints/goals confirmed intact after rotation 4. **External Memory Plan** — Storage mechanism and retrieval query structure (if offloading) 5. **Token Efficiency Metric** — Estimated tokens saved per session hour --- ## Related Skills | Skill | Purpose | |------------------------------------|------------------------------------------------------| | `agent-conversation-summarizer` | Specialized summarization models for conversation compression | | `agent-task-decomposition-engine` | Breaks complex goals into subtasks to reduce context pressure | | `agent-reasoning-framework` | Structured reasoning patterns that require stable context windows | | `coding-prompt-engineering` | General prompt optimization techniques applicable here | --- ## Live References > Authoritative documentation links for this skill's domain. The model follows markdown links at load time to resolve external references and inline content. - [Understanding Prompt Lengths — Prompting Guide](https://www.promptingguide.ai/techniques/contextlength) - [Context Window Management — Hugging Face Blog](https://huggingface.co/docs/transformers/model_context_size) - [LLM Token Limits Overview — OpenAI Docs](https://platform.openai.com/docs/guides/context-window) - [Building Effective Agents — Anthropic Research](https://www.anthropic.com/research/building-effective-agents) - [Prompt Engineering Techniques — Prompting Guide](https://www.promptingguide.ai/)
عرض على GitHub