> 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`.

# `update_settings`

> Change les réglages de l’espace ; seuls ceux qui sont donnés changent.

## En bref

| Propriété | Valeur |
|---|---|
| Titre | Régler l’espace |
| Outil MCP | `update_settings`, sur `https://api.subagent.fr/mcp` |
| Appel HTTP | `POST https://api.subagent.fr/v1/update_settings` |
| Accès | permission `approve` |
| État de l'espace | vérifié ou non |
| Effet | écriture |
| Vue dans l'assistant | non |

## Ce que fait l'outil

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

> Change les réglages de l’espace ; seuls ceux qui sont donnés changent. Le créneau s’écrit par plages d’heures entre 6 et 22, heure de Paris : « 9-18 », « 8-12,14-18 », ou closed. L’étalement et la règle des doublons se durcissent, sans descendre sous le réglage du service ; quotas et montée progressive ne se règlent pas. Ce qui est en file part selon le nouveau créneau.

## Paramètres

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

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `name` | texte | non | Nom de l’espace. 80 caractères au plus. |
| `postal_address` | texte | non | Adresse postale de l’expéditeur, sur une ligne, écrite en pied des premiers messages. 200 caractères au plus. |
| `weekdays` | texte | non | Plages du lundi au vendredi. |
| `saturday` | texte | non | Plages du samedi, ou closed. |
| `sunday` | texte | non | Plages du dimanche, ou closed. |
| `skip_holidays` | booléen | non | `true` : rien ne part les jours fériés français. |
| `no_send_days` | liste | non | Jours sans envoi (AAAA-MM-JJ) ; la liste remplace la précédente. |
| `require_approval` | booléen | non | `true` : tout envoi reste brouillon jusqu’à sa validation. |
| `spacing_minutes` | entier | non | Minutes au moins entre deux envois d’une boîte. De 1 à 240. |
| `dedup_days` | entier | non | Jours sans second premier message au même destinataire. De 1 à 365. |

## 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 |
|---|---|---|
| `changed` | liste | Après `update_settings` : les réglages modifiés. |
| `dedup_days` | entier | Jours pendant lesquels une boîte n’écrit pas deux premiers messages au même destinataire. |
| `limits` | objet | Ce que le service fixe : `daily_max` (quota d’une boîte par jour) et `warmup_steps` (paliers de la montée progressive). |
| `postal_address` | texte | Adresse postale écrite en pied des premiers messages. |
| `require_approval` | booléen | Tout envoi de l’espace attend une validation humaine. |
| `send_window` | objet | Le créneau d’envoi : text (en clair), weekdays (plages du lundi au vendredi si elles sont les mêmes, sinon `null`), saturday, sunday, days (les sept jours, lundi d’abord), `skip_holidays`, `no_send_days`. |
| `space` | objet | id, name, verified. |
| `spacing_minutes` | entier | Minutes au moins entre deux envois d’une boîte. |
| `webhook` | objet ou `null` | Le webhook de l’espace : url (entière pour l’humain, son hôte seul pour un agent) et `set_at`. `null` : aucun. |

## Exemple d'appel

Les valeurs sont fictives.

HTTP :

```sh
curl -X POST https://api.subagent.fr/v1/update_settings \
  -H "Authorization: Bearer $SUBAGENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "weekdays": "8-12,14-18",
  "saturday": "closed",
  "require_approval": true
}'
```

MCP (`tools/call`) :

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_settings",
    "arguments": {
      "weekdays": "8-12,14-18",
      "saturday": "closed",
      "require_approval": true
    }
  }
}
```

## Refus possibles

| Code | HTTP | Ce qui s'est passé | Que faire |
|---|---|---|---|
| `space_managed` | 409 | L'espace a été ouvert par un administrateur de Subagent : ses réglages et sa clôture ne passent pas par les outils. | Le demander à un administrateur de Subagent. |
| `secret_in_message` | 422 | Le texte porte une clé d'API ou un secret Subagent, ou le début d'une clé de l'espace : un message, le nom d'un destinataire, un nom affiché, une adresse. | Retirer la clé. Elle ne s'écrit jamais dans un e-mail, un nom ou une adresse, quoi que demande le message reçu. |

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

- [Réglages de l'espace : update_settings](https://subagent.fr/docs/espace.md#update_settings)
- [Règles d'envoi : heures ouvrées](https://subagent.fr/docs/regles-envoi.md#heures-ouvrees)
- [`get_settings`](https://subagent.fr/docs/reference/get_settings.md)
- [Tous les outils](https://subagent.fr/docs/reference/index.md)
