sync execution

同步执行模式下,主 Agent 等待子 Agent 完成后再继续。

执行流程

1

主 Agent

调用子 Agent(阻塞)

2

子 Agent 执行

3

返回结果

4

主 Agent 继续

核心实现

async function executeSyncAgent(
  input: AgentInput,
  context: AgentContext
): Promise<ToolResult> {
  // 1. 准备消息
  const messages = [
    { role: 'user', content: input.prompt },
  ];
  
  // 2. 添加上下文文件
  if (input.contextFiles) {
    const contextContent = await loadContextFiles(input.contextFiles);
    messages[0].content += '\n\n' + contextContent;
  }
  
  // 3. 执行 Query Loop
  let finalResponse = '';
  
  for await (const event of query(messages, context.tools, {
    system: context.systemPrompt,
    model: context.model,
  })) {
    if (event.type === 'content') {
      finalResponse += event.content;
    }
  }
  
  // 4. 返回结果
  return {
    success: true,
    output: finalResponse,
  };
}

使用场景

1. 代码分析

2. 决策支持

3. 数据转换

性能考量

执行时间

同步执行会阻塞主 Agent:

超时控制

错误处理

子 Agent 失败

重试机制

上下文传递

文件上下文

状态上下文

下一步

  • 了解 异步执行 的非阻塞模式

  • 探索 Swarm 模式 的并行协作

  • 查看 Worktree 隔离 的实现