Export Formats
MeetLoyd uses standardized JSON formats for exporting and importing agents and teams. These formats are designed to be portable, version-controlled, and store-ready.
Overview
| Format | Description | Use Cases |
|---|---|---|
meetloyd-agent | Single agent export | Share agents, backup, store |
meetloyd-team | Multi-agent team export | Share teams, backup, store |
meetloyd-agent Format
Export format for individual agents.
Structure
{
"_format": "meetloyd-agent",
"_version": "1.1",
"_exportedAt": "2025-12-17T10:30:00.000Z",
"_exportedFrom": "tenant_xxx",
"agent": {
"name": "My Agent",
"description": "Agent description",
"model": "claude-sonnet-4-20250514",
"systemPrompt": "You are a helpful assistant...",
"tools": [
{ "name": "calculator" },
{ "name": "web_search" }
],
"memoryConfig": {
"enabled": true,
"scope": "user",
"retention": "permanent"
},
"rateLimits": {
"requestsPerMinute": 60,
"tokensPerDay": 100000
}
},
"versions": [
{
"version": 1,
"label": "Initial",
"description": "First version",
"config": { ... },
"changeType": "create",
"createdAt": "2025-12-17T10:30:00.000Z"
}
]
}
Fields
| Field | Type | Required | Description |
|---|---|---|---|
_format | string | Yes | Must be "meetloyd-agent" |
_version | string | Yes | Format version (current: "1.1") |
_exportedAt | string | Yes | ISO 8601 timestamp |
_exportedFrom | string | No | Source tenant ID |
agent | object | Yes | Agent configuration |
versions | array | No | Version history (optional) |
API Endpoints
# Export agent
GET /api/export/agents/:id/export?includeVersions=true
# Import agent
POST /api/export/agents/import
meetloyd-team Format
Export format for multi-agent teams (multi-agent systems).
Structure
{
"_format": "meetloyd-team",
"_version": "1.0",
"_exportedAt": "2025-12-17T10:30:00.000Z",
"_exportedFrom": "tenant_xxx",
"team": {
"name": "C-Suite",
"description": "AI C-Suite executive team",
"settings": {
"maxAgents": 10,
"collaborationMode": "parallel",
"sharedMemory": true
}
},
"agents": [
{
"localId": "iris",
"name": "Iris",
"description": "Chief of Staff",
"role": "chief-of-staff",
"model": "claude-sonnet-4-20250514",
"systemPrompt": "You are Iris...",
"tools": [
{ "name": "team_memory_get" },
{ "name": "team_memory_set" }
],
"memoryConfig": {
"enabled": true,
"scope": "team"
},
"rateLimits": {
"requestsPerMinute": 60
}
},
{
"localId": "maya",
"name": "Maya",
"description": "CMO",
"role": "cmo",
"model": "claude-sonnet-4-20250514",
"parentAgentLocalId": "iris"
}
],
"teamMemory": [
{
"key": "current_priorities",
"value": { "p1": "Close first deal", "p2": "Build content" },
"description": "Company priorities"
}
],
"tasks": [
{
"name": "Daily Briefing",
"description": "Morning CEO briefing",
"assignedAgentLocalId": "iris",
"schedule": "0 8 * * 1-5",
"input": { "includeMetrics": true }
}
],
"provisioning": {
"google": {
"createGroup": true,
"groupEmail": "csuite@company.com",
"createSharedDrive": true,
"sharedDriveName": "C-Suite Drive",
"createUserAccounts": false
},
"microsoft": {
"createGroup": true,
"createSharePointSite": true,
"siteName": "C-Suite",
"createTeamsChannel": true
}
},
"store": {
"id": "csuite-executive-team",
"version": "1.0.0",
"author": "MeetLoyd",
"category": "executive",
"tags": ["c-suite", "executive", "cmo", "cro"],
"price": 0,
"currency": "EUR"
}
}
Team Fields
| Field | Type | Required | Description |
|---|---|---|---|
_format | string | Yes | Must be "meetloyd-team" |
_version | string | Yes | Format version (current: "1.0") |
_exportedAt | string | Yes | ISO 8601 timestamp |
team | object | Yes | Team metadata |
team.name | string | Yes | Team name |
team.description | string | No | Team description |
team.settings | object | No | Team settings |
agents | array | Yes | Agents in the team |
teamMemory | array | No | Initial team memory |
tasks | array | No | Scheduled tasks |
provisioning | object | No | Google/Microsoft resource creation |
store | object | No | Store metadata |
Agent Fields
| Field | Type | Required | Description |
|---|---|---|---|
localId | string | Yes | Reference ID within export |
name | string | Yes | Agent name |
description | string | No | Agent description |
role | string | No | Agent role (e.g., "cmo", "cro") |
model | string | Yes | LLM model ID |
systemPrompt | string | No | System prompt |
tools | array | No | Enabled tools |
memoryConfig | object | No | Memory configuration |
rateLimits | object | No | Rate limits |
parentAgentLocalId | string | No | Reference to supervisor agent |
Provisioning Options
Google Workspace
| Field | Type | Description |
|---|---|---|
createGroup | boolean | Create a Google Group |
groupEmail | string | Suggested group email |
createSharedDrive | boolean | Create a shared Google Drive |
sharedDriveName | string | Name for the shared drive |
createUserAccounts | boolean | Create accounts for agents |
Microsoft 365
| Field | Type | Description |
|---|---|---|
createGroup | boolean | Create a Microsoft 365 Group |
groupEmail | string | Suggested group email |
createSharePointSite | boolean | Create a SharePoint site |
siteName | string | SharePoint site name |
createTeamsChannel | boolean | Create a Teams channel |
API Endpoints
# Export team
GET /api/export/teams/:id/export?includeMemory=true
# Import team
POST /api/export/teams/import
Import Request
POST /api/export/teams/import
Content-Type: application/json
{
"export": { ... }, // Team export JSON
"options": {
"appId": "app_xxx", // Target app (optional)
"rename": "My Team", // Override name (optional)
"importMemory": true, // Import team memory
"enableProvisioning": false // Enable Google/Microsoft
}
}
Import Response
{
"success": true,
"teamId": "team_abc123",
"teamName": "C-Suite",
"agentsCreated": 4,
"agents": [
{ "localId": "iris", "agentId": "agent_xxx", "name": "Iris" },
{ "localId": "maya", "agentId": "agent_yyy", "name": "Maya" }
],
"memoryImported": 3
}
Version Migration
Export formats are forward-compatible. When importing an older version:
- The system detects the version from
_version - Applies migrations sequentially to upgrade
- Returns migration info in the response
{
"success": true,
"migration": {
"from": "1.0",
"to": "1.1"
}
}
Best Practices
For Agent Exports
- Include meaningful descriptions
- Keep system prompts modular
- Use standard tool names
- Set appropriate rate limits
For Team Exports
- Use descriptive
localIdvalues - Set
parentAgentLocalIdfor hierarchy - Include initial
teamMemoryfor context - Define
taskswith proper schedules
For Store Submissions
- Set all
storefields - Include comprehensive documentation in descriptions
- Test import/export cycle before submission
- Version your exports semantically