Agents IA

Orchestration multi-outils avec memoire long terme, sur plusieurs tours de conversation.

Un agent maintient l'etat d'une conversation cote serveur : il appelle le modele, execute automatiquement ses outils integres (memoire), et ne redescend vers vous que lorsqu'une reponse finale existe ou qu'un outil que vous avez defini doit etre execute.

Creer une conversation

http
POST /v1/agents/conversations
json
{
  "model": null,
  "routing_strategy": "auto",
  "system_prompt": "Tu es un assistant utile et concis.",
  "tools": []
}

tools declare vos propres outils personnalises (voir plus bas) — les outils integres (memoire, generation video) sont toujours disponibles sans avoir a les declarer.

Envoyer un message

http
POST /v1/agents/conversations/{id}/messages
json
{ "content": "Retiens que mon fournisseur prefere est Anthropic." }

La reponse est toujours l'etat complet de la conversation :

json
{
  "id": "1a63c0df-...",
  "model": null,
  "routing_strategy": "auto",
  "status": "idle",
  "messages": [
    { "id": "...", "role": "user", "content": "Retiens que mon fournisseur prefere est Anthropic.", "tool_calls": null, "tool_call_id": null },
    { "id": "...", "role": "assistant", "content": "", "tool_calls": [{ "id": "call_1", "name": "remember", "arguments": { "content": "Fournisseur prefere : Anthropic" } }], "tool_call_id": null },
    { "id": "...", "role": "tool", "content": "Memoire enregistree (id=...)", "tool_call_id": "call_1" },
    { "id": "...", "role": "assistant", "content": "C'est note !", "tool_calls": null, "tool_call_id": null }
  ],
  "created_at": "...",
  "updated_at": "..."
}

status vaut idle (pret pour un nouveau message), requires_action (un de vos outils personnalises attend un resultat) ou generating_media (une generation video est en cours, voir plus bas).

Outils integres

  • search_memory — recherche dans la memoire long terme de l'agent (parametre query, optionnel top_k)
  • remember — enregistre une information (parametre content)
  • generate_video — lance une generation video (mêmes parametres que POST /v1/video/generate : prompt, duration_seconds, narration_text, scenes — voir le guide Video)

Ces trois outils sont executes automatiquement par le serveur — vous n'avez rien a faire, la conversation continue seule (sauf pour generate_video, qui passe la conversation en generating_media le temps que le job se termine ; sondez GET /v1/agents/conversations/{id} jusqu'a idle).

Outils personnalises

Declarez vos propres outils a la creation de la conversation (tools). Quand le modele les appelle, le statut passe a requires_action et la conversation s'arrete — c'est a vous d'executer l'outil et de renvoyer le resultat :

http
POST /v1/agents/conversations/{id}/tool-outputs
json
{
  "outputs": [
    { "tool_call_id": "call_2", "output": "18C, nuageux" }
  ]
}
POST .../messages renvoie 409 conflict si la conversation n'est pas idle — attendez qu'un outil en attente soit resolu avant d'envoyer un nouveau message.

Lister / consulter

bash
GET /v1/agents/conversations          # liste (resume, sans les messages)
GET /v1/agents/conversations/{id}      # detail complet