Files
hermes-agent/plugin-catalog/skill-retrieval.yaml
teknium1 09b0666ad5 catalog(skill-retrieval): describe the llm_request middleware accurately and disclose the opt-in rerank
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.
2026-10-03 10:35:56 -07:00

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: []