Files
amcs/llm/memory.md
Hein (Warky) 3c1ca83dc9 feat: add agent skills and guardrails functionality
- Introduced new tools for managing agent skills and guardrails, including add, remove, and list operations.
- Updated README.md to document new commands and usage patterns for skills and guardrails.
- Enhanced server configuration to support longer read and write timeouts.
- Increased maximum upload size for files to 100 MB and adjusted related configurations.
- Created database migrations for agent skills, guardrails, and their associations with projects.
- Updated relevant code files to integrate new skills and guardrails into the application logic.
2026-03-30 23:35:54 +02:00

5.3 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 Session Startup

At the start of every project session, after setting the active project:

  1. Call list_project_skills to load any saved agent behaviour instructions for the project.
  2. Call list_project_guardrails to load any saved agent constraints for the project.
  3. Apply all returned skills and guardrails immediately and for the duration of the session.
  4. Only generate or define new skills and guardrails if none are returned. If you do create new ones, store them with add_skill or add_guardrail and link them to the project with add_project_skill or add_project_guardrail so they persist for future sessions.

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.
  • If the goal is to retain the artifact itself, use save_file directly instead of first reading, transcribing, or summarizing the file contents.
  • 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.
  • Stored files and attachment metadata must not be sent to the metadata extraction client.
  • 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.
  • Do not read a file just to make it storable; store the file directly and read it only when the file contents are needed for reasoning.
  • When saving, choose the narrowest correct scope: project if project-specific, global if not.

Skills and Guardrails

  • Skills are reusable agent behaviour instructions (e.g. output formatting rules, reasoning strategies, workflow conventions).
  • Guardrails are agent constraints and safety rules (e.g. never delete without confirmation, do not expose secrets). Each guardrail has a severity: low, medium, high, or critical.
  • Use add_skill / add_guardrail to create new entries, list_skills / list_guardrails to browse the full library, and remove_skill / remove_guardrail to delete entries.
  • Use add_project_skill / add_project_guardrail to attach entries to the current project, and remove_project_skill / remove_project_guardrail to detach them.
  • Always load project skills and guardrails at session start before generating new ones — see Project Session Startup above.

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. At the start of every project session call list_project_skills and list_project_guardrails and apply what is returned; only create new skills or guardrails if none exist. Store durable notes with capture_thought, store supporting binary artifacts with save_file, prefer saving a file directly when the artifact itself is what matters, browse stored files with list_files, and load them with load_file only when their contents are needed. 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.