### 1、TeamAgent 配置参考（可参考 TeamConfig 字段）


| 分类 | 参数名称 | 类型 | 默认值 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| 身份定义     | name           | String     | /     | 团队唯一标识，影响 `TraceKey（__name）`及内部存储。     |
|                  | role  | String     | /     | 核心字段。角色描述，帮助模型识别自身角色或供上级团队调度。     |
| 决策大脑     | chatModel   | ChatModel     | /     | 充当主管（Supervisor），负责理解需求、分派任务与总结。     |
|                  | modelOptions     | Consumer     | /     | 用于精细控制主管模型的参数（如调低 Temperature 以稳健调
|                  | instruction     | String     | 中文模板     | 核心指令。告诉主管要怎么做，要注意什么。     |
| 组织结构      |  agentMap     |   Map    |  /   |  团队成员列表，存储所有参与协作的子智能体（Agent）。   |
|       |  protocol     |   TeamProtocol    |  HIERARCHICAL   | 协作灵魂。决定任务是层级派发、顺序执行还是竞争投标。    |
|  执行控制     |  maxTurns     |  int     |   8  |  总轮数限制。全队协作的最大轮次，防止成员间无限“踢皮球”。   |
|       |   maxRetries    |    int   |   3  |   主管模型决策失败或解析异常时的自动重试次数。  |
|       |   retryDelayMs    |  long     |  1000L   |  两次重试决策之间的时间间隔（毫秒）。   |
|  扩展定制     |  graphAdjuster     |  Consumer     |  /   |  进阶项。允许在协议生成的默认执行图基础上微调链路。   |
| | interceptors | `List<TeamInterceptor>` | / | 生命周期拦截器，用于监控思考过程、工具调用等过程。 |
| | tools | `Map<String, FunctionTool>` | / | 工具。 |
| | toolContext | `Map<String,Object>` | / | 工具调用时共享的上下文数据（如数据库连接、用户信息）。 |
| | skills | `List<Skill>` | / | 技能。 |



关键配置点补充说明

* 关于职责描述 (description)：在 TeamAgent 中，描述不仅是给人看的，更是给“主管模型”看的。一个清晰的描述能让主管更准确地判断何时该把任务交给这个团队处理。
* 关于协作协议 (protocol)：这是 TeamConfig 最强大的地方。只需更改此参数，你就能将团队从“经理负责制 (HIERARCHICAL)”一键切换为“流水线模式 (SEQUENTIAL)”，无需重写业务逻辑。
* 关于最大轮数 (maxTurns)：在多 Agent 协作中，Agent 之间可能会产生反复确认或死循环。该参数是全队的“保险丝”，确保系统不会因为无限对话而耗尽 Token。



### 2、TeamAgent 构建

* 基础版：顺序流水线 (Sequential)。

适用于逻辑固定的线性任务，例如：翻译 $\rightarrow$ 润色 $\rightarrow$ 总结。这种模式下，Agent 按照添加顺序依次执行。

```java
// 创建一个简单的翻译润色团队
TeamAgent simpleTeam = TeamAgent.of(chatModel)
        .name("translator_group")
        .role("负责多语言翻译与内容优化的团队")
        // 1. 添加成员（注意描述的重要性）
        .agentAdd(ReActAgent.of(chatModel).name("translator").role("将中文翻译为英文").build())
        .agentAdd(ReActAgent.of(chatModel).name("polisher").role("润色英文表达，使其地道").build())
        // 2. 设置协议为顺序执行
        .protocol(TeamProtocols.SEQUENTIAL)
        .build();

// 执行：任务会自动从 translator 流转到 polisher
String result = simpleTeam.prompt("你好，很高兴认识你").call().getContent();
```

* 进阶版：层级专家团队 (Hierarchical)

这是一个模拟真实公司架构的复杂示例。由一个主管（Supervisor）根据任务需求，自主调度下属的“专家智能体”，并包含重试策略、拦截监控及性能调优。

```java
// 创建一个全能的技术支持团队
TeamAgent techTeam = TeamAgent.of(chatModel)
        // --- 1. 身份与职责定义 ---
        .name("tech_support_center")
        .role("技术支持专家中心")
        .instruction("负责处理复杂的客户技术问题，包括查询数据库和排查日志")

        // --- 2. 招募专家成员 (Members) ---
        .agentAdd(ReActAgent.of(chatModel)
                .name("db_expert")
                .role("数据库专家，擅长编写 SQL 查询用户信息")
                .defaultToolAdd(dbTool)
                .build())
        .agentAdd(ReActAgent.of(chatModel)
                .name("log_analyser")
                .role("日志分析专家，负责从服务器日志中提取异常")
                .defaultToolAdd(logTool)
                .build())

        // --- 3. 配置决策大脑（主管）的运行策略 ---
        .protocol(TeamProtocols.HIERARCHICAL) // 层级调度模式
        .maxTurns(12)               // 允许全队最多协作 12 轮，处理深度问题
        .retryConfig(3, 2000L)                // 决策失败自动重试
        .modelOptions(options -> {
            options.setTemperature(0.1f);     // 调低主管温度，让任务分发更严谨
        })

        // --- 4. 插入定制化逻辑 ---
        .defaultInterceptorAdd(new TeamInterceptor() {
            @Override
            public boolean shouldAgentContinue(TeamTrace trace, Agent agent) {
                System.out.println("🔄 任务转办：从 [" + trace.getLastAgentName() + "] 移交给 [" + agent.name() + "]");
                return true;
            }
        })
        
        // --- 5. 手动微调计算图（高级项） ---
        .graphAdjuster(spec -> {
            // 可以在此处对生成的 Graph 进行链路微调
            // 例如：强制某个节点之后必须经过人工确认节点（预留扩展）
        })
        .build();

// 执行调用：主管会分析问题，决定先找 db_expert 查数据，再找 log_analyser 分析情况
String finalAnswer = techTeam.prompt("用户 ID 为 9527 的反馈登录失败，请排查原因并给出建议。")
        .call()
        .getContent();
```


