Solving AI Amnesia: Why Your Coding Agents Needs Institutional Memory
Every developer using AI coding agents eventually hits the same wall.
You spend three hours debugging a subtle race condition in an async worker. The agent finds an undocumented quirk in your queue library, applies a targeted workaround, and the test suite turns green. Two days later, you open a fresh chat session or switch models. You ask the agent to refactor the worker module. Within thirty seconds, the agent deletes the workaround, assumes standard queue behavior, and re-introduces the exact bug you spent half your week fixing.
This is the AI amnesia problem.
LLMs process instructions well within an active context window. Once that context window compacts, rolls over, or resets, the reasoning vanishes. The code remains in Git, but the tacit knowledge, the architectural constraints, environment quirks, and hard-earned reasons behind specific decisions disappears.
The Missing Layer: Git for Decisions
Code belongs in Git. Chat transcripts belong in ephemeral logs. Tacit knowledge needs its own layer.
Tacit is an open-source, local-first Model Context Protocol (MCP) server that gives AI coding agents persistent institutional memory.
Instead of dumping multi-megabyte chat transcripts into a vector database, Tacit forces agents to store distilled decision nodes:
- What changed: The core technical choice or workaround.
- Why it changed: The root cause, limitation, or error condition.
- Causal lineage: Directed Acyclic Graph (DAG) links to parent decisions.
- Verification: Cryptographic content hashes (SHA-256) and Merkle root verification.
How It Works in Practice
When an agent initializes a session, it queries Tacit for recent context:
memory_context(timeframe=”week”)
The agent immediately sees active architectural decisions, known environment workarounds, and recently resolved errors before it writes a single line of code.
When the agent finishes a complex task, it records the distilled knowledge:
memory_add(
type="hack",
title="Pinned Redis client pool to 10 connections due to TCP socket leak on worker restart",
rationale="Uvicorn reload spawns zombie connections if pool size exceeds system file descriptor threshold.",
scope=["/services/queue.py"],
tags=["redis", "networking", "uvicorn"]
)
Because Tacit runs locally on SQLite with FTS5 search, retrieval takes less than a millisecond. Everything mirrors human-readable Markdown files in .tacit/memories/, keeping your team’s knowledge version-controlled and independent of any single AI harness vendor.
Getting Started
Step 1: Install Tacit from source
Clone the repository
git clone https://github.com/AlexLeoTz/tacit.git
Install globally on your machine (editable mode for active development)
pip install -e .
Step 2: Register MCP server globally
This registration command modifies your editor’s settings globally. It can be run from any folder or terminal directory:
For Antigravity CLI
tacit install-mcp --client antigravity
For Claude Desktop
tacit install-mcp --client claude
For Claude Code (Terminal CLI)
tacit install-mcp --client claude-code
For Cursor
tacit install-mcp --client cursor
Step 3: Initialize the project memory directory
Navigate to your specific project workspace directory (e.g. cd /path/to/my-project) and initialize the database. This command must be run inside your project root directory:
tacit init
Step 4: Run the live markdown preview server
Start the web dashboard to search, view, and insert project memories directly. This command must be run inside your project root directory:
tacit serve
Tacit is open source and available on GitHub. Try it
Top comments (0)