Composing AI Teams
MeetLoyd lets you assemble custom AI teams by combining agents, skills, and avatars from different sources — the Store, your own creations, or third-party integrations. Think of it as building your dream team from the best available components, without starting from scratch.
This guide walks through team composition end to end: creating manifests, mixing components, locking versions for production, and deploying with confidence.
Overview
MeetLoyd's composable architecture lets you:
- Mix and match agents from the Store with your custom agents
- Override skills to swap in your preferred integrations
- Configure avatars for video and voice representation
- Version lock components for production stability
- Customize behavior without forking components
Creating Your First Custom Team
Step 1: Start with a Manifest
Create a team manifest file that declares your team name, slug, version, and the components it includes (agents, skills, avatars). You also define an orchestration mode and entry agent.
Manifests use YAML or JSON format. The deployer accepts both meetloyd-team (single team) and meetloyd-app (full app) formats.
Step 2: Add Agents
Add agents from different sources using reference prefixes:
| Reference Prefix | Source | Example |
|---|---|---|
store:// | Components from the MeetLoyd Store | store://agents/sdr-agent |
local:// | Your custom-built components | local://agents/my-coordinator |
catalog:// | Platform catalog templates | catalog://sales-team |
preset:// | Legacy preset references | preset://support |
Each agent entry includes a reference, an optional version constraint, and a local ID used for routing within the team.
Step 3: Add Skills
Skills give agents capabilities. Declare shared skills at the team level so multiple agents can use the same integration (for example, a CRM skill shared by your SDR and support agents).
Step 4: Configure Avatars (Optional)
Add video or voice avatars by referencing MeetLoyd's avatar service. Each avatar can be assigned to a specific agent via its local ID.
Step 5: Define Orchestration
Configure how agents work together:
| Setting | Description |
|---|---|
| mode | hierarchical (manager routes to specialists), parallel (agents work simultaneously), sequential (agents execute in order), round_robin (requests distributed evenly), or smart_routing (LLM-scored dynamic routing) |
| entryAgentId | The local ID of the agent that receives incoming requests first |
| intentRouting | Rules mapping user intents to specific agents |
| fallbackAgentId | Agent that handles unmatched intents |
| escalation | Conditions that trigger automatic escalation (deal size, sentiment, etc.) |
Step 6: Deploy
Deploy your manifest from the dashboard or use the deployment pipeline. The deployer validates the manifest, resolves component versions, provisions OpenFGA authorization tuples, assigns SPIFFE identities, and creates the team in stopped status.
Teams are created in stopped status after deployment. Start them through the Team Starting Wizard in the dashboard — never set the status to running directly.
Mixing Store and Custom Components
You do not have to build everything from scratch. Start with proven Store components and add your custom pieces where you need domain-specific expertise.
Overriding Store Agent Skills
Store agents come with default skills. You can override them with your preferred alternatives using a skillOverrides field. For example, swap out a default Salesforce CRM skill for your HubSpot integration, or add a LinkedIn prospecting skill on top of the defaults.
Customizing Agent Behavior
Adjust an agent's behavior without forking:
| Customization | What It Controls |
|---|---|
| contextPromptTemplate | Inject company-specific context (name, product, industry) |
| memoryConfig | Max context tokens and summary thresholds |
| responseStyle | Max response length and tone |
Sharing Skills Across Agents
Define a skill once at the team level and specify which agents share it via a sharedBy list. This avoids duplicating skill configurations across agents.
Version Locking Strategies
Version management is critical for production stability. Use different strategies depending on your environment:
| Strategy | Version Syntax | Best For | Trade-off |
|---|---|---|---|
| Flexible | ^1.0.0 (any 1.x.x) | Development | Always get latest features; behavior may change |
| Moderate | ~1.2.0 (only 1.2.x patches) | Staging | Get bug fixes; no feature surprises |
| Strict | 1.2.3 with locked: true | Production | Complete predictability; manual updates required |
Use flexible versions in development, moderate in staging, and strict in production. This gives you fast iteration where it matters and stability where it counts.
Lock Files
When you deploy, MeetLoyd generates a lock file with exact resolved versions, timestamps, and checksums. Best practices:
- Commit lock files to version control
- Review lock file changes in pull requests
- Use lock files as rollback references
Checking for Updates and Upgrading
From the dashboard, you can check all components for available updates. Updates are categorized as major, minor, or patch. You can upgrade individual components or batch-upgrade all patch updates.
Rolling Back
If an update causes issues, redeploy from a known-good lock file or roll back a specific component to a previous version.
Using Model Aliases
Instead of tracking specific model version strings, use -latest aliases that resolve automatically at deploy time:
| Alias | Resolves To |
|---|---|
claude-sonnet-latest | Latest Claude Sonnet |
gemini-flash-latest | Latest Gemini Flash |
gpt-latest | Latest GPT |
qwen-coder-latest | Latest Qwen Coder |
This makes manifests portable. When models change, update the alias map centrally instead of editing every manifest.
Securing Agents with Authorization
Declare what resources each agent can access directly in your manifest. Specify resource types (CRM objects, email domains, git repos) and the relation (reader, editor, sender, etc.). Permissions are provisioned as OpenFGA tuples at deploy time, enforcing least-privilege from day one.
See the Agent Authorization guide for full details.
Adding Agent Identity
For agents that need to authenticate to external services, declare SPIFFE identity configuration in your manifest. Specify target audiences and SVID time-to-live. The agent receives a SPIFFE ID automatically at deploy time and can request JWT-SVIDs scoped to the declared audiences.
See the Agent Identity documentation for full details.
Development Workflow with Hot-Reload
When developing catalog manifests locally:
- Start the dev server
- Edit any YAML file in the catalog directory
- The catalog cache invalidates automatically (300ms debounce)
- Your next request uses the updated manifest
No restart needed. Hot-reload is automatic in development and disabled in production.
Real-World Examples
E-commerce Support Team
A triage agent from the Store handles initial routing. A returns specialist (also from the Store) handles refund requests. A custom order-tracker agent connects to your warehouse API. Skills include Shopify, Zendesk, and your internal warehouse integration. Orchestration routes return requests to the specialist and order inquiries to the tracker, with the triage agent as fallback.
Enterprise Sales Team
A locked-version enterprise SDR with LinkedIn Sales Navigator skill override. A locked-version account executive. A demo specialist customized with industry-specific context. Shared skills include Salesforce CRM (locked), Gong call analysis, and DocuSign. Escalation rules trigger when deal size exceeds $100K or sentiment drops below 0.3.
Parallel Research Team
A web researcher and data analyst run in parallel. Their outputs merge and flow to a report writer that synthesizes the final deliverable.
Best Practices
- Start with Store components — do not reinvent the wheel
- Customize, don't fork — use customizations and skill overrides
- Lock production versions — use exact versions with
locked: true - Test in staging first — always deploy to staging before production
- Commit lock files — track exact versions in version control
- Monitor updates — regularly check for security patches
- Document customizations — use comment fields liberally
- Use semantic versioning — for your own manifest versions
Next Steps
- Team Manifests Reference — complete manifest specification
- Avatar Providers — configure video and voice avatars
- Store Browsing — find components in the Store
- Publishing to Store — share your components
- Agent Authorization — OpenFGA authorization details
- Agent Identity — SPIFFE identity system