Agent skill · Audited from source
framework-selection
skill · langchain-ai/langchain-skillsMIT licenceAudited 27 Oct 2026 · source a78b2e2257e3
Is it safe? No — BLOCK, grade D (69/100). We read this skill's source at commit a78b2e2257e3 and observed filesystem access and no hard-coded secrets. The audit raised 6 findings, 3 critical or high. What it does: INVOKE THIS SKILL when building ANY Deep Agents application. Covers create_deep_agent(), harness architecture, SKILL.md format, and configuration options.
Cite
Cite this page
ModelsAtlas. “framework-selection (langchain-ai/langchain-skills)”. Retrieved 27 Oct 2026. https://modelsatlas.com/skills/langchain-ai/framework-selection
Blocked. The page stays public so you can check this skill if someone recommended it to you. The audit found 3 critical or high findings, starting with “Prompt injection” in config/skills/managed-deep-agents/SKILL.md:138. Do not install it without reading them.
Trust audit
Audit 0.4.1 · source read 27 Oct 2026
BLOCK means the audit found something that could harm you or your machine. Grade D is shared by 642 of 14,816 audited skills.
What the source does
- FilesystemDeclared1 observation
- NetworkNone observedNo outbound calls in the source
- ShellNone observedNo commands run in the source
- DependenciesNot pinnedSome versions float
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | PASS | 1 |
L2 Instructions | Prompt injection, authority framing, hidden directives | FAIL | 5 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (6)
HIGHPrompt injectionprompt.credential_read · config/skills/managed-deep-agents/SKILL.md:138
- A workspace with Managed Deep Agents public beta access, and a LangSmith API key for it.
- Why
- asks the agent to read credentials
- Fix
- —
HIGHPrompt injectionprompt.credential_read · config/skills/managed-deep-agents/SKILL.md:342
Imports work exactly as in a normal local project. Use clear, unique tool names to avoid collisions. Tools read deployment secrets from environment variables; put local values in `.env`. For per-run v
- Why
- asks the agent to read credentials
- Fix
- —
HIGHPrompt injectionprompt.credential_read · config/skills/managed-deep-agents/SKILL.md:511
`mda evals init` initializes the workspace and prints the pinned `harbor run` handoff; it does not run trials. `mda evals compile` is now an internal Harbor plugin entrypoint, so do not tell users to
- Why
- asks the agent to read credentials
- Fix
- —
LOWSupply chainsupply.unpinned · package.json
typescript, vitest
- Why
- 2 dependency range(s) float
- Fix
- pin exact versions or ship a lockfile
INFOPrompt injectionprompt.credential_read · config/skills/eval-engineering/references/discovery.md:30
packages, open secret stores, or use credentials.
- Why
- asks the agent to read credentials
- Fix
- —
INFOPrompt injectionprompt.credential_read · config/skills/eval-engineering/references/discovery.md:222
open `.env` files, credential stores, tokens, cookies, private keys, or secret
- Why
- asks the agent to read credentials
- Fix
- —
Audit 0.4.1 · source sha a78b2e2257e3 · 27 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publisherlangchain-ai GitHub organizationOwner of the repository this skill is read from
- Source folderlangchain-ai/langchain-skillsThe exact folder we audited
- LicenceMITAs the repository states it
- Commit pinned for this verdicta78b2e2257e3A new audit runs when the source changes
- Repository statusNot archivedLast push 1 day ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: INVOKE THIS SKILL when building ANY Deep Agents application. Covers create_deep_agent(), harness architecture, SKILL.md format, and configuration options.
---
name: deep-agents-core
description: "INVOKE THIS SKILL when building ANY Deep Agents application. Covers create_deep_agent(), harness architecture, SKILL.md format, and configuration options."
---
<overview>
Deep Agents are an opinionated agent framework built on LangChain/LangGraph with built-in middleware:
- **Task Planning**: TodoListMiddleware for breaking down complex tasks
- **Context Management**: Filesystem tools with pluggable backends
- **Task Delegation**: SubAgent middleware for spawning specialized agents
- **Long-term Memory**: Persistent storage across threads via Store
- **Human-in-the-loop**: Approval workflows for sensitive operations
- **Skills**: On-demand loading of specialized capabilities
The agent harness provides these capabilities automatically - you configure, not implement.
</overview>
<when-to-use>
| Use Deep Agents When | Use LangChain's create_agent When |
|---------------------|-----------------------------------|
| Multi-step tasks requiring planning | Simple, single-purpose tasks |
| Large context requiring file management | Context fits in a single prompt |
| Need for specialized subagents | Single agent is sufficient |
| Persistent memory across sessions | Ephemeral, single-session work |
</when-to-use>
<middleware-selection>
| If you need to... | Middleware | Notes |
|------------------|------------|-------|
| Track complex tasks | TodoListMiddleware | Default enabled |
| Manage file context | FilesystemMiddleware | Configure backend |
| Delegate work | SubAgentMiddleware | Add custom subagents |
| Add human approval | HumanInTheLoopMiddleware | Requires checkpointer |
| Load skills | SkillsMiddleware | Provide skill directories |
| Access memory | MemoryMiddleware | Requires Store instance |
</middleware-selection>
<ex-basic-agent>
<python>
Create a basic deep agent with a custom tool and invoke it with a user message.
```python
from deepagents import create_deep_agent
from langchain.tools import tool
@tool
def get_weather(city: str) -> str:
"""Get the weather for a given city."""
return f"It is always sunny in {city}"
agent = create_deep_agent(
model="claude-sonnet-4-5-20250929",
tools=[get_weather],
system_prompt="You are a helpful assistant"
)
config = {"configurable": {"thread_id": "user-123"}}
result = agent.invoke({
"messages": [{"role": "user", "content": "What's the weather in Tokyo?"}]
}, config=config)
```
</python>
<typescript>
Create a basic deep agent with a custom tool and invoke it with a user message.
```typescript
import { createDeepAgent } from "deepagents";
import { tool } from "@langchain/core/tools";
import { z } from "zod";
const getWeather = tool(
async ({ city }) => `It is always sunny in ${city}`,
{ name: "get_weather", description: "Get weather for a city", schema: z.object({ city: z.string() }) }
);
const agent = await createDeepAgent({
model: "claude-sonnet-4-5-20250929",
tools: [getWeather],
systemPrompt: "You are a helpful assistant"
});
const config = { configurable: { thread_id: "user-123" } };
const result = await agent.invoke({
messages: [{ role: "user", content: "What's the weather in Tokyo?" }]
}, config);
```
</typescript>
</ex-basic-agent>
<ex-full-configuration>
<python>
Configure a deep agent with all available options including subagents, skills, and persistence.
```python
from deepagents import create_deep_agent
from deepagents.backends import FilesystemBackend
from langgraph.checkpoint.memory import MemorySaver
from langgraph.store.memory import InMemoryStore
agent = create_deep_agent(
name="my-assistant",
model="claude-sonnet-4-5-20250929",
tools=[custom_tool1, custom_tool2],
system_prompt="Custom instructions",
subagents=[research_agent, code_agent],
backend=FilesystemBackend(root_dir=".", virtual_mode=True),
interrupt_on={"write_file": True},
skills=["./skills/"],
checkpointer=MemorySaver(),
store=InMemoryStore()
)
```
</python>
<typescript>
Configure a deep agent with all available options including subagents, skills, and persistence.
```typescript
import { createDeepAgent, FilesystemBackend } from "deepagents";
import { MemorySaver, InMemoryStore } from "@langchain/langgraph";
const agent = await createDeepAgent({
name: "my-assistant",
model: "claude-sonnet-4-5-20250929",
tools: [customTool1, customTool2],
systemPrompt: "Custom instructions",
subagents: [researchAgent, codeAgent],
backend: new FilesystemBackend({ rootDir: ".", virtualMode: true }),
interruptOn: { write_file: true },
skills: ["./skills/"],
checkpointer: new MemorySaver(),
store: new InMemoryStore()
});
```
</typescript>
</ex-full-configuration>
<built-in-tools>
Every deep agent has access to:
1. **Planning**: `write_todos` - Track multi-step tasks
2. **Filesystem**: `ls`, `read_file`, `write_file`, `edit_file`, `glob`, `grep`
3. **Delegation**: `task` - Spawn specialized subagents
</built-in-tools>
---
## SKILL.md Format
<skill-md-format>
Skills use **progressive disclosure** - agents only load content when relevant.
### Directory Structure
```
skills/
└── my-skill/
├── SKILL.md # Required: main skill file
├── examples.py # Optional: supporting files
└── templates/ # Optional: templates
```
### SKILL.md Format
```markdown
---
name: my-skill
description: Clear, specific description of what this skill does
---
# Skill Name
## Overview
Brief explanation of the skill's purpose.
## When to Use
Conditions when this skill applies.
## Instructions
Step-by-step guidance for the agent.
```
</skill-md-format>
<skills-vs-memory>
| Skills | Memory (AGENTS.md) |
|--------|-------------------|
| On-demand loading | Always loaded at startup |
| Task-specific instructions | General preferences |
| Large documentation | Compact context |
| SKILL.md in directories | Single AGENTS.md file |
</skills-vs-memory>
<ex-skills-with-filesystem-backend>
<python>
Set up an agent with skills directory Excerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit a78b2e2
npx skills add langchain-ai/langchain-skills --skill '*' --yes npx skills add langchain-ai/langchain-skills --skill '*' --yes --global npx skills add langchain-ai/langchain-skills --agent claude-code --skill '*' --yes --global npx skills add langchain-ai/langchain-skills --agent codex --skill '*' --yes --global npx skills add langchain-ai/langchain-skills --agent github-copilot --skill '*' --yes --global npx skills add langchain-ai/langchain-skills --skill eval-engineering --yes
git clone https://github.com/langchain-ai/langchain-skills git -C langchain-skills checkout a78b2e2257e3
Commands as the repository documents them: shown, never run by us. Our verdict covers commit a78b2e2257e3 only.
Works in which agents?
What its own text says, not a test
| Agent | Status | More |
|---|---|---|
| Claude Code | Mentioned in its text, not tested | Skills for Claude Code · About Claude Code |
| Codex | Mentioned in its text, not tested | Skills for Codex · About Codex |
| GitHub Copilot | Mentioned in its text, not tested | Skills for GitHub Copilot · About GitHub Copilot |
| Cursor | Mentioned in its text, not tested | Skills for Cursor · About Cursor |
| Windsurf | Mentioned in its text, not tested | Skills for Windsurf · About Windsurf |
Audit history
Every audit, every source change
- ✕BLOCK D 69 / 100
first audit · source
a78b2e2257e3
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/langchain-ai/framework-selection/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
affaan-m/ECC
Docker and Docker Compose patterns for local development, container security, networking, volume strategies, and multi-service orchestration. Use when setting up containerized development environments or reviewing…
n8n-io/n8n
Fetch and display the full transcript from a Loom video URL. Use when the user wants to get or read a Loom transcript.
anthropics/skills
Reference for the Claude API / Anthropic SDK — model ids, pricing, params, streaming, tool use, MCP, agents, caching, token counting, model migration. TRIGGER — read BEFORE opening the target file; don't skip because it…
Add this badge to your README
[](https://modelsatlas.com/skills/langchain-ai/framework-selection/)
<a href="https://modelsatlas.com/skills/langchain-ai/framework-selection/"><img src="https://modelsatlas.com/skills/langchain-ai/framework-selection/badge.svg" alt="ModelsAtlas: BLOCK D"></a>
Questions about framework-selection
Is framework-selection safe to install?
What can framework-selection access on my machine?
Which assistants does framework-selection work with?
How current is this page?
Sources
- github.com/langchain-ai/langchain-skills — the audited source at commit a78b2e2257e3 and every finding aboveObserved · 27 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- Is framework-selection safe to install?
- What can framework-selection access on my machine?
- Which assistants does framework-selection work with?