LL

lna-lab/distill-kura

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

54 stars 7 forks Качество 84 Тренд 21MIT

Дистиллированная долговременная память для агентов: вспоминаем по смыслу, пишем по доказательствам, по одной куре в режиме агента. Поставляется как плагин 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

Открыть полный README на GitHub

Установка

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" } }}}