🧰 The agent reads a skill but can't find its tools. Or it calls a tool without ever reading how to use it. Deep Agents just fixed that mismatch.
Title: Revamping Skills in Deep Agents
URL:
Skills have worked by progressive disclosure: only a name and description in the system prompt at startup, full instructions read on demand. Three upgrades now target registries running into the thousands of skills.
🔗 Binding tools to skills
List tools under include_tools in the skill's frontmatter and they stay hidden until the agent reads that skill. Tools now go to SkillsMiddleware rather than to the agent. Hand the middleware a function that resolves labels to tools and you also get group-level disclosure and runtime permission gating.
📌 Pinned skills
Even when a user explicitly asked for a skill with a slash command, the agent still had to read its description first. Passing it via pinned_skills lets the middleware drop the instructions into the conversation before the next model call, so the agent starts working on model call 1 instead of 2. Bound tools come along automatically.
🔄 Reloading mid-thread
Skills used to be fixed at thread start, so long-running agents missed anything added or edited afterward. Setting skills_metadata to None invalidates the cached list and rescans the library, and the post shows wiring that to a client-side /reload.
What ties all three together is where things get inserted relative to the prompt cache. Tools arrive as a new system message below the cached prefix, and each pinned skill is added once as a tagged message so earlier turns never change.
#
AIAgents# #
LangChain#