application/skills/memory-manager/SKILL.md
Comprehensive memory management for agents. Use when working with memory files (MEMORY.md, memory/*.md), searching historical context, managing daily logs, or organizing long-term knowledge. Includes memory_search and memory_get tools,file management utilities, and best practices for curating agent memory.
npx skillsauth add kyopark2014/strands-agent memory-managerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Complete memory management system for agents, including semantic search, file management, and memory curation workflows.
에이전트에 내장된 두 개의 메모리 도구 (langgraph_agent.py에 @tool로 구현):
memory_search(query, max_results?, min_score?)MEMORY.md + memory/*.md 파일에 대한 키워드 기반 검색.
Use when:
Parameters:
query (required): Search query stringmax_results (optional, default: 5): Max results to returnmin_score (optional, default: 0.0): Minimum relevance threshold (0.0-1.0)Returns:
JSON array of snippets with text, path, from (line), lines, score.
이 도구는 에이전트가 직접 호출합니다 (execute_code 불필요).
memory_get(path, from_line?, lines?)특정 메모리 Markdown 파일을 직접 읽기.
Use after:
Parameters:
path (required): Workspace-relative path (e.g., "MEMORY.md", "memory/2026-02-27.md")from_line (optional, default: 0): Starting line number, 1-indexed (0 = read from beginning)lines (optional, default: 0): Number of lines to read (0 = read entire file)Returns:
JSON with text (file content) and path.
Graceful degradation:
If file doesn't exist, returns { "text": "", "path": "..." } (no error).
MEMORY.md (Long-term memory)memory/YYYY-MM-DD.md (Daily logs)에이전트는 이 도구들을 직접 호출합니다 (execute_code 불필요):
memory_search(query="Tavily API setup") 호출memory_get(path=결과.path, from_line=결과.from, lines=결과.lines) 호출memory_get(path="memory/2026-03-02.md") 호출memory_search(query="Gmail configuration", max_results=5) 호출memory_get(path="memory/2026-02-27.md") 로 전체 내용 확인Use scripts/manage_memory.py for file operations:
# Create today's log
python scripts/manage_memory.py create-daily
# Create specific date
python scripts/manage_memory.py create-daily --date 2026-03-01
# Append to MEMORY.md
python scripts/manage_memory.py append MEMORY.md "New important fact"
# Append to daily log with section
python scripts/manage_memory.py append memory/2026-03-01.md \
"Meeting notes here" --section "Meetings"
# List last 7 days
python scripts/manage_memory.py list
# List last 30 days as JSON
python scripts/manage_memory.py list --days 30 --json
# Archive logs older than 90 days
python scripts/manage_memory.py archive --days 90
MEMORY.md - Durable, important facts:
memory/YYYY-MM-DD.md - Daily context:
When someone says "remember this" - Write it down immediately!
MANDATORY: Before answering questions about:
Always run memory_search first, even if you think you remember. The current session context may not include relevant past information.
Periodically (during heartbeats or when memory is full):
memory/YYYY-MM-DD.md filesMEMORY.md with distilled learningsThink: Daily files = raw notes, MEMORY.md = curated wisdom.
Memory search uses vector embeddings for semantic search. Common configurations:
Best for:
Enable when you see redundant results:
Enable for long-running agents:
For detailed configuration, see references/memory-system.md.
const yesterday = new Date(Date.now() - 86400000).toISOString().split('T')[0];
const yesterdayLog = await memory_get(`memory/${yesterday}.md`);
// Summarize what happened yesterday
// Write today's plan to today's log
// Search for project information
const projectInfo = await memory_search("project X status", 3);
// Get full context from most relevant result
const context = await memory_get(projectInfo[0].path);
// Check user preferences
const prefs = await memory_search("preferred email client", 2);
// Fall back to asking if not found
if (prefs.length === 0 || prefs[0].score < 0.7) {
// Ask user for preference
}
memory_get the file directly)candidateMultiplier in configmmr.enabled = true)lambda)temporalDecay.enabled = true)halfLifeDays (lower = faster decay)For complete technical details, see references/memory-system.md:
// 1. User asks: "What did we decide about Gmail setup?"
// 2. Search memory
const results = await memory_search("Gmail setup decision", 3);
// 3. Get detailed context
let context = "";
for (const result of results) {
const detail = await memory_get(result.path, result.from, result.lines);
context += `\n--- ${result.path} ---\n${detail.text}\n`;
}
// 4. Answer based on retrieved context
// "Based on our conversation on 2026-02-27, we decided to..."
// 5. If new decision made, write it to today's log
const today = new Date().toISOString().split('T')[0];
await memory_get(`memory/${today}.md`); // Ensure exists
// Then use file tools to append the new decision
memory_search and memory_get는 langgraph_agent.py에 @tool로 구현되어 있음development
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, or extract information from web pages.
development
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like "the xlsx in my downloads") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.
data-ai
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
development
Search a knowledge base using Amazon Bedrock RAG (Retrieval-Augmented Generation). Use when users want to find information from uploaded documents, ask questions about stored knowledge, or retrieve relevant content from the knowledge base. Returns matched content with source references and URLs.