ワンクリックで
deepagents-subagents
Using SubAgentMiddleware to spawn subagents for task delegation, context isolation, and specialized work in Deep Agents.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Using SubAgentMiddleware to spawn subagents for task delegation, context isolation, and specialized work in Deep Agents.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Using the Deep Agents CLI - terminal interface, persistent memory with AGENTS.md, project conventions, skills directories, and CLI commands.
Understanding Deep Agents framework - what they are, how to create them with createDeepAgent, and the agent harness architecture with built-in middleware for planning, filesystems, and subagents.
Creating and using custom skills with progressive disclosure, SKILL.md format, and the Agent Skills protocol in Deep Agents.
Using the Deep Agents CLI - terminal interface, persistent memory with AGENTS.md, project conventions, skills directories, and CLI commands.
Using FilesystemMiddleware with virtual filesystems, backends (State, Store, Filesystem, Composite), and context management for Deep Agents.
Using FilesystemMiddleware with virtual filesystems, backends (State, Store, Filesystem, Composite), and context management for Deep Agents.
| name | deepagents-subagents |
| description | Using SubAgentMiddleware to spawn subagents for task delegation, context isolation, and specialized work in Deep Agents. |
| language | js |
SubAgentMiddleware enables task delegation via the task tool. Benefits: context isolation, specialization, token efficiency, parallel execution.
Default subagent: "general-purpose" - automatically available with same tools/config as main agent.
import { createDeepAgent } from "deepagents";
import { tool } from "langchain";
import { z } from "zod";
const searchPapers = tool(
async ({ query }) => `Found 10 papers about ${query}`,
{
name: "search_papers",
description: "Search academic papers",
schema: z.object({ query: z.string() }),
}
);
const agent = await createDeepAgent({
subagents: [
{
name: "research",
description: "Research academic papers and provide summaries",
systemPrompt: "You are a research assistant. Provide concise summaries.",
tools: [searchPapers],
model: "claude-sonnet-4-5-20250929", // Optional
}
]
});
const result = await agent.invoke({
messages: [{ role: "user", content: "Research recent papers on transformers" }]
});
import { createDeepAgent, CompiledSubAgent } from "deepagents";
const weatherGraph = createWeatherGraph(); // Your custom LangGraph
const weatherSubagent = new CompiledSubAgent({
name: "weather",
description: "Get weather forecasts",
runnable: weatherGraph
});
const agent = await createDeepAgent({
subagents: [weatherSubagent]
});
import { createDeepAgent } from "deepagents";
import { tool } from "langchain";
import { z } from "zod";
const webSearch = tool(
async ({ query }) => `Search results for: ${query}`,
{
name: "web_search",
description: "Search the web",
schema: z.object({ query: z.string() }),
}
);
const agent = await createDeepAgent({
subagents: [
{
name: "researcher",
description: "Conduct web research and compile findings",
systemPrompt: "Search thoroughly, save to /research/, return summary",
tools: [webSearch],
}
]
});
const result = await agent.invoke({
messages: [{
role: "user",
content: "Research market trends for EVs"
}]
});
import { createDeepAgent } from "deepagents";
import { MemorySaver } from "@langchain/langgraph";
const agent = await createDeepAgent({
subagents: [
{
name: "code-deployer",
description: "Deploy code to production",
systemPrompt: "Deploy code safely with all checks",
tools: [runTests, deployToProd],
interruptOn: { deploy_to_prod: true }, // Require approval
}
],
checkpointer: new MemorySaver() // Required
});
const agent = await createDeepAgent({
skills: ["/main-skills/"],
subagents: [
{
name: "python-expert",
description: "Python code review and refactoring",
systemPrompt: "Review Python code for best practices",
tools: [readCode, suggestImprovements],
skills: ["/python-skills/"], // Subagent-specific
}
]
});
// Custom subagents DON'T inherit main skills by default
// General-purpose subagent DOES inherit main skills
✅ Subagent name, description, tools
✅ Different models per subagent
✅ Subagent-specific prompts, middleware, skills
✅ HITL for subagent tools
❌ Change task tool name
❌ Make subagents stateful
❌ Share state between subagents
❌ Remove default general-purpose subagent
// ❌ Subagents don't remember previous calls
await agent.invoke({messages: [{role: "user", content: "Research X"}]});
await agent.invoke({messages: [{role: "user", content: "What did you find?"}]});
// Fresh subagent each time
// ✅ Main agent maintains conversation memory
// ❌ Subagent won't have main skills
await createDeepAgent({
skills: ["/main-skills/"],
subagents: [{ name: "helper", ... }]
});
// ✅ Provide skills explicitly
await createDeepAgent({
skills: ["/main-skills/"],
subagents: [{
name: "helper",
skills: ["/helper-skills/"],
...
}]
});
// ❌ Missing checkpointer
await createDeepAgent({
subagents: [{
name: "deployer",
interruptOn: { deploy: true }
}]
});
// ✅ Checkpointer on main agent
await createDeepAgent({
subagents: [{
name: "deployer",
interruptOn: { deploy: true }
}],
checkpointer: new MemorySaver()
});