are all these skills being loaded into the context...
# proj-agent
w
are all these skills being loaded into the context window every time? should these be more opt-in?
c
They're AgentSkill format, so I think only a short description is loaded, for each of them
But yes... maybe we could somehow split them
m
Actually, not all skills are loaded in the context window. We have two type of skills: • always loaded context • trigger loaded context The former are always loaded into the system prompt, while the latter are only triggered when a keyword appears in a user message. That said, I’m not sure if all the skills in your screenshot are loaded into the system prompt. Note: In the Always-loaded skills there is a subset called semantically triggered skills, as the agent can invoke/fully disclose them if the skill description is semantically similar to the user’s message.
c
These are Agentskill format, I think, they're: https://github.com/OpenHands/skills/tree/main/skills We could say they're three types... it's getting a bit confusing, but this is the ones for which only the description should be loaded in the prompt https://docs.openhands.dev/sdk/guides/skill#progressive-disclosure-agentskills-standard
👍 1
m
Thanks for the clarification 🙂
About the optimization question: Claude has a Tool search tool (in beta) that allows Claude to works with a big number of tools. I can image that there is something similar also for skills (or that it is wip)
c
I think maybe we could fix the docs... because you are correct, Vasco, they should (tm) be two, but maybe we could present them like: • always in context • agentskill extended standard ◦ has a description in context ◦ (optional) trigger
❤️ 1
m
actually there are two but with subtypes I will say • always loaded skills: ◦ the whole skills loaded in context (e.g. memory) ◦ just description loaded in context and then progressive disclosure (e.g. pr-review) if the agent asks for it • trigger loaded skills
c
We could do it like that, it has some disadvantages though: • agent tools out there have the notion of AGENTS.md / claude / gemini, and AFAIK they don't name them skills • AgentSkill is an emerging standard, so combining it with AGENTS.md seems more difficult to make clear to people • we did intend to extend AgentSkill, with triggers: so it seems an easier mental model to name them "extended AgentSkill standard" More importantly, it seems to me super-cool that an "extended AgentSkill" as we define it, means: • triggered, not always in context • the user can trigger it, if you define a trigger • the agent can trigger it, since it knows a short description that makes the LLM decide to use it.
I'm not sure how people name AGENTS.md... they name it AGENTS.md ? 😅 - some "instructions files" idk 🤷
m
agent tools out there have the notion of AGENTS.md / claude / gemini, and AFAIK they don't name them skills
I see your point. But actually having Memory is a skill and it would make sense to have it incorporate in the skill machinery. But this is just my taste 🙂
triggered, not always in context
What do you mean with that? Can you give an example of such skill?
c
Those in
skills/
repo, I think maybe they all have
triggers
defined. Most of them come from old Openhands format ("keyword-based") where they were only loaded on user message, and the agent couldn't run/load them on its own
But actually having Memory is a skill and it would make sense to have it incorporate in the skill machinery.
nod ❤️ the best skill!
❤️ 1
m
I think it would be really useful to have a solid overview of how skills are implemented in the repo so that we can best attack this epic.