Improving Agent Skills user experience by adding hooks
I'm a big fan of SKILLS.md in the context of LLM agents. On the surface, its a very simple concept - it just contains summary of a big concept and this summary is always fed into the LLM's context. It can lazily load the full concept when required - it can know exactly when to load it since it always has the summary inside it.
What Agent skills miss
I think Agent skills are good but they need two additional hooks
Installation
A hook to install the skill itself - this part of the skill is used only on the first time. Maybe you want to install a CLI for Jira using homebrew and want to apply a proper config for it. This is a one time thing and the description has to lie somewhere right? And once used, it should never be fed to the Agent again.
The advantage of this is that it hides all the complexity to do the pre-work to get the skill working. As a skill consumer - I don't really need to know that I have to install a certain CLI, change a certain config or anything else. It is all done by the LLM using the spec from the Skill itself!
Dependencies
I think each Agent Skill also needs a way to express the other skills it may depend on. For example, the PDF editing skill depends on the Python skill. So it might have to install the Python skill first from the registry (if there exists one).
Example schema of a Skill
---
name: pdf-processing
description: Extract text and tables.....
dependencies: [python_skill, nodejs_skill]
installation: First install the PDF parsing library pdfplumber using PIP, then verify that it works....
---
Use pdfplumber to extract text from PDFs:
```python
import pdfplumber
with pdfplumber.open("document.pdf") as pdf:
text = pdf.pages[0].extract_text()
....