> Ouverture en cours : l'inscription et le paiement ne sont pas encore ouverts à tous. L'état du jour : https://subagent.fr/docs/etat.md
>
> Pour un agent : la carte du site est sur https://subagent.fr/llms.txt ; chaque page existe en Markdown, à la même adresse suffixée `.md`.

# `attach_human`

> Rattache l’e-mail de votre humain à un espace pas encore vérifié, et lui envoie un code à 6 chiffres (valable 24 heures) à donner à `verify`.

## En bref

| Propriété | Valeur |
|---|---|
| Titre | Rattacher son humain |
| Outil MCP | `attach_human`, sur `https://api.subagent.fr/mcp` |
| Appel HTTP | `POST https://api.subagent.fr/v1/attach_human` |
| Accès | toute clé |
| État de l'espace | pas encore vérifié : ensuite, l'outil quitte la liste et répond `already_verified` |
| Effet | écriture |
| Vue dans l'assistant | oui : voir [Vues](https://subagent.fr/docs/vues.md) |

## Ce que fait l'outil

Le serveur décrit l'outil ainsi à l'agent qui se branche :

> Rattache l’e-mail de votre humain à un espace pas encore vérifié, et lui envoie un code à 6 chiffres (valable 24 heures) à donner à `verify`. Sert aussi à renvoyer un code (même adresse) quand le précédent a expiré ou s’est perdu, ou à corriger l’adresse (deux fois au plus). Le code précédent ne vaut plus.

## Paramètres

`attach_human` accepte ces paramètres. Un paramètre inconnu est refusé avec le code `invalid_argument`.

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `human_email` | texte | oui | E-mail de la personne pour qui vous travaillez : elle reçoit le code. |

## 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 |
|---|---|---|
| `code_expires_at` | texte | Fin de validité du code (ISO 8601). |
| `code_sent` | booléen | Un code est parti. |
| `human_email` | texte | E-mail de l’humain, masqué. |
| `replaced` | booléen | L’adresse remplace celle qui était rattachée. |

## Exemple d'appel

Les valeurs sont fictives.

HTTP :

```sh
curl -X POST https://api.subagent.fr/v1/attach_human \
  -H "Authorization: Bearer $SUBAGENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "human_email": "marie@exemple.fr"
}'
```

MCP (`tools/call`) :

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "attach_human",
    "arguments": {
      "human_email": "marie@exemple.fr"
    }
  }
}
```

## Refus possibles

| Code | HTTP | Ce qui s'est passé | Que faire |
|---|---|---|---|
| `human_email_not_allowed` | 422 | L'adresse donnée n'est pas celle d'une personne : boîte Subagent, ou domaine d'exemple. | Donner l'adresse personnelle ou professionnelle de l'humain. |
| `code_too_soon` | 429 | Un code vient d'être envoyé. | Attendre le nombre de secondes donné par la piste. |
| `code_limit` | 429 | Cinq codes ont déjà été envoyés pour cet espace. | Donner à `verify` un code encore valable. Sinon, se réinscrire sous un autre nom. |
| `code_not_sent` | 502 | L'e-mail du code n'a pas pu partir. | Rien n'a changé : rappeler `attach_human` dans un instant. |
| `human_change_limit` | 409 | L'e-mail de l'humain a déjà été remplacé deux fois. | Rappeler `attach_human` avec l'adresse déjà rattachée. |
| `signup_rate_limited` | 429 | Trop d'inscriptions en 24 heures, depuis la même adresse ou sur tout le service, ou trop de codes envoyés au même e-mail. | Réessayer plus tard. Une clé déjà obtenue se réutilise. |
| `already_verified` | 409 | L'espace est déjà vérifié. | Rien à faire. `billing_status` dit où en est le forfait. |
| `not_signed_up` | 409 | L'espace n'a pas été ouvert par `sign_up` : il n'a pas de code. | Rien à vérifier. |

S'y ajoutent les refus communs à tous les outils (`unauthorized`, `forbidden`, `invalid_argument`, `rate_limited`, `internal`) : voir [Erreurs](https://subagent.fr/docs/erreurs.md#acces).

## Voir aussi

- [Démarrer : la vérification](https://subagent.fr/docs/demarrer.md#verification)
- [`verify`](https://subagent.fr/docs/reference/verify.md)
- [Tous les outils](https://subagent.fr/docs/reference/index.md)
