Aller au contenu principal
Version: Actuelle

Agent et portails

agent:
name: Teranga # facultatif : Convoy n'invente jamais de nom
persona: "un hôte chaleureux qui aide à composer le repas"
tone: friendly # friendly | professional | playful
rules:
- "Ne jamais inventer un plat : uniquement ce que le menu renvoie."
emoji: false
model: gemini-2.5-flash # le modèle de l'agent
portals:
web: # le site du tenant, un portail de l'agent
widget:
origins: [https://teranga.example.sn] # les seuls sites où le widget s'affiche
theme: {primary: "#C8412B", secondary: "#F6EFE4", font: manrope}
brand_label: Teranga # et les libellés, l'avatar, les invites suggérées
site: {...} # les textes du site de démonstration
pitch: {...} # la page de présentation

mcp: {...} # le nom et les consignes du serveur MCP
cléeffet
agent.persona, tone, emojicomment l'agent se présente, sur toutes les portes. persona et tone sont obligatoires
agent.namele nom de l'agent, si le tenant lui en donne un ; aucune surface ne l'affiche aujourd'hui
agent.modelle modèle sur lequel tourne l'agent ; gemini-2.5-flash par défaut
agent.rulesdes consignes recopiées telles quelles, sur toutes les portes : le widget comme Claude ou ChatGPT. Écrivez-les dans la langue de la station, et nommez les skills de la station, pas un outil qu'elle n'expose pas.
agent.portals.web.widget.originsles seuls sites où le widget peut s'afficher, en origines (https://hote[:port]). Une valeur qui n'est pas une origine (un hôte seul, un chemin, *) est refusée au chargement. Absent, le widget s'affiche sur n'importe quel site
agent.portals.web.widget.themeles couleurs (primary, secondary, accent_gradient) et la police (font : inter, jakarta, manrope, geist, dmsans ; manrope par défaut). Les couleurs vont au widget, à la PWA et aux cadres MCP ; la police au widget seul (les cadres gardent celle de l'hôte). Une couleur qui n'est pas #rgb ou #rrggbb, une police hors de la liste : refusées au chargement
agent.portals.web.widget (le reste)les mots du widget : brand_label, avatar_initial, avatar_url, fallback_title, empty_state_text, suggested_prompts ; labels remplace des textes de Convoy
agent.portals.web.site, pitchles textes du site de démonstration ; pitch n'a que meeting_url (lu par les cadres MCP) et headline, headline_accent (le titre du site quand site n'en donne pas)
mcple nom du serveur MCP ; collection_name_override choisit la collection du catalogue

Le lien d'un item vers sa page sur le site du tenant n'est pas une clé du portail : c'est le champ role: link de la skill qui présente l'item (Skills).

Aujourd'hui, l'agent a trois portails : le widget sur le site du tenant, la PWA, et l'extension Chrome. Les autres (Teams, Slack, WhatsApp) et la preuve de qui parle viennent avec la cible (Agent et portails).

Les consignes ne sont pas des gardes

Une règle de agent.rules guide l'agent ; elle ne l'empêche de rien. Tout ce qui doit être garanti — une adresse obligatoire, une confirmation avant de commander — s'écrit dans un select guard ou dans le submit guard, que Core applique quoi que dise le modèle.