Skip to main content
Glama

🧠 agent-sleep

AI 에이전트를 위한 지속적 경험 통합 및 의사결정 지원.

경량화된 프레임워크 독립적 Python 라이브러리이자 MCP 서버로, 호스트 에이전트가 세션 간에 적응할 수 있도록 지속적인 경험 통합과 의사결정 지원 신호를 제공합니다. 생물학적 뇌가 수면 주기를 통해 깨어 있는 동안의 경험을 지속적인 절차적 규칙과 교훈으로 통합하는 방식에서 영감을 받았습니다.


문제: "에이전트 기억상실증(Agent Amnesia)"

모든 현대 AI 에이전트 프레임워크(LangChain, AutoGen, CrewAI, OpenAI Assistants)는 에이전트 기억상실증을 겪고 있습니다:

  • 새로운 채팅이나 서브에이전트 실행은 매번 완전히 처음부터 시작합니다.

  • 에이전트가 월요일에 오류를 만나거나 코드베이스 규칙을 발견하면, 화요일에 똑같은 실수를 반복합니다.

  • 벡터 DB(RAG)는 정적 문서만 검색할 뿐 — 런타임 경험에서 학습하지 않습니다.


Related MCP server: Recall

MCP 빠른 시작 — 10초

이것이 기본 사용 경로입니다. agent-sleep은 MCP 서버로 제공되므로, MCP를 지원하는 모든 에이전트(Antigravity, Claude Desktop, Cursor, Cline)는 코드를 작성하지 않고도 사용할 수 있습니다.

1단계 — 설치 및 설정 파일 생성

# Option A: zero-install (recommended)
uvx agent-sleep-mcp

# Option B: install first, then run the init helper
pip install "agent-sleep[mcp]"
agent-sleep init     # prints the correct config snippet for your platform

agent-sleep init은 OS를 자동으로 감지하고 MCP 클라이언트의 설정 파일에 붙여넣을 JSON 스니펫을 출력합니다. 수동 편집이 필요 없습니다.

2단계 — 설정 스니펫 붙여넣기

init 명령은 정확히 무엇을 어디에 붙여넣어야 하는지 출력합니다. macOS에서 Claude Desktop의 출력 예시:

{
  "mcpServers": {
    "agent-sleep": {
      "command": "uvx",
      "args": ["agent-sleep-mcp"]
    }
  }
}

이 내용을 ~/Library/Application Support/Claude/claude_desktop_config.json에 붙여넣고 Claude를 재시작하면 완료됩니다.

3단계 — 에이전트에게 사용하도록 요청

"Before we start, check your memory for anything relevant to this task."
"Record that we use pytest fixtures — not unittest — in this project."
"Run a sleep consolidation so you remember today's lessons next session."

메모리는 프로젝트 디렉토리의 .agent_sleep/memory.db에 자동으로 저장됩니다(기본적으로 gitignore 처리됨).


저장된 내용 확인 — CLI

LLM을 거치지 않고도 에이전트가 학습한 내용을 확인할 수 있습니다:

# See all memories and rules for the current project
agent-sleep show

# Clear a project's memory (with confirmation prompt)
agent-sleep reset

# Target a specific scope or DB
agent-sleep show --scope my_api --db /path/to/memory.db

작동 방식: 3단계 파이프라인

          [ ONLINE EXECUTION PHASE ]
            Agent executes tool calls
                       │
                       ▼
┌──────────────────────────────────────────────┐
│  1. EPISODIC RECORDING                       │
│     memory.record_episode(...)               │  Fast, minimal overhead.
│     Records goal, action, outcome, errors.   │  Stores execution events.
└──────────────────────┬───────────────────────┘
                       │
             (Session ends / Agent idle)
                       │
                       ▼
          [ OFFLINE SLEEP CONSOLIDATION ]
┌──────────────────────────────────────────────┐
│  2. SLEEP CONSOLIDATOR (8-Stage Pipeline)    │
│     SleepConsolidator.run(session_id)        │
│                                              │
│     • Priority Replay (prediction error)     │
│     • Deterministic Episodic Distillation    │  Grounding first:
│     • Procedural Recipe Extraction           │  distills facts & lessons
│     • How-Memory Trajectory Abstraction      │  before optional LLM
│     • Behavioral Rule Promotion (seen ≥2x)   │  generalization passes.
│     • Epistemic Status (observed vs verified)│
│     • Episodic Compression over time         │
│     • Self-Competence EMA Tracking           │
└──────────────────────┬───────────────────────┘
                       │
              (Next session / New task)
                       │
                       ▼
          [ ONLINE SELECTIVE RECALL ]
┌──────────────────────────────────────────────┐
│  3. SELECTIVE SEMANTIC RECALL                │
│     memory.recall(new_task)                  │  Pre-computed vector BLOBs.
│     Returns only relevant lessons & rules    │  Prevents prompt dilution.
│     filtered by project scope & relevance.   │
└──────────────────────────────────────────────┘

주요 기능 (v0.1.2-alpha)

  • 사전 계산된 벡터 BLOB: 쿼리를 한 번 임베딩하고 사전 계산된 저장 벡터와 비교하여, 회상 중 반복적인 텍스트 임베딩을 제거합니다.

  • 인식론적 메모리 수명주기: 메모리 진행 단계(RAW → OBSERVED → REPEATED → VERIFIED → ACTIVE)를 추적하고, 모순되거나 실패율이 높은 메모리를 자동으로 격리합니다.

  • 검증 가능한 인과 귀속 및 효용 피드백: 구조화된 증거 기록(retrieval → action change → outcome attribution)을 통해 검색된 메모리가 실제로 향후 실행에 도움이 되었는지 평가합니다.

  • 증거 다양성 인과 가설: 독립적인 소스와 환경 전반의 증거 다양성 스케일링을 사용하여 반복되는 실패를 인과 메커니즘으로 증류합니다.

  • 베이지안 자기 역량 모델: 복합 도메인 전반의 도메인 역량과 베이지안 베타 분포 불확실성을 추정하여 호스트 에이전트에게 적응형 의사결정 지원(검증 강도, 재시도 예산)을 제공합니다.

  • 일급 규칙 특이성 엔진: 계층적 우선순위(specific verified > general verified > specific candidate > general candidate)와 동적 예외 억제를 통해 규칙 충돌을 해결합니다.

  • 범위 및 프로젝트 격리: 다중 계층 네임스페이스(scope="repo_a", scope="global"). 프로젝트별 지식은 엄격히 격리되며, 보편적 관용구와 도구 실패 모드는 선택적으로 global을 통해 공유할 수 있습니다.

  • 필수 무거운 의존성 제로: 표준 SQLite와 결정적 해시 기반 bag-of-words 폴백을 사용하여 즉시 작동합니다. 설치 시 sentence-transformers(all-MiniLM-L6-v2)로 원활하게 업그레이드됩니다.


벤치마크 및 평가

1. 통제된 전이 시뮬레이션 (benchmarks/run.py)

반복되는 아키텍처 함정이 있는 12개의 순차적 소프트웨어 작업에서 메모리 통합, 벡터 검색, 지식 전이를 평가합니다:

지표

메모리 OFF

메모리 ON

개선 효과

통과율 (Pass@12)

67%

92%

+25퍼센트 포인트

작업당 평균 LLM 호출

14.7

8.5

-42% (호출 감소)

반복 실수

8

2

-75% (실수 감소)

참고: 통제된 전이 시뮬레이션은 메모리 검색과 함정 회피의 결정적 인지-제어 역학을 평가합니다.

2. 표준 6방향 절제 벤치마크 (benchmarks/agent_eval/runner.py)

8개의 표준화된 소프트웨어 엔지니어링 작업에서 메모리 기반 에이전트 제어 역학의 통제된 샌드박스 평가:

실험 조건

통과율 (제로샷)

작업당 평균 LLM 호출

반복 함정

메모리 유용률

NO_MEMORY (기본 기억상실증)

12.5%

3.6

4

0.0%

RAW_TRANSCRIPT (비통합)

12.5%

3.6

4

0.0%

VECTOR_RAG (단순 의미론적)

12.5%

3.6

4

0.0%

AGENT_SLEEP_CORE (에피소드 증류)

25.0%

2.9

2

12.5%

AGENT_SLEEP_EPISTEMIC (코어 + 출처 추적)

37.5%

2.5

1

25.0%

AGENT_SLEEP_FULL (전체 인지 아키텍처)

75.0%

1.4

0

75.0%

python benchmarks/agent_eval/runner.py

[!NOTE] 과학적 및 백엔드 공개:

  • 샌드박스 벤치마크는 통제된 테스트 스위트에서 에이전트 제어 역학, 토큰 효율성, 오류 회피를 평가합니다.

  • 임베딩 백엔드: 고정밀 벡터 유사도는 sentence-transformers(all-MiniLM-L6-v2)에 의존합니다. 의존성이 없으면 라이브러리는 자동으로 결정적 해시 기반 bag-of-words 임베딩으로 폴백합니다.

  • 전체 재현 프로토콜과 지표 로그는 benchmarks/agent_eval/results.json에 문서화되어 있습니다.


Python 라이브러리 사용법

MCP를 통하지 않고 자체 에이전트 코드에서 메모리 시스템을 구동하려는 경우, Python API가 완전히 지원됩니다.

from agent_sleep import AgentMemory, SleepConsolidator

# 1. Initialize memory scoped to your project/repo
memory = AgentMemory(session_id="session_01", scope="payment_service")

# 2. Record actions and outcomes during your agent's loop
memory.record_episode(
    goal="Refactor payment processor to async",
    action="edit_file('processor.py', ...)",
    outcome="failure",
    failure_reason="SyntaxError: 'await' outside async function",
)

# 3. Trigger sleep consolidation when idle or at session end
consolidator = SleepConsolidator(scope="payment_service")
report = consolidator.run(session_id="session_01")
# -> {'episodes_processed': 1, 'memories_written': 1, 'rules_promoted': 0, ...}

# 4. Next session: recall relevant context before executing
context = memory.recall("Add Stripe webhook handler")
print(context)
# [MEMORY CONTEXT]
# Relevant past experience:
#   ⚠ [LESSON] Caution on task: Refactor payment processor to async:
#     A previous attempt failed: SyntaxError: 'await' outside async function.
# [END MEMORY CONTEXT]

설치

MCP 지원 빠른 설치:

pip install "agent-sleep[mcp]"

전체 의미론적 임베딩 포함(권장):

pip install "agent-sleep[all]"

GitHub에서(최신 알파):

pip install git+https://github.com/thevisionhub/agent-sleep.git

개발용 편집 가능 설치:

git clone https://github.com/thevisionhub/agent-sleep.git
cd agent-sleep
pip install -e ".[all]"

MCP 도구 참조

도구

호출 시점

agent_sleep_recall

계획 또는 실행 전 — 중요하지 않은 작업을 수행하기 전에 교훈, 규칙, 인과 함정, 자기 역량 지침을 검색합니다

agent_sleep_record

실행 중 — 각 도구 실패 또는 이정표 이후

agent_sleep_consolidate

세션 종료 후 또는 에이전트가 유휴 상태일 때

agent_sleep_status

언제든지 — 메모리 상태, 인식론적 분석, 대기 중인 에피소드를 검사합니다

agent_sleep_feedback

검색된 지식 적용 후 — 인과 결과 귀속을 기록하고 효용 점수를 업데이트합니다

agent_sleep_specialize_rule

기존 규칙에 대한 예외나 경계 조건을 발견할 때

모든 도구는 기본적으로 scope를 현재 작업 디렉토리 이름으로, db_path를 프로젝트 루트의 .agent_sleep/memory.db로 설정합니다. 일반적인 경우 설정이 필요 없습니다.


테스트 실행

pytest tests/ -v

발견되기 — 레지스트리 등록

agent-sleep을 MCP 레지스트리에 제출하는 데는 각각 약 5분이 소요되며, 메모리 도구를 찾는 개발자에게 도달하는 가장 빠른 방법입니다:

  • Smithery — GitHub URL을 붙여넣고 짧은 설명을 추가하면 완료됩니다.

  • modelcontextprotocol/servers — README의 "Community Servers" 아래에 항목을 추가하는 PR을 엽니다.

  • Cursor — MCP 서버도 표시합니다. 최신 제출 프로세스는 현재 문서를 확인하세요.


라이선스

MIT 라이선스 — 개인, 상업, 연구 목적으로 무료 사용 가능합니다.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides persistent, cross-session memory for AI agents, allowing them to store and automatically retrieve information across different conversations and sessions without repeating context.
    9 npm
    174
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to persistently recall, apply, and reinforce solutions to previously solved problems across different models and tools, so mistakes are not repeated.
    14
    14 npm
    1
    MIT