Revamping Skills in Deep Agents

LangChain has revamped skills support in Deep Agents, adding tool binding, runtime pinning and mid-thread reloading. The changes are available in the latest deepagents release.
Skills follow an open standard supported by dozens of agent products and work with any model. A skill is a directory containing a SKILL.md file: YAML frontmatter with a name and description, followed by instructions, plus optional files under scripts/, references/ and assets/. Only each skill's name and description sit in context at startup; the agent reads full instructions only when a task matches, then loads supporting files on demand, a pattern the post calls progressive disclosure. LangChain's example GTM agent carries more than 50 skills covering sales work such as meeting-prep and call-transcripts.
Tools can now be bound to a skill by listing them in the skill's frontmatter under metadata.include_tools and passing them to SkillsMiddleware rather than the agent. A bound tool is not added to context until the agent reads its skill, and calling it earlier fails as an unknown tool. The tools arrive in a new system message, so the cached prefix above it is unchanged. On Anthropic and OpenAI models that accept tools mid-conversation, bound tools are added right after the skill is read and the prompt cache stays intact; on other models they are appended to the request as before. A skill can instead list a label that a function passed to SkillsMiddleware turns into tools, allowing a whole group such as every tool on an MCP server to be disclosed under one name or gated on runtime permissions.
Pinning lets an app pass pinned_skills, so the skill's instructions enter the conversation before the next model call. Deep Agents does not parse messages, so the app chooses the syntax, such as /meeting-prep. The pinned skill, and any tools bound to it, are added once as a tagged message so earlier messages do not change and the prompt cache stays valid.
Skills are loaded at the start of each thread and kept in agent state. Setting skills_metadata to None when invoking the agent invalidates the list so the next run rescans every source, letting long-running threads pick up added, edited or deleted skills. A reload that finds new skills changes the system prompt and invalidates the prompt cache; provider caches typically expire within minutes to an hour of inactivity.
Why it matters: teams with large shared skill registries can keep context small while still guaranteeing the right instructions and tools are loaded, and long-running agents stay current without starting a new thread.
Based on reporting from the original publisher. Visit the source for full context and later updates.
Publisher excerpt
Deep Agents now lets you bind tools to skills, pin skills at runtime, and reload skills mid-thread, so agents with expansive skill repositories stay context-efficient and effective.