Integrating Anthropic‑Style Skills into LangChain DeepAgents: A Step‑by‑Step Guide
This article explains how to bring Anthropic's Skills concept into the open‑source LangChain DeepAgents framework by detailing the discovery, system‑prompt injection, progressive loading, and execution phases, and provides a complete code‑driven example using a web‑research Skill.
Background
Skills are reusable knowledge capsules stored in a folder containing at least a SKILL.md file with name, description and SOP. Loading a Skill only when needed reduces token usage and improves execution stability.
Target framework: LangChain DeepAgents
DeepAgents is LangChain’s open‑source framework for multi‑step agents and already supports Skills via its middleware system.
Implementation
The integration follows four stages:
Discover Skills in a configured directory (e.g., ~/.deepagents/agent/skills) and build a SkillMetadata list from the YAML header of each SKILL.md.
Inject the metadata list into the system prompt using a SkillsMiddleware that implements before_agent and wrap_model_call.
When the LLM decides to use a Skill, issue a read_file call to load the full SKILL.md (progressive loading).
Execute the SOP with tools such as read_file, write_file, task or a custom shell tool.
SkillsMiddleware example
class SkillsMiddleware(AgentMiddleware):
def before_agent(self, state: SkillsState, runtime: Runtime) -> SkillsStateUpdate | None:
# generate Skill metadata list
...
def wrap_model_call(self, request: ModelRequest,
handler: Callable[[ModelRequest], ModelResponse]) -> ModelResponse:
# append Skills section to system_prompt
if request.system_prompt:
system_prompt = request.system_prompt + "
" + skills_section
else:
system_prompt = skills_section
return handler(request.override(system_prompt=system_prompt))Shell tool definition
@tool('shell', description='Execute a shell command')
def shell_tool(command: str, runtime: ToolRuntime[None, AgentState]) -> ToolMessage | str:
try:
result = subprocess.run(
command,
check=False,
shell=True,
capture_output=True,
text=True,
timeout=self._timeout,
env=self._env,
cwd=self._workspace_root,
)
return result.stdout
except Exception as e:
return str(e)Warning: Shell execution is high‑risk; it should be guarded by human‑in‑the‑loop approval or sandboxing, with limits on runtime, output size and allowed commands.
Full agent construction
SYSTEM_PROMPT = """You are an agent equipped with multiple Skills to help users complete tasks."""
def make_backend(runtime):
return CompositeBackend(
default=FilesystemBackend(),
routes={
"/fs/": FilesystemBackend(root_dir="./fs", virtual_mode=True),
"/memories/": StoreBackend(runtime),
},
)
skills_middleware = SkillsMiddleware(skills_dir=USER_SKILLS_DIR, assistant_id="agent")
shell_middleware = ShellMiddleware(workspace_root=WORKSPACE_ROOT, timeout=120.0, max_output_bytes=100_000)
research_subagent = {
"name": "search-agent",
"description": "Agent for web search and research.",
"system_prompt": "You are an intelligent web‑search and research agent.",
"tools": [search, fetch_url],
"model": model,
}
agent = create_deep_agent(
model=model,
tools=[],
subagents=[research_subagent],
backend=make_backend,
middleware=[skills_middleware, shell_middleware],
system_prompt=SYSTEM_PROMPT,
debug=True,
).with_config({"recursion_limit": RECURSION_LIMIT})Concrete example: web‑research Skill
Steps to test:
Start the agent with langgraph dev.
Copy the web‑research Skill from the DeepAgents CLI examples into the user Skills directory.
Submit a query.
Observe the execution trace: metadata injection, LLM selects the skill, reads SKILL.md, writes a research plan, dispatches parallel sub‑tasks to a research sub‑agent, aggregates results and produces a final report.
Benefits of Skills
Complex task decomposition: explicit step‑by‑step guidance improves reliability for multi‑step tasks.
Efficient context usage: progressive disclosure saves token budget.
Easy sharing and maintenance: Skills are plain Markdown plus scripts, suitable for version control.
Continuous learning: agents can package newly discovered procedures as Skills for future reuse.
Source code: https://github.com/pingcy/deepagents-demo
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
AI Large Model Application Practice
Focused on deep research and development of large-model applications. Authors of "RAG Application Development and Optimization Based on Large Models" and "MCP Principles Unveiled and Development Guide". Primarily B2B, with B2C as a supplement.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
