Teams
- optional
A Template Package can include teams to be created or updated in the AI service for the selected project during deployment. Each team is listed in the manifest.teams array. The manifest entry names the JSON definition file; the file holds _agents and _flow (and may duplicate or override fields also set in the manifest).
Definition files must live in the teams folder inside the ZIP archive. Each file value in manifest.teams must match the path of that file relative to teams/ as stored in the ZIP.
For each entry, the manifest row is merged with the JSON file as { ...fileTeam, ...teamDef }, so manifest values override the file when both define the same property.
Each manifest row must include:
name— team name (maps to_name); used to detect an existing team in the projectfile— JSON filename (or path) underteams/
Each team definition file must contain a single JSON object (not an array). After merging, the team must include:
_agents— a non-empty array of objects; each object must have a non-empty string_userTypeidentifying an agent. These values should match theuserTypeof agents in the project (for example agents created earlier in the same deployment frommanifest.agents)._flow— a non-empty array of objects; each object must have string propertiestoandfromdescribing the conversation flow (including typical endpoints such as__startand `end` as used by your environment).
ifExists#
If a team with the same name already exists:
default(or omitted/empty): keep the existing team unchanged and skip this manifest entry.update— the existing team is updated with the merged_agentsand_flow(and_name).recreate— the existing team is deleted, then created again from the definition.
Values are compared case-insensitively.
Any value other than default, update, or recreate fails validation.
Deploy behavior#
- File uploads and file-linked knowledge bases run first, then agents, then teams.
teams[].fileis read from the ZIPteams/folder and merged with the manifest row before deploy actions._agents[]._userTypevalues are validated as strings in template validation; compatibility with existing agents is enforced by service operations during team create/update.- If
ifExistshas an invalid value, the entry fails validation.
Complete example#
This example combines file-linked knowledge bases, agents, and teams in one package.
// manifest.json (excerpt — a full template may list more files, agents, or teams){ "Template Name": "Success KB Agent Team", "Template Version": "1.0.0", "files": [ { "_name": "property-mapping.md", "_path": "", "_tags": [], "knowledgebase": { "name": "property-mapping-md", "userType": "property_mapping_md", "ifExists": "default" } }, { "_name": "agent-bg-source.txt", "_path": "", "_tags": [], "knowledgebase": { "name": "agent-bg-md", "userType": "agent_bg_md", "ifExists": "recreate" } } ], "agents": [ { "name": "My Test Agent 1", "userType": "test_agent_1", "file": "test-agent-1.json" }, { "name": "My Test Agent 2", "userType": "test_agent_2", "file": "test-agent-2.json" } ], "teams": [ { "name": "Test Team One", "file": "test-team-one.json", "ifExists": "default" } ]}// Package ZIP layoutSuccess KB Agent Team.zip /|-- fileUploads /| |-- property-mapping.md| |-- agent-bg-source.txt|-- agents /| |-- test-agent-1.json| |-- test-agent-2.json|-- teams /| |-- test-team-one.json|-- manifest.json// agents/test-agent-1.json{ "background": "You help the user navigate model data.", "config": { "model": "gpt-4o", "provider": "openai" }}// agents/test-agent-2.json{ "background": "You refine and summarize the previous agent output.", "config": { "model": "gpt-4o", "provider": "openai" }}// teams/test-team-one.json{ "_agents": [ { "_userType": "test_agent_1" }, { "_userType": "test_agent_2" } ], "_flow": [ { "to": "test_agent_1", "from": "__start__" }, { "to": "test_agent_2", "from": "test_agent_1" }, { "to": "__end__", "from": "test_agent_2" } ]}