LL

lna-lab/distill-kura

Developer tools

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る

54 stars 7 forks 品質 84 トレンド 21MIT

エージェントの長期メモリを蒸留: 意味でリコール, 証拠によってゲートを書き込みます, エージェントモードごとの1つのkura. DeepSeekハーネスプラグインとMCPサーバーとして出荷します.

概要

つまり、書き込みは証拠によってゲートされ、1つのサーバーは、エージェントモードごとに複数の別の思い出を保持することができますので、モードを切り替えると、エージェントが覚えているものを切り替えます。 DeepSeek Harness プラグイン、他のホスト、HTTP サービス、および Python ライブラリの MCP サーバーとして出荷します。 標準ライブラリのみ; ベクトルデータベース、埋め込みなし、フレームワークなし。 エージェントの長期記憶を殺し、反対側から殺す2つの失敗。 「SSDインフェレンスチップス」に関する質問は、「SSD ティアオフ2.6Tモデルを実行する」と題するメモリを持つ単語を共有しません。 単語検索は何も戻りません。エージェントはどこにも答えます。 ここでの修正は埋め込まれていませんが、認識: インデックス全体(メモリごとに1行ずつ、認識トリガーとして書かれています)は1つのプロンプトに行き、質問に負担する小さなモデル名になります。 ~500 のメモリのインデックスは 6k のトークンの周りにあります。 — 近代的なコンテキストウィンドウの割合が少なく、プレフィックスキャッシュに座っています.

概要(AI 翻訳)

蒸留される代理店の長期記憶、蓄積されていない。 meaning によるリコール作業、書き込みは evidence によってゲートされ、1つのサーバーは保持できます 複数の別々の思い出 — エージェントモードごとに1つ — モードを切り替える エージェントは覚えています。

DeepSeekハーネスプラグインとして出荷 他のホスト、HTTP サービス、および Python ライブラリの MCP サーバー。 スタンダード ライブラリのみ; ベクトルデータベース、埋め込みなし、フレームワークなし。

お問い合わせ

なぜこれが存在しているのか

エージェントの長期記憶を殺し、反対側から殺す2つの失敗。

キーワードで検索すると、必要なことを見逃すことができます。 「SSDインフェレンス」に関する質問 破片「 は、SSD 層を離れた 2.6T モデルを実行する」* と題するメモリと単語を共有しません。 しかし、彼らは同じ主題です。 単語検索は何も戻りません。エージェントはから答えます どこでも。 ここでの修正は埋め込まれていませんが、 recognition: インデックス全体(1行) メモリごとに、認識トリガーとして書かれている) 1つのプロンプトと小さなモデルに 質問に何を耐えているかの名前。 〜500の思い出のインデックスは6kトークンの周りにあります。 現代のコンテキストウィンドウの割合が少なく、プレフィックスキャッシュに座っています。

**全ての毒物は店舗に与えます.

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。

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

GitHub で README 全文を見る

インストール

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