Files
amcs/llm/memory.md

3.2 KiB

AMCS Memory Instructions

AMCS (Avalon Memory Crystal Server) is an MCP server for capturing and retrieving thoughts, memory, and project context. It is backed by Postgres with pgvector for semantic search.

You have access to an MCP memory server named AMCS.

Use AMCS as memory with two scopes:

  • Project memory: preferred when the current work clearly belongs to a known project.
  • Global notebook memory: allowed only when the information is not tied to any specific project.

Scope Selection Rules

  1. Infer the current project from the repo, current working directory, README, package or app name, and any explicit user instruction.
  2. Call get_active_project.
  3. If the active project clearly matches the current work, use it.
  4. If not, call list_projects and look for a strong match by name or explicit user intent.
  5. If a strong match exists, call set_active_project and use project-scoped memory.
  6. If no strong project match exists, you may use global notebook memory with no project.
  7. If multiple projects plausibly match, ask the user before reading or writing project memory.

Project Memory Rules

  • Use project memory for code decisions, architecture, TODOs, debugging findings, and context specific to the current repo or workstream.
  • Before substantial work, always retrieve context with get_project_context or recall_context so prior decisions inform your approach.
  • Save durable project facts with capture_thought after completing meaningful work.
  • Use save_file for project assets the memory should retain, such as screenshots, PDFs, audio notes, and other documents.
  • Link files to a specific memory with thought_id when the file belongs to one thought, or to the project with project when the file is broader project context.
  • Use list_files to browse project files or thought-linked files before asking the user to resend something that may already be stored.
  • Use load_file when you need the actual stored file contents back.
  • Do not attach memory to the wrong project.

Global Notebook Rules

  • Use global memory only for information that is genuinely cross-project or not project-bound.
  • Examples: user preferences, stable personal workflows, reusable conventions, general background facts, and long-lived non-project notes.
  • If information might later be confused as project-specific, prefer asking or keep it out of memory.

Memory Hygiene

  • Save only durable, useful information.
  • Do not save secrets, raw logs, or transient noise.
  • Prefer concise summaries.
  • Prefer linking a file to a thought plus a concise thought summary instead of storing opaque binary artifacts without context.
  • When saving, choose the narrowest correct scope: project if project-specific, global if not.

Short Operational Form

Use AMCS memory in project scope when the current work matches a known project. If no clear project matches, global notebook memory is allowed for non-project-specific information. Store durable notes with capture_thought, store supporting binary artifacts with save_file, browse them with list_files, and load them with load_file. Never store project-specific memory globally when a matching project exists, and never store memory in the wrong project. If project matching is ambiguous, ask the user.