agentleFS
anthonysuherlianthonysuherli/br8n/skills/embeddings/SKILL.md

embeddings

Skill1 starsChanged 3 months agoMITView on GitHub

Inspect or switch how br8n embeds text for semantic search — remote (API key) or local (keyless, on-device ONNX). Use when the user asks why search returns nothing, wants search to work without an API key, wants to stop paying for embeddings, or asks which embedding model br8n is using.

  • Reads credentials
  • Installs packages

We split this skill into the rules it gives an agent

4 rules. 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 7 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Call mcp__plugin_br8n_br8n__br8n_embeddings_get().

    line 18
  2. Very specific:

    Call mcp__plugin_br8n_br8n__br8n_embeddings_set(provider) with auto, remote, local or none.

    line 35
  3. Distinctive:

    If the rebuild itself genuinely fails partway (a locked DB, a transient I/O error — distinct from a deliberate defer), the tool does not …

    line 79
  4. Distinctive:

    Do not tell the user local embeddings match the remote model's quality.

    line 87

“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

br8n — Embeddings (which provider, and switching it)

Semantic search needs vectors. br8n produces them one of three ways:

ProviderWhen it appliesDim
remoteAI_GATEWAY_API_KEY or OPENAI_API_KEY is set1536
localthe br8n[local-embeddings] extra is installed, no key is set, and the KB is on the local tier — cloud pgvector columns are 1536-wide, so local always refuses on cloud384
noneneither — capture and chronological surfaces still work, search is text-only—

Step 1 — Report the current state

Call mcp__plugin_br8n_br8n__br8n_embeddings_get(). Lead with the provider, model and why it was chosen (source), then flag anything actionable:

  • ready: false with provider: local → the model is still downloading (~130 MB, first use only). Search stays text-only for a minute; nothing is lost.
  • pending_findings/pending_nodes above zero → a re-embed is draining in the background. It refills on ordinary reads; no action needed.
  • provider: none → say what would fix it: either set a key, or pip install 'br8n[local-embeddings]' and switch to local.
  • pending_switch not null → the environment quietly changed (e.g. a key went missing) and would flip the space (pending_switch.stored → pending_switch.detected), but existing vectors are at risk, so br8n left them alone instead of rebuilding. Tell the user what changed and offer to apply it — that offer is exactly Step 2.

Step 2 — Switch, if asked

Call mcp__plugin_br8n_br8n__br8n_embeddings_set(provider) with auto, remote, local or none. auto is the default and means "use a key if there is one, else local". To actually apply a deferred pending_switch, pass the concrete detected.provider from Step 1 — that always rebuilds immediately. Passing auto instead re-runs detection but is still subject to the same work-at-risk gate, so if the vectors it would discard are still there it defers again ({ok: true, deferred: true, ...}) rather than forcing the rebuild through.

The change lands in ~/.br8n/settings.json and applies to the next call — no MCP server restart. If the tool returns ok: false, relay error and, when present, run nothing yourself: show the user the fix command.

What a switch costs

Vectors from different models are not comparable, so an explicit switch via this tool rebuilds the index in place: br8n resizes the vector tables, drops the old vectors, and re-embeds in the background from content it already has. queued_rebuild in the response says how many rows were just flagged. Search quality dips until the drain finishes, then recovers — nothing is lost, because the text is canonical (in the DB and, on the vault tier, on disk).

An auto-detected environment change (no br8n_embeddings_set call — the key just came or went) behaves differently once real vectors exist: br8n does not rebuild on its own. Discarding a corpus of vectors is not a decision to make silently mid-flow, so the space is left exactly as it is and the pending switch surfaces via pending_switch (Step 1) / the --check doctor line instead. The only case that still rebuilds with no confirmation is a fresh install with nothing to lose (an empty vector table), which is what keeps a brand-new keyless machine zero-interaction.

Calling this tool with auto is what applies that offer — but the same work-at-risk gate still governs it: if auto currently resolves to a different space than what's stored and real vectors are present, the tool defers instead of forcing the rebuild through. That response looks like {ok: true, deferred: true, ...}, still carries pending_switch (unchanged from Step 1 — nothing was applied), and the setting is saved as "auto" exactly as asked; nothing is rolled back. This is success, not failure — it means "auto" was recorded, but the space itself is still waiting on an explicit remote/local/none (or a repeat auto call once the vectors are no longer at risk, e.g. after python -m br8n.vault.reindex). Passing a concrete provider (remote/local/none) always rebuilds immediately when it changes the space — the gate only ever defers auto.

If the rebuild itself genuinely fails partway (a locked DB, a transient I/O error — distinct from a deliberate defer), the tool does not report success on a half-done switch: it rolls the setting back to whatever it was before the call, so the provider and the index stay consistent — never a persisted setting pointing at an index that was never actually rebuilt. That case returns {ok: false, error, fix}, with fix suggesting a retry or python -m br8n.vault.reindex.

Do not tell the user local embeddings match the remote model's quality. They are a good keyless fallback; a configured key is still the better path.

Download now (ZIP)

  • Other versions8 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 8

    1. ruvnet/claude-flow★ 80ksame name
    2. ruvnet/ruflo★ 79ksame name
    3. 0gfoundation/0g-agent-skills★ 15same name
    4. Zekiog/ruflo★ 2same name
    5. fidgetcoding/fidgetflo★ 1same name
    6. jpoindexter/theft-kit★ 1same name
    7. Soulcynics404/AgentForge★ 1same name
    8. Wellux/claude-code-deprecated★ 1same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • Used alongsideProjects with it also use agent-agent, agent-analyze-code-quality and 10 more.

    Other files people use alongside this one.

    Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • In this repository11 other files it gives its agents.

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.