Aller au contenu principal

Routes du serveur

Les Adapters de serveur enregistrent ces routes lorsque vous appelez server.init(). Toutes les routes sont précédées de l’option prefix si celle-ci est configurée.

Agents
Lien direct vers Agents

MéthodeCheminDescription
GET/api/agentsRépertorier tous les Agents
GET/api/agents/:agentIdObtenir un Agent par ID (prend en charge les paramètres de requête de version)
POST/api/agents/:agentId/generateGénérer une réponse de l’Agent
POST/api/agents/:agentId/streamDiffuser la réponse de l’Agent
POST/api/agents/:agentId/send-messageEnvoyer un message utilisateur à un fil actif ou inactif
POST/api/agents/:agentId/queue-messageMettre en file d’attente un message utilisateur pour le prochain tour du fil
POST/api/agents/:agentId/signalsEnvoyer un signal de bas niveau à un fil actif ou inactif
POST/api/agents/:agentId/threads/subscribeS’abonner au flux d’un fil
POST/api/agents/:agentId/send-tool-approvalApprouver ou refuser un appel de Tool et reprendre via un abonnement au fil
POST/api/agents/:agentId/resume-streamReprendre un flux d’Agent suspendu avec des données personnalisées
GET/api/agents/:agentId/toolsRépertorier les Tools de l’Agent
POST/api/agents/:agentId/tools/:toolId/executeExécuter un Tool de l’Agent

Paramètres de requête pour obtenir un Agent
Lien direct vers Paramètres de requête pour obtenir un Agent

GET /api/agents/:agentId accepte des paramètres de requête facultatifs permettant de choisir la version de configuration stockée appliquée en remplacement aux Agents définis dans le code :

ParamètreTypeValeur par défautDescription
status'draft' | 'published''published'Version stockée à résoudre. draft renvoie la dernière version et published la version active.
versionIdstringAucuneID de version précis à résoudre. Prioritaire sur status.
# Get agent with active published overrides (default)
GET /api/agents/my-agent

# Get agent with latest draft overrides
GET /api/agents/my-agent?status=draft

# Get agent with a specific version's overrides
GET /api/agents/my-agent?versionId=abc123

Corps de la requête de génération
Lien direct vers Corps de la requête de génération

{
messages: CoreMessage[] | string; // Required
instructions?: string; // System instructions
system?: string; // System prompt
context?: CoreMessage[]; // Additional context
memory?: { key: string } | boolean; // Memory config
resourceId?: string; // Resource identifier
threadId?: string; // Thread identifier
runId?: string; // Run identifier
maxSteps?: number; // Max tool steps
activeTools?: string[]; // Tools to enable
toolChoice?: ToolChoice; // Tool selection mode
requestContext?: Record<string, unknown>; // Request context
output?: ZodSchema; // Structured output schema
}

Réponse de génération
Lien direct vers Réponse de génération

{
text: string;
toolCalls?: ToolCall[];
finishReason: string;
usage?: {
promptTokens: number;
completionTokens: number;
};
}

Routes de messages des Agents
Lien direct vers Routes de messages des Agents

Utilisez POST /api/agents/:agentId/send-message pour envoyer un message utilisateur à la boucle active de l’Agent ou réveiller un fil inactif. Utilisez POST /api/agents/:agentId/queue-message lorsque l’exécution active doit se terminer avant que Mastra ne lance l’exécution suivante.

Les deux routes acceptent le même corps de requête :

{
message: string | Array<TextPart | FilePart> | {
contents: string | Array<TextPart | FilePart>;
attributes?: Record<string, JSONValue>;
metadata?: Record<string, unknown>;
providerOptions?: ProviderMetadata;
};
runId?: string;
resourceId?: string;
threadId?: string;
ifActive?: {
behavior?: 'deliver' | 'persist' | 'discard';
attributes?: Record<string, string | number | boolean>;
};
ifIdle?: {
behavior?: 'wake' | 'persist' | 'discard';
streamOptions?: Omit<AgentExecutionOptions, 'messages'>;
attributes?: Record<string, string | number | boolean>;
};
}

Lorsque runId est omis, resourceId et threadId sont requis. ifIdle s’applique uniquement aux requêtes ciblant un fil, et non à celles qui ciblent une exécution.

Envoyer un message
Lien direct vers Envoyer un message

curl -X POST http://localhost:4111/api/agents/supportAgent/send-message \
-H 'Content-Type: application/json' \
-d '{
"message": {
"contents": "Show the shorter version.",
"attributes": { "sentFrom": "web" }
},
"resourceId": "user_123",
"threadId": "thread_456"
}'

Mettre un message en file d’attente
Lien direct vers Mettre un message en file d’attente

curl -X POST http://localhost:4111/api/agents/supportAgent/queue-message \
-H 'Content-Type: application/json' \
-d '{
"message": "Also check whether the tests need updates.",
"resourceId": "user_123",
"threadId": "thread_456"
}'

Les deux routes renvoient :

{
accepted: true;
runId: string;
signal?: CreatedAgentSignal;
}

Routes d’approbation des Tools par abonnement
Lien direct vers Routes d’approbation des Tools par abonnement

Utilisez POST /api/agents/:agentId/send-tool-approval lorsque le client dispose déjà d’un abonnement actif au fil. La route reprend l’exécution et renvoie un accusé de réception JSON. Les fragments du flux repris sont remis via POST /api/agents/:agentId/threads/subscribe.

La route accepte ce corps de requête :

{
resourceId: string;
threadId: string;
toolCallId: string;
approved: boolean;
requestContext?: Record<string, unknown>;
}

La route renvoie :

{
accepted: true;
runId: string;
toolCallId?: string;
}

Workflows
Lien direct vers Workflows

MéthodeCheminDescription
GET/api/workflowsRépertorier tous les Workflows
GET/api/workflows/run-countsObtenir le nombre d’exécutions en cours et suspendues par Workflow
GET/api/workflows/:workflowIdObtenir un Workflow par ID
POST/api/workflows/:workflowId/create-runCréer une nouvelle exécution de Workflow
POST/api/workflows/:workflowId/start-asyncDémarrer un Workflow et attendre le résultat
POST/api/workflows/:workflowId/streamDiffuser l’exécution d’un Workflow
POST/api/workflows/:workflowId/resumeReprendre un Workflow suspendu
POST/api/workflows/:workflowId/resume-asyncReprendre de manière asynchrone
GET/api/workflows/:workflowId/runsRépertorier les exécutions de Workflow
GET/api/workflows/:workflowId/runs/:runIdObtenir une exécution précise

Réponse du nombre d’exécutions
Lien direct vers Réponse du nombre d’exécutions

Le point de terminaison /api/workflows/run-counts renvoie le nombre d’exécutions running et suspended de chaque Workflow enregistré. L’enregistrement est indexé par la clé de registre du Workflow issue de la configuration Mastra, et le serveur peut mettre la réponse en cache pendant quelques secondes :

{
[workflowRegistryKey: string]: {
running: number;
suspended: number;
};
}

Workflows dynamiques
Lien direct vers Workflows dynamiques

Les définitions de Workflows dynamiques (bêta) sont des Workflows exprimés en JSON, conservés par le domaine de stockage workflowDefinitions et enregistrés à chaud dans l’instance en cours. Consultez les Workflows dynamiques.

MéthodeCheminDescription
GET/api/stored/workflowsRépertorier les définitions de Workflows dynamiques, filtrables par status et authorId
GET/api/stored/workflows/:dynamicWorkflowIdObtenir une définition de Workflow dynamique par ID
POST/api/stored/workflowsUpserter une définition (avec des dependencies auxiliaires facultatives) et l’enregistrer à chaud
DELETE/api/stored/workflows/:dynamicWorkflowIdSupprimer une définition de Workflow dynamique et désenregistrer le Workflow actif

Sur les serveurs authentifiés, les routes de lecture nécessitent l’autorisation stored-workflows:read et les routes d’écriture stored-workflows:write. Les Workflows dynamiques enregistrés sont exécutés via les routes ordinaires /api/workflows/:workflowId ci-dessus.

Corps de la requête de création d’une exécution
Lien direct vers Corps de la requête de création d’une exécution

{
resourceId?: string; // Associate run with a resource (e.g., user ID)
disableScorers?: boolean; // Disable scorers for this run
}

Corps de la requête pour /start-async
Lien direct vers request-body-for-start-async

{
resourceId?: string; // Associate run with a resource (e.g., user ID)
inputData?: unknown;
initialState?: unknown;
requestContext?: Record<string, unknown>;
tracingOptions?: {
spanName?: string;
attributes?: Record<string, unknown>;
};
}

Corps de la requête de streaming d’un Workflow
Lien direct vers Corps de la requête de streaming d’un Workflow

{
resourceId?: string; // Associate run with a resource (e.g., user ID)
inputData?: unknown;
initialState?: unknown;
requestContext?: Record<string, unknown>;
closeOnSuspend?: boolean;
}

Corps de la requête de reprise
Lien direct vers Corps de la requête de reprise

{
step?: string | string[];
resumeData?: unknown;
requestContext?: Record<string, unknown>;
}

Tools
Lien direct vers Tools

MéthodeCheminDescription
GET/api/toolsRépertorier tous les Tools
GET/api/tools/:toolIdObtenir un Tool par ID
POST/api/tools/:toolId/executeExécuter un Tool

Corps de la requête d’exécution d’un Tool
Lien direct vers Corps de la requête d’exécution d’un Tool

{
data: unknown; // Tool input data
requestContext?: Record<string, unknown>;
}

Memory
Lien direct vers Memory

MéthodeCheminDescription
GET/api/memory/threadsRépertorier les fils
GET/api/memory/threads/:threadIdObtenir un fil
POST/api/memory/threadsCréer un fil
DELETE/api/memory/threads/:threadIdSupprimer un fil
POST/api/memory/threads/:threadId/cloneCloner un fil
GET/api/memory/threads/:threadId/messagesObtenir les messages d’un fil
POST/api/memory/threads/:threadId/messagesAjouter un message

Corps de la requête de création d’un fil
Lien direct vers Corps de la requête de création d’un fil

{
resourceId: string;
title?: string;
metadata?: Record<string, unknown>;
}

Corps de la requête de clonage d’un fil
Lien direct vers Corps de la requête de clonage d’un fil

{
newThreadId?: string; // Custom ID for cloned thread
resourceId?: string; // Override resource ID
title?: string; // Custom title for clone
metadata?: Record<string, unknown>; // Additional metadata
options?: {
messageLimit?: number; // Max messages to clone
messageFilter?: {
startDate?: Date; // Clone messages after this date
endDate?: Date; // Clone messages before this date
messageIds?: string[]; // Clone specific messages
};
};
}

Réponse de clonage d’un fil
Lien direct vers Réponse de clonage d’un fil

{
thread: {
id: string;
resourceId: string;
title: string;
createdAt: Date;
updatedAt: Date;
metadata: {
clone: {
sourceThreadId: string;
clonedAt: Date;
lastMessageId?: string;
};
// ... other metadata
};
};
clonedMessages: MastraDBMessage[];
}

Vectors
Lien direct vers Vectors

MéthodeCheminDescription
POST/api/vectors/:vectorName/upsertUpserter des vecteurs
POST/api/vectors/:vectorName/queryInterroger les vecteurs
POST/api/vectors/:vectorName/deleteSupprimer des vecteurs

Corps de la requête d’upsert
Lien direct vers Corps de la requête d’upsert

{
vectors: Array<{
id: string
values: number[]
metadata?: Record<string, unknown>
}>
}

Corps de la requête d’interrogation
Lien direct vers Corps de la requête d’interrogation

{
vector: number[];
topK?: number;
filter?: Record<string, unknown>;
includeMetadata?: boolean;
}

MCP
Lien direct vers MCP

MéthodeCheminDescription
GET/api/mcp/serversRépertorier les serveurs MCP
GET/api/mcp/servers/:serverId/toolsRépertorier les Tools du serveur
POST/api/mcp/:serverIdTransport HTTP MCP
GET/api/mcp/:serverId/sseTransport SSE MCP

Responses API
Lien direct vers Responses API

MéthodeCheminDescription
POST/api/v1/responsesCréer une réponse via la route de l’API Responses compatible avec OpenAI
GET/api/v1/responses/:responseIdRécupérer une réponse stockée
DELETE/api/v1/responses/:responseIdSupprimer une réponse stockée

Pour connaître le contrat complet de requête et de réponse, consultez la référence de l’API Responses.

Conversations API
Lien direct vers Conversations API

MéthodeCheminDescription
POST/api/v1/conversationsCréer une conversation
GET/api/v1/conversations/:conversationIdRécupérer une conversation
DELETE/api/v1/conversations/:conversationIdSupprimer une conversation
GET/api/v1/conversations/:conversationId/itemsRépertorier les éléments stockés d’une conversation

Pour connaître le contrat complet de requête et de réponse, consultez la référence de l’API Conversations.

Logs
Lien direct vers Logs

MéthodeCheminDescription
GET/api/logsRépertorier les logs
GET/api/logs/:runIdObtenir les logs par ID d’exécution

Paramètres de requête
Lien direct vers Paramètres de requête

{
page?: number;
perPage?: number;
transportId?: string;
}

Telemetry
Lien direct vers Telemetry

MéthodeCheminDescription
GET/api/telemetry/tracesRépertorier les traces
GET/api/telemetry/traces/:traceIdObtenir une trace
GET/api/telemetry/traces/:traceId/spansObtenir les spans d’une trace

Paramètres de requête communs
Lien direct vers Paramètres de requête communs

Pagination
Lien direct vers Pagination

La plupart des points de terminaison de liste prennent en charge :

{
page?: number; // Page number (0-indexed)
perPage?: number; // Items per page (default: 10)
}

Filtrage
Lien direct vers Filtrage

Les exécutions de Workflows prennent en charge :

{
fromDate?: string; // ISO date string
toDate?: string; // ISO date string
status?: string; // Run status filter
resourceId?: string; // Filter by resource
}

Réponses d’erreur
Lien direct vers Réponses d’erreur

Toutes les routes renvoient les erreurs dans ce format :

{
error: string; // Error message
details?: unknown; // Additional details
}

Codes d’état courants :

CodeSignification
400Requête incorrecte - Paramètres non valides
401Non autorisé - Authentification absente/non valide
403Interdit - Autorisations insuffisantes
404Introuvable - La ressource n’existe pas
500Erreur interne du serveur