diff --git a/doc/evolution.md b/doc/evolution.md index 47d2d21..b290af2 100644 --- a/doc/evolution.md +++ b/doc/evolution.md @@ -1441,31 +1441,6 @@ The maximum tool result included in model context was reduced from 128 KiB to 32 KiB. Large command or file results are therefore less likely to crowd out the conversation and instructions. -## Phase 31: Embedding-Guided Tool and Skill Discovery (Aug 20) - -Ollie added a local embedding subsystem for semantic discovery of tools and -skills. It loads the `all-MiniLM-L6-v2` sentence-transformer through ONNX -Runtime, tokenizes descriptions, produces 384-dimensional vectors, and ranks -matches with cosine similarity. - -The skill index scans configured `SKILL.md` directories, parses their -frontmatter, precomputes description embeddings, and matches each user request -against the indexed skills. The agent injects up to three relevant skills when -they exceed the configured similarity threshold. Tool metadata is indexed by -the same mechanism, allowing the agent to inject up to five relevant tool hints -without placing every tool in the model context. - -The embedding model and ONNX Runtime are installed under the XDG data model -directory by `make install-models` / `make install-data`. Skill directories may -be overridden through `embedding.conf`; the default is the installed skills -directory. Matching is lazy and cached per process, so the common path pays the -model-loading cost once. - -This is a significant architectural shift for small models: discovery becomes -semantic rather than dependent on exact tool or skill names, while progressive -disclosure keeps the prompt bounded. The embedding model is local and separate -from the conversational backend, so provider choice does not affect discovery. - --- Commit count: ~60 commits over 3 days. The recent work added native structural @@ -1954,3 +1929,30 @@ Peers vs sub-agents is not a replacement — it's a complementary primitive: The conductor workflow uses sub-agents (decompose → delegate → collect). The consensus workflow uses peers (investigate independently → report → synthesize). Both are wiring over the same 9P primitives. + +## Phase 35: Embedding-Guided Tool and Skill Discovery (Aug 20) + +Ollie added a local embedding subsystem for semantic discovery of tools and +skills. It loads the `all-MiniLM-L6-v2` sentence-transformer through ONNX +Runtime, tokenizes descriptions, produces 384-dimensional vectors, and ranks +matches with cosine similarity. + +The skill index scans configured `SKILL.md` directories, parses their +frontmatter, precomputes description embeddings, and matches each user request +against the indexed skills. The agent injects up to three relevant skills when +they exceed the configured similarity threshold. Tool metadata is indexed by +the same mechanism, allowing the agent to inject up to five relevant tool hints +without placing every tool in the model context. + +The embedding model and ONNX Runtime are installed under the XDG data model +directory by `make install-models` / `make install-data`. Skill directories may +be overridden through `embedding.conf`; the default is the installed skills +directory. Matching is lazy and cached per process, so the common path pays the +model-loading cost once. + +This is a significant architectural shift for small models: discovery becomes +semantic rather than dependent on exact tool or skill names, while progressive +disclosure keeps the prompt bounded. The embedding model is local and separate +from the conversational backend, so provider choice does not affect discovery. + +---