Skip to content

linliu0210/memory-palace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

97 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ›๏ธ Memory Palace

็ป™ AI ่ฃ…ไธ€ๅฅ—ใ€Œ่ฎฐๅฟ†ๆ“ไฝœ็ณป็ปŸใ€โ€”โ€”ไธๅช่ฎฉๅฎƒ่ฎฐๅพ—ไฝ๏ผŒ่€Œๆ˜ฏ่ฎฉๅฎƒ่‡ชๅทฑๆ•ด็†ใ€่‡ชๅทฑๅฝ’็บณใ€่‡ชๅทฑ้—ๅฟ˜๏ผŒ่ถŠ็”จ่ถŠ่ชๆ˜Žใ€‚

What

Memory Palace ๆ˜ฏไธ€ไธช Python library๏ผŒๅฏ่ขซไปปๆ„ AI Agent ๆก†ๆžถ้›†ๆˆใ€‚ๅฎƒๆไพ›๏ผš

  • ไธ‰ๅฑ‚ๅญ˜ๅ‚จๅผ•ๆ“Ž โ€” Core๏ผˆ้š่บซๅฃ่ข‹๏ผ‰โ†’ Recall๏ผˆๆŠฝๅฑ‰ๆŸœ๏ผ‰โ†’ Archival๏ผˆๅœฐไธ‹ๅฎค๏ผ‰
  • ๅ››ๅ› ๅญๆททๅˆๆฃ€็ดข โ€” ๆ–ฐ้ฒœๅบฆ ร— ้‡่ฆๆ€ง ร— ็›ธๅ…ณๆ€ง ร— ็ฉบ้—ด้‚ป่ฟ‘ๆ€ง
  • ๆฌ่ฟๅฐไบบ (Curator) โ€” ่‡ชๅŠจๆ•ด็†ใ€ๅŽป้‡ใ€ๅ†ฒ็ช่ฐƒๅ’Œใ€ๆธ่ฟ›้—ๅฟ˜
  • 5-pass ๆ™บ่ƒฝๆ‘„ๅ– โ€” ๆ–‡ๆกฃ โ†’ ไบ‹ๅฎžๆๅ– โ†’ ๅ†ฒ็ช่ฐƒๅ’Œ โ†’ ๅ…ณ็ณปๆŠฝๅ– โ†’ ๅญ˜ๅ‚จ
  • ๅŒ้€š้“ๆŽฅๅ…ฅ โ€” CLI (palace) + MCP Server (palace-mcp)
  • ๅ…จ็จ‹ๅฎก่ฎกๆ—ฅๅฟ— โ€” ๆฏๆฌกๆ“ไฝœไธๅฏ็ฏกๆ”น่ฎฐๅฝ•

ๅฎ‰่ฃ…

git clone <repo-url>
cd memory-palace
uv sync --extra dev

# ้ชŒ่ฏๅฎ‰่ฃ…
palace --help
python -c "import memory_palace; print(memory_palace.__version__)"

ๅฆ‚้œ€ๅ›พๅญ˜ๅ‚จ๏ผˆKuzuDB๏ผ‰๏ผš

uv sync --extra graph

ๅฟซ้€Ÿๅผ€ๅง‹

1. ้…็ฝฎ LLM

Memory Palace ้€š่ฟ‡ LiteLLM ็ปŸไธ€ๆŽฅๅ…ฅ 100+ LLM Provider๏ผŒๅ†…็ฝฎ retry / timeout / streaming ๆ”ฏๆŒใ€‚้€š่ฟ‡็Žฏๅขƒๅ˜้‡้…็ฝฎ๏ผš

# โ”€โ”€ MiniMax๏ผˆๆŽจ่๏ผ‰โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
export MINIMAX_API_KEY="sk-cp-..."
export MP_LLM__PROVIDER="minimax"
export MP_LLM__MODEL_ID="MiniMax-M2.5"
export MP_LLM__BASE_URL="https://api.minimaxi.com/v1"

# โ”€โ”€ OpenAI โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
export OPENAI_API_KEY="sk-..."
# ้ป˜่ฎคๅณ openai/gpt-4o-mini๏ผŒๆ— ้œ€้ขๅค–่ฎพ็ฝฎ

# โ”€โ”€ DeepSeek โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
export DEEPSEEK_API_KEY="sk-..."
export MP_LLM__PROVIDER="deepseek"
export MP_LLM__MODEL_ID="deepseek-chat"
export MP_LLM__BASE_URL="https://api.deepseek.com/v1"

# โ”€โ”€ Anthropic / Claude โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
export ANTHROPIC_API_KEY="sk-ant-..."
export MP_LLM__PROVIDER="anthropic"
export MP_LLM__MODEL_ID="claude-sonnet-4-6"

ไนŸๅฏไปฅ้€š่ฟ‡ YAML ้…็ฝฎๆ–‡ไปถ๏ผˆๆ”พๅœจๆ•ฐๆฎ็›ฎๅฝ•ไธ‹๏ผ‰๏ผš

# ~/.memory_palace/memory_palace.yaml
memory_palace:
  llm:
    provider: minimax
    model_id: MiniMax-M2.5
    base_url: https://api.minimaxi.com/v1
    max_tokens: 2000

ไผ˜ๅ…ˆ็บง๏ผš็Žฏๅขƒๅ˜้‡ > YAML > ๅ†…็ฝฎ้ป˜่ฎคๅ€ผ

2. CLI ๅŸบๆœฌๆ“ไฝœ

# ไฟๅญ˜่ฎฐๅฟ†
palace save "ๆˆ‘ๆœ€ๅ–œๆฌข็š„็ผ–็จ‹่ฏญ่จ€ๆ˜ฏ Python๏ผŒๆœ€่ฟ‘ๅœจๅญฆ Rust" \
  --importance 0.8 --room preferences --tags "็ผ–็จ‹,่ฏญ่จ€"

# ๆœ็ดข
palace search "Python"

# ๆ™บ่ƒฝๆ‘„ๅ–ๆ–‡ๆกฃ๏ผˆ้œ€่ฆ LLM๏ผ‰
palace ingest meeting_notes.txt

# ๆŸฅ็œ‹ๆฆ‚่งˆ
palace inspect

# ๆ‰‹ๅŠจ่งฆๅ‘ๆ•ด็†๏ผˆ้œ€่ฆ LLM๏ผ‰
palace curate

# ๅฏๅŠจ MCP Server
palace serve

3. MCP Server ๆŽฅๅ…ฅ

ๅฏๅŠจ MCP ๆœๅŠกๅŽ๏ผŒAI Agent ๅฏ้€š่ฟ‡ JSON-RPC ๅ่ฎฎ่ฐƒ็”จ 18 ไธชๅทฅๅ…ท๏ผš

# stdio ๆจกๅผ๏ผˆCodex / Claude Desktop / Cursor ็ญ‰๏ผ‰
palace serve

# ๆˆ–็›ดๆŽฅ็”จๅ…ฅๅฃ็‚น
palace-mcp

palace-mcp ไธŽ palace serve ๅœจ stdio ๆจกๅผไธ‹ไผš้ป˜่ฎคๅ…ณ้—ญ banner ๅ’Œๅธธ่ง„่ฟ่กŒๆ—ฅๅฟ—๏ผŒ ้ฟๅ…ๆŠŠ้ž JSON-RPC ่พ“ๅ‡บๅ†™่ฟ›ๅ่ฎฎๆต๏ผ›ๅฏน Codexใ€Claude Desktopใ€Cursor ่ฟ™็ฑป stdio ๅฎขๆˆท็ซฏ๏ผŒ ไธ้œ€่ฆ้ขๅค– wrapperใ€‚

Claude Desktop ้…็ฝฎ (claude_desktop_config.json)๏ผš

{
  "mcpServers": {
    "memory-palace": {
      "command": "palace-mcp",
      "env": {
        "MINIMAX_API_KEY": "sk-cp-...",
        "MP_LLM__PROVIDER": "minimax",
        "MP_LLM__MODEL_ID": "MiniMax-M2.5",
        "MP_LLM__BASE_URL": "https://api.minimaxi.com/v1"
      }
    }
  }
}

Codex / Cursor ไนŸๅฏ็›ดๆŽฅไฝฟ็”จๅŒๆ ท็š„ stdio ๅ…ฅๅฃใ€‚ๅชๆœ‰ๅœจ HTTP ๆจกๅผไธ‹๏ผŒๆœๅŠก็ซฏๆ‰ไผšไฟ็•™ ไบบ็ฑปๅฏ่ฏป็š„ๅฏๅŠจ่พ“ๅ‡บ๏ผ›stdio ๆจกๅผ้ป˜่ฎคๆŒ‰ๅ่ฎฎๅฎ‰ๅ…จไผ˜ๅ…ˆๅค„็†ใ€‚


Architecture

โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—
โ•‘  5F  Integration    โ€” CLI / Python API / MCP [v1.0]     โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘  4F  Service        โ€” MemoryService โ”‚ Retriever โ”‚ Curatorโ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘  3F  Engine         โ€” FactExtractor โ”‚ Scoring โ”‚ Reconcileโ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘  2F  Storage        โ€” CoreStore โ”‚ RecallStore โ”‚ Archival โ•‘
โ• โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•ฃ
โ•‘  1F  Foundation     โ€” Config โ”‚ AuditLog โ”‚ LLM โ”‚ Embeddingโ•‘
โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•

ไธ‰ๅฑ‚ๅญ˜ๅ‚จ

ๅฑ‚ ๅฎž็Žฐ ่ฏดๆ˜Ž ่ทฏ็”ฑ่ง„ๅˆ™
Core JSON ๆ–‡ไปถ ้š่บซๅฃ่ข‹๏ผŒ้ข„็ฎ—ๅ—้™ (2KB) importance โ‰ฅ 0.7
Recall SQLite FTS5 ๆŠฝๅฑ‰ๆŸœ๏ผŒๅ…จๆ–‡ๆฃ€็ดข importance < 0.7
Archival ChromaDB ๅœฐไธ‹ๅฎค๏ผŒๅ‘้‡่ฏญไน‰ๆœ็ดข ๆ‰€ๆœ‰่ฎฐๅฟ†ๅŒๆญฅๅ†™ๅ…ฅ

ๆททๅˆๆฃ€็ดข

search_sync(query)  โ†’  Core ๅ…ณ้”ฎๅญ—ๅŒน้… + Recall FTS5  โ†’  ๆŒ‰ importance ๆŽ’ๅบ
search(query)       โ†’  FTS5 + Vector(Archival) RRF ่žๅˆ  โ†’  ๅ››ๅ› ๅญ่ฏ„ๅˆ†

CLI ๅ‘ฝไปคๅ‚่€ƒ

ๅ‘ฝไปค ่ฏดๆ˜Ž ้œ€่ฆ LLM
palace save ไฟๅญ˜ไธ€ๆก่ฎฐๅฟ†
palace search ๆœ็ดข่ฎฐๅฟ†
palace update ๆ›ดๆ–ฐไธ€ๆก่ฎฐๅฟ†๏ผˆ็‰ˆๆœฌ้€’ๅขž๏ผ‰
palace forget ่ฝฏๅˆ ้™คไธ€ๆก่ฎฐๅฟ†
palace inspect ๆŸฅ็œ‹ๆฆ‚่งˆๆˆ–ๅ•ๆก่ฏฆๆƒ…
palace audit ๆŸฅ็œ‹ๅฎก่ฎกๆ—ฅๅฟ—
palace rooms ๅˆ—ๅ‡บๆ‰€ๆœ‰ๆˆฟ้—ด
palace metrics ๆŸฅ็œ‹่ฟ่ฅๆŒ‡ๆ ‡
palace ingest 5-pass ๆ™บ่ƒฝๆ‘„ๅ–ๆ–‡ๆกฃ โœ…
palace curate ๆ‰‹ๅŠจ่งฆๅ‘ๆฌ่ฟๅฐไบบ โœ…
palace import ๆ‰น้‡ๅฏผๅ…ฅ๏ผˆ.md / .jsonl๏ผ‰
palace export ๆ‰น้‡ๅฏผๅ‡บ
palace serve ๅฏๅŠจ MCP Server
palace persona list/create/switch/delete ๅคš่ง’่‰ฒ็ฎก็†
palace schedule start/status Sleep-time ่ฐƒๅบฆ โœ…

ๆ‰€ๆœ‰ๅ‘ฝไปคๆ”ฏๆŒ --data-dir ๆŒ‡ๅฎšๆ•ฐๆฎ็›ฎๅฝ•๏ผˆ้ป˜่ฎค ~/.memory_palace๏ผ‰ใ€‚


MCP ๅทฅๅ…ทๅ‚่€ƒ

ๅทฅๅ…ท ่ฏดๆ˜Ž
save_memory ไฟๅญ˜่ฎฐๅฟ†๏ผˆcontent, importance, room, tags๏ผ‰
search_memory ๆœ็ดข่ฎฐๅฟ†๏ผˆquery, top_k, room๏ผ‰
update_memory ๆ›ดๆ–ฐ่ฎฐๅฟ†ๅ†…ๅฎน
forget_memory ่ฝฏๅˆ ้™ค
inspect_memory ๆŸฅ็œ‹ๅ•ๆก่ฏฆๆƒ…
curate_now ่งฆๅ‘ Curator ๆ•ด็†
reflect_now ็”Ÿๆˆ้ซ˜้˜ถๅๆ€
ingest_document 5-pass ๆ™บ่ƒฝๆ‘„ๅ–
get_health 6 ็ปดๅฅๅบท่ฏ„ไผฐ
get_stats ็ปŸ่ฎกๆฆ‚่งˆ๏ผˆCore/Recall ๆ•ฐ้‡๏ผ‰
get_context ็ผ–่ฏ‘็ป“ๆž„ๅŒ–ไธŠไธ‹ๆ–‡
get_audit_log ๅฎก่ฎกๆ—ฅๅฟ—
get_metrics ่ฟ่ฅๆŒ‡ๆ ‡
list_rooms ๆˆฟ้—ดๅˆ—่กจ
import_memories ๆ‰น้‡ๅฏผๅ…ฅ
export_memories ๆ‰น้‡ๅฏผๅ‡บ
list_personas Persona ๅˆ—่กจ
switch_persona ๅˆ‡ๆข Persona

MCP ่ต„ๆบ๏ผˆpalace:// ๅ่ฎฎ๏ผ‰๏ผšhealthใ€statsใ€roomsใ€context/{query}ใ€memory/{id}ใ€auditใ€personasใ€metricsใ€‚


้…็ฝฎๅ‚่€ƒ

็Žฏๅขƒๅ˜้‡

ๅ˜้‡ ่ฏดๆ˜Ž ็คบไพ‹
MP_LLM__PROVIDER LLM ไพ›ๅบ”ๅ•† minimax / openai / deepseek
MP_LLM__MODEL_ID ๆจกๅž‹ๅ็งฐ MiniMax-M2.5 / gpt-4o-mini
MP_LLM__BASE_URL API ๅœฐๅ€ https://api.minimaxi.com/v1
MP_LLM__MAX_TOKENS ๆœ€ๅคง่พ“ๅ‡บ token 2000
MINIMAX_API_KEY MiniMax API Key sk-cp-...
OPENAI_API_KEY OpenAI API Key sk-...
DEEPSEEK_API_KEY DeepSeek API Key sk-...

API Key ่งฃๆž่ง„ๅˆ™๏ผš{PROVIDER}_API_KEY๏ผˆๅฆ‚ provider=foo โ†’ ่ฏป FOO_API_KEY๏ผ‰

YAML ๅฎŒๆ•ด็คบไพ‹

# memory_palace.yaml
memory_palace:
  llm:
    provider: minimax
    model_id: MiniMax-M2.5
    base_url: https://api.minimaxi.com/v1
    max_tokens: 2000

  embedding:
    provider: openai          # openai / local
    model_id: text-embedding-3-small
    dimension: 1536

  storage:
    base_dir: ./data

  core:
    max_bytes: 2048

  scoring:
    recency: 0.20
    importance: 0.20
    relevance: 0.50
    room_bonus: 0.10

  graph:
    enabled: false

  curator:
    trigger:
      timer_hours: 24
      session_count: 20
      cooldown_hours: 1

  ebbinghaus:
    enabled: true
    base_stability_hours: 168   # 7 ๅคฉ

  rooms:
    - name: general
      description: ๆœชๅˆ†็ฑป้€š็”จ่ฎฐๅฟ†
    - name: preferences
      description: ็”จๆˆทๅๅฅฝ
    - name: projects
      description: ้กน็›ฎ็Ÿฅ่ฏ†
    - name: people
      description: ไบบ็‰ฉๅ…ณ็ณป
    - name: skills
      description: ๆŠ€่ƒฝ่ฎฐๅฟ†

Provider ้€‚้…่ฏดๆ˜Ž

LiteLLM ๅทฒ่‡ชๅŠจๅค„็†็ปๅคงๅคšๆ•ฐ Provider ๅทฎๅผ‚๏ผˆ้‰ดๆƒใ€่ฏทๆฑ‚ๆ ผๅผใ€้”™่ฏฏ้‡่ฏ•ใ€่ถ…ๆ—ถๆŽงๅˆถ็ญ‰๏ผ‰ใ€‚Memory Palace ๅœจ LiteLLM ไน‹ไธŠไฟ็•™ไบ†ไธ€ๅฑ‚่ฝป้‡ๅŽๅค„็†๏ผš

ๅŽๅค„็† ่ฏดๆ˜Ž
<think> ๆ€่€ƒๆ ‡็ญพๅ‰ฅ็ฆป ๆŽจ็†ๆจกๅž‹๏ผˆMiniMaxใ€DeepSeek ็ญ‰๏ผ‰่พ“ๅ‡บไธญๅฏ่ƒฝๅŒ…ๅซ <think>...</think>๏ผŒๅœจ่ฟ”ๅ›žๅ‰่‡ชๅŠจๆธ…็†
Markdown ไปฃ็ ๅ›ดๆ ๅ‰ฅ็ฆป ่‡ชๅŠจๅŽป้™ค ```json ... ``` ๅŒ…่ฃน๏ผŒๆ–นไพฟไธ‹ๆธธ็›ดๆŽฅ่งฃๆž JSON
response_format ้™็บง ๅฏนไธๆ”ฏๆŒ json_object ็š„ Provider๏ผˆๅฆ‚ MiniMax๏ผ‰่‡ชๅŠจ่ทณ่ฟ‡่ฏฅๅ‚ๆ•ฐ

ๆณจๆ„๏ผšLLM ไป็„ถๅฎŒๆ•ดๆ‰ง่กŒๆŽจ็†๏ผˆthinking๏ผ‰๏ผŒๅชๆ˜ฏ่ฟ”ๅ›žๆ–‡ๆœฌไธญ็š„ <think> ๆ ‡็ญพ่ขซๅ‰ฅ็ฆป๏ผŒไธๅฝฑๅ“ๆŽจ็†่ดจ้‡ใ€‚


Python API

from pathlib import Path
from memory_palace.service.memory_service import MemoryService
from memory_palace.foundation.llm import ModelConfig
from memory_palace.foundation.openai_provider import OpenAIProvider

# ๆž„ๅปบ LLM
llm = OpenAIProvider(ModelConfig(
    provider="minimax",
    model_id="MiniMax-M2.5",
    base_url="https://api.minimaxi.com/v1",
))

# ๅˆๅง‹ๅŒ–ๆœๅŠก
svc = MemoryService(Path("./data"), llm=llm)

# CRUD
item = svc.save(content="Python ๆ˜ฏๆˆ‘ๆœ€ๅธธ็”จ็š„่ฏญ่จ€", importance=0.8, room="preferences")
results = svc.search_sync("Python", top_k=5)
svc.update(item.id, "Python ๅ’Œ Rust ๆ˜ฏๆˆ‘ๆœ€ๅธธ็”จ็š„่ฏญ่จ€", reason="ๆ›ดๆ–ฐ")
svc.forget(item.id, reason="ไธๅ†้œ€่ฆ")

# ๅผ‚ๆญฅๆœ็ดข๏ผˆFTS5 + Vector ๆททๅˆ๏ผ‰
import asyncio
results = asyncio.run(svc.search("Python", top_k=5))

# ็ปŸ่ฎก
stats = svc.stats()  # {"core_count": ..., "recall_count": ..., "total": ...}

ๆต‹่ฏ•

# ๅ…จ้‡ๆต‹่ฏ•๏ผˆMock LLM๏ผŒๆ— ้œ€ API Key๏ผ‰
uv run pytest tests/ -q

# ่ทณ่ฟ‡็œŸๅฎž LLM ๆต‹่ฏ•
uv run pytest tests/ -m "not real_llm" -q

# ไป…่ฟ่กŒ MiniMax ็œŸๅฎž LLM ๆต‹่ฏ•๏ผˆ้œ€่ฎพ็ฝฎ MINIMAX_API_KEY๏ผ‰
uv run pytest tests/test_e2e/test_minimax_real.py -v

# Lint
uv run ruff check src/ tests/

Documentation

ๆ–‡ๆกฃ ๅ†…ๅฎน
SPEC v2.0 ๅฎŒๆ•ดๆŠ€ๆœฏ่ง„ๆ ผโ€”โ€”ๆ•ฐๆฎๆจกๅž‹ใ€ๆŽฅๅฃๅฅ‘็บฆใ€Prompt ๆจกๆฟ
CONVENTIONS.md ไปฃ็ ็บฆๅฎšโ€”โ€”TDD ็บชๅพ‹ใ€ๅˆ†ๅฑ‚่ง„ๅˆ™ใ€Gotchas
PROJECT_CONTEXT.md ้กน็›ฎๅ…จ่ฒŒโ€”โ€”ๆจกๅ—็Šถๆ€ใ€็‰ˆๆœฌ่ง„ๅˆ’ใ€ๆต‹่ฏ• baseline

License

MIT

About

๐Ÿ›๏ธ Memory Palace โ€” AI Agent ่ฎฐๅฟ†ๆ“ไฝœ็ณป็ปŸ | Persistent Memory OS for AI Agents

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages