# MentorTeamAttribute class

> The MentorTeamAttribute class of Novior.MentorAgent.Attributes: Level 3 — Decorates a class to define a collaborative Group Chat team. Team members are…

- URL: https://docs.mentoragent.net/api/novior-mentoragent-attributes/mentorteamattribute
- Verified with: MentorAgent 1.2.0
- Last updated: 2026-10-27
- Packages: Novior.MentorAgent

Level 3 — Decorates a class to define a collaborative Group Chat team. Team members are defined via properties decorated with [`TeamMemberAttribute`](https://docs.mentoragent.net/api/global/teammemberattribute). The termination condition is defined via a method decorated with [`TeamTerminationConditionAttribute`](https://docs.mentoragent.net/api/global/teamterminationconditionattribute). After approval, the team can hand off to L2 agents via HandoffTo.

```text title="Example"
[MentorTeam(
    Name = "BusinessAnalysisTeam",
    Description = "Business analysis with real data and handoff for execution",
    HandoffTo = ["OrderAgent", "CustomerAgent"])]
public class BusinessAnalysisTeam
{
    [TeamMember(
        Role = "DataAnalyst",
        Tools = [typeof(ReportTools), typeof(OrderTools)],
        Instructions = "Analyze the data...")]
    public object? Analyst { get; set; }

    [TeamMember(Role = "Approver", Instructions = "Give the verdict...")]
    public object? Approver { get; set; }

    [TeamTerminationCondition]
    public bool ShouldTerminate(string lastMessage, string lastSpeaker)
        => lastSpeaker == "Approver" && lastMessage.Contains("APPROVED");
}
```

## Definition

Namespace: `Novior.MentorAgent.Attributes`. Package: `Novior.MentorAgent`.

`public sealed class MentorTeamAttribute : Attribute`

```shell
dotnet add package Novior.MentorAgent
```

## Constructors

`public MentorTeamAttribute()`

## Properties

### `Description`

`public required string Description { get; init; }`

Collective description of the team. Used by the Main Coordinator to decide when to activate it.

### `HandoffTo`

`public string[] HandoffTo { get; init; }`

L2 agents to hand off to after team approval. After APPROVED the coordinator delegates execution to the specified agents. Same syntax as \[MentorAgent(HandoffTo = \[...\])\]. Example: HandoffTo = \["OrderAgent", "CustomerAgent"\]

### `MaxIterations`

`public int MaxIterations { get; init; }`

Maximum number of turns in the Group Chat before forced termination. Default: 10

### `Name`

`public required string Name { get; init; }`

The team name.

### `TriggerOn`

`public string[] TriggerOn { get; init; }`

Keywords that trigger team activation.

---

- Previous: [MentorSkillAttribute class](https://docs.mentoragent.net/api/novior-mentoragent-attributes/mentorskillattribute.md)
- Next: [IMentorAgentSource interface](https://docs.mentoragent.net/api/novior-mentoragent-core/imentoragentsource.md)
