Skip to main content

Teams

A team is a multi-agent structure where a set of specialized agents work together toward a shared goal. From the outside, a team looks like any other agent — you start a session, you talk. Inside, DAEMI routes your requests to the right members and orchestrates their collaboration.


Team Profile

Teams are defined in YAML just like agents, with type: team and a members list:

agent_id: tema
name: Tema
role: Software Team
type: team
members:
- role: PM
name: Roja
- role: Designer
name: Desa
- role: Architect
name: Teka
- role: Frontend
name: Rona
- role: Backend
name: Baca
- role: QA
name: Quya

Each member is defined inline in the team profile. Members are not standalone agents — they don't have their own profile files unless you want them to.


How Orchestration Works

When you send a message to a team:

  1. DAEMI parses the intent — what kind of task is this? Design? Architecture? QA?
  2. Routes to the appropriate member — based on role matching and task type
  3. Members can hand off — a PM can write a spec that a Designer responds to, which triggers a Frontend implementation
  4. Results surface to you — you see the team's collective output, optionally with member attributions

The orchestration layer understands role relationships. A "QA" member knows to test what "Backend" and "Frontend" produce. An "Architect" knows to review what "Backend" proposes before it ships.


Team Memory

Teams have their own memory collections (tema_stm, tema_ltm) that capture the team-level context — decisions, scope, project history. Individual member interactions within a session contribute to team STM.

Team LTM accumulates across sessions, giving the team a shared memory of the project:

"As of session 2026-02-10: Decided to use PostgreSQL over MongoDB due to
reporting requirements raised by Roja. Teka approved the schema migration path."

Inline vs. Referenced Members

Members can be defined inline (as above) or reference existing agent profiles:

agent_id: devteam
name: Dev Team
type: team
members:
- agent_id: koda # References the koda.yaml profile
- agent_id: aria # References aria.yaml
- role: QA
name: Quya # Inline — no separate profile

When agent_id is specified, DAEMI loads that agent's full profile including its personality, memory, and LLM config. Inline members inherit team defaults.


Talking to a Specific Member

You can address a specific team member directly in the Console:

@Roja what's the current sprint goal?
@Teka review the database schema I just pasted

The @name syntax routes directly to that member, bypassing the orchestration layer.


Team Settings

agent_id: tema
name: Tema
type: team
orchestration:
strategy: role_match # "role_match" | "round_robin" | "consensus"
show_attribution: true # Whether member names appear in responses
max_handoffs: 4 # Max member-to-member handoffs per request
members:
...
SettingDescription
strategy: role_matchDefault. Route based on task type and member roles
strategy: round_robinRotate through members in order
strategy: consensusMultiple members respond; team synthesizes
show_attributionShow [Roja]:, [Teka]: prefixes in output
max_handoffsPrevents runaway orchestration loops

Go Deeper