
lna-lab/distill-kura
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
Дистиллированная долговременная память для агентов: вспоминаем по смыслу, пишем по доказательствам, по одной куре в режиме агента. Поставляется как плагин DeepSeek Harness и MCP-сервер.
Обзор
Вспомните работы по смыслу, написание защищено доказательствами, и один сервер может хранить несколько отдельных воспоминаний — по одному в режиме агента — поэтому режим переключения переключает то, что агент помнит. Поставляется как плагин DeepSeek Harness, сервер MCP для любого другого хоста, служба HTTP и библиотека Python. Стандартная библиотека; нет векторной базы данных, нет встраивания, нет фреймворка. Две неудачи убивают долговременную память агента, и они убивают его с противоположных сторон. Вопрос о «чипах вывода SSD» не имеет ничего общего с памятью, озаглавленной «запуск модели 2.6T с уровня SSD». Поиск слов ничего не возвращает; агент отвечает из ниоткуда. Фиксация здесь не встраивание, а распознавание: весь индекс (одна строка на память, записанная как триггер распознавания) переходит в одну подсказку, а небольшая модель называет то, что имеет отношение к вопросу. Индекс ~500 воспоминаний составляет около 6 тысяч токенов — несколько процентов современного контекстного окна, и он находится в кэше префикса.
Обзор (машинный перевод)
Долгосрочная память для агентов, которые дистиллированы, а не накоплены. Вспомнить работы смыслом, запись закрыта доказательствами, и один сервер может содержать несколько отдельных воспоминаний — по одному на режим агента — поэтому режим переключения переключает то, что Агент помнит.
Корабли как плагин DeepSeek Harness MCP-сервер для любого другого хоста, HTTP-сервис и библиотека Python. Стандарт Только библиотека; нет векторной базы данных, нет вложений, нет фреймворка.
Почему это существует
Две неудачи убивают долговременную память агента, и они убивают его с противоположных сторон.
** Поиск по ключевому слову упускает то, что вам нужно.** Вопрос о выводе “SSD” Чипы" не делится ни словом с памятью под названием “запуск модели 2.6T с уровня SSD”* - Но это одна и та же тема. Поиск слов ничего не возвращает; агент отвечает Нигде. Фиксация здесь не встраивание, а признание: весь индекс (одна строка) на память, записанную как триггер распознавания) переходит в одну подсказку, а небольшая модель Назовите то, что имеет отношение к вопросу. Индекс ~500 воспоминаний составляет около 6k токенов. несколько процентов современного контекстного окна, и оно находится в кэше префикса.
**Письмо отравляет магазин.
Эта страница переведена автоматически. Технические детали смотрите в оригинале.
README
Показан фрагмент оригинального README. Открыть оригинал.
蒸留蔵 — distill-kura
A long-term memory for agents that is distilled, not accumulated. Recall works by meaning, writing is gated by evidence, and one server can hold several separate memories — one per agent mode — so switching mode switches what the agent remembers.
Ships as a DeepSeek Harness plugin, an MCP server for any other host, an HTTP service, and a Python library. Standard library only; no vector database, no embeddings, no framework.
┌── recall ──────────────────────────────────────────────┐
│ question → names a memory? → deterministic hit ~2 ms│
│ else → whole index in one prompt → picked slugs │
│ → walk [[links]] → the neighbourhood ~0.4 s│
└────────────────────────────────────────────────────────┘
┌── distil ──────────────────────────────────────────────┐
│ journal → classed evidence → candidates → GATE │
│ → new? → composed → draft → judged → poured │
└────────────────────────────────────────────────────────┘
Why this exists
Two failures kill an agent’s long-term memory, and they kill it from opposite sides.
Retrieval by keyword misses the thing you needed. A question about “SSD inference chips” shares no word with a memory titled “running the 2.6T model off an SSD tier” — yet they are the same subject. Word search returns nothing; the agent answers from nowhere. The fix here is not embeddings but recognition: the entire index (one line per memory, written as a recognition trigger) goes into one prompt, and a small model names what bears on the question. An index of ~500 memories is around 6k tokens — a few percent of a modern context window, and it sits in the prefix cache.
Writing everything poisons the store. An agent asserts something; a naive distiller records the assertion as a fact; the next agent reads it back as ground truth and repeats it with more confidence. That loop is self-reinforcing, and prompt instructions do not stop it — measured, not assumed. So the write path is gated by deterministic Python: every candidate memory must carry quotes that exist character-for-character in the raw material, tagged with where they came from.
| class | what it is | what it licenses |
|---|---|---|
[USER] |
the human’s own words | “they decided”, “they asked” |
[TOOL] |
machine output | numbers — the only source |
[ACT] |
a tool that was invoked | “this was done” |
[SELF] |
the agent’s own prose | a judgement, in the first person, never a bare fact |
A quote that is not found verbatim is discarded. A candidate with no surviving quote is
thrown away. A number with no [TOOL] behind it is stripped. Text crediting the human
with a decision, when no [USER] quote survived, is refused at the last gate. Ideas are
welcome — they go to a seed file, never to the store, and graduate only when later
Установка
This server does not publish a one-line install command.
Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →Конфигурация
{ "mcpServers": { "kura": {
"command": "python3", "args": ["-m", "distill_kura.mcp"],
"env": { "KURA_URL": "http://127.0.0.1:8085", "KURA_STORE": "eq", "KURA_READONLY": "1" }
}}}