The description named a register_system_prompt_section call the plugin never makes; the opt-in rerank sends data off-host, so it gets a Disclosure line.
32 lines
1.5 KiB
YAML
32 lines
1.5 KiB
YAML
name: skill-retrieval
|
|
repo: https://github.com/moonlight-lupin/agent-skills
|
|
sha: 79801c69e797f5f8efd619f8f451ca89d18c7240
|
|
subdir: plugins/skill-retrieval
|
|
description: >-
|
|
BM25-based skill retrieval for large skill libraries. An llm_request middleware rewrites
|
|
the outgoing request's <available_skills> block to names only (the same bytes every turn,
|
|
so prompt caching is unaffected), and a pre_llm_call hook appends the top-K matching
|
|
skill descriptions to the current user message. Uses public plugin surfaces only
|
|
(register_middleware, register_hook); reads SKILL.md frontmatter from the profile's skill
|
|
roots and imports a few agent.prompt_builder / agent.skill_utils helpers read-only.
|
|
pyyaml is the only dependency. Disclosure — optional Jev rerank, off by default: with
|
|
SKILL_RETRIEVAL_RERANK=jev and TYPESAFE_API_KEY set (read from the environment only), each
|
|
turn POSTs the user message (injection patterns stripped, capped at 2000 chars) and up to
|
|
12 shortlisted skill descriptions (400 chars each) to api.typesafe.ai (3 s timeout, no
|
|
retries, BM25 order kept on error), and appends a local JSONL log (timestamp, session id,
|
|
200-char query excerpt, both orders) under $HERMES_HOME/data/jev-trial/, rotated past 5 MB.
|
|
With the rerank off it makes no network calls and writes no files.
|
|
maintainer: moonlight-lupin
|
|
tier: community
|
|
category: tools
|
|
requires_hermes: ">=0.21.1"
|
|
version: "0.6.0"
|
|
capabilities:
|
|
provides_tools: []
|
|
provides_hooks:
|
|
- pre_llm_call
|
|
- on_skill_lifecycle
|
|
provides_middleware:
|
|
- llm_request
|
|
requires_env: []
|