Skip to main content
In this tutorial, a team compares three vector databases for a semantic search service. The leader splits the work into one research task per database plus a review of each, teammates work in parallel, and the leader writes one recommendation as a named deliverable. An outcome grades the recommendation before the session completes. The TypeScript samples assume the rl client from Client setup.

Before you begin

  • You need the Developer or Admin role in the organization. See Organizations and roles.
  • Read Teams for how the board works.
  • A team runs several agents at once, so it costs more than a single agent. This tutorial caps the team at four teammates.

Step 1: Create the research agent

The agent needs web search, which is on by default, and a team size. The team size is max_concurrent_threads. No roster entries are needed, because teammates are copies of this agent.
  1. In the sidebar, click Agents, then click Create agent and choose Blank.
  2. Enter a Name, choose a model, and paste the system prompt from the TypeScript tab into System prompt. Click Create agent.
  3. On the Configuration tab, under Multiagent, set Work as a team to Always.
  4. Under Tools, confirm Web search is on.
  5. Click Save new version.
The console doesn’t set the team size, so the team uses the default of 8. Use the API to cap it.

Step 2: Create an environment

Web search and web fetch run outside the sandbox, so they work even when the environment blocks internet access. The team only needs a sandbox for its notes and the deliverable, so the default closed environment is enough.
  1. In the sidebar, click Environments, then click Create environment.
  2. Enter a Name, such as research, and leave Internet access at No access.
  3. Click Create environment.

Step 3: Start the team session

The outcome’s description is the brief the leader splits into tasks, and the grader measures against it. The message carries context the agents need but the grader doesn’t score. The rubric names the deliverable, so grading checks that it exists and is complete. A good brief names the independent pieces, where each one writes, the review you want, how the result is judged, and the deliverable. See Write a good team brief.
  1. In the sidebar, click Sessions, then click Launch session.
  2. Choose the Research lead agent and the research environment.
  3. Under Task, select Grade this session against a rubric, and paste the rubric from the TypeScript tab into Rubric.
  4. In Opening message, paste the brief and then the context from the TypeScript tab.
  5. Under Team, confirm Work as a team is Always.
  6. Click Launch session.

Step 4: Watch the board

The leader posts the round, and teammates join to claim it. You’ll typically see three research tasks and three reviews that wait on them.
  1. In the sidebar, click Sessions, then open the session.
  2. Open the Work tab. The Board shows each task, its status, and its owner.
  3. Click a task to read its body, outcome, and the reviewer’s notes.
Midway through, the TypeScript loop prints something like this:
When every task is done, the board holds the teammates’ recommendations and then the leader’s decision:

Step 5: Wait for the grade

After the decision, the leader writes vector-db-recommendation.md and ends its turn. The deliverable is kept, and then the grader checks it against the rubric. If a criterion fails, the grader’s feedback goes back to the leader, which revises and tries again, up to max_iterations.
  1. Stay on the session page. The grader’s verdicts appear as each attempt is graded.
  2. The session completes when every criterion passes.

What success means

  • The outcome’s terminal_result is satisfied, the root session’s execution_state is completed, and its stop_reason is outcome_satisfied.
  • vector-db-recommendation.md is kept as a deliverable of the root session, and it met every criterion.
  • The board has a decision post, and no task is open or claimed.

Step 6: Read the recommendation

The brief asks the leader to end with the comparison table and recommendation, so the final message carries the result. Any files the team saved as deliverables are on the session’s Files tab; see Download session deliverables.
  • In the console: the leader’s last message in the transcript holds the table and the recommendation.
  • Through the API: page the root timeline with listSessionEvents and read the last message event whose role is assistant.
  • In a later session: start a session that references this one. It can read vector-db-recommendation.md and, for example, turn it into a design doc or open a pull request with it.
To see what each member spent, read the tree’s cost with listSessionModelCostNodes and scope=tree. See Usage and cost.

What can go wrong

Limits

  • Team size is max_concurrent_threads: default 8, maximum 25. This tutorial uses 4.
  • A deliverable can be at most 64 MiB. See Deliverables and artifacts.
  • See Limits for every product limit.

Next steps

Teams

Team modes, the board, and writing briefs.

Outcomes

Rubrics, grading, and revision limits.

Deliverables and artifacts

What gets kept, and how to get results out.

Referenced sessions

Let a later session read this one’s deliverables.