AI Connect/How to create/Comment créer
Comment créer
Cinq builds de bout en bout qu'aucune autre plateforme n'offre : un chatbot grand public, des copilotes par département, une flotte d'agents, des automatisations sans intervention humaine et un SaaS multi-tenant. Chacun part d'une seule Application key et transforme un type d'acteur différent en un utilisateur isolé, avec ses propres connecteurs, identifiants et capacités.
Le Démarrage rapide vous a montré un appel. Lisez cette ligne lentement, car c'est tout l'avenir en une phrase : avec une seule Application key, chaque utilisateur de votre produit obtient des milliers de connexions IA dès le premier jour, chaque utilisateur isolé avec ses propres connecteurs, identifiants et capacités, et aucun d'eux jamais exposé à Vinkius. Aucune plateforme du marché n'offre cette phrase. Les cinq builds complets de cette section montrent ce qu'elle donne en production : un chatbot grand public, des copilotes par département, une flotte d'agents, des automatisations sans intervention humaine et un SaaS multi-tenant, chacun écrit pour qu'un développeur commence au sommet et termine avec une IA fonctionnelle qui agit dans le monde réel.
Le primitif sous les cinq est celui que le reste de l'industrie n'offre pas : toute entité qui doit agir devient un utilisateur. Les analyses de coûts de l'industrie estiment à six chiffres, sur trois ans, une version maison de cette architecture, et même celle-ci n'est jamais tout à fait livrée. Sur l'AI Connect SDK, c'est la ligne de départ, pas la ligne d'arrivée.
L'idée qui débloque tout
Dans chaque tutoriel, la même ligne apparaît :
const user = vinkius.user(externalId);Cet externalId est une valeur que vous définissez. Ce n'est pas un compte Vinkius, pas un e-mail, pas un être humain. C'est une chaîne opaque et sûre pour les URL que votre backend contrôle déjà, et le SDK la traite comme la frontière qui isole les connecteurs, les identifiants et les capacités. Comme elle est opaque, elle peut nommer tout ce qui a besoin d'agir :
Votre externalId nomme… | C'est… | Pourquoi c'est important |
|---|---|---|
alice_123 | un utilisateur humain | chaque client apporte son propre GitHub, Slack, Gmail |
dept-finance | un département | le copilote des finances agit sur les comptes propres aux finances |
triage-agent | un agent IA autonome | chaque agent obtient ses propres connecteurs et son plafond de dépenses |
svc-nightly-sync | un compte de service | une tâche cron connecte la base de données sans aucune intervention humaine |
cus_acme_u_9f2 | un utilisateur à l'intérieur de votre client | tout votre SaaS livre des connecteurs, isolés par tenant |
Un « utilisateur » dans l'AI Connect SDK est toute entité qui doit posséder un ensemble isolé de connexions et de capacités. Cela n'a pas à être une personne. Ce seul recadrage est la raison pour laquelle le SDK passe d'un chatbot de week-end à une flotte d'agents et à une plateforme d'entreprise white-label sans changer un seul appel.
Mesurez à quel point c'est radical. Chaque plateforme de connectivité que l'industrie a livrée jusqu'ici connecte une application à un service. Aucune ne donne à votre produit son propre modèle d'utilisateurs par entité, avec des identifiants que votre code ne peut jamais relire. La ligne ci-dessus le fait, et c'est toute la différence entre louer de la connectivité pour votre app et posséder une plateforme de connectivité pour vos utilisateurs.
Choisissez votre build
| Build | Qui est l'« utilisateur » | Ce que vous livrez |
|---|---|---|
| Chatbot grand public multi-utilisateurs | un humain par compte | un assistant produit où l'IA de chaque utilisateur voit ses propres outils |
| Copilotes départementaux pour une entreprise de logistique | un département | des assistants internes, un par équipe, sur une seule clé d'app |
| Une flotte d'agents IA, chacun son propre utilisateur | un agent autonome | un essaim où chaque agent a des connecteurs délimités et sa propre mesure |
| Automatisations sans intervention et comptes de service | un processus, pas une personne | des jobs planifiés, des webhooks et de la CI qui connectent des systèmes sans navigateur |
| Un SaaS IA multi-tenant | un utilisateur à l'intérieur de votre client | une IA white-label pour chaque client de votre plateforme |
Le flux que tous les builds partagent
Quelle que soit l'entité que vous modélisez, la boucle d'exécution est identique. Apprenez-la une fois et vous pouvez construire les cinq de mémoire :
- Créez un client sur votre serveur à partir d'une seule Application key.
- Identifiez l'acteur: donnez à
vinkius.user(externalId)l'id qui possède l'action. - Connectez un connecteur:
user.connector('github').connect(), stockez les identifiants une fois, ne les relisez jamais. - Découvrez les capacités:
user.capabilities()ne renvoie que ce que cet acteur a de prêt. - Passez-les à un modèle: un adaptateur convertit l'ensemble en OpenAI, Anthropic, Gemini, Vercel AI SDK, LangChain ou JSON Schema pur.
- Exécutez et renvoyez: exécutez l'appel d'outil du modèle ;
isErrorlaisse l'agent récupérer au lieu de planter.
Commencez par le build le plus proche de ce que vous avez déjà. Si vous exécutez un bot d'assistance, commencez par le chatbot. Si vous êtes une équipe de plateforme interne, commencez par les copilotes départementaux. Si vous lancez le prochain produit natif IA, commencez par le SaaS multi-tenant. Chaque page se termine par une liste de vérification de production pour que vous puissiez publier, pas seulement prototyper.
La barrière défensive, sous le capot
Tous les builds ci-dessous s'appuient sur la même architecture, et la comprendre est ce qui rend la promesse « vous ne possédez pas l'infrastructure d'intégration » crédible plutôt que du marketing.
- Deux plans, un secret. Un plan de contrôle (
users,connectors,credentials,catalog) sur REST, et un plan d'exécution (lister et exécuter les capacités) qui parle en JSON-RPC directement au runtime de chaque connexion. Tout est atteint avec une seule clévk_app_sk_*; le runtime parle le protocole MCP en interne, mais cela n'apparaît jamais dans votre vocabulaire. - Mesuré et révocable par connexion. Chaque connexion possède son propre token de données
vk_live_*. La dépense et la révocation immédiate s'appliquent par connexion, ce qui explique pourquoi un département, un agent ou un compte de service peut être isolé de façon financière et opérationnelle, pas seulement logique. - Identifiants en écriture seule. Votre serveur stocke les secrets de connecteur d'un utilisateur et peut voir quels champs sont configurés, mais rien, ni votre code, ni le modèle, ni le tableau de bord, ne relit jamais les valeurs.
- Masquage par défaut. Les
hooksd'observabilité reçoivent des données déjà purgées :Authorization, les champs en forme d'identifiant et les segments d'URLvk_live_*sont masqués avant l'exécution de votre callback. - Zéro dépendance d'exécution, partout.
fetchnatif, double ESM/CJS, typé, il tourne sur Node 18+, Bun, Deno et l'edge, si bien que la même cible de build couvre un conteneur cron et un Worker. - Réessai et idempotence réfléchis. Les échecs transitoires sont réessayés automatiquement avec un backoff full-jitter, et déclarer une
idempotencyKeyest ce qui rend sûr de réessayer même une écriture non idempotente.
Rien de ce qui précède n'est une fonctionnalité que vous configurez par build, tout est hérité par chaque external_id que vous créez. Cet héritage est la barrière : l'isolation, la mesure et les garanties de sécurité s'appliquent automatiquement aux humains, les départements, les agents, les processus et les tenants.
Avant de commencer
Chaque build suppose les mêmes trois prérequis, traités en profondeur dans Installation et Authentification et portée :
- Node.js 18+ ou tout runtime serveur avec
fetch(Bun, Deno, edge, Cloudflare Workers) @vinkius/connectinstallé- Un App ID Vinkius (
vk_app_…) et une Application Key (vk_app_sk_…) dans des variables d'environnement serveur
Chaque extrait de cette section s'exécute sur votre serveur. L'Application Key et les identifiants de connecteur de vos utilisateurs ne doivent jamais apparaître dans un bundle de navigateur, un binaire mobile ou un prompt de modèle. Publiez une fine route backend devant le SDK ; le navigateur parle à votre route, votre route parle à Vinkius.
Prêt ? Aucune autre plateforme du marché ne peut héberger cette section, parce qu'aucune n'en offre la prémisse : qu'un utilisateur est toute entité qui a besoin d'agir. Choisissez un build et terminez-le, avec une IA qui agit pour chaque utilisateur que vous définissez.
What you just got
Not a pitch: the properties this build inherits automatically.
Connections and capabilities resolve only inside one external_id. No cross-actor leakage is possible, and you wrote none of that enforcement.
Your server stores secrets and can read back which fields are configured, never the values. Not your code, the model, or a dashboard can exfiltrate them.
Every connection owns a vk_live_* token, so cost and revocation are per connection. One call to disconnect() is a complete, auditable stop.
One CapabilitySet converts to OpenAI, Anthropic, Gemini, Vercel AI SDK, LangChain, LlamaIndex, Workers AI or neutral JSON Schema. Only the last line changes.
idempotencyKey, timeoutMs and AbortSignal per call; automatic full-jitter retries on transient failures; typed VinkiusError branches. No bespoke harness.
Give it to your AI agent
An Agent Skill (SKILL.md) for this build. Preview the first lines below, then copy or download it into your repo under .claude/skills/: Claude Code, Cursor or any Agent-Skills-compatible agent follows it to implement this pattern correctly.
