Équipes techniques · API

API de l’OS agentique : modèles, agents et Janus

Vos applications peuvent utiliser Galaris comme service de modèles, appeler ses agents ou converser avec eux via Janus. L’interface Galaris est un accès parmi d’autres.

Brancher vos applications au niveau utile

Les MCP sont configurés dans Galaris, avec des autorisations fines par agent, connexion et fonction. Le hub expose le catalogue autorisé aux moteurs configurés, dont Hermès, DSH, Codex, Claude et le harnais interne. Son chat et ses documents sont des solutions intégrées à cet écosystème.

Une application métier peut consommer les modèles configurés dans Galaris tout en conservant sa propre interface. La passerelle LLM apporte l’accès authentifié aux ressources et le suivi des appels ; la couche agentique ajoute une identité, des instructions et les capacités de l’agent.

Besoin Point d’entrée
Envoyer des messages à un modèle POST /api/llm/openai/chat/completions
Utiliser le protocole Responses POST /api/llm/openai/responses
Utiliser Messages au format Anthropic POST /api/llm/anthropic/v1/messages
Appeler un agent identifié POST /api/agent/openai/chat/completions
Choisir un agent depuis un frontal unique POST /api/janus/openai/chat/completions

Les formats OpenAI-compatibles ici sont Chat Completions et Responses. Le point d’entrée Messages relève du format Anthropic. Les options acceptées dépendent du protocole, du fournisseur et du modèle configurés. Le suivi conserve les inférences, tentatives, événements et informations d’usage et de coût disponibles ; la section sur les inférences durables détaille leur contrôle.

Pour parler à plusieurs agents depuis un client compatible, configurez une seule base API /api/janus/openai et le modèle janus avec votre token personnel. Sélectionnez un agent accessible avec @code : Janus lui passe la main et peut retrouver le choix dans l’historique. Vous pouvez aussi utiliser un alias déclaré sur votre instance.

Les passerelles Nextcloud Talk, Matrix, OneBot et Telegram offrent une autre entrée dans la couche agentique, avec leurs connexions et identités propres. Elles n’exigent pas de passer par le chat Galaris ni par Janus. Comprendre les canaux et outils.

Distinguer les trois façades

Façade Ce que le client appelle
Passerelle de modèles Ressources IA via Chat Completions, Responses ou Messages Anthropic
Agents comme modèles Une identité Galaris avec droits et exécution tâche
Serveur MCP par agent Fonctions natives et connectées dans le périmètre de cet agent

Janus présente les agents accessibles, accepte une sélection par @code ou #code, et peut retrouver ce choix dans l’historique. /reset ou /restart revient à la sélection. Les tokens personnels restent distincts des tokens MCP.

Les droits d’un abonnement personnel suivent son propriétaire humain et l’origine du travail ; une identité technique ne permet pas d’utiliser l’abonnement d’un autre utilisateur.

Catalogue des fonctions MCP

Choisir la bonne porte d’entrée

Agents

Créer une tâche pour un agent identifié

Utiliser l’identité, les outils, les instructions et le harnais de tâche configurés dans Galaris.

Janus

Orienter une conversation

Présenter les agents disponibles et router l’échange vers celui choisi avec son @code.

LLM / Claude

Utiliser une façade compatible

Intégrer certains clients existants sans confondre protocole compatible et équivalence totale.

Process

Lancer un workflow durable

Créer, suivre, actualiser ou annuler un run avec événements et résultat.

Janus, la porte vers les agents

Janus expose les routes compatibles OpenAI /models et /chat/completions. Il peut présenter ses alias configurés et conserver un identifiant de conversation. Il ne remplace pas chaque API d’un fournisseur : il sert de guide vers les agents Galaris.

La passerelle Janus — Point d’entrée compatible OpenAI, alias et accès à la gestion des jetons.
La passerelle Janus — Point d’entrée compatible OpenAI, alias et accès à la gestion des jetons.C42

Exemple minimal Janus

curl https://votre-instance.example/api/janus/openai/models \
  -H "Authorization: Bearer VOTRE_TOKEN"

Les exemples détaillés doivent être vérifiés contre la version déployée. Utilisez la documentation incluse dans le dépôt pour les payloads, le streaming et les autres façades.

Des tokens personnels et révocables

La page « Mes tokens API » permet de créer un secret nommé, de l’activer, le désactiver ou le supprimer. Le token hérite de l’autorité accordée à son propriétaire. Il doit être transmis uniquement sur HTTPS, stocké comme un secret et ne jamais apparaître dans une capture ou un journal.

API Process et n8n dans les deux sens

Le point d’entrée peut être une conversation : l’agent prépare les entrées et lance un processus affecté. Si une étape du workflow n8n a besoin d’un modèle, elle peut appeler POST /api/llm/openai/chat/completions avec le modèle configuré dans Galaris.

Cet appel exige un accès authentifié à l’API LLM, par exemple un token personnel dont le propriétaire possède le droit LLM_API_ACCESS. Transmettez l’en-tête X-Galaris-Process-Run-Id pour rattacher l’inférence au run autorisé et retrouver les appels et leurs coûts disponibles. Le token de callback du processus ne remplace pas cet accès aux modèles.

Un client peut lancer un Process et suivre son run. Lorsque n8n exécute le workflow, Galaris lui transmet une clé d’idempotence et, si nécessaire, une URL temporaire de fichier et une URL de callback protégées par un token limité à ce run.

Un run n8n terminé — État de réussite, dates, durée et sortie enregistrée d’un processus existant.
Un run n8n terminé — État de réussite, dates, durée et sortie enregistrée d’un processus existant.C33

Conserver et contrôler une inférence

L’API authentifiée /api/llm/openai/inferences permet de créer une requête texte ou structurée, puis de consulter son état, ses tentatives, ses résultats et ses coûts. Le flux SSE peut être relu depuis un curseur après déconnexion. Les commandes de pause, arrêt, reprise et rejeu possèdent une identité pour éviter une double application.

La reprise ouvre une nouvelle tentative depuis la requête figée ; le rejeu crée une inférence liée à l’originale. Les résultats antérieurs restent conservés. Une reprise peut appeler et facturer à nouveau le fournisseur : elle ne reprend pas son calcul token par token. Fermer l’abonnement d’une inférence autonome ne l’annule pas ; les appels HTTP ordinaires gardent leur propre contrat d’annulation.

Les requêtes de protocole entrent par les passerelles compatibles. Cette couche n’exécute pas les effets d’outils et ne généralise pas ce cycle aux médias. Les réponses Chat/Responses exposent X-Galaris-Inference-Id pour retrouver l’inférence associée.

Le SDK Dataset des applications documentaires

Les agents créent les documents HTML et JSON avec les outils fichiers existants. Le code exécuté dans une page déclare ses liaisons par data-dataset, data-dataset-alias et data-dataset-access, puis utilise galaris.datasets pour lire, ajouter une entrée à un tableau racine ou remplacer le JSON. Jusqu’à dix liaisons sont déclarables par application.

Cette interface navigateur est distincte du MCP de l’agent. Chaque opération vérifie page, Dataset, droits actuels du lecteur et accord personnel pour la version du document. Les mutations exigent la révision attendue et enrichissent l’historique. Un conflit est refusé sans rejeu automatique ; les accords se gèrent dans l’interface humaine et ne peuvent pas être donnés par MCP.

Le JSON applicatif est limité à 2 000 000 octets sérialisés, 20 000 nœuds et une profondeur de 32, avec nombres finis. Chaque couple utilisateur–Dataset partage 30 écritures et 4 000 000 octets résultants par fenêtre de 60 secondes, entre applications et onglets. Il s’agit de validation structurelle, pas d’un schéma métier. Parcours documentaire.