Ctrl K
ComunidadGuías…

docs/zh/examples/sub-agents.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# 子 Agent 协作

把独立任务交给另一个 Agent,再使用它的结果完成主任务。实现方式是将一次 `runtime.run()` 封装成工具,也就是 Agent as Tool。

## 委派任务并等待结果

完成[模型配置](../getting-started/installation.md#configure-model),从仓库根目录运行:

```bash
python examples/runtime/multi_agent.py
```

```python
--8<-- "examples/runtime/multi_agent.py"
```

主 Agent 调用 `sub_agent`,子 Agent 阅读 `README_zh.md` 并概括项目用途,主 Agent 再整理回答。

- 子调用没有传入历史,因此不会自动继承主 Agent 的对话。任务描述应包含它需要的信息。
- 子调用只开放文件读取和搜索工具。它仍复用 Runtime 的模型配置与工作目录。
- 子调用返回的文本就是工具结果,主 Agent 会等待它完成。

## 后台委派

如果主 Agent 还有独立工作,可以让子任务后台执行。下面复用[后台工具](../how-to/background-tools.md)的示例辅助代码:

```bash
python -m examples.runtime.multi_agent_background
```

```python
--8<-- "examples/runtime/multi_agent_background.py"
```

运行过程类似:

```text
主 Agent:委派练习题 → 拟文章提纲
子 Agent:设计练习题 → 结果送回主 Agent
主 Agent:将提纲与练习题整合
```

本例的 `sub_agent` 默认 `background=True`。如果下一步依赖结果,传 `background=False`,工具就等待完成后返回。可以将提示词改为“先让子 Agent 设计练习题,调用时传 background=false,再围绕练习题组织文章”来体验。

`sub_agent` 和 `background` 都是示例注册的工具及参数,不是 `runtime.run()` 的内置选项。等待、后台返回和后续投递的共同机制只在[后台工具教程](../how-to/background-tools.md)中解释。

子调用若需要人工审批,应像普通调用一样传入 `approval_handler`,主调用的回调不会自动传给它。