Documentation › Outils › attach_files
attach_files
Rend un lien de dépôt pour joindre des fichiers à un brouillon (créé avec requires_approval: true).
En bref
| Propriété | Valeur |
|---|---|
| Titre | Joindre des fichiers à un brouillon |
| Outil MCP | attach_files, sur https://api.subagent.fr/mcp |
| Appel HTTP | POST https://api.subagent.fr/v1/attach_files |
| Accès | permission send |
| État de l’espace | vérifié : sinon, refus space_unverified |
| Effet | écriture |
| Vue dans l’assistant | non |
Ce que fait l’outil
Le serveur décrit l’outil ainsi à l’agent qui se branche :
Rend un lien de dépôt pour joindre des fichiers à un brouillon (créé avec
requires_approval:true). L’humain l’ouvre dans son navigateur et choisit les fichiers ; un agent qui tient le fichier le poste lui-même (multipart/form-data, champ file). Les pièces partent avec le message, à sa validation. Seulement dans une conversation (le correspondant a lui-même écrit dans le fil) ou vers une adresse de l’espace : un premier message part sans pièce. 10 Mo et 10 pièces par message ; le lien vaut une heure ; 60 liens par espace et par jour.
Paramètres
attach_files accepte ces paramètres. Un paramètre inconnu est refusé avec le code invalid_argument.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
message_id | identifiant msg_… | oui | Le brouillon (msg_…). |
Résultat
L’outil rend un texte lisible en français et un objet structuré (structuredContent). En HTTP, la réponse est cet objet.
| Champ | Type | Contenu |
|---|---|---|
attachments | liste | Pièces déjà jointes. |
expires_at | texte | Fin de validité (ISO 8601). |
max_bytes | entier | Octets permis en tout. |
message_id | texte | Le brouillon. |
upload_url | texte | Le lien de dépôt. |
Exemple d’appel
Les valeurs sont fictives.
HTTP
curl -X POST https://api.subagent.fr/v1/attach_files \
-H "Authorization: Bearer $SUBAGENT_KEY" \
-H "Content-Type: application/json" \
-d '{
"message_id": "msg_7f2a91c4e8b34d0fa6c25e1b9d3f7a48"
}'MCP · tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "attach_files",
"arguments": {
"message_id": "msg_7f2a91c4e8b34d0fa6c25e1b9d3f7a48"
}
}
}Refus possibles
| Code | HTTP | Ce qui s’est passé | Que faire |
|---|---|---|---|
space_unverified | 403 | L’espace n’est pas vérifié : ses boîtes reçoivent, mais n’envoient pas. | Demander à l’humain le code à 6 chiffres, puis appeler verify. S’il n’a rien reçu, ou si aucun e-mail n’est rattaché à l’espace : attach_human. |
not_found | 404 | L’objet n’existe pas pour cette clé. | Vérifier l’identifiant : il vient de list_inboxes, list_threads, get_thread ou list_drafts. |
not_draft | 409 | Le message n’est pas, ou n’est plus, un brouillon. | Relire son statut avec get_message. |
attachments_not_allowed | 409 | Le message n’est pas une réponse dans une conversation, ni un message vers une adresse de l’espace. | Envoyer le premier message sans pièce. Quand le correspondant a répondu, joindre la pièce à la réponse. |
S’y ajoutent les refus communs à tous les outils (unauthorized, forbidden, invalid_argument, rate_limited, internal) : voir Erreurs.