Loading skill
Install any skill in seconds. Free to start, no credit card required.
Get Started Free →在 Deep Agents 中使用 SubAgentMiddleware 启动子代理进行任务委托、上下文隔离和专门工作。
.claude/skills/majiayu000-deepagents-subagents/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 43% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 49% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 42% | 0% |
| case-16 | ✗→✓ | ▲ Improved | -14% | 0% |
SubAgentMiddleware 通过 task 工具实现任务委托。优势:上下文隔离、专业化、token 效率、并行执行。
默认子代理:"通用型" - 自动可用,具有与主代理相同的工具/配置。
typescriptimport { createDeepAgent } from "deepagents"; import { tool } from "langchain"; import { z } from "zod"; const searchPapers = tool( async ({ query }) => `找到 10 篇关于 ${query} 的论文`, { name: "search_papers", description: "搜索学术论文", schema: z.object({ query: z.string() }), } ); const agent = await createDeepAgent({ subagents: [ { name: "research", description: "研究学术论文并提供摘要", systemPrompt: "你是一个研究助手。提供简洁的摘要。", tools: [searchPapers], model: "claude-sonnet-4-5-20250929", // 可选 } ] }); const result = await agent.invoke({ messages: [{ role: "user", content: "研究关于 transformers 的最新论文" }] });
typescriptimport { createDeepAgent, CompiledSubAgent } from "deepagents"; const weatherGraph = createWeatherGraph(); // 你的自定义 LangGraph const weatherSubagent = new CompiledSubAgent({ name: "weather", description: "获取天气预报", runnable: weatherGraph }); const agent = await createDeepAgent({ subagents: [weatherSubagent] });
typescriptimport { createDeepAgent } from "deepagents"; import { tool } from "langchain"; import { z } from "zod"; const webSearch = tool( async ({ query }) => `搜索结果:${query}`, { name: "web_search", description: "搜索网络", schema: z.object({ query: z.string() }), } ); const agent = await createDeepAgent({ subagents: [ { name: "researcher", description: "进行网络研究并汇编发现", systemPrompt: "彻底搜索,保存到 /research/,返回摘要", tools: [webSearch], } ] }); const result = await agent.invoke({ messages: [{ role: "user", content: "研究电动汽车的市场趋势" }] });
typescriptimport { createDeepAgent } from "deepagents"; import { MemorySaver } from "@langchain/langgraph"; const agent = await createDeepAgent({ subagents: [ { name: "code-deployer", description: "将代码部署到生产环境", systemPrompt: "安全地部署代码并进行所有检查", tools: [runTests, deployToProd], interruptOn: { deploy_to_prod: true }, // 需要审批 } ], checkpointer: new MemorySaver() // 必需 });
typescriptconst agent = await createDeepAgent({ skills: ["/main-skills/"], subagents: [ { name: "python-expert", description: "Python 代码审查和重构", systemPrompt: "审查 Python 代码以获得最佳实践", tools: [readCode, suggestImprovements], skills: ["/python-skills/"], // 子代理特定 } ] }); // 自定义子代理默认不继承主技能 // 通用子代理确实继承主技能
✅ 子代理名称、描述、工具 ✅ 每个子代理的不同模型 ✅ 子代理特定的提示、中间件、技能 ✅ 子代理工具的 HITL
❌ 更改 task 工具名称 ❌ 使子代理有状态 ❌ 在子代理之间共享状态 ❌ 删除默认的通用子代理
typescript// ❌ 子代理不记得之前的调用 await agent.invoke({messages: [{role: "user", content: "研究 X"}]}); await agent.invoke({messages: [{role: "user", content: "你发现了什么?"}]}); // 每次都是新的子代理 // ✅ 主代理维护对话内存
typescript// ❌ 子代理不会有主技能 await createDeepAgent({ skills: ["/main-skills/"], subagents: [{ name: "helper", ... }] }); // ✅ 明确提供技能 await createDeepAgent({ skills: ["/main-skills/"], subagents: [{ name: "helper", skills: ["/helper-skills/"], ... }] });
typescript// ❌ 缺少 checkpointer await createDeepAgent({ subagents: [{ name: "deployer", interruptOn: { deploy: true } }] }); // ✅ 主代理上的 Checkpointer await createDeepAgent({ subagents: [{ name: "deployer", interruptOn: { deploy: true } }], checkpointer: new MemorySaver() });
Other measured skills in the registry, with their headline benchmark lift.