主题
动态子智能体
使用解释器从代码中分派和编排 Deep Agents 子智能体
动态子智能体让智能体可以从解释器代码中分派子智能体。智能体无需让模型一次选择一个子智能体调用,而是可以使用 JavaScript 循环、分支和并行批次,将工作路由到已配置的各个子智能体并综合结果。
当工作跨越许多相互独立的单元、需要多个视角,或能从递归分析中获益时,可使用此模式。有关解释器的通用设置,请参阅解释器。
WARNING
动态子智能体使用解释器运行时,它处于测试版。API 和生命周期行为可能在不同版本之间发生变化。
NOTE
解释器需要 langchain-quickjs>=0.2.0 以及 Python 3.11 或更高版本。
快速开始
动态子智能体需要解释器 middleware。请先安装并接入解释器。内置的通用子智能体无需额外配置即可处理基本的扇出。
python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="google_genai:gemini-3.6-flash",
subagents=[{
"name": "reviewer",
"description": "Reviews code for security issues, citing lines and severity",
"system_prompt": "You are a security-focused code reviewer. Report issues with line numbers and severity.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openai:gpt-5.5",
subagents=[{
"name": "reviewer",
"description": "Reviews code for security issues, citing lines and severity",
"system_prompt": "You are a security-focused code reviewer. Report issues with line numbers and severity.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="anthropic:claude-sonnet-5",
subagents=[{
"name": "reviewer",
"description": "Reviews code for security issues, citing lines and severity",
"system_prompt": "You are a security-focused code reviewer. Report issues with line numbers and severity.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openrouter:z-ai/glm-5.2",
subagents=[{
"name": "reviewer",
"description": "Reviews code for security issues, citing lines and severity",
"system_prompt": "You are a security-focused code reviewer. Report issues with line numbers and severity.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="fireworks:accounts/fireworks/models/glm-5p2",
subagents=[{
"name": "reviewer",
"description": "Reviews code for security issues, citing lines and severity",
"system_prompt": "You are a security-focused code reviewer. Report issues with line numbers and severity.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="baseten:zai-org/GLM-5.2",
subagents=[{
"name": "reviewer",
"description": "Reviews code for security issues, citing lines and severity",
"system_prompt": "You are a security-focused code reviewer. Report issues with line numbers and severity.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="ollama:north-mini-code-1.0",
subagents=[{
"name": "reviewer",
"description": "Reviews code for security issues, citing lines and severity",
"system_prompt": "You are a security-focused code reviewer. Report issues with line numbers and severity.",
}],
middleware=[CodeInterpreterMiddleware()],
)有关安装步骤和解释器设置,请参阅解释器。
对于专门的工作,可配置带有各自名称、描述和系统提示词的自定义子智能体。子智能体的名称和描述作为信息,供智能体评估该调用哪个角色。
要触发动态子智能体,请用 "workflow" 一词提示智能体:
python
result = agent.invoke({
"messages": [{"role": "user", "content": "Run a workflow that reviews every file in src/routes/ and summarizes the top risks."}]
})TIP
"workflow" 一词是一个有用的触发器。 解释器系统提示词将 "workflow" 视为一种信号,即通过解释器来组织工作,从代码中用 task() 分派子智能体,而不是一次一个由模型选择的工具调用去硬啃各个条目。把请求表述为一个 "workflow" 是你可以刻意拉动的杠杆,用以选择启用动态编排。对于单次的、直接的委派,则改用平实的表述。
NOTE
要在 LangChain 终端编码智能体 dcode 中使用动态子智能体?dcode 默认启用了代码解释器,因此动态子智能体开箱即用。有关设置和使用细节,请参阅 dcode 子智能体页面。
工作原理
当智能体拥有子智能体和解释器 middleware 时,解释器会暴露一个内置的 task() 全局函数,用于从代码中分派子智能体。一个跨越许多独立单元的任务(审查目录中的每个文件、对一批工单进行分类)会变成一个将工作扇出的循环,从而确定性地运行,而不是一次一个由模型选择的工具调用。
子智能体编排还支持递归语言模型(RLM)工作流,即 Recursive Language Models 论文中描述的方法:把工作集保存在解释器变量中、选取切片、用 task() 调用子智能体,并综合结果。
许多编排工作流会将动态子智能体与程序化工具调用(PTC)结合使用:从解释器代码中使用 tools.* 来发现或筛选输入,然后用 task() 分派子智能体。PTC 默认关闭;请在解释器 middleware 上通过显式的允许列表启用它。
task() 是通往子智能体执行的能力桥接,类似于工具方面的 PTC。有关隔离默认值、审批边界和 middleware 选项,请参阅安全和配置。
NOTE
使用 mode="thread"(默认值)时,多轮编排可以让解释器变量在多个智能体轮次之间保持持久化。请参阅解释器页面上的持久化。
task() 接受以下输入:
description:子智能体的提示词subagentType:要运行哪个已配置的子智能体responseSchema(可选):结构化输出
一次 task() 会运行完整的智能体循环,并解析为子智能体的结果:
ts
const review = await task({
description: "Review src/auth/login.ts for auth issues. Cite line numbers.",
subagentType: "reviewer",
responseSchema: {
type: "object",
properties: {
issues: { type: "array", items: { type: "object", properties: {
file: { type: "string" }, line: { type: "number" },
severity: { type: "string" }, description: { type: "string" },
}}},
},
},
});
// With responseSchema, the result is already a typed value, so no JSON.parse is needed.
const critical = review.issues.filter((issue) => issue.severity === "high");当你传入 responseSchema 时,解析得到的值已经是一个有类型的 JavaScript 对象;只有当子智能体有意返回 JSON 字符串时才需要调用 JSON.parse。
模式
智能体会根据任务的形态选择一种策略;这些策略源于它如何编写解释器代码,而非来自配置,而你提供的子智能体决定了它能做什么。每种模式都采用相同的编排方式:把工作保存在 JS 变量中,用 task() 分派子智能体,并在代码中合并结果。下面的图示展示了常见的形态,每种都附有一个可运行的示例。
分类并处理
先对条目分类,然后根据其分类由专门的子智能体处理每个条目。这让你能够处理混合输入,其中不同条目需要不同的专业知识。
graph LR
Task[Task] --> Classify{Classifier}
Classify --> |bug| A[Agent A]
Classify --> |feature| B[Agent B]
Classify --> |question| C[Agent C]
用例: 对支持工单、错误日志、用户反馈进行分类,或任何需要根据其类型进行不同处理的条目批次。
Example: classify and act
你配置的内容
python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="google_genai:gemini-3.6-flash",
subagents=[
{
"name": "bug-fixer",
"description": "Investigates bug reports and provides reproduction steps",
"system_prompt": "You are a bug triage specialist. Investigate each bug report and provide clear reproduction steps.",
},
{
"name": "feature-analyst",
"description": "Evaluates feature requests for feasibility and effort",
"system_prompt": "You are a product analyst. Evaluate each feature request for technical feasibility, estimated effort, and potential impact.",
},
{
"name": "support-agent",
"description": "Answers user questions based on documentation",
"system_prompt": "You are a support specialist. Answer user questions clearly based on the available documentation.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openai:gpt-5.5",
subagents=[
{
"name": "bug-fixer",
"description": "Investigates bug reports and provides reproduction steps",
"system_prompt": "You are a bug triage specialist. Investigate each bug report and provide clear reproduction steps.",
},
{
"name": "feature-analyst",
"description": "Evaluates feature requests for feasibility and effort",
"system_prompt": "You are a product analyst. Evaluate each feature request for technical feasibility, estimated effort, and potential impact.",
},
{
"name": "support-agent",
"description": "Answers user questions based on documentation",
"system_prompt": "You are a support specialist. Answer user questions clearly based on the available documentation.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="anthropic:claude-sonnet-5",
subagents=[
{
"name": "bug-fixer",
"description": "Investigates bug reports and provides reproduction steps",
"system_prompt": "You are a bug triage specialist. Investigate each bug report and provide clear reproduction steps.",
},
{
"name": "feature-analyst",
"description": "Evaluates feature requests for feasibility and effort",
"system_prompt": "You are a product analyst. Evaluate each feature request for technical feasibility, estimated effort, and potential impact.",
},
{
"name": "support-agent",
"description": "Answers user questions based on documentation",
"system_prompt": "You are a support specialist. Answer user questions clearly based on the available documentation.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openrouter:z-ai/glm-5.2",
subagents=[
{
"name": "bug-fixer",
"description": "Investigates bug reports and provides reproduction steps",
"system_prompt": "You are a bug triage specialist. Investigate each bug report and provide clear reproduction steps.",
},
{
"name": "feature-analyst",
"description": "Evaluates feature requests for feasibility and effort",
"system_prompt": "You are a product analyst. Evaluate each feature request for technical feasibility, estimated effort, and potential impact.",
},
{
"name": "support-agent",
"description": "Answers user questions based on documentation",
"system_prompt": "You are a support specialist. Answer user questions clearly based on the available documentation.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="fireworks:accounts/fireworks/models/glm-5p2",
subagents=[
{
"name": "bug-fixer",
"description": "Investigates bug reports and provides reproduction steps",
"system_prompt": "You are a bug triage specialist. Investigate each bug report and provide clear reproduction steps.",
},
{
"name": "feature-analyst",
"description": "Evaluates feature requests for feasibility and effort",
"system_prompt": "You are a product analyst. Evaluate each feature request for technical feasibility, estimated effort, and potential impact.",
},
{
"name": "support-agent",
"description": "Answers user questions based on documentation",
"system_prompt": "You are a support specialist. Answer user questions clearly based on the available documentation.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="baseten:zai-org/GLM-5.2",
subagents=[
{
"name": "bug-fixer",
"description": "Investigates bug reports and provides reproduction steps",
"system_prompt": "You are a bug triage specialist. Investigate each bug report and provide clear reproduction steps.",
},
{
"name": "feature-analyst",
"description": "Evaluates feature requests for feasibility and effort",
"system_prompt": "You are a product analyst. Evaluate each feature request for technical feasibility, estimated effort, and potential impact.",
},
{
"name": "support-agent",
"description": "Answers user questions based on documentation",
"system_prompt": "You are a support specialist. Answer user questions clearly based on the available documentation.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="ollama:north-mini-code-1.0",
subagents=[
{
"name": "bug-fixer",
"description": "Investigates bug reports and provides reproduction steps",
"system_prompt": "You are a bug triage specialist. Investigate each bug report and provide clear reproduction steps.",
},
{
"name": "feature-analyst",
"description": "Evaluates feature requests for feasibility and effort",
"system_prompt": "You are a product analyst. Evaluate each feature request for technical feasibility, estimated effort, and potential impact.",
},
{
"name": "support-agent",
"description": "Answers user questions based on documentation",
"system_prompt": "You are a support specialist. Answer user questions clearly based on the available documentation.",
},
],
middleware=[CodeInterpreterMiddleware()],
)智能体编写的内容
ts
// The agent has already classified each ticket; this routes every item to
// the right specialist and collects the handled results.
const SPECIALIST = { bug: "bug-fixer", feature: "feature-analyst", question: "support-agent" };
const handled = await Promise.all(
tickets.map((ticket) =>
task({
description: `Handle this ${ticket.category}:\n${ticket.text}`,
subagentType: SPECIALIST[ticket.category],
}),
),
);
// ... group handled results by category into a single triage report
handled;扇出并综合
智能体并行地将同类工作分派到许多条目上,然后合并结果。
graph LR
Items[Items] --> W1[Worker]
Items --> W2[Worker]
Items --> W3[Worker]
W1 --> Collect[Collect]
W2 --> Collect
W3 --> Collect
Collect --> Synth[Synthesize]
用例: 对整个目录进行代码审查、分析一批文档、处理日志文件、在许多服务上运行相同的检查。
从解释器代码中发现文件需要程序化工具调用(PTC)。请在解释器 middleware 上于 PTC 允许列表中启用 glob。
示例:扇出并综合
你配置的内容
python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="google_genai:gemini-3.6-flash",
subagents=[{
"name": "reviewer",
"description": "Reviews code for security issues, citing lines and severity",
"system_prompt": "You are a security-focused code reviewer. Read the file carefully and report any authentication or authorization issues with line numbers and severity.",
}],
middleware=[CodeInterpreterMiddleware(ptc=["glob"])],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openai:gpt-5.5",
subagents=[{
"name": "reviewer",
"description": "Reviews code for security issues, citing lines and severity",
"system_prompt": "You are a security-focused code reviewer. Read the file carefully and report any authentication or authorization issues with line numbers and severity.",
}],
middleware=[CodeInterpreterMiddleware(ptc=["glob"])],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="anthropic:claude-sonnet-5",
subagents=[{
"name": "reviewer",
"description": "Reviews code for security issues, citing lines and severity",
"system_prompt": "You are a security-focused code reviewer. Read the file carefully and report any authentication or authorization issues with line numbers and severity.",
}],
middleware=[CodeInterpreterMiddleware(ptc=["glob"])],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openrouter:z-ai/glm-5.2",
subagents=[{
"name": "reviewer",
"description": "Reviews code for security issues, citing lines and severity",
"system_prompt": "You are a security-focused code reviewer. Read the file carefully and report any authentication or authorization issues with line numbers and severity.",
}],
middleware=[CodeInterpreterMiddleware(ptc=["glob"])],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="fireworks:accounts/fireworks/models/glm-5p2",
subagents=[{
"name": "reviewer",
"description": "Reviews code for security issues, citing lines and severity",
"system_prompt": "You are a security-focused code reviewer. Read the file carefully and report any authentication or authorization issues with line numbers and severity.",
}],
middleware=[CodeInterpreterMiddleware(ptc=["glob"])],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="baseten:zai-org/GLM-5.2",
subagents=[{
"name": "reviewer",
"description": "Reviews code for security issues, citing lines and severity",
"system_prompt": "You are a security-focused code reviewer. Read the file carefully and report any authentication or authorization issues with line numbers and severity.",
}],
middleware=[CodeInterpreterMiddleware(ptc=["glob"])],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="ollama:north-mini-code-1.0",
subagents=[{
"name": "reviewer",
"description": "Reviews code for security issues, citing lines and severity",
"system_prompt": "You are a security-focused code reviewer. Read the file carefully and report any authentication or authorization issues with line numbers and severity.",
}],
middleware=[CodeInterpreterMiddleware(ptc=["glob"])],
)智能体编写的内容
ts
// One reviewer per file, dispatched in parallel, then findings merged.
const files = (await tools.glob({ pattern: "src/routes/**/*.ts" }))
.split("\n")
.filter(Boolean);
const reviews = await Promise.all(
files.map((file) =>
task({
description: `Review ${file} for authentication issues. Cite line numbers.`,
subagentType: "reviewer",
responseSchema: issuesSchema, // -> { issues: [{ file, line, severity }] }
}),
),
);
const issues = reviews.flatMap((r) => r.issues);
// ... sort by severity, drop duplicates, summarize the top risks
issues;对抗式验证
一种两遍式模式。第一遍产生发现。第二遍将每项发现发送给独立的验证者,只有获得一致认可的发现才会保留。当置信度比速度更重要时,这可以减少误报。
graph LR
Items[Items] --> Workers[Workers]
Workers --> Findings[Findings]
Findings --> V1[Verifier]
Findings --> V2[Verifier]
Findings --> V3[Verifier]
V1 --> Vote[Majority vote]
V2 --> Vote
V3 --> Vote
Vote --> Confirmed[Confirmed]
用例: 误报代价高昂的安全审计、合规检查,以及任何需要对发现具有高置信度的审查。
Example: adversarial verification
你配置的内容
python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="google_genai:gemini-3.6-flash",
subagents=[
{
"name": "reviewer",
"description": "Finds potential security vulnerabilities in code",
"system_prompt": "You are a security auditor. Find potential vulnerabilities and report each with file, line, and description.",
},
{
"name": "verifier",
"description": "Independently verifies whether a reported vulnerability is real",
"system_prompt": "You are a security verification specialist. Given a reported vulnerability, independently verify whether it is exploitable. Be skeptical. Only confirm real issues.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openai:gpt-5.5",
subagents=[
{
"name": "reviewer",
"description": "Finds potential security vulnerabilities in code",
"system_prompt": "You are a security auditor. Find potential vulnerabilities and report each with file, line, and description.",
},
{
"name": "verifier",
"description": "Independently verifies whether a reported vulnerability is real",
"system_prompt": "You are a security verification specialist. Given a reported vulnerability, independently verify whether it is exploitable. Be skeptical. Only confirm real issues.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="anthropic:claude-sonnet-5",
subagents=[
{
"name": "reviewer",
"description": "Finds potential security vulnerabilities in code",
"system_prompt": "You are a security auditor. Find potential vulnerabilities and report each with file, line, and description.",
},
{
"name": "verifier",
"description": "Independently verifies whether a reported vulnerability is real",
"system_prompt": "You are a security verification specialist. Given a reported vulnerability, independently verify whether it is exploitable. Be skeptical. Only confirm real issues.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openrouter:z-ai/glm-5.2",
subagents=[
{
"name": "reviewer",
"description": "Finds potential security vulnerabilities in code",
"system_prompt": "You are a security auditor. Find potential vulnerabilities and report each with file, line, and description.",
},
{
"name": "verifier",
"description": "Independently verifies whether a reported vulnerability is real",
"system_prompt": "You are a security verification specialist. Given a reported vulnerability, independently verify whether it is exploitable. Be skeptical. Only confirm real issues.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="fireworks:accounts/fireworks/models/glm-5p2",
subagents=[
{
"name": "reviewer",
"description": "Finds potential security vulnerabilities in code",
"system_prompt": "You are a security auditor. Find potential vulnerabilities and report each with file, line, and description.",
},
{
"name": "verifier",
"description": "Independently verifies whether a reported vulnerability is real",
"system_prompt": "You are a security verification specialist. Given a reported vulnerability, independently verify whether it is exploitable. Be skeptical. Only confirm real issues.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="baseten:zai-org/GLM-5.2",
subagents=[
{
"name": "reviewer",
"description": "Finds potential security vulnerabilities in code",
"system_prompt": "You are a security auditor. Find potential vulnerabilities and report each with file, line, and description.",
},
{
"name": "verifier",
"description": "Independently verifies whether a reported vulnerability is real",
"system_prompt": "You are a security verification specialist. Given a reported vulnerability, independently verify whether it is exploitable. Be skeptical. Only confirm real issues.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="ollama:north-mini-code-1.0",
subagents=[
{
"name": "reviewer",
"description": "Finds potential security vulnerabilities in code",
"system_prompt": "You are a security auditor. Find potential vulnerabilities and report each with file, line, and description.",
},
{
"name": "verifier",
"description": "Independently verifies whether a reported vulnerability is real",
"system_prompt": "You are a security verification specialist. Given a reported vulnerability, independently verify whether it is exploitable. Be skeptical. Only confirm real issues.",
},
],
middleware=[CodeInterpreterMiddleware()],
)智能体编写的内容
ts
// Pass 1: audit. Pass 2: verify each finding independently; keep only confirmed.
const { findings } = await task({
description: "Audit the payments module for vulnerabilities.",
subagentType: "reviewer",
responseSchema: findingsSchema, // -> { findings: [{ id, file, line, description }] }
});
const verdicts = await Promise.all(
findings.map((f) =>
task({
description: `Verify ${f.file}:${f.line} (${f.description}). Confirm or refute.`,
subagentType: "verifier",
responseSchema: verdictSchema, // -> { confirmed: boolean }
}),
),
);
const confirmed = findings.filter((_, i) => verdicts[i]?.confirmed);
// ... report only the confirmed vulnerabilities
confirmed;生成并筛选
多个子智能体针对同一问题生成相互独立的解决方案。智能体在代码中比较、评分并筛选这些结果,只保留最好的。
graph LR
Prompt[Prompt] --> G1[Generator]
Prompt --> G2[Generator]
Prompt --> G3[Generator]
G1 --> Filter[Filter + rank]
G2 --> Filter
G3 --> Filter
Filter --> Best[Best result]
用例: 架构方案、重构策略、内容变体,以及任何在确定前探索多个选项能带来更好结果的任务。
示例:生成并筛选
你配置的内容
python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="google_genai:gemini-3.6-flash",
subagents=[{
"name": "architect",
"description": "Proposes a database schema design with tradeoff analysis",
"system_prompt": "You are a database architect. Propose a schema design for the given requirements. Include tradeoffs, migration considerations, and a clear rationale.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openai:gpt-5.5",
subagents=[{
"name": "architect",
"description": "Proposes a database schema design with tradeoff analysis",
"system_prompt": "You are a database architect. Propose a schema design for the given requirements. Include tradeoffs, migration considerations, and a clear rationale.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="anthropic:claude-sonnet-5",
subagents=[{
"name": "architect",
"description": "Proposes a database schema design with tradeoff analysis",
"system_prompt": "You are a database architect. Propose a schema design for the given requirements. Include tradeoffs, migration considerations, and a clear rationale.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openrouter:z-ai/glm-5.2",
subagents=[{
"name": "architect",
"description": "Proposes a database schema design with tradeoff analysis",
"system_prompt": "You are a database architect. Propose a schema design for the given requirements. Include tradeoffs, migration considerations, and a clear rationale.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="fireworks:accounts/fireworks/models/glm-5p2",
subagents=[{
"name": "architect",
"description": "Proposes a database schema design with tradeoff analysis",
"system_prompt": "You are a database architect. Propose a schema design for the given requirements. Include tradeoffs, migration considerations, and a clear rationale.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="baseten:zai-org/GLM-5.2",
subagents=[{
"name": "architect",
"description": "Proposes a database schema design with tradeoff analysis",
"system_prompt": "You are a database architect. Propose a schema design for the given requirements. Include tradeoffs, migration considerations, and a clear rationale.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="ollama:north-mini-code-1.0",
subagents=[{
"name": "architect",
"description": "Proposes a database schema design with tradeoff analysis",
"system_prompt": "You are a database architect. Propose a schema design for the given requirements. Include tradeoffs, migration considerations, and a clear rationale.",
}],
middleware=[CodeInterpreterMiddleware()],
)智能体编写的内容
ts
// Generate independent proposals in parallel, then score and keep the best.
const proposals = await Promise.all(
[1, 2, 3].map((n) =>
task({
description: `Approach ${n}: redesign the orders schema, with tradeoffs.`,
subagentType: "architect",
responseSchema: designSchema, // -> { design, tradeoffs }
}),
),
);
// ... score each proposal against the requirements
const best = proposals.sort((a, b) => score(b) - score(a))[0];
best;锦标赛
由裁判子智能体对各个变体进行正面比较,胜出者通过淘汰赛轮次晋级。
graph LR
A1[Attempt] --> J1{Judge}
A2[Attempt] --> J1
A3[Attempt] --> J2{Judge}
A4[Attempt] --> J2
J1 --> JF{Final}
J2 --> JF
JF --> Winner[Winner]
用例: 主观标准下的优化、风格选择、在相互竞争的实现方案之间做选择。
Example: tournament
你配置的内容
python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="google_genai:gemini-3.6-flash",
subagents=[
{
"name": "writer",
"description": "Rewrites a function with a focus on readability and clarity",
"system_prompt": "You are an expert programmer focused on clean code. Rewrite the given function to maximize readability. Explain your choices.",
},
{
"name": "judge",
"description": "Compares two code implementations and picks the more readable one",
"system_prompt": "You are a code quality judge. Compare two implementations and pick the more readable one. Justify your choice with specific criteria.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openai:gpt-5.5",
subagents=[
{
"name": "writer",
"description": "Rewrites a function with a focus on readability and clarity",
"system_prompt": "You are an expert programmer focused on clean code. Rewrite the given function to maximize readability. Explain your choices.",
},
{
"name": "judge",
"description": "Compares two code implementations and picks the more readable one",
"system_prompt": "You are a code quality judge. Compare two implementations and pick the more readable one. Justify your choice with specific criteria.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="anthropic:claude-sonnet-5",
subagents=[
{
"name": "writer",
"description": "Rewrites a function with a focus on readability and clarity",
"system_prompt": "You are an expert programmer focused on clean code. Rewrite the given function to maximize readability. Explain your choices.",
},
{
"name": "judge",
"description": "Compares two code implementations and picks the more readable one",
"system_prompt": "You are a code quality judge. Compare two implementations and pick the more readable one. Justify your choice with specific criteria.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openrouter:z-ai/glm-5.2",
subagents=[
{
"name": "writer",
"description": "Rewrites a function with a focus on readability and clarity",
"system_prompt": "You are an expert programmer focused on clean code. Rewrite the given function to maximize readability. Explain your choices.",
},
{
"name": "judge",
"description": "Compares two code implementations and picks the more readable one",
"system_prompt": "You are a code quality judge. Compare two implementations and pick the more readable one. Justify your choice with specific criteria.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="fireworks:accounts/fireworks/models/glm-5p2",
subagents=[
{
"name": "writer",
"description": "Rewrites a function with a focus on readability and clarity",
"system_prompt": "You are an expert programmer focused on clean code. Rewrite the given function to maximize readability. Explain your choices.",
},
{
"name": "judge",
"description": "Compares two code implementations and picks the more readable one",
"system_prompt": "You are a code quality judge. Compare two implementations and pick the more readable one. Justify your choice with specific criteria.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="baseten:zai-org/GLM-5.2",
subagents=[
{
"name": "writer",
"description": "Rewrites a function with a focus on readability and clarity",
"system_prompt": "You are an expert programmer focused on clean code. Rewrite the given function to maximize readability. Explain your choices.",
},
{
"name": "judge",
"description": "Compares two code implementations and picks the more readable one",
"system_prompt": "You are a code quality judge. Compare two implementations and pick the more readable one. Justify your choice with specific criteria.",
},
],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="ollama:north-mini-code-1.0",
subagents=[
{
"name": "writer",
"description": "Rewrites a function with a focus on readability and clarity",
"system_prompt": "You are an expert programmer focused on clean code. Rewrite the given function to maximize readability. Explain your choices.",
},
{
"name": "judge",
"description": "Compares two code implementations and picks the more readable one",
"system_prompt": "You are a code quality judge. Compare two implementations and pick the more readable one. Justify your choice with specific criteria.",
},
],
middleware=[CodeInterpreterMiddleware()],
)智能体编写的内容
ts
// Generate variants, then judge pairwise until a single winner remains.
let bracket = await Promise.all(
[1, 2, 3, 4, 5].map((n) =>
task({ description: `Rewrite processOrder for readability (variant ${n}).`, subagentType: "writer" }),
),
);
while (bracket.length > 1) {
const winners = [];
for (let i = 0; i < bracket.length; i += 2) {
if (bracket[i + 1] === undefined) { winners.push(bracket[i]); break; }
const { winner } = await task({
description: `Pick the more readable:\n\nA:\n${bracket[i]}\n\nB:\n${bracket[i + 1]}`,
subagentType: "judge",
responseSchema: pickSchema, // -> { winner: "A" | "B" }
});
winners.push(winner === "A" ? bracket[i] : bracket[i + 1]);
}
bracket = winners;
}
bracket[0]; // the winning rewrite循环直到完成
智能体运行一个发现循环,对已找到的内容去重,直到不再出现新结果。当工作的范围事先并不明确时,这很有用。
graph LR
Agent[Agent] --> Check{New findings?}
Check --> |yes| Agent
Check --> |no| Done[Done]
用例: 穷举搜索、死代码检测、依赖审计,以及任何你追求完整性而非固定结果数量的扫描。
示例:循环直到完成
你配置的内容
python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="google_genai:gemini-3.6-flash",
subagents=[{
"name": "analyzer",
"description": "Analyzes code for unused exports, functions, and dead code paths",
"system_prompt": "You are a code analyst specializing in dead code detection. Find unused exports, unreachable functions, and orphaned modules. Report each with file path and evidence.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openai:gpt-5.5",
subagents=[{
"name": "analyzer",
"description": "Analyzes code for unused exports, functions, and dead code paths",
"system_prompt": "You are a code analyst specializing in dead code detection. Find unused exports, unreachable functions, and orphaned modules. Report each with file path and evidence.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="anthropic:claude-sonnet-5",
subagents=[{
"name": "analyzer",
"description": "Analyzes code for unused exports, functions, and dead code paths",
"system_prompt": "You are a code analyst specializing in dead code detection. Find unused exports, unreachable functions, and orphaned modules. Report each with file path and evidence.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openrouter:z-ai/glm-5.2",
subagents=[{
"name": "analyzer",
"description": "Analyzes code for unused exports, functions, and dead code paths",
"system_prompt": "You are a code analyst specializing in dead code detection. Find unused exports, unreachable functions, and orphaned modules. Report each with file path and evidence.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="fireworks:accounts/fireworks/models/glm-5p2",
subagents=[{
"name": "analyzer",
"description": "Analyzes code for unused exports, functions, and dead code paths",
"system_prompt": "You are a code analyst specializing in dead code detection. Find unused exports, unreachable functions, and orphaned modules. Report each with file path and evidence.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="baseten:zai-org/GLM-5.2",
subagents=[{
"name": "analyzer",
"description": "Analyzes code for unused exports, functions, and dead code paths",
"system_prompt": "You are a code analyst specializing in dead code detection. Find unused exports, unreachable functions, and orphaned modules. Report each with file path and evidence.",
}],
middleware=[CodeInterpreterMiddleware()],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="ollama:north-mini-code-1.0",
subagents=[{
"name": "analyzer",
"description": "Analyzes code for unused exports, functions, and dead code paths",
"system_prompt": "You are a code analyst specializing in dead code detection. Find unused exports, unreachable functions, and orphaned modules. Report each with file path and evidence.",
}],
middleware=[CodeInterpreterMiddleware()],
)智能体编写的内容
ts
// Keep dispatching rounds, deduping against what's found, until a round adds nothing.
const seen = new Set();
const found = [];
while (true) {
const { items } = await task({
description: `Find dead code. Already found: ${[...seen].join(", ") || "(none)"}.`,
subagentType: "analyzer",
responseSchema: itemsSchema, // -> { items: [{ id, file }] }
});
const fresh = items.filter((i) => !seen.has(i.id));
if (fresh.length === 0) break; // converged: nothing new
for (const i of fresh) { seen.add(i.id); found.push(i); }
}
found;WARNING
task() 会从一个已在运行的 eval 调用内部进行分派。它不经过正常的工具调用路径,因此父智能体上的 interrupt_on 审批工作流不会在每次分派时强制执行。如果你需要在子智能体编排运行前进行审批,请对 eval 工具本身设置门禁。
禁用动态子智能体
只要智能体拥有子智能体,子智能体分派默认就是开启的。如果你希望子智能体只能通过正常的 task 工具路径使用,请禁用它。有关其他 middleware 选项,请参阅解释器页面上的配置。
python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="google_genai:gemini-3.6-flash",
subagents=[{"name": "reviewer", "description": "Reviews code", "system_prompt": "Review code."}],
middleware=[CodeInterpreterMiddleware(subagents=False)],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openai:gpt-5.5",
subagents=[{"name": "reviewer", "description": "Reviews code", "system_prompt": "Review code."}],
middleware=[CodeInterpreterMiddleware(subagents=False)],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="anthropic:claude-sonnet-5",
subagents=[{"name": "reviewer", "description": "Reviews code", "system_prompt": "Review code."}],
middleware=[CodeInterpreterMiddleware(subagents=False)],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="openrouter:z-ai/glm-5.2",
subagents=[{"name": "reviewer", "description": "Reviews code", "system_prompt": "Review code."}],
middleware=[CodeInterpreterMiddleware(subagents=False)],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="fireworks:accounts/fireworks/models/glm-5p2",
subagents=[{"name": "reviewer", "description": "Reviews code", "system_prompt": "Review code."}],
middleware=[CodeInterpreterMiddleware(subagents=False)],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="baseten:zai-org/GLM-5.2",
subagents=[{"name": "reviewer", "description": "Reviews code", "system_prompt": "Review code."}],
middleware=[CodeInterpreterMiddleware(subagents=False)],
)python
from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware
agent = create_deep_agent(
model="ollama:north-mini-code-1.0",
subagents=[{"name": "reviewer", "description": "Reviews code", "system_prompt": "Review code."}],
middleware=[CodeInterpreterMiddleware(subagents=False)],
)