← Back to Skills

agent-memory-compactor

v1.0.0 approved AI/ML updated today
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ Download
Install Guide↓
🤖 Agent install commands (curl / MCP / Claude Desktop)
▸ curl one-liner
curl -L -o agent-memory-compactor.skill   "https://aiskillstore.io/v1/agent/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/download?platform=ClaudeCode"
▸ MCP tool call (after registering Skill Store MCP)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "c91b868d-c7b0-4af1-8de9-7411aff8342a",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP config (one-time)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 Full agent API guide: /llms.txt  ·  MCP server card

Agent conversation memory compactor: preserves decisions/identifiers/preferences using heuristics, compresses the rest by frequency/position scoring. No LLM calls, zero external dependencies. Korean decision expressions supported.

# agent memory # memory compactor # context compress # memory compression # conversation summary # context window # decision preservation # korean ai agent # token budget # memory management

Basic Info

Owner 👤 aiskillstore-team Category AI/ML Registered 2026-05-12 Last Updated 2026-05-12 Latest Version 1.0.0 Packaged At 2026-05-12 Vetting Status approved Downloads 0 Checksum (SHA256) 89b146d3d6b3f8636d28470a3c4a5bae5d48ae2a5196477cbd88325a074766ef

⚡ AGENT INFO USK v3

Capabilities
agent_memory_compaction decision_preservation identifier_extraction preference_tracking korean_decision_detection
Permissions
✗ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/download?platform=OpenClaw GET /v1/agent/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/download?platform=ClaudeCode GET /v1/agent/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/download?platform=Cursor GET /v1/agent/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/download?platform=GeminiCLI GET /v1/agent/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/download?platform=CodexCLI GET /v1/agent/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/download?platform=CustomAgent

Installation

Compatible Platforms any

1
Install the skill using openclaw_skill_manager.py.
python openclaw_skill_manager.py --install agent-memory-compactor
2
Verify installation
python openclaw_skill_manager.py --list-installed
3
Install a specific version (optional)
python openclaw_skill_manager.py --install agent-memory-compactor --version 1.0.0
1
Download the skill package.
curl -O https://aiskillstore.io/v1/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/download
2
Place it in the Claude Code commands directory.
unzip agent-memory-compactor.skill -d ~/.claude/commands/agent-memory-compactor/
3
Use it as a slash command in Claude Code.
/agent-memory-compactor
1
Download the Agent Skills package.
curl -O https://aiskillstore.io/v1/agent/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/download?platform=ClaudeCodeAgentSkill
2
Unzip it into the Claude Code skills directory.
unzip agent-memory-compactor-agent-skill-*.skill -d ~/.claude/skills/agent-memory-compactor/
3
Restart Claude Code — the skill is auto-loaded at session start. No slash command needed.
1
Download the Cursor-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/download?platform=Cursor
2
Unzip and place it in a permanent location.
unzip agent-memory-compactor-cursor-*.skill -d ~/.cursor/skills/agent-memory-compactor/
3
Add the MCP server config to .cursor/mcp.json, then restart Cursor.
cat ~/.cursor/skills/agent-memory-compactor/cursor_mcp_config.json
1
Download the Gemini CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/download?platform=GeminiCLI
2
Unzip and place it in a permanent location.
unzip agent-memory-compactor-geminicli-*.skill -d ~/.gemini/skills/agent-memory-compactor/
3
Add the MCP server config to ~/.gemini/settings.json, then restart Gemini CLI.
cat ~/.gemini/skills/agent-memory-compactor/gemini_settings_snippet.json
1
Download the Codex CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/download?platform=CodexCLI
2
Unzip and place it in a permanent location.
unzip agent-memory-compactor-codexcli-*.skill -d ~/.codex/skills/agent-memory-compactor/
3
Add the MCP server config to ~/.codex/config.toml, then restart Codex CLI.
cat ~/.codex/skills/agent-memory-compactor/codex_config_snippet.toml
1
Download the skill package via REST API.
GET https://aiskillstore.io/v1/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/download
2
Place it in your agent platform's skills directory.
cp agent-memory-compactor.skill ./skills/
3
Fetch platform-specific details via the Install Guide API.
GET https://aiskillstore.io/v1/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/install-guide?platform=CustomAgent

Security Vetting Report

Vetting Result APPROVED

Findings: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)"]

✅ No security risks found.

AI Review Stage

Reviewer gemini Risk Level 🟢 Low Review Summary AI 에이전트 대화 메모리 압축 스킬로, 선언된 권한 범위 내에서 안전하게 동작합니다.
Reasoning

스킬 메타데이터와 제공된 코드 스니펫을 분석한 결과, 다음과 같은 판단을 내렸습니다. 1. **선언된 Permissions 일치 여부:** 스킬은 `network: false`, `filesystem: false`, `subprocess: false`, `env_vars: []`로 선언되어 있습니다. 제공된 `main.py` 코드 스니펫에서는 외부 네트워크 통신, 파일 시스템 접근, 서브프로세스 실행, 환경 변수 접근을 시도하는 코드가 발견되지 않았습니다. `os` 모듈이 임포트되어 있으나, 스니펫 내에서 위험한 함수 호출은 보이지 않으며, 정적 분석 결과(`forbidden_exec_files_found: []`)도 이를 뒷받침합니다. `sys.stdout.reconfigure`는 표준 출력 인코딩 설정으로 보안 위험이 없습니다. 2. **악의적 목적 코드 여부:** 코드의 목적은 대화 로그를 분석하여 결정을 추출하고 압축하는 것입니다. 데이터 탈취, 시스템 파괴, 난독화 등 악의적인 목적으로 사용될 수 있는 코드는 발견되지 않았습니다. 정규 표현식(`re` 모듈)을 사용하여 텍스트 패턴을 감지하는 방식은 스킬의 설명과 일치하며 안전합니다. 3. **선언되지 않은 외부 통신 여부:** `network: false`로 선언되었고, 코드에서도 외부 통신을 시도하는 라이브러리(예: `requests`, `urllib`)나 함수 호출이 없습니다. 4. **사용자 데이터 무단 수집/전송 여부:** 스킬은 `turns`라는 사용자 대화 데이터를 입력으로 받아 처리하지만, 이를 외부로 전송하거나 무단으로 수집하는 메커니즘은 없습니다. 모든 처리는 스킬 내부에서 이루어집니다. 5. **코드 품질 및 목적 일치 여부:** 코드 스니펫은 스킬의 설명('No LLM calls, zero external dependencies', 'preserves decisions/identifiers/preferences using heuristics')과 일치하는 기능을 구현하고 있습니다. 토큰 추정, 결정/선호/식별자 패턴 감지를 위한 정규 표현식 정의 등이 명확하게 드러나 있습니다. `signals.appen`과 같은 오타는 발견되었으나, 이는 기능적 오류일 뿐 보안 위험은 아닙니다. 정적 분석 결과 또한 'approved' 상태이며, 'red_flags_found', 'obfuscation_warnings', 'forbidden_exec_files_found' 항목이 모두 비어 있어 안전성을 뒷받침합니다.

Version History

Version USK v3 Vetting Status Packaged At Downloads Changelog
v1.0.0 approved 2026-05-12 ⬇ 0

Examples 7

Representative input/output examples for this skill. Agents can use these to understand how to invoke the skill and what output to expect.

단순 대화 압축 / Simple conversation compaction

길어진 대화 로그를 토큰 예산 내로 압축합니다.

📥 Input
{
  "action": "compact",
  "preserve_last_n": 2,
  "target_tokens": 200,
  "turns": [
    {
      "content": "\uc548\ub155\ud558\uc138\uc694. \ud504\ub85c\uc81d\ud2b8 \uc2dc\uc791\ud558\ub824\uace0 \ud569\ub2c8\ub2e4.",
      "role": "user"
    },
    {
      "content": "\ub124, \uc548\ub155\ud558\uc138\uc694! \uc5b4\ub5a4 \ud504\ub85c\uc81d\ud2b8\ub97c \uc2dc\uc791\ud558\uc2dc\ub098\uc694?",
      "role": "assistant"
    },
    {
      "content": "Python\uc73c\ub85c \uc6f9 \ud06c\ub864\ub7ec\ub97c \ub9cc\ub4e4\ub824\uace0 \ud569\ub2c8\ub2e4.",
      "role": "user"
    },
    {
      "content": "\uc88b\uc2b5\ub2c8\ub2e4. BeautifulSoup\uacfc requests\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc744 \uc548\ub0b4\ud574\ub4dc\ub9b4\uac8c\uc694.",
      "role": "assistant"
    },
    {
      "content": "\uadf8\uac78\ub85c \uc9c4\ud589\ud558\uaca0\uc2b5\ub2c8\ub2e4.",
      "role": "user"
    },
    {
      "content": "\uc54c\uaca0\uc2b5\ub2c8\ub2e4. \uccab \ubc88\uc9f8\ub85c requirements.txt\ub97c \ub9cc\ub4e4\uc5b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.",
      "role": "assistant"
    }
  ]
}
📤 Output
{
  "action": "compact",
  "compacted_turns": [
    {
      "_is_summary": true,
      "content": "[Summary] Python \uc6f9 \ud06c\ub864\ub7ec \ud504\ub85c\uc81d\ud2b8. BeautifulSoup+requests \uc2a4\ud0dd\uc73c\ub85c \uc9c4\ud589 \uacb0\uc815. requirements.txt \uc791\uc131 \uc911.",
      "role": "system"
    },
    {
      "_pin_reasons": [
        "decision_expression"
      ],
      "_pinned": true,
      "content": "\uadf8\uac78\ub85c \uc9c4\ud589\ud558\uaca0\uc2b5\ub2c8\ub2e4.",
      "role": "user"
    },
    {
      "_pinned": false,
      "content": "\uc54c\uaca0\uc2b5\ub2c8\ub2e4. \uccab \ubc88\uc9f8\ub85c requirements.txt\ub97c \ub9cc\ub4e4\uc5b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.",
      "role": "assistant"
    }
  ],
  "stats": {
    "compacted_tokens_approx": 60,
    "compacted_turns": 3,
    "compression_ratio": 0.5,
    "dropped_turns": 3,
    "original_tokens_approx": 120,
    "original_turns": 6,
    "pinned_turns": 1
  }
}
결정 우선 보존 / Decision preservation

결정/확정 표현이 포함된 turns를 우선 보존합니다.

📥 Input
{
  "action": "extract_decisions",
  "target_tokens": 500,
  "turns": [
    {
      "content": "\ubc30\ud3ec \ud658\uacbd\uc744 \uacb0\uc815\ud574\uc57c \ud569\ub2c8\ub2e4.",
      "role": "user"
    },
    {
      "content": "AWS EC2\uc640 Lightsail \uc911 \uc5b4\ub5a4 \uac83\uc774 \uc88b\uc744\uae4c\uc694?",
      "role": "assistant"
    },
    {
      "content": "Lightsail\ub85c \ud655\uc815\ud569\ub2c8\ub2e4. \ube44\uc6a9\uc774 \uc800\ub834\ud558\ub124\uc694.",
      "role": "user"
    },
    {
      "content": "\uc54c\uaca0\uc2b5\ub2c8\ub2e4. Lightsail $7/\uc6d4 \ud50c\ub79c\uc73c\ub85c \uc9c4\ud589\ud558\uaca0\uc2b5\ub2c8\ub2e4.",
      "role": "assistant"
    }
  ]
}
📤 Output
{
  "action": "extract_decisions",
  "decisions": [
    {
      "content_excerpt": "Lightsail\ub85c \ud655\uc815\ud569\ub2c8\ub2e4. \ube44\uc6a9\uc774 \uc800\ub834\ud558\ub124\uc694.",
      "decision_signals": [
        "\ud655\uc815"
      ],
      "role": "user",
      "turn_index": 2
    },
    {
      "content_excerpt": "\uc54c\uaca0\uc2b5\ub2c8\ub2e4. Lightsail $7/\uc6d4 \ud50c\ub79c\uc73c\ub85c \uc9c4\ud589\ud558\uaca0\uc2b5\ub2c8\ub2e4.",
      "decision_signals": [
        "\uc54c\uaca0\uc2b5\ub2c8\ub2e4"
      ],
      "role": "assistant",
      "turn_index": 3
    }
  ]
}
식별자 추출 / Identifier extraction

UUID, URL, 파일 경로 등 식별자를 포함한 turns를 추출합니다.

📥 Input
{
  "action": "extract_identifiers",
  "turns": [
    {
      "content": "\uc2a4\ud0ac ID\ub294 471349fc-cfb2-4f59-9dbc-e57bf53ca841 \uc785\ub2c8\ub2e4.",
      "role": "assistant"
    },
    {
      "content": "https://aiskillstore.io/skills/471349fc \ud398\uc774\uc9c0 \ud655\uc778\ud574\uc8fc\uc138\uc694.",
      "role": "user"
    },
    {
      "content": "\ud30c\uc77c\uc740 /opt/skill-store/database/skill_registry.db \uc5d0 \uc788\uc2b5\ub2c8\ub2e4.",
      "role": "assistant"
    },
    {
      "content": "\uac10\uc0ac\ud569\ub2c8\ub2e4 \uc218\uace0\ud558\uc168\uc2b5\ub2c8\ub2e4.",
      "role": "user"
    }
  ]
}
📤 Output
{
  "action": "extract_identifiers",
  "identifiers": [
    {
      "identifier": "471349fc-cfb2-4f59-9dbc-e57bf53ca841",
      "turn_index": 0,
      "type": "uuid"
    },
    {
      "identifier": "https://aiskillstore.io/skills/471349fc",
      "turn_index": 1,
      "type": "url"
    },
    {
      "identifier": "/opt/skill-store/database/skill_registry.db",
      "turn_index": 2,
      "type": "file_path"
    }
  ]
}
사용자 선호 추출 / User preference extraction

사용자 선호 표현을 감지하고 우선 보존합니다.

📥 Input
{
  "action": "compact",
  "preserve_last_n": 1,
  "target_tokens": 100,
  "turns": [
    {
      "content": "\uc800\ub294 \ud56d\uc0c1 TypeScript\ub97c \uc120\ud638\ud569\ub2c8\ub2e4.",
      "role": "user"
    },
    {
      "content": "\uc624\ub298 \ub0a0\uc528\uac00 \uc88b\ub124\uc694.",
      "role": "user"
    },
    {
      "content": "\ud14c\uc2a4\ud2b8\ub294 \ubc18\ub4dc\uc2dc pytest\ub97c \uc0ac\uc6a9\ud558\uace0 \uc2f6\uc2b5\ub2c8\ub2e4.",
      "role": "user"
    },
    {
      "content": "\ub124, TypeScript\uc640 pytest\ub85c \uc124\uc815\ud558\uaca0\uc2b5\ub2c8\ub2e4.",
      "role": "assistant"
    }
  ]
}
📤 Output
{
  "action": "compact",
  "compacted_turns": [
    {
      "_pin_reasons": [
        "preference_expression"
      ],
      "_pinned": true,
      "content": "\uc800\ub294 \ud56d\uc0c1 TypeScript\ub97c \uc120\ud638\ud569\ub2c8\ub2e4.",
      "role": "user"
    },
    {
      "_pin_reasons": [
        "preference_expression"
      ],
      "_pinned": true,
      "content": "\ud14c\uc2a4\ud2b8\ub294 \ubc18\ub4dc\uc2dc pytest\ub97c \uc0ac\uc6a9\ud558\uace0 \uc2f6\uc2b5\ub2c8\ub2e4.",
      "role": "user"
    },
    {
      "_pinned": false,
      "content": "\ub124, TypeScript\uc640 pytest\ub85c \uc124\uc815\ud558\uaca0\uc2b5\ub2c8\ub2e4.",
      "role": "assistant"
    }
  ],
  "stats": {
    "compacted_tokens_approx": 60,
    "compacted_turns": 3,
    "compression_ratio": 0.75,
    "dropped_turns": 1,
    "original_tokens_approx": 80,
    "original_turns": 4,
    "pinned_turns": 2
  }
}
토큰 예산 강제 / Token budget enforcement

target_tokens를 엄격히 적용하여 예산 초과 시 경고를 출력합니다.

📥 Input
{
  "action": "compact",
  "preserve_last_n": 1,
  "target_tokens": 50,
  "turns": [
    {
      "content": "\ub9e4\uc6b0 \uae34 \ub0b4\uc6a9\uc758 \uba54\uc2dc\uc9c0\uc785\ub2c8\ub2e4. \uc5ec\ub7ec \uac00\uc9c0 \ub17c\uc758 \uc0ac\ud56d\uc774 \uc788\uc2b5\ub2c8\ub2e4.",
      "role": "user"
    },
    {
      "content": "\uc774\uac83\ub3c4 \uae34 \uc751\ub2f5\uc785\ub2c8\ub2e4. \uc790\uc138\ud55c \uc124\uba85\uc774 \uc5ec\uae30 \uc788\uc2b5\ub2c8\ub2e4.",
      "role": "assistant"
    },
    {
      "content": "\ucd5c\uc885 \uacb0\uc815 \uc644\ub8cc\ud588\uc2b5\ub2c8\ub2e4.",
      "role": "user"
    }
  ]
}
📤 Output
{
  "action": "compact",
  "compacted_turns": [
    {
      "_is_summary": true,
      "content": "[Summary] \ub17c\uc758 \ud6c4 \ucd5c\uc885 \uacb0\uc815 \uc644\ub8cc.",
      "role": "system"
    },
    {
      "_pin_reasons": [
        "decision_expression"
      ],
      "_pinned": true,
      "content": "\ucd5c\uc885 \uacb0\uc815 \uc644\ub8cc\ud588\uc2b5\ub2c8\ub2e4.",
      "role": "user"
    }
  ],
  "stats": {
    "compacted_tokens_approx": 30,
    "compacted_turns": 2,
    "compression_ratio": 0.5,
    "dropped_turns": 2,
    "original_tokens_approx": 60,
    "original_turns": 3,
    "pinned_turns": 1
  }
}
중요도 점수 / Importance scoring

각 turn의 중요도를 0-1 점수로 계산합니다.

📥 Input
{
  "action": "score_importance",
  "target_tokens": 2000,
  "turns": [
    {
      "content": "\ubc30\ud3ec \uc11c\ubc84 \uacb0\uc815: AWS Lightsail $7/\uc6d4\ub85c \ud655\uc815.",
      "role": "user"
    },
    {
      "content": "\uc74c... \uc7a0\uae50\ub9cc\uc694.",
      "role": "user"
    },
    {
      "content": "\uad00\ub828 \uc774\uc288: https://github.com/org/repo/issues/42",
      "role": "assistant"
    }
  ]
}
📤 Output
{
  "action": "score_importance",
  "importance_scores": [
    {
      "reasons": [
        "decision_expression",
        "has_identifiers",
        "medium_length"
      ],
      "role": "user",
      "score": 0.9,
      "turn_index": 0
    },
    {
      "reasons": [
        "very_short",
        "filler_content"
      ],
      "role": "user",
      "score": 0.05,
      "turn_index": 1
    },
    {
      "reasons": [
        "has_url_identifier"
      ],
      "role": "assistant",
      "score": 0.75,
      "turn_index": 2
    }
  ]
}
감사 모드 / Audit mode

압축 시 결정/식별자가 보존되었는지 감사합니다.

📥 Input
{
  "action": "audit",
  "preserve_last_n": 0,
  "target_tokens": 30,
  "turns": [
    {
      "content": "API \ud0a4\ub294 \uc808\ub300 \ud558\ub4dc\ucf54\ub529\ud558\uc9c0 \uc54a\uae30\ub85c \uacb0\uc815\ud588\uc2b5\ub2c8\ub2e4.",
      "role": "user"
    },
    {
      "content": "\ub124, \ud658\uacbd\ubcc0\uc218\ub97c \uc0ac\uc6a9\ud558\uaca0\uc2b5\ub2c8\ub2e4.",
      "role": "assistant"
    },
    {
      "content": "\uc88b\uc544\uc694.",
      "role": "user"
    }
  ]
}
📤 Output
{
  "action": "audit",
  "audit_report": {
    "decisions_dropped": 0,
    "decisions_preserved": 1,
    "identifiers_dropped": 0,
    "identifiers_preserved": 0,
    "warnings": []
  }
}

All examples are also available via the agent API: /v1/agent/skills/c91b868d-c7b0-4af1-8de9-7411aff8342a/schema

Reviews & Ratings

No reviews yet. Be the first to leave one!

✍️ Write a Review