kevy4.0

AI アプリケーション

データと、その見つけ方を
ひとつのストアに

RAG やエージェントの記憶は、たいてい 3 つのシステムを意味します。キャッシュ、ベクトルデータベース、検索インデックス——同じ事実が 3 つにあり、互いにずれていきます。kevy は、ベクトル KNN、BM25 全文検索、変更フィードをエンジンに持っています。すでに書いたキーの上で、そのまま動きます。

なぜ向いているのか

RAG のスタックで高くつくのは、検索ではありません。真実の 3 つのコピーを、歩調を合わせて保つことです。文書を書いたら、それを埋め込み、索引に入れ、キャッシュを無効化することを、忘れずにやらなければなりません。そのどれもが、忘れうる場所です。

kevy では、インデックスはパイプラインではなく宣言です。どのキーの、どのフィールドかをエンジンに伝えれば、書き込みの側がインデックスを最新に保ちます。あとから実行するものはなく、遅れていくものもありません。

kevy がやらないのは、埋め込みを作ることです。エンジンにモデルはなく、今後も持ちません。推論はストレージエンジンの仕事ではありませんし、そうしてしまえば、ベクトルの形式が私たちのリリース周期に縛られます。ベクトルはあなたが持ち込み、kevy がそれを保存し、索引を張り、検索します。

手順——ベクトル検索

キーのフィールドに張る HNSW インデックス。一度宣言すれば、あとは書き込みの側が最新に保ちます。
# declare it once. the engine backfills, and answers
# INDEXBUILDING while it does.
IDX.CREATE idx:sem ON PREFIX doc: FIELD vec TYPE vector KIND ann  DIM 768 DISTANCE cosine M 16 EF 200

# write a document the way you already write documents
HSET doc:4410 title "Ada on pipelining" vec "<768 f32, little-endian>"

# nearest ten. no separate system, no sync step.
IDX.QUERY idx:sem KNN "<query vector>" LIMIT 10
-> 1) doc:4410
   2) doc:9982

手順——全文検索、そして両者の併用

同じキーに対する BM25、両方のランキングを融合するハイブリッドクエリ、そして追いかけられるフィード。
IDX.CREATE idx:ft ON PREFIX doc: FIELD title TYPE str KIND text

IDX.QUERY idx:ft MATCH "pipelining"
-> 1) 1) "doc:1"
      2) "0.2877"          # the BM25 score

# hybrid: fuse the text ranking and the vector ranking (RRF)
IDX.QUERY HYBRID idx:ft MATCH "pipelining" idx:sem KNN "<vector>"  LIMIT 20 RRFK 60

# a change feed: tail every write from another process.
# needs [feed] enabled = true in kevy.toml
FEED.SHARDS                 -> (integer) 16
FEED.TAIL 0                 -> 1) (integer) 1     # generation
                               2) (integer) 1     # offset
FEED.READ 0 1 0 COUNT 2     -> the writes themselves, replayable
何を差し出すことになるか

インデックスの構築は、対象となるキーに対して O(N) です。追いつくまで、インデックスは INDEXBUILDING を返します。最初の構築は、行き当たるのではなく計画してください。ベクトルインデックスは HNSW であり、近似です。再現率は保証ではなく、調整のためのパラメータ(EF)です。そして埋め込みモデルはありません。kevy が代わりに呼んでくれることを期待していたなら、それは起きません。計画を立てる前に、知っておいてください。ベクトルのガイドテキストのガイドに、具体的に書いてあります。

これを読んでいるのがエージェントなら

llms-full.txt は、1 回の取得で済みます。全コマンドと、その本当のコストと Redis との本当の差異、そして 24 本のガイド全文が入っています。エンジン自身のコマンド表から生成しているので、サーバーの実際の挙動とずれることはありません。

次に