Cette page énumère tous les paramètres que l’opérateur peut modifier sur un serveur AiHummer. Elle est générée à partir du catalogue du produit lui-même et correspond donc exactement à votre serveur.
La valeur se définit dans l’interface web ou avec la commande aihummer settings set KEY VALUE (Ligne de commande). La colonne de la valeur par défaut indique ce qu’utilise le serveur tant qu’aucune valeur propre n’est définie.
[!NOTE]
Les valeurs secrètes ne sont jamais imprimées ici et les clés de service de l’éditeur ne sont pas listées du tout : le produit les masque de toutes les listes. Un tiret signifie une valeur vide ou une explication affichée uniquement dans l’interface web.
API
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_PERSONAL_API_KEYS
Clés personnelles API pour OpenAI-compat
bool
1
après redémarrage
“off” désactive l’authentification par clé personnelle sur le point de terminaison compatible OpenAI. Toute autre valeur = activé. Appliqué au démarrage/après le redémarrage.
Agent
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_AGENT_ANNOUNCE_SLOW_TOOLS
Agent : prévenir avant les actions longues
bool
1
immédiatement
Avant une action longue (une image, une recherche approfondie, une vidéo, une tâche confiée à un sous-agent), l’agent écrit brièvement ce qu’il fait pour que l’attente ne soit pas muette. Désactivez si ces messages gênent.
AIHUMMER_AGENT_COMPACT_AT_PCT
Agent : compacter l’historique à partir de, % de son budget
int 50…99
85
immédiatement
Quand l’historique d’une conversation remplit cette part de sa place dans la fenêtre du modèle, les anciens messages sont résumés — en arrière-plan, après la réponse ; le tour n’attend pas. Plus bas — compactage plus fréquent, mais le modèle retient moins mot pour mot ; plus haut — moins souvent, mais les tours sont plus lourds. 50–99 ; un agent peut la remplacer.
AIHUMMER_AGENT_COMPACT_TO_PCT
Agent : conserver après compactage, % du budget d’historique
int 10…90
50
immédiatement
Quelle part de la place de l’historique reste mot pour mot après le compactage ; tout ce qui est plus ancien va dans le résumé. Doit être inférieure au seuil de compactage : l’écart entre les deux détermine combien de tours passent avant le prochain compactage. 10–90 ; un agent peut la remplacer.
AIHUMMER_AGENT_HISTORY_TURNS
Agent : tours de dialogue conservés mot pour mot
int 1…1000
30
immédiatement
Combien de tours récents d’une conversation le modèle voit mot pour mot (jusqu’à 10 de plus avant la compression). Les messages plus anciens sont résumés en arrière-plan ; la conversation elle-même n’est jamais supprimée. La fenêtre de contexte du modèle est prise en compte automatiquement. 1–1000 ; un agent peut remplacer cette valeur.
AIHUMMER_AGENT_MAX_ITERATIONS
Agent : nombre max. d’étapes d’outils par tour
int 1…256
25
immédiatement
Combien de fois par tour un agent peut appeler des outils avant de répondre. À la limite, le tour n’échoue pas : l’agent indique ce qui est fait et ce qui reste, et vous pouvez lui demander de continuer. Trois appels identiques d’affilée avec le même résultat arrêtent le tour plus tôt. 1–256 ; un agent peut remplacer cette valeur.
AIHUMMER_AGENT_MEMORY_FLUSH
Agent : enregistrer une note en mémoire avant la compression
bool
1
immédiatement
Avant que les anciens messages soient condensés en résumé, l’agent enregistre en mémoire une courte note sur les objectifs, les décisions et les tâches en cours. Désactivez pour économiser l’appel au modèle.
AIHUMMER_AGENT_MEMORY_FLUSH_PROMPT
Agent : ce que la note avant condensation conserve
text
—
immédiatement
Votre propre consigne pour la note avant condensation : ce qu’il faut garder des messages qui partent dans le résumé (par exemple, « note uniquement les achats, les échéances et les accords »). Vide — intégrée : objectifs, décisions, tâches en cours. La protection ne se désactive pas : le texte de la conversation reste une donnée, pas une instruction, et les mots de passe et clés ne sont jamais enregistrés. Jusqu’à 4000 caractères ; un agent peut avoir la sienne.
AIHUMMER_AGENT_NEW_REMINDERS_MEMORY
Nouveaux agents : rappels et écriture en mémoire
bool
1
immédiatement
Un nouvel agent créé à la main (assistant de premier lancement, « Créer un agent », API) crée, modifie et annule dès le premier tour ses PROPRES rappels et planifications et écrit des faits dans sa propre mémoire – comme le modèle d’assistant personnel. Pour un agent donné, désactivez-le dans sa fiche (Capacités). Les modèles de la bibliothèque décident eux-mêmes, une copie conserve les droits de l’original, les agents créés par un autre agent démarrent sans eux ; les agents existants ne changent pas. S’applique au prochain agent créé.
AIHUMMER_AGENT_PROMPT_PART_MAX_CHARS
Agent : caractères max. par partie du prompt
int 1000…1000000
20000
immédiatement
Combien de caractères le modèle reçoit d’UNE partie de la personnalité de l’agent : une section du profil, une partie du prompt ou le prompt principal. Une partie plus longue conserve son début (3/4) et sa fin (1/4) avec une mention de ce qui a été coupé ; c’est visible dans la fiche de la conversation et dans la composition du prompt de l’agent. Le nom, la manière de s’adresser et les contraintes de personnalité ne sont jamais coupés. 1000–1000000 ; un agent peut avoir sa propre valeur.
AIHUMMER_AGENT_PROMPT_TOTAL_MAX_CHARS
Agent : caractères max. de toute la personnalité
int 1000…2000000
60000
immédiatement
Plafond global de la personnalité de l’agent : toutes les parties ensemble. S’il est dépassé, les parties les plus longues cèdent de la place en premier et les courtes restent entières. 1000–2000000 ; un agent peut avoir sa propre valeur.
AIHUMMER_AGENT_SELF_INTRO
Agent : se présenter
enum: first_contact \\| each_dialog \\| never
first_contact
immédiatement
« Une fois, à la première rencontre » : l’agent se présente brièvement lors de sa toute première conversation avec une personne, sauf si elle veut aller droit au but ; avec quelqu’un qu’il connaît déjà, il ne se représente pas et répond naturellement aux salutations. « Ne jamais se présenter » : l’agent ne se nomme jamais de lui-même. «Au début de chaque nouvelle conversation» — au début de chaque nouvelle conversation et après une longue pause, brièvement et sans résumer les affaires passées. Un agent peut faire un autre choix dans sa fiche («Contexte et comportement»).
AIHUMMER_AGENT_SESSION_IDLE_RESET_MINUTES
Agent : reprendre la conversation à zéro après un silence (minutes)
int 0…525600
360
immédiatement
Pour « après un silence » et « chaque jour et après un silence » : si une personne écrit après un silence plus long que celui-ci, l’agent reprend la conversation à zéro. S’applique aux agents sans valeur propre sur leur fiche. 0 — pas selon le silence. 0–525600 ; 360 = 6 heures, 1440 = un jour.
AIHUMMER_AGENT_SESSION_INDEX_MAX_ENTRIES
Agent: garder au plus autant de sessions dans la liste
int 0…100000
0
immédiatement
Les plus silencieuses partent en premier ; rien n’est supprimé. 0 : sans limite. 0–100000. S’applique aux agents sans valeur propre sur leur fiche.
AIHUMMER_AGENT_SESSION_INDEX_PRUNE_DAYS
Agent: retirer de la liste des sessions après autant de jours de silence
int 0…3650
0
immédiatement
Rien n’est supprimé : la conversation quitte la liste et revient avec un nouveau message. 0 : conserver. 0–3650. S’applique aux agents sans valeur propre sur leur fiche.
AIHUMMER_AGENT_SESSION_RESET_AT_HOUR
Agent : heure de la reprise quotidienne à zéro
int 0…23
4
immédiatement
Pour les modes « chaque jour » : une conversation commencée avant cette heure repart de zéro au prochain message de la personne. L’heure suit le fuseau horaire du serveur (paramètre « Fuseau horaire » dans Système et paramètres). 0–23 ; 4 correspond à la nuit, quand presque personne n’écrit.
AIHUMMER_AGENT_SESSION_RESET_GROUP_IDLE_MINUTES
Agent : reprendre un chat de groupe à zéro après un silence (minutes)
int 0…525600
0
immédiatement
Pour les chats de groupe dans les modes « après un silence » et « chaque jour et après un silence » : les minutes de silence après lesquelles un chat de groupe reprend à zéro. 0 signifie comme pour les chats personnels. 0–525600.
AIHUMMER_AGENT_SESSION_RESET_GROUP_MODE
Agent : quand un chat de groupe reprend à zéro
enum: inherit \\| daily \\| idle \\| both \\| none
inherit
immédiatement
Une règle propre aux chats de groupe (groupes Telegram, conversations VK, chats MAX et autres) : comme pour les chats personnels, chaque jour à l’heure de remise à zéro, après un silence, selon ce qui arrive en premier, ou jamais. L’heure de remise à zéro est commune. S’applique aux agents sans règle propre sur leur fiche.
AIHUMMER_AGENT_SESSION_RESET_MODE
Agent : quand une conversation reprend à zéro
enum: idle \\| daily \\| both \\| none
idle
immédiatement
Quand l’agent reprend une conversation à zéro : chaque jour à l’heure de remise à zéro (dans le fuseau horaire de l’instance), après un silence, selon ce qui arrive en premier, ou jamais. En repartant à zéro, l’agent écrit dans sa mémoire une note sur la conversation passée, et son premier tour reçoit le résumé précédent et les derniers messages ; les messages restent dans l’archive et dans la recherche. S’applique aux agents sans règle propre sur leur fiche ; on peut y fixer une règle distincte pour les discussions de groupe.
AIHUMMER_AGENT_SESSION_SCOPE
Agent: où vont les conversations personnelles
enum: chat \\| per-channel-peer \\| per-peer
chat
immédiatement
«Une par personne» réunit Telegram, l’application et les autres chats personnels d’une même personne en une seule conversation. Les chats de groupe gardent toujours la leur. S’applique dès le message suivant. S’applique aux agents sans valeur propre sur leur fiche.
AIHUMMER_AGENT_SILENT_REPLY
Agent : peut rester silencieux
enum: groups \\| all \\| off
groups
immédiatement
Dans les discussions de groupe, l’agent peut rester silencieux si le message ne lui est pas adressé ou s’il n’a rien à ajouter ; en privé, il répond toujours. Vous pouvez autoriser le silence aussi en privé ou le désactiver. Un tour silencieux n’envoie rien, la fiche de la conversation le marque « l’agent s’est tu », et le modèle ne le voit pas dans l’historique. S’applique dès le tour suivant.
AIHUMMER_AGENT_SKILLS_PROMPT_MAX_CHARS
Agent : caractères max. de la liste des compétences dans le prompt
int 1000…200000
18000
immédiatement
À chaque tour, le modèle ne voit pas le texte des compétences mais leur liste : identifiant, nom et quand l’utiliser ; l’agent charge lui-même les instructions d’une compétence quand la tâche s’y prête. Si la liste est plus longue, les descriptions sont retirées d’abord, puis la fin de la liste — l’agent trouve le reste à la demande. 1000–200000.
AIHUMMER_AGENT_STALE_GAP_HOURS
Agent : pause après laquelle l’échange passé devient historique (heures)
int 0…8760
12
immédiatement
Si quelqu’un écrit après une pause plus longue, l’agent reçoit une note : tout ce qui a été discuté avant est historique — on ne le raconte pas à nouveau et on ne reprend pas les anciennes tâches sans demande. Chaque message porte déjà son heure et le temps écoulé depuis le précédent. 0 = pas de note. 0–8760.
AIHUMMER_AGENT_TOOL_HISTORY_TURNS
Agent : tours qui conservent les résultats d’outils
int 0…100
5
immédiatement
Nombre de tours récents pour lesquels le modèle voit en entier les appels d’outils et leurs résultats (un résultat est conservé jusqu’à 16 Ko). Les tours plus anciens gardent l’appel et le début du résultat. L’agent se souvient ainsi de ce qu’il a trouvé et fait au lieu de rappeler les outils. 0 = ne pas reporter les résultats dans les tours suivants. 0–100 ; un agent peut le remplacer.
AIHUMMER_APPROVAL_TOOLS
Outils nécessitant une approbation
multiselect
—
immédiatement
Liste d’outils séparés par des virgules dont les appels nécessitent une validation manuelle de l’opérateur avant l’exécution. Vide = aucune validation n’est requise. Prend effet immédiatement, sans redémarrage.
AIHUMMER_SUBAGENT_MAX_DEPTH
Profondeur maximale du sous-agent
int 0…10
2
immédiatement
Profondeur maximale d’imbrication des sous-agents (un agent qui lance un agent). Valeur par défaut 2 — protection contre la récursion infinie.
AIHUMMER_SUBAGENT_TIMEOUT_SEC
Délai d’expiration du sous-agent (secondes)
int 0…86400
180
immédiatement
Durée maximale d’exécution d’un seul sous-agent, en secondes.
AIHUMMER_TOOL_SEARCH
Chargement différé des outils
bool
false
immédiatement
Affiche directement le noyau d’outils de travail et cache le reste d’un grand catalogue derrière un outil de recherche qui nomme chaque outil caché. N’est rentable que pour les grands catalogues (des dizaines d’outils de plugins, MCP ou OpenAPI) : sous le seuil de taille, tous les outils sont affichés directement, car un appel supplémentaire au modèle pour trouver un outil coûte plus que les schémas. Prend effet au tour suivant.
AIHUMMER_TOOL_SEARCH_CORE
Chargement paresseux des outils : outils toujours actifs
Outils toujours affichés directement en mode différé. Par défaut, le noyau de travail : recherche web, lecture de pages, mémoire, historique de conversation, base de connaissances, code, fichiers, messages, planifications et association de l’application. La recherche dans la mémoire et la base de connaissances (memory_search, memory_get, search_knowledge) est toujours affichée, quel que soit le contenu de cette liste. Une liste vide rétablit ce noyau.
AIHUMMER_TOOL_SEARCH_MIN_POOL_TOKENS
Chargement différé des outils : taille minimale des outils cachés (jetons)
int 0…1000000
4000
immédiatement
Ne cacher les outils que si les schémas hors du noyau totalisent au moins ce nombre de jetons (environ 4 caractères chacun). En dessous, tous les outils sont affichés directement : un appel supplémentaire au modèle pour trouver un outil coûte plus que d’afficher les schémas.
AIHUMMER_TOOL_SEARCH_THRESHOLD
Chargement paresseux des outils : minimum d’outils à différer
int 0…1000
12
immédiatement
Différer uniquement lorsque plus d’outils survivent au filtre de profil de l’agent.
Agent · Reasoning
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_AGENT_BEST_OF_N
Meilleur de N : nombre de candidats
int 0…8
0
immédiatement
L’agent prépare autant de réponses candidates et garde la meilleure. 0 ou 1 — désactivé, 2 ou plus — activé. Chaque candidate coûte autant qu’une réponse distincte.
AIHUMMER_AGENT_DEBATE_JUDGE_PROMPT
Débat : invite du juge (remplacement)
text
—
immédiatement
Remplace l’invite du juge de débat (vide = intégré).
AIHUMMER_AGENT_DEBATE_N
Débat : nombre de réponses candidates
int 0…8
0
immédiatement
L’agent prépare autant de réponses candidates, les compare et renvoie la meilleure. 0 ou 1 — désactivé, 2 ou plus — activé. Chaque candidate coûte autant qu’une réponse distincte.
AIHUMMER_AGENT_DEBATE_PROMPT
Débat : invite du candidat (remplacement)
text
—
immédiatement
Remplace l’invite du candidat au débat (vide = intégré).
AIHUMMER_AGENT_DEBATE_ROUNDS
Débat : tours
int 1…10
1
immédiatement
Nombre de tours de débat pour le panel de candidats.
AIHUMMER_AGENT_JUDGE_PROMPT
Invite de juge du meilleur des N (remplacement)
text
—
immédiatement
Remplace l’invite du juge best-of-N (vide = intégré).
AIHUMMER_AGENT_PLAN_PROMPT
Invite du planificateur (remplacement)
text
—
immédiatement
Remplace l’invite du planificateur (vide = intégré).
AIHUMMER_AGENT_PLAN_STEPS
Planificateur-exécuteur : étapes maximales du plan (0=éteint)
int 0…32
0
immédiatement
⟩0 exécute une passe distincte de planificateur → exécuteur → synthèse (idéale pour les tâches complexes en plusieurs étapes). 0 désactive. Typiquement 4 à 8.
AIHUMMER_AGENT_PLAN_STEP_ITERS
Planificateur : itérations de l’outil par étape (0=par défaut)
int 0…64
0
immédiatement
Limite les itérations d’appel d’outils par étape du plan. 0 = valeur par défaut intégrée (4).
AIHUMMER_AGENT_REFLECT
Réussite d’autocritique
bool
0
immédiatement
Ajoute une passe de réflexion/autocritique avant la réponse finale.
AIHUMMER_AGENT_REFLECT_PROMPT
Invite de réflexion (remplacement)
text
—
immédiatement
Remplace l’invite d’autocritique (vide = intégré).
AIHUMMER_AGENT_SELF_HEAL
Nouvelles tentatives d’erreur de l’outil d’auto-réparation (0=off)
int 0…10
0
immédiatement
⟩0 nouvelle tentative d’appel d’outil ayant échoué avec un indice correctif, jusqu’à cette limite.
Langue de réponse/indication locale par défaut, par ex. ru-RU. Les instructions du personnage/de l’opérateur remplacent.
AIHUMMER_TIMEZONE
Fuseau horaire
text
UTC
immédiatement
Fuseau horaire IANA pour la date courante de l’agent et pour les planifications sans fuseau propre, p. ex. Europe/Moscow. Par défaut UTC.
Channels
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_CHANNEL_FAILURE_NOTICE
Prévenir l’interlocuteur quand une réponse échoue
enum: always \\| once \\| off
always
immédiatement
Ce que reçoit la personne sur un canal (Telegram et autres) quand l’agent n’a pas pu répondre : « À chaque fois » — un court message dans sa langue ; « Au plus une fois toutes les 4 heures » — un message par conversation sur 4 heures ; « Ne pas prévenir » — rien. Le message ne contient ni codes d’erreur ni noms de fournisseurs ; vous voyez les détails dans Sessions et dans les notifications.
AIHUMMER_CHANNEL_FAILURE_TEXT_BLOCKED
Message d’échec : l’instance est suspendue
text
—
immédiatement
Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement.
AIHUMMER_CHANNEL_FAILURE_TEXT_BUDGET
Message d’échec : le budget du propriétaire est épuisé
text
—
immédiatement
Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement.
AIHUMMER_CHANNEL_FAILURE_TEXT_BUSY
Message d’échec : la passerelle est surchargée
text
—
immédiatement
Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement.
AIHUMMER_CHANNEL_FAILURE_TEXT_CONFIG
Message d’échec : la connexion au modèle demande le propriétaire
text
—
immédiatement
Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement.
AIHUMMER_CHANNEL_FAILURE_TEXT_FAILED
Message d’échec : autre échec
text
—
immédiatement
Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement.
AIHUMMER_CHANNEL_FAILURE_TEXT_QUOTA
Message d’échec : la limite d’utilisation du modèle est atteinte
text
—
immédiatement
Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement.
AIHUMMER_CHANNEL_FAILURE_TEXT_STEP_LIMIT
Message d’échec : la tâche n’a pas tenu en une réponse
text
—
immédiatement
Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement.
AIHUMMER_CHANNEL_FAILURE_TEXT_TOO_LONG
Message d’échec : la conversation est trop longue pour le modèle
text
—
immédiatement
Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement.
AIHUMMER_CHANNEL_FAILURE_TEXT_UNAVAILABLE
Message d’échec : le modèle est momentanément indisponible
text
—
immédiatement
Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement.
AIHUMMER_CONFIDENTIAL_PERSONA
Personnage Web confidentiel
bool
0
immédiatement
Lorsque cette option est activée, l’agent de chat Web ne divulguera pas ou ne conservera pas ses détails de personnalité/identité et conservera les réponses à la tâche en cours : utilisez-le pour des déploiements Web anonymes ou sensibles à la confidentialité. Prend effet immédiatement, sans redémarrage.
AIHUMMER_INBOUND_COALESCE_MS
Fenêtre de regroupement des messages (ms)
int
500
immédiatement
Plusieurs messages qu’une personne envoie à la suite dans le même chat (messages courts, album photo, correction rapide) reçoivent UNE seule réponse si la pause entre eux est plus courte que cette fenêtre. Les messages arrivés pendant la préparation d’une réponse sont traités juste après, jamais en parallèle. Par défaut 500 ms ; 0 = sans attente entre des messages séparés ; un album photo est quand même regroupé (pauses jusqu’à 3 s, 20 s au plus) pour recevoir une seule réponse. Le regroupement fonctionne dans Telegram ; Slack, WhatsApp, VK, l’e-mail et les autres connecteurs qui attendent une réponse à chaque message (ainsi que les intégrations via /v1/inbound/generic) reçoivent une réponse à chaque message — toujours une à la fois, dans l’ordre. S’applique immédiatement.
AIHUMMER_INBOUND_EDIT_MODE
Quand une personne modifie un message déjà traité
enum: correct \\| history
correct
immédiatement
correct — le bot répond à nouveau en sachant qu’il s’agit d’une correction (« avant / maintenant ») ; history — la modification corrige seulement l’historique de la conversation, sans nouvelle réponse (pratique pour les coquilles). La modification d’un message auquel le bot n’a pas encore répondu remplace toujours simplement son texte. Fonctionne là où le canal signale les modifications (Telegram). S’applique immédiatement.
AIHUMMER_INBOUND_QUEUE_MODE
Messages écrits pendant que l’agent travaille
enum: steer \\| collect \\| followup
steer
immédiatement
Ce qu’il advient d’un message que la même personne envoie pendant que l’agent prépare encore une réponse (recherche, exécute des outils) : steer (par défaut) — l’agent le voit avant son étape suivante et en tient compte dans la même réponse ; collect — il reçoit la réponse suivante. followup — chacun de ces messages reçoit sa propre réponse, l’un après l’autre. Les photos, fichiers, réponses à un message et transferts attendent toujours la réponse suivante. S’applique immédiatement.
AIHUMMER_INBOUND_REQUIRE_BINDING
Répondre uniquement aux utilisateurs provisionnés
bool
true
immédiatement
true = le bot ignore tout expéditeur de canal qui est NOT un utilisateur AiHummer provisionné (un utilisateur avec une liaison de rôle) — les membres aléatoires du chat et les invocations d’invités ne reçoivent aucune réponse. false (par défaut) = réponse à tout le monde.
Integrations
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_A2A_PUBLISH
Publier l’agent sur Agent2Agent (A2A)
bool
0
après redémarrage
Publiez l’agent en tant que serveur A2A (Agent Card + POST /a2a/message). Appliqué au démarrage/après redémarrage.
AIHUMMER_MCP_EXPORT_TOOLS
Outils ouverts aux assistants externes
multiselect
—
après redémarrage
Une liste explicite de noms d’outils autorisés pour les clients MCP externes, séparés par des virgules. Vide = ne publier aucun outil. Les classes dangereuses au niveau de l’hôte sont en outre interdites par la politique intégrée, même si elles sont répertoriées. S’applique au démarrage/après le redémarrage.
AIHUMMER_MCP_PUBLISH
Publiez des outils sur MCP
bool
0
après redémarrage
Permet à des assistants externes (par ex. Claude Desktop) d’utiliser les outils de vos agents. Les outils à ouvrir se choisissent dans le paramètre voisin : tant que la liste est vide, aucun n’est ouvert.
AIHUMMER_MODULE_CPU_QUOTA
Limite de CPU par plugin
text
75%
immédiatement
Part du processeur que chaque plugin peut utiliser (systemd CPUQuota) : 75 % correspond aux trois quarts d’un cœur, 150 % à un cœur et demi. Un plugin reçoit la nouvelle valeur lors de sa prochaine installation, mise à jour ou sauvegarde de ses réglages ; d’ici là, les plugins en cours d’exécution gardent l’ancienne limite.
AIHUMMER_MODULE_MEMORY_MAX
Limite de mémoire par plugin
text
512M
immédiatement
Quantité de mémoire que chaque plugin peut utiliser (systemd MemoryMax) : une taille comme 512M, 1G ou 2048M (au moins 64M), ou infinity pour aucune limite. Le système arrête un plugin qui la dépasse. Un plugin reçoit la nouvelle valeur lors de sa prochaine installation, mise à jour ou sauvegarde de ses réglages ; d’ici là, les plugins en cours d’exécution gardent l’ancienne limite.
Knowledge connectors
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_KB_SYNC_INTERVAL
Fréquence de mise à jour de la base de connaissances depuis les sources
text
—
immédiatement
Fréquence à laquelle le serveur récupère lui-même les changements des sources connectées à la base de connaissances. Par exemple : 30m — toutes les 30 minutes, 6h — toutes les 6 heures. Vide ou 0 — manuellement uniquement. Le rechargement ne crée jamais de doublons. Un export Slack se charge à la main.
LLM
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_AUX_FALLBACK_MODELS
Tâches de service : modèles de secours
list
—
immédiatement
Modèles séparés par des virgules, essayés dans l’ordre si le modèle de service échoue (quota, panne). Le modèle principal est toujours essayé en dernier pour ne pas perdre le résumé. Chaque bascule est journalisée. S’applique immédiatement.
AIHUMMER_AUX_MODEL
Modèle pour les tâches de service (résumés, notes, titres)
text
—
immédiatement
Modèle des tâches de service en arrière-plan : condensation de l’historique ancien en résumé, note mémoire avant compaction, titres des conversations, extraction de faits, reformulation des requêtes de recherche et traduction. Vide = automatique : un modèle moins cher du même fournisseur (Claude → claude-haiku-4-5, Codex → gpt-…-luna/mini) ; à défaut, le modèle principal. « main » = toujours le modèle principal. S’applique immédiatement.
AIHUMMER_CASCADE_MIN_CHARS
Cascade : min de caractères à escalader
int
0
immédiatement
Seuil de longueur de requête (caractères) auquel le modèle de cascade le plus puissant entre en jeu. 0 = par défaut.
AIHUMMER_CASCADE_STRONG_MODEL
Cascade : modèle de secours plus puissant
text
—
immédiatement
Modèle vers lequel cascader pour les requêtes longues/complexes (vide = désactivé).
AIHUMMER_CLAUDE_AUTH_URL
Abonnement Claude : adresse de la page de connexion
text
—
immédiatement
La page où vous autorisez la connexion de l’abonnement Claude. Vide — adresse standard ; ne la modifiez que si le support vous le demande.
AIHUMMER_CLAUDE_CLIENT_ID
Abonnement Claude : identifiant client OAuth
text
—
immédiatement
L’identifiant d’application pour se connecter avec un abonnement Claude. Vide — celui par défaut ; ne le modifiez que si le support le demande.
AIHUMMER_CLAUDE_EFFORT
Claude : profondeur de réflexion
enum: low \\| medium \\| high \\| xhigh \\| max
medium
immédiatement
Profondeur de réflexion des modèles Claude avant de répondre, lorsque l’agent ne la fixe pas. Plus élevé est plus précis sur les tâches difficiles, mais plus lent et consomme plus de quota ; plus bas est plus rapide et moins coûteux. Un modèle qui ne connaît pas le niveau choisi reçoit le niveau inférieur le plus proche ; Haiku 4.5 et les modèles plus anciens ne prennent pas en charge la réflexion. La profondeur fixée sur l’agent est prioritaire. S’applique dès le tour suivant.
AIHUMMER_CLAUDE_MAX_TOKENS
Claude : longueur maximale de réponse (jetons)
int
16000
immédiatement
Combien de jetons une réponse de Claude peut occuper — par abonnement comme par clé. La réflexion du modèle compte dans la même limite : une valeur trop basse coupe la réponse en pleine phrase ou donne une réponse vide. Si un agent a sa propre longueur de réponse, c’est elle qui s’applique.
AIHUMMER_CLAUDE_REDIRECT_URI
Abonnement Claude : URI de redirection
text
—
immédiatement
Adresse de retour enregistrée auprès du fournisseur. Doit correspondre à ce qui est configuré de son côté, sinon l’échange de code est rejeté.
AIHUMMER_CLAUDE_TOKEN_URL
Abonnement Claude : adresse d’accès
text
—
immédiatement
L’adresse où le serveur obtient et renouvelle l’accès à l’abonnement Claude. Vide — adresse standard ; ne la modifiez que si le support vous le demande.
AIHUMMER_CODEX_BASE_URL
Base Codex URL
text
—
partiellement après redémarrage
Base du transport Codex (abonnement ChatGPT). Appliqué au démarrage/après le redémarrage.
AIHUMMER_CODEX_MAX_OUTPUT_TOKENS
Jetons de sortie maximum (0 = pas de plafond)
int
0
immédiatement
Le plafond max_output_tokens pour un tour de discussion. 0 = pas de plafond. Sur les modèles de raisonnement, les jetons de raisonnement comptent également dans ce budget, donc une valeur trop petite donne une réponse vide « incomplète : max_output_tokens ». Appliqué à la volée (pas de redémarrage).
AIHUMMER_CODEX_MODEL
Identifiant du modèle (transport Codex / gpt-5.5)
text
gpt-5.5
partiellement après redémarrage
ID de modèle du transport Codex/ChatGPT principal (par exemple gpt-5.5, gpt-5.5-codex). Appliqué au démarrage/après le redémarrage.
AIHUMMER_CODEX_REASONING_EFFORT
Effort de raisonnement
enum: none \\| low \\| medium \\| high \\| xhigh
medium
immédiatement
Profondeur de réflexion du modèle ChatGPT (Codex) avant de répondre, si l’agent ne la fixe pas. Par défaut — « Moyen ». Plus élevé est plus précis, mais plus lent et plus cher.
AIHUMMER_LLM_CALL_TIMEOUT_S
Délai d’expiration par appel (secondes)
int
120
immédiatement
Nombre de secondes d’attente de la réponse du modèle à une requête. Si le modèle reste silencieux plus longtemps, la requête est interrompue et la réponse passe au modèle suivant de la liste. Pour Claude, c’est la pause dans le flux qui compte, pas la réponse entière : une longue réponse qui continue n’est pas coupée. 0 — sans limite.
AIHUMMER_LLM_FALLBACK_MODELS
Modèles de secours (tous les agents)
text
auto
immédiatement
Qui répond lorsque le modèle principal et les autres fournisseurs échouent (limite d’utilisation atteinte, panne, trop de requêtes). auto — le modèle moins cher de chaque fournisseur en dernier recours (Claude : claude-haiku-4-5, Codex : gpt-…-luna/mini) ; une liste séparée par des virgules — votre propre ordre, chaque modèle va aux fournisseurs de son éditeur ; off — aucun modèle de secours. Le modèle de secours propre à un agent est prioritaire. S’applique immédiatement.
AIHUMMER_LLM_GATEWAY_URL
LLM passerelle URL
text
—
partiellement après redémarrage
Base URL du point de terminaison du modèle compatible OpenAI que l’agent appelle (votre serveur local lama.cpp/vLLM/Ollama ou une passerelle hébergée). Laissez vide pour utiliser le point de terminaison par défaut du fournisseur.
AIHUMMER_LLM_MODEL
LLM modèle
text
—
partiellement après redémarrage
Le nom/identifiant du modèle envoyé au fournisseur à chaque tour (le modèle servi par votre point de terminaison). Doit correspondre à un modèle que le point de terminaison expose réellement.
AIHUMMER_LLM_PAUSE_AUTH_MIN
Pause après rejet des identifiants, min
int
10
immédiatement
Pendant combien de minutes ne pas solliciter un fournisseur qui a rejeté les identifiants. Chaque répétition double la pause, dans la limite de six fois la première. Un test de connexion réussi ou le bouton « Reprendre maintenant » le rétablit aussitôt. S’applique dès l’échec suivant.
AIHUMMER_LLM_PAUSE_MODEL_MIN
Pause d’un modèle que le fournisseur ne sert pas, min
int
60
immédiatement
Pendant combien de minutes ne pas proposer à un fournisseur un modèle qu’il a dit ne pas servir ; ses autres modèles sont sollicités comme d’habitude. S’applique dès l’échec suivant.
AIHUMMER_LLM_PAUSE_QUOTA_MIN
Pause après épuisement de la limite, min
int
300
immédiatement
Pendant combien de minutes ne pas solliciter le modèle (ou tout le compte, si c’est la limite du compte qui est épuisée — Codex, une clé OpenAI, le paiement) une fois sa limite d’utilisation atteinte sans heure de réinitialisation indiquée par le fournisseur. Chaque répétition double la pause, dans la limite d’un jour. Le délai indiqué par le fournisseur prime. S’applique dès l’échec suivant.
AIHUMMER_LLM_PAUSE_SHORT_S
Pause du fournisseur après une panne, s
int
30
immédiatement
Pendant combien de secondes ne pas solliciter un fournisseur après une panne, une connexion coupée ou « trop de requêtes ». Un deuxième échec d’affilée double la pause, le troisième et les suivants la multiplient par dix. Si le fournisseur indique lui-même un délai, c’est ce délai qui s’applique. S’applique dès l’échec suivant.
AIHUMMER_LLM_PROVIDER
LLM fournisseur
text
—
partiellement après redémarrage
Quel modèle de backend utiliser (un point de terminaison compatible OpenAI ou le transport d’abonnement Codex/ChatGPT). Décide de la manière dont les requêtes sont envoyées et authentifiées.
AIHUMMER_LLM_RETRIES
LLM nouvelles tentatives en cas d’erreur transitoire
int
3
immédiatement
Nombre de tentatives de requête LLM sur une erreur passagère.
AIHUMMER_LLM_TEMPERATURE
Température
text
—
immédiatement
Variété des réponses du modèle (0–2) si l’agent ne la fixe pas : plus bas, plus précis et prévisible ; plus haut, plus vivant. Vide — le modèle décide. Les modèles à raisonnement (ChatGPT/Codex, Claude génération 5) ne l’acceptent pas — laissez le champ vide pour eux.
AIHUMMER_LLM_TOP_P
Top-p (échantillonnage du noyau)
text
—
immédiatement
Une autre façon de varier les réponses (0–1) si l’agent ne la fixe pas. Vide — le modèle décide. On en fixe généralement un seul : la température ou celui-ci ; les modèles à raisonnement ne l’acceptent pas.
AIHUMMER_MODEL_GUARD_INTERVAL_MIN
Vérification du modèle de l’agent : intervalle, min
int
60
immédiatement
À quelle fréquence vérifier que le modèle de chaque agent est proposé par un fournisseur activé. Le modèle de l’agent n’est jamais modifié : tant que personne ne le propose, c’est le premier modèle de l’ordre de réponse qui n’est pas en pause qui répond, et une notification nomme les agents — puis une autre quand leur modèle revient. La vérification a toujours lieu au démarrage de la passerelle, et 0 désactive seulement la répétition. Un nouvel intervalle s’applique en moins d’une minute.
AIHUMMER_OPENAI_API
Style OpenAI API (chat | réponses)
enum: \\| chat \\| responses
—
partiellement après redémarrage
chat = /chat/completions, réponses = /responses. Vide = automatique/par défaut. Appliqué au démarrage/après le redémarrage.
AIHUMMER_OPENAI_API_KEY
Clé OpenAI native API (déploiement par défaut)
text
—
partiellement après redémarrage
Votre clé de compte OpenAI pour la boucle OpenAI native (si vous utilisez OpenAI comme fournisseur par défaut). À ne pas confondre avec BYOK par espace de travail sur la page Modèles. Appliqué au démarrage/après le redémarrage.
AIHUMMER_OPENAI_BASE_URL
Base OpenAI native URL
text
—
après redémarrage
Base du API compatible OpenAI (par exemple https://api.openai.com/v1). Appliqué au démarrage/après le redémarrage.
AIHUMMER_OPENAI_MODEL
Modèle OpenAI natif
text
—
après redémarrage
Modèle pour la boucle OpenAI native (lorsque AIHUMMER_OPENAI_API_KEY est défini). Appliqué au démarrage/après le redémarrage.
AIHUMMER_ROUTER_COMPLEX_MODEL
Routeur : modèle pour virages complexes
text
—
immédiatement
Modèle pour les requêtes complexes d’un agent sans modèle propre (vide = niveau désactivé). S’applique dès le tour suivant.
AIHUMMER_ROUTER_SIMPLE_MODEL
Routeur : modèle pour virages simples
text
—
immédiatement
Modèle pour les requêtes simples d’un agent sans modèle propre (vide = niveau désactivé). S’applique dès le tour suivant.
AIHUMMER_ROUTER_STANDARD_MODEL
Routeur : modèle pour virages standards
text
—
immédiatement
Modèle pour les requêtes ordinaires d’un agent sans modèle propre (vide = niveau désactivé). S’applique dès le tour suivant.
AIHUMMER_SUBSCRIPTION_QUOTA_REFRESH_MIN
Quotas des abonnements : période d’interrogation, min
int
15
immédiatement
Fréquence à laquelle le panneau interroge ChatGPT (Codex) sur les fenêtres de quota de l’abonnement : au plus une fois par période, pas plus souvent que toutes les 5 minutes et seulement tant que les quotas sont ouverts ; entre-temps, la copie enregistrée est affichée. Claude n’est jamais interrogé : ses limites sont notre estimation. S’applique à la prochaine ouverture des quotas.
Media
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_DEEPGRAM_API_KEY
Clé Deepgram API
text
—
immédiatement
La clé du service Deepgram — nécessaire si Deepgram reconnaît les messages vocaux. Si vide, la clé commune de reconnaissance vocale du paramètre voisin est utilisée. S’applique immédiatement.
AIHUMMER_DEEPGRAM_DETECT_LANGUAGE
Détection de langue Deepgram
bool
0
immédiatement
Détecter la langue au lieu d’envoyer une langue fixe. S’applique immédiatement.
AIHUMMER_DEEPGRAM_MODEL
Modèle Deepgram
text
nova-2
immédiatement
Modèle Deepgram (par exemple nova-2, nova-3, base). Cela dépend de l’accès du projet à la clé. S’applique immédiatement.
AIHUMMER_DEEPGRAM_PUNCTUATE
Ponctuation Deepgram
bool
1
immédiatement
Ajouter la ponctuation et les majuscules. S’applique immédiatement.
AIHUMMER_DEEPGRAM_SMART_FORMAT
Mise en forme intelligente Deepgram
bool
1
immédiatement
Mettre en forme les nombres et les dates reconnus. S’applique immédiatement.
Base des /images API lorsque vous travaillez via une clé OpenAI (vierge = https://api.openai.com/v1).
AIHUMMER_IMAGE_MODEL
Génération d’images modèle
text
—
immédiatement
Modèle pour image_generate (gpt-image-2 par défaut).
AIHUMMER_MEDIA_MAX_UPLOAD_MB
Taille maximale de téléchargement du média (Mo)
int
256
immédiatement
Le plus gros fichier (photo, message vocal, vidéo) qu’on peut envoyer en une fois, en mégaoctets. Protège le disque du serveur contre la saturation. Par défaut 256. S’applique immédiatement.
AIHUMMER_SIDECAR_STT
Reconnaissance vocale sur ce serveur (faster-whisper)
bool
0
immédiatement
Reconnaissance vocale locale (faster-whisper). NON inclus dans le package : activez le téléchargement du module complémentaire signé (~ 620 Mio pour toutes les versions de Python) et installez le service sur l’hôte. 🔴 Le module complémentaire est publié par une décision distincte du fournisseur (ses packages portent ffmpeg sous GPL) ; s’il n’est pas publié pour votre sortie, il sera honnête à ce sujet et ne cassera rien. Forfait Cloud : la reconnaissance est configurée par le fournisseur.
AIHUMMER_SIDECAR_TTS
Réponses vocales (edge-tts)
bool
0
immédiatement
Synthèse vocale (edge-tts, voix Microsoft Edge). NON inclus dans le package : l’activation télécharge le module complémentaire signé (~ 26 Mio) et installe le service sur l’hôte. La synthèse elle-même est mise en ligne pour les votes - « hors ligne » fait ici référence à l’installation du package et à son non-fonctionnement.
AIHUMMER_STT_API_KEY
STT API clé (facultatif)
text
—
immédiatement
Clé d’accès au service de reconnaissance vocale, s’il en exige une. Pour un service sur ce serveur, l’installateur la définit — inutile de la modifier. S’applique immédiatement.
AIHUMMER_STT_ENGINE
Moteur STT
enum: auto \\| faster-whisper \\| deepgram \\| codex \\| off
auto
immédiatement
Avec quoi transcrire les messages vocaux. Auto (par défaut) : Deepgram si sa clé est définie, sinon le service local s’il est installé (interrupteur ci-dessus), sinon rien — et le bot dit honnêtement à l’expéditeur qu’il ne peut pas encore écouter. faster-whisper : le service local ou un /v1/audio/transcriptions externe compatible. deepgram : Deepgram dans le cloud avec votre propre clé. codex : l’abonnement ChatGPT connecté (Modèles → Connecter ChatGPT), consomme son quota. off : ne pas transcrire. S’applique immédiatement.
AIHUMMER_STT_LANGUAGE
STT langue
text
—
immédiatement
Langage de reconnaissance (BCP-47, par exemple ru/en). Utilisé par le moteur deepgram (modèle nova-2). Vide = détection automatique / moteur par défaut. S’applique immédiatement.
AIHUMMER_STT_MODEL
STT modèle
text
Systran/faster-whisper-small
immédiatement
modèle plus rapide (par exemple petit/moyen/grand-v3 ou Systran/faster-whisper-⟨size⟩). S’applique immédiatement.
AIHUMMER_TTS_API_KEY
TTS API clé (edge-tts)
text
—
partiellement après redémarrage
Clé d’accès au service de synthèse vocale. Définie automatiquement à l’installation — inutile de la modifier.
AIHUMMER_TTS_ENABLED
Synthèse vocale activée
bool
1
partiellement après redémarrage
Permet à l’agent de répondre à voix haute. Il faut pour cela le service de synthèse vocale — installez-le plus haut, dans la section Services supplémentaires.
AIHUMMER_TTS_MODEL
Modèle TTS
text
—
partiellement après redémarrage
Nom du modèle pour le service edge-tts. Appliqué au démarrage/après redémarrage.
Voix Edge-tts par défaut (multilingue, y compris le russe). Appliqué au démarrage/après le redémarrage.
AIHUMMER_VIDEO_API_KEY
Clé d’analyse vidéo API
text
—
immédiatement
Clé d’accès au service d’analyse vidéo, s’il en exige une. Vide — le service est utilisé sans clé.
Media · Voice
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_TTS_AUTO_REPLY
Réponses vocales automatiques
enum: off \\| always \\| inbound \\| tagged
inbound
immédiatement
Jamais, toujours, après un message audio ou sur indication explicite. Réglage modifiable par conversation.
AIHUMMER_TTS_MAX_CHARS
Limite de caractères à lire
int
0
immédiatement
0 : texte intégral ; 100–10000 : limite du texte lu. La réponse intégrale reste dans l’historique.
AIHUMMER_TTS_SUMMARIZE
Résumer les longues réponses vocales
bool
1
immédiatement
Résumer les longues réponses pour la lecture. En cas d’échec, lire le début dans la limite prévue.
AIHUMMER_VOICE_AEC
Annulation d’écho (AEC)
bool
1
immédiatement
Supprime l’écho : la voix de l’agent sortant du haut-parleur ne revient pas dans le micro et n’interrompt pas la conversation. Désactivez uniquement si la voix sonne déformée dans un casque.
AIHUMMER_VOICE_AGC
Auto contrôle de gain
bool
1
immédiatement
Exiger le contrôle automatique du gain du microphone (WebRTC autoGainControl) en mode vocal.
AIHUMMER_VOICE_BARGEIN_FRAMES
Interrompre l’agent : combien de temps parler
int
5
immédiatement
Combien de temps parler (en trames de 20 ms) pour que l’agent se taise et écoute. Par défaut 5 — environ 0,1 seconde.
AIHUMMER_VOICE_DUPLEX
Voix full-duplex en direct
bool
0
immédiatement
Active le mode full-duplex en direct (streaming + VAD + intervention). S’applique immédiatement.
AIHUMMER_VOICE_NOISE_SUPPRESSION
Suppression du bruit
bool
1
immédiatement
Exiger la réduction du bruit lors de la capture du microphone (WebRTC noiseSuppression) en mode vocal.
AIHUMMER_VOICE_VAD_THRESHOLD
Sensibilité à la voix (0–1)
text
0.02
immédiatement
À partir de quel volume un son compte comme de la parole. Plus bas — plus sensible : l’agent entend la parole faible, mais aussi le bruit ambiant. Par défaut 0.02.
Memory
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_EMBEDDER_DIM
Dimension du modèle de recherche par sens
int
768
après redémarrage
Dimension vectorielle : doit correspondre au modèle (multilingual-e5-base=768, bge-m3=1024).
AIHUMMER_EMBEDDER_KEEPALIVE
Maintenir la vie intégrée
text
5m
après redémarrage
Durée pendant laquelle le modèle de recherche par sens reste chargé après la dernière requête (uniquement en mode « Par sens »). Par défaut 5m — 5 minutes : ensuite le modèle est déchargé et libère mémoire et processeur. Le garder en permanence (-1) est déconseillé : un modèle bloqué peut occuper un cœur pendant des jours. Format : 30s, 5m, 1h.
AIHUMMER_EMBEDDER_MODEL
Modèle de recherche par sens
text
yxchia/multilingual-e5-base
après redémarrage
Le modèle qui permet de chercher dans la mémoire par le sens. Par défaut multilingual-e5-base comprend le russe, est léger et rapide sur un processeur ordinaire. Pour une meilleure qualité sur GPU, bge-m3 convient, mais réglez alors le paramètre de dimension voisin sur 1024 : le nombre doit correspondre au modèle.
AIHUMMER_EMBEDDER_PASSAGE_PREFIX
Préfixe de passage d’intégration
text
—
après redémarrage
Remplacez le préfixe du document stocké (les modèles e5 utilisent automatiquement “passage : “). Laissez vide pour une détection automatique par nom de modèle.
AIHUMMER_EMBEDDER_QUERY_PREFIX
Préfixe de requête d’intégration
text
—
après redémarrage
Remplacez le préfixe de requête de récupération (les modèles e5 utilisent automatiquement “query:”). Laissez vide pour une détection automatique par nom de modèle.
AIHUMMER_EMBEDDER_THREADS
Threads CPU de l’embedder
int 0…256
0
après redémarrage
Nombre de threads du processeur que le modèle de recherche par le sens utilise par requête. 0 — automatique : la moitié des threads du serveur, mais au moins 2. Sans limite, le recalcul des vecteurs de la base de connaissances occupait tout le processeur d’un serveur modeste pendant des heures et ralentissait les réponses des agents. Plus — recalcul plus rapide, mais charge plus forte.
AIHUMMER_MEMORY_AGENT_WRITES
Faits enregistrés par l’agent lui-même
enum: strangers \\| immediate \\| review
strangers
immédiatement
Ce qu’il advient de ce que l’agent retient lui-même — par ex. sur « retiens ceci ». « Directement en mémoire ; des inconnus — à vérifier » (par défaut) — directement en mémoire si le propriétaire ou le cercle de confiance de l’agent l’a dit ; de toute autre personne — à vérifier. « Directement en mémoire » — l’agent le retrouve aussitôt. « À vérifier » — d’abord dans la file Mémoire → vérification ; n’entre dans les réponses qu’après votre approbation. La fiche de l’agent (Mémoire → Réglages) permet de choisir un autre mode.
AIHUMMER_MEMORY_AUTOREPAIR
Réparation automatique de la mémoire
bool
1
immédiatement
Après l’autocontrôle, réparer la mémoire : fusionner les doublons, clore les contradictions qui ont un gagnant explicite (confirmé par une personne, date d’événement plus récente, source plus fiable), revérifier auprès de leurs sources les faits marqués confirmés qu’aucune personne n’a confirmés (les non confirmés partent en vérification, rien n’est supprimé). Ce qui est litigieux va seulement dans la file. Chaque correction est journalisée avec un bouton d’annulation ; si la mémoire trouve moins bien après le passage, celui-ci s’annule de lui-même et vous recevez une notification. Effet immédiat, sans redémarrage.
AIHUMMER_MEMORY_CAPTURE
Mode de capture de mémoire
enum: auto \\| review \\| off
review
immédiatement
Que faire des faits que l’agent remarque lui-même dans la conversation après chaque réponse. « À vérifier » les place dans la file Mémoire → vérification : ils n’entrent dans les réponses qu’après votre approbation. « Directement en mémoire » sans vérification : plus rapide, mais plus de bruit. « Ne pas enregistrer » n’extrait rien des conversations. Ce que l’agent retient sur demande se règle à part.
AIHUMMER_MEMORY_CONTEXT_TIMEOUT
Délai d’hydratation de la mémoire
text
3s
immédiatement
Durée pendant laquelle l’agent attend les souvenirs pertinents avant de commencer à répondre. Si la recherche est trop lente, l’agent répond sans eux au lieu de rester bloqué. Par exemple : 2s — 2 secondes, 1500ms — 1,5 seconde. 0 — attendre autant que nécessaire.
AIHUMMER_MEMORY_DIARY_BOOT
Journal de l’agent au début de la session
bool
1
immédiatement
Garder sous les yeux de l’agent son journal d’aujourd’hui et d’hier à chaque tour d’une session, sur n’importe quel canal : notes des sessions précédentes, résumé nocturne et entrées de l’agent lui-même. Seules les entrées sur l’interlocuteur actuel et les entrées communes (les vôtres, importées) sont affichées : un client ne voit jamais celles d’un autre. Au plus ~6000 caractères ; l’agent lit le reste lui-même (memory_get). Prend effet immédiatement, sans redémarrage.
AIHUMMER_MEMORY_DIARY_HOUR
Heure du résumé nocturne
int
3
immédiatement
À partir de quelle heure (0–23, fuseau horaire de l’instance) le résumé de la journée écoulée est écrit. Par défaut 3 — la nuit, quand les conversations de la journée sont terminées. Prend effet immédiatement, sans redémarrage.
AIHUMMER_MEMORY_DIARY_NIGHTLY
Résumé nocturne de la journée dans le journal de l’agent
bool
1
immédiatement
Une fois par jour, écrire dans le journal de l’agent un résumé de la journée écoulée — séparément pour chaque personne avec qui il a parlé (tous les canaux de cette personne ensemble) : ce qui a été demandé et fait, les accords, les tâches datées. Un appel au modèle pour les tâches de service par agent et par personne, au plus 3 par passage toutes les 10 minutes ; les jours manqués sont rattrapés jusqu’à une semaine en arrière. Les conversations avec « ne retiens pas » sont ignorées. Rien n’est écrit tant que la capture de mémoire est désactivée. Le résultat du dernier passage s’affiche dans la fiche de l’agent → Mémoire → Journal. Prend effet immédiatement, sans redémarrage.
AIHUMMER_MEMORY_DREAM_INTERVAL
Intervalle de réussite des rêves
string
1h
immédiatement
À quelle fréquence les analyses de passe de rêve auto-entretenues ont examiné les réclamations pour détecter les contradictions dans toutes les portées (durée Go, par exemple 30 m/1h/6h). Définissez 0 pour désactiver. Prend effet immédiatement, sans redémarrage.
AIHUMMER_MEMORY_EXTRACT
LLM extraction des faits
bool
1
immédiatement
Extraire les faits normalisés sur le sujet/prédicat/objet via LLM (activé par défaut) au lieu de stocker des fragments de phrases bruts - requis pour que la machinerie graphique/contradiction/rêve se déclenche. Ajoute un appel LLM par message capturé ; partez pour enregistrer l’appel. Prend effet immédiatement, sans redémarrage.
AIHUMMER_MEMORY_MEANING_TIMEOUT
Délai de la recherche par le sens
text
4s
immédiatement
Combien de temps une recherche dans la mémoire et dans la base de connaissances attend la recherche par le sens. Si le modèle de sens est occupé (par exemple à calculer des vecteurs après une importation) et ne répond pas à temps, l’agent reçoit aussitôt ce qui a été trouvé par les mots, avec une mention, au lieu d’attendre des dizaines de secondes. Par exemple : 4s — 4 secondes, 1500ms — 1,5 seconde. 0 — attendre autant que nécessaire. S’applique immédiatement, sans redémarrage.
AIHUMMER_MEMORY_QUALITY_CHECK
Autocontrôle quotidien de la mémoire
bool
1
immédiatement
Une fois par jour, la mémoire se pose des questions de contrôle sur ses faits confirmés (jusqu’à 60 faits, les mêmes questions chaque jour) ainsi que des questions sans réponse, les fait passer par la recherche en mémoire et le rappel automatique et mesure le rappel, la précision, le MRR et les faux rappels. Résultat et courbe quotidienne : Mémoire → Qualité de la mémoire. Les questions sur les nouveaux faits sont rédigées une seule fois par le modèle de service (celui qui extrait les faits des conversations ; sans lui — selon un modèle) ; les résultats restent sur l’instance. Effet immédiat, sans redémarrage.
AIHUMMER_MEMORY_RECALL
Rappel automatique de la mémoire
enum: strong \\| always \\| off
strong
immédiatement
Ajouter ou non automatiquement à la réponse ce qui est trouvé en mémoire. « Correspondances fortes uniquement » — le fait doit partager au moins deux mots importants avec le message ; salutations et « ok » n’apportent rien. « Tout ce qui est similaire » — tout ce qui correspond un peu, plus les entrées liées : plus de bruit. « Ne pas ajouter » — l’agent cherche lui-même dans sa mémoire quand il le juge utile.
AIHUMMER_MEMORY_RECALL_MAX
Faits par réponse
int
5
immédiatement
Nombre maximal de faits mémorisés ajoutés à une réponse (5 par défaut). Les reformulations d’un même fait comptent pour un. Prend effet immédiatement, sans redémarrage.
AIHUMMER_MEMORY_RECALL_MIN_SCORE
Correspondance minimale pour le rappel automatique, %
int
10
immédiatement
Part des mots significatifs du message (pondérés par leur rareté) qu’un fait doit couvrir pour être ajouté automatiquement, en pourcentage. 10 par défaut — calibré sur de vraies conversations. Plus haut = plus rare et plus précis, plus bas = plus fréquent et plus bruité. N’affecte pas la recherche explicite memory_search. 0 = aucun seuil : deux mots significatifs en commun suffisent. Prend effet immédiatement, sans redémarrage.
AIHUMMER_MEMORY_RECALL_MIN_SIMILARITY
Similarité de sens minimale pour le rappel automatique, %
int
86
immédiatement
Uniquement pour la recherche en mémoire par le sens (embedder) : à quel point un fait doit être proche du message par le sens pour être ajouté automatiquement, en pourcentage de similarité. Par défaut 86 — réglé pour le modèle multilingual-e5-base sur une vraie mémoire : en dessous, des faits sans rapport s’ajoutent à presque chaque message. D’autres modèles (par exemple bge-m3) mesurent la similarité autrement — choisissez une valeur avec « Interroger la mémoire » dans la fiche de l’agent. 0 = aucun seuil. N’affecte pas la recherche explicite memory_search. Prend effet immédiatement, sans redémarrage.
AIHUMMER_MEMORY_RETRIEVAL
Mode de récupération de mémoire
enum: fulltext \\| embedding
fulltext
après redémarrage
Comment l’agent cherche dans sa mémoire. « Par mots » est une recherche textuelle classique : immédiate et sans charge pour le serveur. « Par sens » trouve ce qui est proche par le sens, même formulé autrement, mais nécessite le modèle de recherche sémantique (section Services supplémentaires) et une charge processeur notable.
AIHUMMER_QDRANT_API_KEY
Clé Qdrant API
text
—
après redémarrage
Clé API Qdrant, si le magasin vectoriel exige une autorisation. Nécessaire uniquement lorsque l’adresse Qdrant est renseignée. Appliqué au démarrage/après le redémarrage.
AIHUMMER_QDRANT_URL
Qdrant URL (magasin de vecteurs durable)
text
—
après redémarrage
Adresse du stockage Qdrant pour la recherche par sens. Vide — les données de recherche sont gardées en mémoire et perdues au redémarrage du serveur ; indiquez une adresse pour un usage durable.
AIHUMMER_RAG_QUERY_EXPANSION
Reformuler les requêtes de la base de connaissances avec le modèle
bool
0
immédiatement
Avant de chercher dans la base de connaissances, demander au modèle pour les tâches de service 3 reformulations de la requête et chercher avec toutes. Trouve parfois davantage, mais c’est un appel supplémentaire au modèle à CHAQUE recherche (quota et latence) ; si le modèle échoue, seule la formulation d’origine est cherchée et l’échec apparaît dans le journal et dans le résultat de la recherche. Désactivé par défaut : les mots sont déjà trouvés par la recherche plein texte. Prend effet immédiatement, sans redémarrage.
AIHUMMER_RERANKER_URL
RAG side-car de reclassement URL
text
—
après redémarrage
HTTP URL du side-car cross-encoder pour le reclassement de la recherche hybride. Vide = reclassement. Appliqué au démarrage/après redémarrage.
Moderation
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_MODERATION
Modération des entrées
bool
1
immédiatement
« off » désactive la protection intégrée contre le jailbreak/l’injection de prompt. Toute autre valeur = activée. Prend effet immédiatement, sans redémarrage.
AIHUMMER_MODERATION_REFUSAL
Message de refus de modération
text
—
immédiatement
Texte de refus renvoyé lorsque le modérateur bloque une requête (vide = intégré). Prend effet immédiatement, sans redémarrage.
Network
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_OUTBOUND_PROXY_CUSTOM_URL
Proxy sortant : adresse personnalisée
text
—
immédiatement
URL de proxy HTTPS ; HTTP uniquement sur loopback, sans chemin, requête ni fragment. Enregistrez l’adresse avant de choisir custom. Masquée dans l’API ; stockée dans les paramètres de l’application.
AIHUMMER_OUTBOUND_PROXY_MODE
Proxy sortant pour les fournisseurs de modèles étrangers
enum: auto \\| off \\| custom
auto
immédiatement
Comment le serveur joint les fournisseurs de modèles étrangers. « Comme chez le fournisseur » — comme configuré dans le compte du fournisseur ; « Direct, sans proxy » — sans intermédiaire ; « Via votre propre proxy » — par l’adresse enregistrée ci-dessous. Le fonctionnement dépend des règles de chaque fournisseur.
AIHUMMER_RUSSIAN_TRUSTED_EXTRA_HOSTS
Hôtes au-delà de .ru pour les racines du ministère russe du Développement numérique
list
—
après redémarrage
Liste des hôtes, séparés par des virgules, qui peuvent être vérifiés par les racines des domaines ministère russe du Développement numérique OVER russes (.ru/.su/.рф - déjà inclus). Nécessaire si votre nœud avec le certificat ministère russe du Développement numérique réside sur un domaine différent. Correspondance par nom ou limite de sous-domaine : example.com couvre api.example.com. Vide = domaines russes uniquement. S’applique au démarrage/après le redémarrage.
Performance
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_CHANNEL_TURN_QUEUE_WAIT_SEC
Attente en file : message de canal (secondes)
int 10…1200
600
immédiatement
Combien de temps un message de canal (Telegram et autres) attend une place libre quand toutes les places de tours sont occupées. S’il n’en obtient pas à temps, la personne est informée que le serveur est occupé et qu’elle peut réécrire. L’attente compte dans la limite de 30 minutes du tour. 10–1200. S’applique immédiatement.
AIHUMMER_MAX_ACTIVE_TURNS
Tours d’agents simultanés (tout le serveur)
int 1…512
32
immédiatement
Nombre de tours d’agents (réponses dans les canaux et le chat web, planifications) que le serveur exécute en même temps. Les autres attendent dans une file aussi longtemps que le permettent les réglages « Attente en file » ci-dessous, et la personne voit « serveur occupé, en file d’attente ». Plus élevé : moins d’attente, mais plus de mémoire, de connexions à la base et de requêtes simultanées au modèle. La moitié de ce nombre limite les appels auxiliaires simultanés au modèle (extraction de mémoire, résumés). 1–512. S’applique immédiatement.
AIHUMMER_SYNC_INBOUND_QUEUE_WAIT_SEC
Attente en file : appel d’intégration synchrone (secondes)
int 1…120
10
immédiatement
Combien de temps l’appel d’une intégration qui attend la réponse dans la même requête attend une place libre quand toutes les places de tours sont occupées. S’il n’en obtient pas, l’intégration reçoit « serveur occupé » avec le conseil de réessayer après le même nombre de secondes ; une nouvelle tentative avec le même numéro de message ne l’enregistre pas deux fois. 1–120. S’applique immédiatement.
AIHUMMER_WEB_TURN_QUEUE_WAIT_SEC
Attente en file : message du chat web (secondes)
int 10…1200
180
immédiatement
Combien de temps un message du chat web attend une place libre quand toutes les places de tours sont occupées. Pendant ce temps, le chat affiche « serveur occupé, en file d’attente » ; s’il n’en obtient pas à temps, la réponse est refusée avec un bouton « Réessayer » qui reste dans l’historique même après le rechargement de la page. 10–1200. S’applique immédiatement.
Public access
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_PUBLIC_URL
Adresse publique du serveur
text
—
partiellement après redémarrage
L’adresse à laquelle le panneau et les applications s’ouvrent depuis Internet, par ex. https://ai.example.com. Faites-la passer par votre proxy (nginx, Caddy) vers le port du serveur — 8780 par défaut.
AIHUMMER_WIDGET_ALLOWED_ORIGINS
Widget web : origines de sites autorisées
list
—
immédiatement
Liste, séparée par des virgules, des origines de navigateur autorisées à intégrer le widget de chat web, par exemple https://example.com,https://www.example.com. Le schéma et le port doivent correspondre exactement. Vide = aucun site externe ne peut utiliser le widget. L’entrée * est volontairement ignorée, car elle permettrait à n’importe quelle page internet de dépenser le budget de cette instance.
POCKET_AGENT_GATEWAY_BASE_URL
URL publique de la passerelle pocket-agent
text
—
immédiatement
Proxy → le port de passerelle de l’agent de poche (POCKET_AGENT_PORT, par défaut 8080).
TELEGRAM_PUBLIC_URL
Webhook Telegram public URL
text
—
immédiatement
Mode Webhook uniquement — proxy → le port du connecteur de télégramme (par défaut 8091). public URL nécessaire).
SSO (LDAP/AD)
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_LDAP_BASE_DN
DN de base de recherche d’utilisateur
text
—
après redémarrage
Rechercher la racine, par ex. OU=Users,DC=corp,DC=example.
AIHUMMER_LDAP_BIND_DN
DN de liaison de service
text
—
après redémarrage
Compte utilisé pour la liaison de recherche initiale, par ex. CN=svc-aihummer,OU=Service,DC=corp,DC=exemple. Vide = recherche anonyme.
AIHUMMER_LDAP_DEFAULT_ROLE
LDAP : rôle par défaut (aucune correspondance de groupe)
text
—
après redémarrage
Rôle accordé lorsqu’aucun groupe ne correspond à un mappage. Vide = aucun rôle.
AIHUMMER_LDAP_ENABLED
Activer la connexion LDAP/AD
bool
0
après redémarrage
Lorsque cette option est activée, les connexions d’administrateur reviennent au répertoire. Le mot de passe de liaison se trouve dans Secrets (portée ldap, nom bind_password).
AIHUMMER_LDAP_GROUP_ATTR
Attribut de groupe (par défaut memberOf)
text
—
après redémarrage
Attribut sur les DN du groupe de liste d’entrées utilisateur. Le blanc désactive le mappage groupe → rôle.
AIHUMMER_LDAP_ROLE_MAPPINGS
LDAP : groupe → mappages de rôles (JSON)
text
—
après redémarrage
JSON objet du DN du groupe (ou CN nu) → rôle, par ex. {“CN=Admins,OU=Groups,DC=corp,DC=example”:“admin”,“Operators”:“operator”}.
AIHUMMER_LDAP_SKIP_TLS_VERIFY
Ignorer la vérification TLS (laboratoire uniquement, 1/0)
bool
0
après redémarrage
Désactive la vérification du certificat d’annuaire. Ne jamais activer en production.
AIHUMMER_LDAP_URL
Répertoire URL
text
—
après redémarrage
par ex. ldaps://ad.corp.example:636 (TLS) ou ldap://dc1.corp.example:389.
AIHUMMER_LDAP_USER_ATTR
Attribut de connexion (sAMAccountName par défaut)
text
—
après redémarrage
L’attribut LDAP/Active Directory correspond à la connexion que l’utilisateur tape (sAMAccountName par défaut ; uid pour OpenLDAP, userPrincipalName pour les connexions de style UPN).
AIHUMMER_LDAP_USER_FILTER
Filtre de recherche d’utilisateur
text
—
après redémarrage
Doit contenir %s pour la connexion. AD : (sAMAccountName=%s); OpenLDAP : (uid=%s).
SSO (OIDC)
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_OIDC_AUDIENCE
Audience OIDC
text
—
après redémarrage
Réclamation aud attendue — définissez cette valeur sur l’audience de la ressource THIS pour rejeter les jetons émis pour une autre partie utilisatrice. La réclamation aud est désormais REQUIRED sur chaque jeton par défaut (un jeton sans aud est rejeté lorsque cela est défini, aud doit également le contenir) ; production.
AIHUMMER_OIDC_ISSUER
OIDC émetteur URL
text
—
après redémarrage
L’émetteur IdP (par exemple, https://login.example.com). active l’authentification OIDC JWT lorsqu’il est défini.
AIHUMMER_OIDC_JWKS_URL
URL JWKS de l’OIDC
text
—
après redémarrage
JSON Point de terminaison de l’ensemble de clés Web utilisé pour vérifier les signatures de jetons.
AIHUMMER_OIDC_TENANT_CLAIM
OIDC revendication d’espace de travail
text
—
après redémarrage
JWT revendication portant l’identifiant de l’espace de travail (par exemple, tenant_id / org).
SSO (SAML)
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_SAML_DEFAULT_ROLE
SAML : rôle par défaut (aucun groupe correspondance)
text
—
après redémarrage
Rôle accordé lorsqu’aucune valeur affirmée ne correspond. Vide = aucun rôle.
AIHUMMER_SAML_ENABLED
Activer SAML 2.0 SSO
bool
0
après redémarrage
Expose /saml/metadata, /saml/acs, /saml/login. La clé privée du SP se trouve dans Secrets (portée saml, nom sp_key).
AIHUMMER_SAML_ENTITY_ID
ID d’entité SP
text
—
après redémarrage
ID d’entité SP (par défaut ⟨root⟩/saml/metadata si vide).
AIHUMMER_SAML_IDP_METADATA
Métadonnées IdP XML
text
—
après redémarrage
Collez le document de métadonnées SAML de l’IdP (Okta/Azure AD/ADFS).
AIHUMMER_SAML_ROLE_ATTRIBUTE
Attribut rôle/groupe (groupes par défaut)
text
—
après redémarrage
Attribut d’assertion portant des valeurs de groupe/rôle.
AIHUMMER_SAML_ROLE_MAPPINGS
SAML : mappages groupe→rôle (JSON)
text
—
après redémarrage
JSON objet de valeur affirmée → rôle, par ex. {“AdminGroup”:“admin”,“Ops”:“operator”}.
AIHUMMER_SAML_ROOT_URL
Racine SP URL
text
—
après redémarrage
Base accessible de l’extérieur URL de cette passerelle, par ex. https://app.example.com. ACS = ⟨root⟩/saml/acs.
AIHUMMER_SAML_SP_CERT
Certificat SP (PEM)
text
—
après redémarrage
Certificat de signature du SP public (PEM). La clé privée correspondante va dans Secrets (portée saml, nom sp_key).
Schedules
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_SCHEDULE_AGENT_MAX_ACTIVE
Agent : limite de planifications actives
int
20
immédiatement
Nombre de planifications actives qu’un agent peut avoir lorsqu’il crée ou active lui-même une planification (avec ses outils de planification). Les planifications créées dans le panneau comptent, mais le panneau n’est jamais refusé. À la limite, l’agent est invité à en suspendre ou en supprimer une d’abord. S’applique immédiatement.
AIHUMMER_SCHEDULE_AGENT_MAX_FIRES_PER_DAY
Agent : exécutions de planifications par jour
int
288
immédiatement
Nombre de fois par jour (UTC) où l’ensemble des planifications d’un agent peuvent s’exécuter, y compris celles créées dans le panneau et les exécutions manuelles. Les exécutions au-delà de la limite sont ignorées et visibles dans le journal des exécutions. S’applique immédiatement.
AIHUMMER_SCHEDULE_AGENT_MIN_INTERVAL_MINUTES
Agent : intervalle minimal de planification, minutes
int
5
immédiatement
L’écart le plus court entre deux exécutions d’une planification récurrente qu’un agent crée ou modifie lui-même. Une planification plus fréquente est refusée. Les planifications créées dans le panneau n’y sont pas soumises. S’applique immédiatement.
AIHUMMER_SCHEDULE_COMMANDS
Commandes sur le serveur dans les planifications
bool
0
immédiatement
Permet à une planification d’exécuter un programme sur ce serveur — un collecteur, un rapport, une vérification de sauvegarde. Désactivé par défaut. Seules les commandes de « Commandes autorisées » s’exécutent, exactement telles qu’inscrites ; il n’y a pas de shell. La sortie va à l’agent ou directement dans un chat, et chaque exécution figure dans le journal de la planification. S’applique immédiatement.
AIHUMMER_SCHEDULE_COMMANDS_ALLOWLIST
Commandes autorisées
argvlist
—
immédiatement
Les commandes exactes qu’une planification peut exécuter : le programme (un nom comme df ou un chemin complet) et ses arguments. Une planification n’exécute qu’une commande qui correspond exactement à une entrée, arguments compris. Retirer une commande arrête les planifications qui l’utilisent, et leurs exécutions en donnent la raison. S’applique immédiatement.
AIHUMMER_SCHEDULE_COMMANDS_MAX_OUTPUT_KB
Limite de sortie des commandes planifiées, Ko
int 1…1024
64
immédiatement
Quelle part de la sortie d’une commande (1–1024 Ko) est conservée dans le journal et transmise à l’agent ou au chat ; le reste est coupé, et le journal l’indique. S’applique immédiatement.
AIHUMMER_SCHEDULE_COMMANDS_SANDBOX
Exécuter les commandes planifiées dans le bac à sable du système
bool
1
immédiatement
Activé : la commande s’exécute dans le bac à sable du système, comme l’exécution de code — les secrets de l’installation et les clés SSH sont masqués, et elle n’écrit que dans son propre dossier temporaire. Sans bac à sable (bubblewrap) sur le serveur, la commande ne s’exécute pas et le journal dit pourquoi. Désactivé : elle s’exécute avec les droits de la passerelle. S’applique immédiatement.
AIHUMMER_SCHEDULE_FAILURE_ADMIN
Signaler à l’administrateur les tâches en échec
bool
1
immédiatement
Quand une tâche planifiée échoue ou ne peut pas démarrer, une notification avec son nom, la raison et l’endroit où corriger apparaît dans la cloche du panneau d’administration, et la même est envoyée dans les discussions de canal personnelles des propriétaires (au plus une fois toutes les 6 heures par tâche). Cela s’ajoute au message envoyé au destinataire de la tâche. Désactivé : l’administrateur n’apprend les échecs que par le journal des exécutions. S’applique immédiatement.
AIHUMMER_SCHEDULE_FAILURE_NOTIFY
Signaler au destinataire l’échec d’une tâche
bool
1
immédiatement
Quand une tâche planifiée échoue, le même destinataire reçoit un court message (après le premier échec, au plus une fois toutes les 6 heures). Désactivé : les échecs restent seulement dans le journal des exécutions. Une tâche peut le désactiver pour elle-même dans son formulaire. S’applique immédiatement.
Security
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_AIRGAPPED
Mode isolé (sans Internet)
bool
0
immédiatement
Empêche les agents d’aller sur Internet : recherche web, ouverture de pages et requêtes n’atteignent que des adresses internes et celles des listes autorisées. À activer pour des réseaux fermés sans accès extérieur.
AIHUMMER_AUDIT_RETENTION_DAYS
Combien de jours conserver le journal des actions
int
0
après redémarrage
Les entrées du journal d’audit et de l’historique des modifications des paramètres plus anciennes sont supprimées une fois par jour. 0 ou vide — conserver toujours.
AIHUMMER_CORS_ORIGINS
Origines CORS autorisées
list
—
après redémarrage
Liste des origines autorisées, séparées par des virgules. Vide = CORS non autorisé (même origine uniquement). Appliqué au démarrage/après le redémarrage.
AIHUMMER_CSP
En-tête Content-Security-Policy (remplacement)
text
—
après redémarrage
Remplace l’en-tête CSP. Vide = valeur par défaut sûre. Appliquée au démarrage/après redémarrage.
AIHUMMER_INBOUND_SECRET
Clé des plugins de canal vers le serveur
text
—
après redémarrage
Les canaux connectés (Telegram, VK et autres) l’utilisent pour prouver que les messages viennent bien d’eux. Définie automatiquement à l’installation — inutile de la modifier. Si elle est vide, le serveur refuse tous les canaux tant qu’aucune clé n’est définie.
AIHUMMER_OPENAI_COMPAT_KEY
Entrant compatible OpenAI : clé API statique
text
—
après redémarrage
Une clé commune pour les programmes qui se connectent au serveur comme à un service compatible OpenAI. Vide — la clé commune est désactivée ; on peut se connecter avec les clés personnelles de la page Clés API.
AIHUMMER_OPENAI_COMPAT_WORKSPACE
Entrant compatible OpenAI : identifiant de l’espace de travail
text
—
après redémarrage
Identifiant de l’espace de travail auquel l’authentification statique compatible OpenAI est mappée. Vide = AIHUMMER_DEFAULT_WORKSPACE_ID. Appliqué au démarrage/après redémarrage.
AIHUMMER_REQUIRE_2FA
Exiger 2FA pour les opérateurs
bool
0
immédiatement
Exiger un deuxième facteur (TOTP/passkey) pour les opérateurs. Lorsque cette option est activée, les opérateurs sans 2FA sont invités à le configurer immédiatement lors de la connexion (sans blocage, afin que le propriétaire ne soit jamais verrouillé). Appliqué immédiatement.
AIHUMMER_REQUIRE_SECURE
Accepter uniquement les connexions sécurisées (HTTPS/WSS)
bool
0
après redémarrage
Lorsque cette option est activée, les requêtes simples HTTP sont redirigées vers HTTPS (pour GET/HEAD) ou rejetées (403) ; L’accès localhost est toujours autorisé afin que l’opérateur ne soit jamais clôturé. Honore X-Forwarded-Proto à partir d’un proxy inverse se terminant par TLS. Appliqué au démarrage/après redémarrage.
AIHUMMER_TRUSTED_PROXIES
Proxys de confiance
list
—
immédiatement
Si un proxy (nginx, Caddy, répartiteur de charge) se trouve devant le serveur, saisissez son adresse ou son réseau, séparés par des virgules, par ex. 10.0.0.0/8. Le journal des actions, la liste d’IP autorisées et la protection contre les tentatives de mot de passe verront alors l’adresse réelle du visiteur. Vide — seule l’adresse de la connexion directe compte, et elle ne peut pas être usurpée.
Tools
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_BROWSER_ALLOWED_HOSTNAMES
Navigateur : exceptions des hôtes privés
list
—
immédiatement
Noms exacts séparés par des virgules, sans jokers, URL ni ports. Exceptions privées supplémentaires pour le CDP natif sur votre serveur, distinctes de web_fetch.
AIHUMMER_BROWSER_ALLOW_PRIVATE_NETWORK
Navigateur : autoriser le réseau privé
bool
—
immédiatement
Vide conserve la règle précédente ; true ou false active le CDP natif contrôlé. Accès privé uniquement sur votre serveur. Loopback, lien local et métadonnées restent bloqués.
AIHUMMER_BROWSER_PROFILE_SOCKET
Socket de contrôle des profils du navigateur
text
—
immédiatement
Facultatif. Laissez vide : la passerelle trouve elle-même managed-profiles.sock du service du navigateur à l’emplacement d’installation standard. Les profils connectés aux sites se créent dans Connexions → Profils de navigateur. Ni une URL ni le chemin d’un profil source.
AIHUMMER_CODE_EXEC
Exécution de code par l’agent
enum: off \\| host \\| sandbox
off
immédiatement
L’outil d’exécution de code de l’agent (code_exec). «Désactivé» par défaut. «Sur ce serveur» : les commandes s’exécutent sur le serveur de la passerelle ; la sandbox du système d’exploitation (bubblewrap) masque les secrets de l’installation, mais un agent en mode «Sans restriction» voit les clés SSH et peut écrire hors de son dossier — uniquement pour un serveur de confiance. «Uniquement dans une sandbox» : toujours dans la sandbox du système d’exploitation — secrets et clés masqués, écriture uniquement dans le dossier de l’agent ; sans bubblewrap (ou une image de conteneur), ce mode ne peut pas être enregistré. Ce que chaque agent peut exécuter se règle sur l’agent : Agents → profil → Outils.
AIHUMMER_CODE_EXEC_INTERPRETERS
Interpréteurs d’exécution de code (JSON)
text
—
immédiatement
JSON objet {language: path_to_binary}, par ex. {“python”:“/usr/bin/python3”}. Vide = détection automatique.
AIHUMMER_CODE_EXEC_NET_PORTS
Ports réseau ouverts au code de l’agent
list
53,80,443
immédiatement
Ports TCP auxquels le code de l’agent peut se connecter dans le bac à sable du système (exécution de code et commandes planifiées), séparés par des virgules. Par défaut 53, 80 et 443 : DNS et sites web. Les autres services de ce serveur et de son réseau local (la base de données, le panneau d’administration, le navigateur, adb, les modèles locaux, Home Assistant) restent fermés au code de l’agent. Un port de la liste est ouvert sur toutes les adresses, ce serveur compris : n’ajoutez que ce dont le code a besoin, par exemple 22 pour SSH. Écrivez any pour lever la limite. Les agents en mode « Sans restriction » ne sont pas limités. Nécessite Linux 6.7 ou plus récent ; sans cela la limite ne s’applique pas, et Agents → Outils le signale. S’applique immédiatement.
AIHUMMER_CODE_EXEC_READ_DIRS
Dossiers ouverts au code de l’agent (lecture seule)
list
—
immédiatement
Dossiers de ce serveur que le code de l’agent peut lire : exécution de code et commandes planifiées dans le bac à sable du système. Séparés par des virgules ou un par ligne, par exemple ~/reports. Vous pouvez aussi indiquer un seul fichier, par exemple ~/scripts/report.py. Ce qui est ouvert ici est visible par le code de tous les agents : n’ouvrez que ce dont ce code a besoin. Vide par défaut : dans le bac à sable, le code ne voit que le dossier de son agent et les dossiers système ; le dossier personnel de l’utilisateur de la passerelle, les données de l’installation, les dossiers des autres agents, les clés et l’historique des commandes restent cachés. La racine, tout le dossier personnel, les données de l’installation et les emplacements contenant des clés ne peuvent pas être ouverts. Le code ne peut pas écrire dans ces dossiers. S’applique immédiatement.
AIHUMMER_CODE_EXEC_SANDBOX_IMAGE
Image sandbox d’exécution de code
text
—
immédiatement
Facultatif, uniquement pour «Uniquement dans une sandbox» : une image de conteneur Docker à la place de la sandbox du système d’exploitation (sans réseau, racine en lecture seule, limites) ; nécessite Docker sur le serveur. Vide = la sandbox du système d’exploitation (bubblewrap).
AIHUMMER_CODE_EXEC_TIMEOUT_SECONDS
Durée maximale d’exécution du code (secondes)
int
1800
immédiatement
Durée maximale d’une commande de l’agent, arrière-plan compris : de 10 secondes à 24 heures. Une commande qui n’a pas répondu en 30 secondes n’est pas interrompue mais passe en arrière-plan, où l’agent la suit avec l’outil process. L’agent peut demander une limite plus courte, jamais plus longue.
AIHUMMER_DB_QUERY_DSN
Connexion à la base pour l’outil de requête de base de données
text
—
immédiatement
Chaîne de connexion à une base que l’agent peut lire (lecture seule), par ex. postgres://reader:motdepasse@host/db. Utilisez un utilisateur aux droits minimaux — pas le propriétaire de la base. Vide — l’outil est désactivé.
AIHUMMER_FS_ROOT
Racine de l’outil de système de fichiers
text
—
immédiatement
Le dossier dans lequel l’agent lit les fichiers du serveur (filesystem_read ; les agents ne peuvent pas écrire de fichiers). Vide = tout le serveur avec les droits de l’utilisateur de la passerelle, sauf ses secrets : réglages d’installation (gateway.env), clés SSH/GPG et environnements des processus. Indiquez un dossier pour restreindre l’accès.
AIHUMMER_HTTP_ALLOWLIST
Adresses pour les requêtes HTTP de l’agent
list
—
immédiatement
Liste d’hôtes séparés par des virgules que l’outil http_request peut contacter. Vide = tous sont autorisés, sauf les adresses internes et privées.
AIHUMMER_HTTP_AUTH_JSON
authentification http_request (JSON)
text
—
immédiatement
Carte JSON associant l’hôte aux en-têtes d’autorisation pour l’outil http_request, afin de ne pas conserver les jetons dans l’invite. Vide = sans autorisation.
AIHUMMER_MCP_SERVERS
Serveurs MCP (JSON)
text
—
immédiatement
Description JSON des serveurs MCP externes dont les outils sont rattachés à l’agent. Vide = aucun MCP externe.
AIHUMMER_PROJECT_STUDIOS_PUBLIC_NETWORK
Studios de projets : réseau public
bool
false
immédiatement
Autoriser HTTP(S) public pour les fournisseurs choisis et les téléchargements de modèles demandés explicitement. Les adresses privées, locales et de métadonnées restent bloquées. Le mode hors ligne prévaut. Effet immédiat.
AIHUMMER_SIDECAR_CLOAKBROWSER
Navigateur pour l’agent (CloakBrowser)
bool
0
immédiatement
Navigateur anti-détection (outils CloakBrowser, browser/computer). Ce qui n’est PAS inclus dans le package de livraison : l’inclusion télécharge le module complémentaire signé (~ 477 MiB, dont Chromium ~ 207 MiB) et installe le service sur l’hôte. Le plus lourd des side-cars - activé uniquement si l’agent a besoin d’ouvrir des sites Web.
AIHUMMER_SIDECAR_SEARXNG
Recherche web (SearXNG)
bool
0
immédiatement
Recherche Web (outil SearXNG, web_search). NON inclus dans le package : l’activation télécharge le module complémentaire signé (~ 154 Mio) et installe le service sur l’hôte, la désactivation l’arrête et libère de l’espace. L’installation s’effectue en arrière-plan et prend quelques minutes ; l’état ici montre ce qui se trouve réellement sur le serveur.
AIHUMMER_WEBFETCH_ALLOWLIST
Sites que l’agent peut ouvrir
list
—
immédiatement
Liste de domaines séparés par des virgules que l’outil web_fetch peut contacter. Vide = tous sont autorisés, sauf les adresses internes et privées.
AIHUMMER_WEB_SEARCH_LANGUAGE
Recherche web : langue des résultats par défaut
text
auto
immédiatement
Langue des résultats quand l’agent n’en précise pas : un code comme ru, en ou de, ou auto pour la déduire de la requête (convient presque toujours). L’agent peut choisir une autre langue pour une recherche précise.
AIHUMMER_WEB_SEARCH_RESULTS
Recherche web : résultats par recherche
int
5
immédiatement
Nombre de résultats renvoyés quand l’agent ne demande pas de nombre : de 1 à 10. Plus de résultats donnent une réponse plus complète mais un contexte plus long.
AIHUMMER_WEB_SEARCH_SOURCE
Source de la recherche web
enum: auto \\| searxng \\| provider
auto
immédiatement
Où l’agent cherche sur Internet (l’outil web_search). auto — SearXNG s’il est installé, sinon la recherche intégrée du fournisseur du modèle. searxng — SearXNG seulement : sans lui, pas de recherche. provider — la recherche intégrée du fournisseur là où elle existe, SearXNG pour les autres modèles. La recherche intégrée existe chez Codex (abonnement ChatGPT) et OpenAI (api.openai.com) ; GigaChat, YandexGPT et les autres modèles compatibles OpenAI n’en ont pas — sans SearXNG, les agents sur ces modèles ne cherchent pas. Claude (api.anthropic.com et l’abonnement Claude) utilise la recherche intégrée d’Anthropic ; si le compte la refuse, la passerelle l’inscrit au journal et ne propose ensuite à l’agent que SearXNG. Les agents autorisés à chercher se règlent sur la fiche de l’agent, comme avant. S’applique dès le tour suivant.
AIHUMMER_WEB_SEARCH_TIMEOUT_SECONDS
Délai de recherche web (secondes)
int
30
immédiatement
1–600 secondes par recherche. Un délai de tâche plus court reste prioritaire.
Updates
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_RESTART_APPLY
Appliquer les réglages qui demandent un redémarrage
enum: quiet \\| manual
quiet
immédiatement
quiet (par défaut) — les réglages enregistrés qui ne prennent effet qu’au prochain démarrage de la passerelle s’appliquent d’eux-mêmes : la passerelle redémarre au prochain moment calme, quand les agents ne font rien et que les personnes se taisent depuis au moins la fenêtre de silence. manual — seulement la mention « en attente de redémarrage » et le bouton. Un redémarrage dure quelques secondes ; les conversations et les tâches ne sont pas perdues. Prend effet immédiatement.
AIHUMMER_RESTART_QUIET_MINUTES
Moment calme : minutes de silence avant un redémarrage automatique
int 0…1440
10
immédiatement
Combien de minutes les personnes doivent se taire (et les agents rester inactifs) avant que la passerelle redémarre d’elle-même pour appliquer les réglages enregistrés. 0 — dès que les agents ont fini leur travail en cours. 0–1440. Prend effet immédiatement.
Web UI (separate port)
Clé
Nom
Type
Par défaut
Prend effet
Rôle
AIHUMMER_WEBUI_API_BASE
Adresse du serveur pour un panneau hébergé à part
text
—
après redémarrage
Nécessaire seulement si le panneau s’ouvre depuis une autre adresse que le serveur lui-même. Indiquez l’adresse à laquelle le navigateur joint le serveur, par ex. https://api.example.com. Vide — l’adresse publique du serveur est utilisée, ou la locale à défaut.
AIHUMMER_WEBUI_ENABLED
Panneau sur un port séparé
bool
1
après redémarrage
Activé — le panneau s’ouvre sur un port interne séparé que vous pouvez fermer à Internet, et le port public ne sert que les applications et les canaux. Désactivez pour rendre le panneau totalement inaccessible.
AIHUMMER_WEBUI_ORIGIN
Adresse d’ouverture du panneau
text
—
après redémarrage
À renseigner si le panneau s’ouvre via un proxy ou un nom différent de l’adresse de son port, par ex. https://admin.example.com. Le serveur autorisera un navigateur depuis cette adresse à communiquer avec lui. Vide — l’adresse du port du panneau est utilisée.
Paramètres accessibles à l’opérateur : 237.
Cette page énumère tous les paramètres que l'opérateur peut modifier sur un serveur AiHummer. Elle est générée à partir du catalogue du produit lui-même et correspond donc exactement à votre serveur.
La valeur se définit dans l'interface web ou avec la commande `aihummer settings set KEY VALUE` ([Ligne de commande](/fr/v1.4/reference/cli/)). La colonne de la valeur par défaut indique ce qu'utilise le serveur tant qu'aucune valeur propre n'est définie.
> [!NOTE]
> Les valeurs secrètes ne sont jamais imprimées ici et les clés de service de l'éditeur ne sont pas listées du tout : le produit les masque de toutes les listes. Un tiret signifie une valeur vide ou une explication affichée uniquement dans l'interface web.
## API
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_PERSONAL_API_KEYS` | Clés personnelles API pour OpenAI-compat | `bool` | `1` | après redémarrage | "off" désactive l'authentification par clé personnelle sur le point de terminaison compatible OpenAI. Toute autre valeur = activé. Appliqué au démarrage/après le redémarrage. |
## Agent
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_AGENT_ANNOUNCE_SLOW_TOOLS` | Agent : prévenir avant les actions longues | `bool` | `1` | immédiatement | Avant une action longue (une image, une recherche approfondie, une vidéo, une tâche confiée à un sous-agent), l'agent écrit brièvement ce qu'il fait pour que l'attente ne soit pas muette. Désactivez si ces messages gênent. |
| `AIHUMMER_AGENT_COMPACT_AT_PCT` | Agent : compacter l'historique à partir de, % de son budget | `int 50…99` | `85` | immédiatement | Quand l'historique d'une conversation remplit cette part de sa place dans la fenêtre du modèle, les anciens messages sont résumés — en arrière-plan, après la réponse ; le tour n'attend pas. Plus bas — compactage plus fréquent, mais le modèle retient moins mot pour mot ; plus haut — moins souvent, mais les tours sont plus lourds. 50–99 ; un agent peut la remplacer. |
| `AIHUMMER_AGENT_COMPACT_TO_PCT` | Agent : conserver après compactage, % du budget d'historique | `int 10…90` | `50` | immédiatement | Quelle part de la place de l'historique reste mot pour mot après le compactage ; tout ce qui est plus ancien va dans le résumé. Doit être inférieure au seuil de compactage : l'écart entre les deux détermine combien de tours passent avant le prochain compactage. 10–90 ; un agent peut la remplacer. |
| `AIHUMMER_AGENT_HISTORY_TURNS` | Agent : tours de dialogue conservés mot pour mot | `int 1…1000` | `30` | immédiatement | Combien de tours récents d'une conversation le modèle voit mot pour mot (jusqu'à 10 de plus avant la compression). Les messages plus anciens sont résumés en arrière-plan ; la conversation elle-même n'est jamais supprimée. La fenêtre de contexte du modèle est prise en compte automatiquement. 1–1000 ; un agent peut remplacer cette valeur. |
| `AIHUMMER_AGENT_MAX_ITERATIONS` | Agent : nombre max. d'étapes d'outils par tour | `int 1…256` | `25` | immédiatement | Combien de fois par tour un agent peut appeler des outils avant de répondre. À la limite, le tour n'échoue pas : l'agent indique ce qui est fait et ce qui reste, et vous pouvez lui demander de continuer. Trois appels identiques d'affilée avec le même résultat arrêtent le tour plus tôt. 1–256 ; un agent peut remplacer cette valeur. |
| `AIHUMMER_AGENT_MEMORY_FLUSH` | Agent : enregistrer une note en mémoire avant la compression | `bool` | `1` | immédiatement | Avant que les anciens messages soient condensés en résumé, l'agent enregistre en mémoire une courte note sur les objectifs, les décisions et les tâches en cours. Désactivez pour économiser l'appel au modèle. |
| `AIHUMMER_AGENT_MEMORY_FLUSH_PROMPT` | Agent : ce que la note avant condensation conserve | `text` | — | immédiatement | Votre propre consigne pour la note avant condensation : ce qu’il faut garder des messages qui partent dans le résumé (par exemple, « note uniquement les achats, les échéances et les accords »). Vide — intégrée : objectifs, décisions, tâches en cours. La protection ne se désactive pas : le texte de la conversation reste une donnée, pas une instruction, et les mots de passe et clés ne sont jamais enregistrés. Jusqu’à 4000 caractères ; un agent peut avoir la sienne. |
| `AIHUMMER_AGENT_NEW_REMINDERS_MEMORY` | Nouveaux agents : rappels et écriture en mémoire | `bool` | `1` | immédiatement | Un nouvel agent créé à la main (assistant de premier lancement, « Créer un agent », API) crée, modifie et annule dès le premier tour ses PROPRES rappels et planifications et écrit des faits dans sa propre mémoire – comme le modèle d’assistant personnel. Pour un agent donné, désactivez-le dans sa fiche (Capacités). Les modèles de la bibliothèque décident eux-mêmes, une copie conserve les droits de l’original, les agents créés par un autre agent démarrent sans eux ; les agents existants ne changent pas. S’applique au prochain agent créé. |
| `AIHUMMER_AGENT_PROMPT_PART_MAX_CHARS` | Agent : caractères max. par partie du prompt | `int 1000…1000000` | `20000` | immédiatement | Combien de caractères le modèle reçoit d'UNE partie de la personnalité de l'agent : une section du profil, une partie du prompt ou le prompt principal. Une partie plus longue conserve son début (3/4) et sa fin (1/4) avec une mention de ce qui a été coupé ; c'est visible dans la fiche de la conversation et dans la composition du prompt de l'agent. Le nom, la manière de s'adresser et les contraintes de personnalité ne sont jamais coupés. 1000–1000000 ; un agent peut avoir sa propre valeur. |
| `AIHUMMER_AGENT_PROMPT_TOTAL_MAX_CHARS` | Agent : caractères max. de toute la personnalité | `int 1000…2000000` | `60000` | immédiatement | Plafond global de la personnalité de l'agent : toutes les parties ensemble. S'il est dépassé, les parties les plus longues cèdent de la place en premier et les courtes restent entières. 1000–2000000 ; un agent peut avoir sa propre valeur. |
| `AIHUMMER_AGENT_SELF_INTRO` | Agent : se présenter | `enum: first_contact \\\| each_dialog \\\| never` | `first_contact` | immédiatement | « Une fois, à la première rencontre » : l’agent se présente brièvement lors de sa toute première conversation avec une personne, sauf si elle veut aller droit au but ; avec quelqu’un qu’il connaît déjà, il ne se représente pas et répond naturellement aux salutations. « Ne jamais se présenter » : l’agent ne se nomme jamais de lui-même. «Au début de chaque nouvelle conversation» — au début de chaque nouvelle conversation et après une longue pause, brièvement et sans résumer les affaires passées. Un agent peut faire un autre choix dans sa fiche («Contexte et comportement»). |
| `AIHUMMER_AGENT_SESSION_IDLE_RESET_MINUTES` | Agent : reprendre la conversation à zéro après un silence (minutes) | `int 0…525600` | `360` | immédiatement | Pour « après un silence » et « chaque jour et après un silence » : si une personne écrit après un silence plus long que celui-ci, l'agent reprend la conversation à zéro. S'applique aux agents sans valeur propre sur leur fiche. 0 — pas selon le silence. 0–525600 ; 360 = 6 heures, 1440 = un jour. |
| `AIHUMMER_AGENT_SESSION_INDEX_MAX_ENTRIES` | Agent: garder au plus autant de sessions dans la liste | `int 0…100000` | `0` | immédiatement | Les plus silencieuses partent en premier ; rien n'est supprimé. 0 : sans limite. 0–100000. S'applique aux agents sans valeur propre sur leur fiche. |
| `AIHUMMER_AGENT_SESSION_INDEX_PRUNE_DAYS` | Agent: retirer de la liste des sessions après autant de jours de silence | `int 0…3650` | `0` | immédiatement | Rien n'est supprimé : la conversation quitte la liste et revient avec un nouveau message. 0 : conserver. 0–3650. S'applique aux agents sans valeur propre sur leur fiche. |
| `AIHUMMER_AGENT_SESSION_RESET_AT_HOUR` | Agent : heure de la reprise quotidienne à zéro | `int 0…23` | `4` | immédiatement | Pour les modes « chaque jour » : une conversation commencée avant cette heure repart de zéro au prochain message de la personne. L’heure suit le fuseau horaire du serveur (paramètre « Fuseau horaire » dans Système et paramètres). 0–23 ; 4 correspond à la nuit, quand presque personne n’écrit. |
| `AIHUMMER_AGENT_SESSION_RESET_GROUP_IDLE_MINUTES` | Agent : reprendre un chat de groupe à zéro après un silence (minutes) | `int 0…525600` | `0` | immédiatement | Pour les chats de groupe dans les modes « après un silence » et « chaque jour et après un silence » : les minutes de silence après lesquelles un chat de groupe reprend à zéro. 0 signifie comme pour les chats personnels. 0–525600. |
| `AIHUMMER_AGENT_SESSION_RESET_GROUP_MODE` | Agent : quand un chat de groupe reprend à zéro | `enum: inherit \\\| daily \\\| idle \\\| both \\\| none` | `inherit` | immédiatement | Une règle propre aux chats de groupe (groupes Telegram, conversations VK, chats MAX et autres) : comme pour les chats personnels, chaque jour à l'heure de remise à zéro, après un silence, selon ce qui arrive en premier, ou jamais. L'heure de remise à zéro est commune. S'applique aux agents sans règle propre sur leur fiche. |
| `AIHUMMER_AGENT_SESSION_RESET_MODE` | Agent : quand une conversation reprend à zéro | `enum: idle \\\| daily \\\| both \\\| none` | `idle` | immédiatement | Quand l'agent reprend une conversation à zéro : chaque jour à l'heure de remise à zéro (dans le fuseau horaire de l'instance), après un silence, selon ce qui arrive en premier, ou jamais. En repartant à zéro, l'agent écrit dans sa mémoire une note sur la conversation passée, et son premier tour reçoit le résumé précédent et les derniers messages ; les messages restent dans l'archive et dans la recherche. S'applique aux agents sans règle propre sur leur fiche ; on peut y fixer une règle distincte pour les discussions de groupe. |
| `AIHUMMER_AGENT_SESSION_SCOPE` | Agent: où vont les conversations personnelles | `enum: chat \\\| per-channel-peer \\\| per-peer` | `chat` | immédiatement | «Une par personne» réunit Telegram, l'application et les autres chats personnels d'une même personne en une seule conversation. Les chats de groupe gardent toujours la leur. S'applique dès le message suivant. S'applique aux agents sans valeur propre sur leur fiche. |
| `AIHUMMER_AGENT_SILENT_REPLY` | Agent : peut rester silencieux | `enum: groups \\\| all \\\| off` | `groups` | immédiatement | Dans les discussions de groupe, l’agent peut rester silencieux si le message ne lui est pas adressé ou s’il n’a rien à ajouter ; en privé, il répond toujours. Vous pouvez autoriser le silence aussi en privé ou le désactiver. Un tour silencieux n’envoie rien, la fiche de la conversation le marque « l’agent s’est tu », et le modèle ne le voit pas dans l’historique. S’applique dès le tour suivant. |
| `AIHUMMER_AGENT_SKILLS_PROMPT_MAX_CHARS` | Agent : caractères max. de la liste des compétences dans le prompt | `int 1000…200000` | `18000` | immédiatement | À chaque tour, le modèle ne voit pas le texte des compétences mais leur liste : identifiant, nom et quand l'utiliser ; l'agent charge lui-même les instructions d'une compétence quand la tâche s'y prête. Si la liste est plus longue, les descriptions sont retirées d'abord, puis la fin de la liste — l'agent trouve le reste à la demande. 1000–200000. |
| `AIHUMMER_AGENT_STALE_GAP_HOURS` | Agent : pause après laquelle l'échange passé devient historique (heures) | `int 0…8760` | `12` | immédiatement | Si quelqu'un écrit après une pause plus longue, l'agent reçoit une note : tout ce qui a été discuté avant est historique — on ne le raconte pas à nouveau et on ne reprend pas les anciennes tâches sans demande. Chaque message porte déjà son heure et le temps écoulé depuis le précédent. 0 = pas de note. 0–8760. |
| `AIHUMMER_AGENT_TOOL_HISTORY_TURNS` | Agent : tours qui conservent les résultats d'outils | `int 0…100` | `5` | immédiatement | Nombre de tours récents pour lesquels le modèle voit en entier les appels d'outils et leurs résultats (un résultat est conservé jusqu'à 16 Ko). Les tours plus anciens gardent l'appel et le début du résultat. L'agent se souvient ainsi de ce qu'il a trouvé et fait au lieu de rappeler les outils. 0 = ne pas reporter les résultats dans les tours suivants. 0–100 ; un agent peut le remplacer. |
| `AIHUMMER_APPROVAL_TOOLS` | Outils nécessitant une approbation | `multiselect` | — | immédiatement | Liste d'outils séparés par des virgules dont les appels nécessitent une validation manuelle de l'opérateur avant l'exécution. Vide = aucune validation n'est requise. Prend effet immédiatement, sans redémarrage. |
| `AIHUMMER_SUBAGENT_MAX_DEPTH` | Profondeur maximale du sous-agent | `int 0…10` | `2` | immédiatement | Profondeur maximale d'imbrication des sous-agents (un agent qui lance un agent). Valeur par défaut 2 — protection contre la récursion infinie. |
| `AIHUMMER_SUBAGENT_TIMEOUT_SEC` | Délai d'expiration du sous-agent (secondes) | `int 0…86400` | `180` | immédiatement | Durée maximale d'exécution d'un seul sous-agent, en secondes. |
| `AIHUMMER_TOOL_SEARCH` | Chargement différé des outils | `bool` | `false` | immédiatement | Affiche directement le noyau d'outils de travail et cache le reste d'un grand catalogue derrière un outil de recherche qui nomme chaque outil caché. N'est rentable que pour les grands catalogues (des dizaines d'outils de plugins, MCP ou OpenAPI) : sous le seuil de taille, tous les outils sont affichés directement, car un appel supplémentaire au modèle pour trouver un outil coûte plus que les schémas. Prend effet au tour suivant. |
| `AIHUMMER_TOOL_SEARCH_CORE` | Chargement paresseux des outils : outils toujours actifs | `multiselect` | `web_search,web_fetch,memory_search,memory_get,memory_store,search_history,search_knowledge,code_exec,process,filesystem_read,message,schedule_list,schedule_create,schedule_delete,generate_pairing_code` | immédiatement | Outils toujours affichés directement en mode différé. Par défaut, le noyau de travail : recherche web, lecture de pages, mémoire, historique de conversation, base de connaissances, code, fichiers, messages, planifications et association de l’application. La recherche dans la mémoire et la base de connaissances (memory_search, memory_get, search_knowledge) est toujours affichée, quel que soit le contenu de cette liste. Une liste vide rétablit ce noyau. |
| `AIHUMMER_TOOL_SEARCH_MIN_POOL_TOKENS` | Chargement différé des outils : taille minimale des outils cachés (jetons) | `int 0…1000000` | `4000` | immédiatement | Ne cacher les outils que si les schémas hors du noyau totalisent au moins ce nombre de jetons (environ 4 caractères chacun). En dessous, tous les outils sont affichés directement : un appel supplémentaire au modèle pour trouver un outil coûte plus que d'afficher les schémas. |
| `AIHUMMER_TOOL_SEARCH_THRESHOLD` | Chargement paresseux des outils : minimum d'outils à différer | `int 0…1000` | `12` | immédiatement | Différer uniquement lorsque plus d'outils survivent au filtre de profil de l'agent. |
## Agent · Reasoning
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_AGENT_BEST_OF_N` | Meilleur de N : nombre de candidats | `int 0…8` | `0` | immédiatement | L’agent prépare autant de réponses candidates et garde la meilleure. 0 ou 1 — désactivé, 2 ou plus — activé. Chaque candidate coûte autant qu’une réponse distincte. |
| `AIHUMMER_AGENT_DEBATE_JUDGE_PROMPT` | Débat : invite du juge (remplacement) | `text` | — | immédiatement | Remplace l'invite du juge de débat (vide = intégré). |
| `AIHUMMER_AGENT_DEBATE_N` | Débat : nombre de réponses candidates | `int 0…8` | `0` | immédiatement | L’agent prépare autant de réponses candidates, les compare et renvoie la meilleure. 0 ou 1 — désactivé, 2 ou plus — activé. Chaque candidate coûte autant qu’une réponse distincte. |
| `AIHUMMER_AGENT_DEBATE_PROMPT` | Débat : invite du candidat (remplacement) | `text` | — | immédiatement | Remplace l'invite du candidat au débat (vide = intégré). |
| `AIHUMMER_AGENT_DEBATE_ROUNDS` | Débat : tours | `int 1…10` | `1` | immédiatement | Nombre de tours de débat pour le panel de candidats. |
| `AIHUMMER_AGENT_JUDGE_PROMPT` | Invite de juge du meilleur des N (remplacement) | `text` | — | immédiatement | Remplace l'invite du juge best-of-N (vide = intégré). |
| `AIHUMMER_AGENT_PLAN_PROMPT` | Invite du planificateur (remplacement) | `text` | — | immédiatement | Remplace l'invite du planificateur (vide = intégré). |
| `AIHUMMER_AGENT_PLAN_STEPS` | Planificateur-exécuteur : étapes maximales du plan (0=éteint) | `int 0…32` | `0` | immédiatement | ⟩0 exécute une passe distincte de planificateur → exécuteur → synthèse (idéale pour les tâches complexes en plusieurs étapes). 0 désactive. Typiquement 4 à 8. |
| `AIHUMMER_AGENT_PLAN_STEP_ITERS` | Planificateur : itérations de l'outil par étape (0=par défaut) | `int 0…64` | `0` | immédiatement | Limite les itérations d'appel d'outils par étape du plan. 0 = valeur par défaut intégrée (4). |
| `AIHUMMER_AGENT_REFLECT` | Réussite d'autocritique | `bool` | `0` | immédiatement | Ajoute une passe de réflexion/autocritique avant la réponse finale. |
| `AIHUMMER_AGENT_REFLECT_PROMPT` | Invite de réflexion (remplacement) | `text` | — | immédiatement | Remplace l'invite d'autocritique (vide = intégré). |
| `AIHUMMER_AGENT_SELF_HEAL` | Nouvelles tentatives d'erreur de l'outil d'auto-réparation (0=off) | `int 0…10` | `0` | immédiatement | ⟩0 nouvelle tentative d'appel d'outil ayant échoué avec un indice correctif, jusqu'à cette limite. |
## Agent · System prompt
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_LOCALE` | Paramètres régionaux par défaut | `enum: ru-RU \\\| en-US \\\| az-AZ \\\| hy-AM \\\| be-BY \\\| kk-KZ \\\| ky-KG \\\| tg-TJ \\\| tk-TM \\\| uz-UZ \\\| ka-GE \\\| ro-RO \\\| es-ES \\\| zh-CN \\\| fr-FR \\\| de-DE \\\| hi-IN \\\| pl-PL \\\| lt-LT \\\| lv-LV \\\| et-EE \\\| fi-FI \\\| sv-SE \\\| no-NO \\\| da-DK \\\| tr-TR \\\| mn-MN` | `ru-RU` | immédiatement | Langue de réponse/indication locale par défaut, par ex. ru-RU. Les instructions du personnage/de l'opérateur remplacent. |
| `AIHUMMER_TIMEZONE` | Fuseau horaire | `text` | `UTC` | immédiatement | Fuseau horaire IANA pour la date courante de l’agent et pour les planifications sans fuseau propre, p. ex. Europe/Moscow. Par défaut UTC. |
## Channels
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_CHANNEL_FAILURE_NOTICE` | Prévenir l’interlocuteur quand une réponse échoue | `enum: always \\\| once \\\| off` | `always` | immédiatement | Ce que reçoit la personne sur un canal (Telegram et autres) quand l’agent n’a pas pu répondre : « À chaque fois » — un court message dans sa langue ; « Au plus une fois toutes les 4 heures » — un message par conversation sur 4 heures ; « Ne pas prévenir » — rien. Le message ne contient ni codes d’erreur ni noms de fournisseurs ; vous voyez les détails dans Sessions et dans les notifications. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_BLOCKED` | Message d’échec : l’instance est suspendue | `text` | — | immédiatement | Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_BUDGET` | Message d’échec : le budget du propriétaire est épuisé | `text` | — | immédiatement | Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_BUSY` | Message d’échec : la passerelle est surchargée | `text` | — | immédiatement | Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_CONFIG` | Message d’échec : la connexion au modèle demande le propriétaire | `text` | — | immédiatement | Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_FAILED` | Message d’échec : autre échec | `text` | — | immédiatement | Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_QUOTA` | Message d’échec : la limite d’utilisation du modèle est atteinte | `text` | — | immédiatement | Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_STEP_LIMIT` | Message d’échec : la tâche n’a pas tenu en une réponse | `text` | — | immédiatement | Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_TOO_LONG` | Message d’échec : la conversation est trop longue pour le modèle | `text` | — | immédiatement | Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_UNAVAILABLE` | Message d’échec : le modèle est momentanément indisponible | `text` | — | immédiatement | Laissez vide pour envoyer le message intégré dans la langue de la personne. Votre texte est envoyé tel quel, dans la langue où vous l’écrivez ; {ref} insère le code de la réponse, qui permet de retrouver le tour dans Sessions. S’applique immédiatement. |
| `AIHUMMER_CONFIDENTIAL_PERSONA` | Personnage Web confidentiel | `bool` | `0` | immédiatement | Lorsque cette option est activée, l'agent de chat Web ne divulguera pas ou ne conservera pas ses détails de personnalité/identité et conservera les réponses à la tâche en cours : utilisez-le pour des déploiements Web anonymes ou sensibles à la confidentialité. Prend effet immédiatement, sans redémarrage. |
| `AIHUMMER_INBOUND_COALESCE_MS` | Fenêtre de regroupement des messages (ms) | `int` | `500` | immédiatement | Plusieurs messages qu’une personne envoie à la suite dans le même chat (messages courts, album photo, correction rapide) reçoivent UNE seule réponse si la pause entre eux est plus courte que cette fenêtre. Les messages arrivés pendant la préparation d’une réponse sont traités juste après, jamais en parallèle. Par défaut 500 ms ; 0 = sans attente entre des messages séparés ; un album photo est quand même regroupé (pauses jusqu’à 3 s, 20 s au plus) pour recevoir une seule réponse. Le regroupement fonctionne dans Telegram ; Slack, WhatsApp, VK, l’e-mail et les autres connecteurs qui attendent une réponse à chaque message (ainsi que les intégrations via /v1/inbound/generic) reçoivent une réponse à chaque message — toujours une à la fois, dans l’ordre. S’applique immédiatement. |
| `AIHUMMER_INBOUND_EDIT_MODE` | Quand une personne modifie un message déjà traité | `enum: correct \\\| history` | `correct` | immédiatement | correct — le bot répond à nouveau en sachant qu’il s’agit d’une correction (« avant / maintenant ») ; history — la modification corrige seulement l’historique de la conversation, sans nouvelle réponse (pratique pour les coquilles). La modification d’un message auquel le bot n’a pas encore répondu remplace toujours simplement son texte. Fonctionne là où le canal signale les modifications (Telegram). S’applique immédiatement. |
| `AIHUMMER_INBOUND_QUEUE_MODE` | Messages écrits pendant que l'agent travaille | `enum: steer \\\| collect \\\| followup` | `steer` | immédiatement | Ce qu'il advient d'un message que la même personne envoie pendant que l'agent prépare encore une réponse (recherche, exécute des outils) : steer (par défaut) — l'agent le voit avant son étape suivante et en tient compte dans la même réponse ; collect — il reçoit la réponse suivante. followup — chacun de ces messages reçoit sa propre réponse, l'un après l'autre. Les photos, fichiers, réponses à un message et transferts attendent toujours la réponse suivante. S'applique immédiatement. |
| `AIHUMMER_INBOUND_REQUIRE_BINDING` | Répondre uniquement aux utilisateurs provisionnés | `bool` | `true` | immédiatement | true = le bot ignore tout expéditeur de canal qui est NOT un utilisateur AiHummer provisionné (un utilisateur avec une liaison de rôle) — les membres aléatoires du chat et les invocations d'invités ne reçoivent aucune réponse. false (par défaut) = réponse à tout le monde. |
## Integrations
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_A2A_PUBLISH` | Publier l'agent sur Agent2Agent (A2A) | `bool` | `0` | après redémarrage | Publiez l'agent en tant que serveur A2A (Agent Card + POST /a2a/message). Appliqué au démarrage/après redémarrage. |
| `AIHUMMER_MCP_EXPORT_TOOLS` | Outils ouverts aux assistants externes | `multiselect` | — | après redémarrage | Une liste explicite de noms d'outils autorisés pour les clients MCP externes, séparés par des virgules. Vide = ne publier aucun outil. Les classes dangereuses au niveau de l'hôte sont en outre interdites par la politique intégrée, même si elles sont répertoriées. S'applique au démarrage/après le redémarrage. |
| `AIHUMMER_MCP_PUBLISH` | Publiez des outils sur MCP | `bool` | `0` | après redémarrage | Permet à des assistants externes (par ex. Claude Desktop) d’utiliser les outils de vos agents. Les outils à ouvrir se choisissent dans le paramètre voisin : tant que la liste est vide, aucun n’est ouvert. |
| `AIHUMMER_MODULE_CPU_QUOTA` | Limite de CPU par plugin | `text` | `75%` | immédiatement | Part du processeur que chaque plugin peut utiliser (systemd CPUQuota) : 75 % correspond aux trois quarts d’un cœur, 150 % à un cœur et demi. Un plugin reçoit la nouvelle valeur lors de sa prochaine installation, mise à jour ou sauvegarde de ses réglages ; d’ici là, les plugins en cours d’exécution gardent l’ancienne limite. |
| `AIHUMMER_MODULE_MEMORY_MAX` | Limite de mémoire par plugin | `text` | `512M` | immédiatement | Quantité de mémoire que chaque plugin peut utiliser (systemd MemoryMax) : une taille comme 512M, 1G ou 2048M (au moins 64M), ou infinity pour aucune limite. Le système arrête un plugin qui la dépasse. Un plugin reçoit la nouvelle valeur lors de sa prochaine installation, mise à jour ou sauvegarde de ses réglages ; d’ici là, les plugins en cours d’exécution gardent l’ancienne limite. |
## Knowledge connectors
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_KB_SYNC_INTERVAL` | Fréquence de mise à jour de la base de connaissances depuis les sources | `text` | — | immédiatement | Fréquence à laquelle le serveur récupère lui-même les changements des sources connectées à la base de connaissances. Par exemple : 30m — toutes les 30 minutes, 6h — toutes les 6 heures. Vide ou 0 — manuellement uniquement. Le rechargement ne crée jamais de doublons. Un export Slack se charge à la main. |
## LLM
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_AUX_FALLBACK_MODELS` | Tâches de service : modèles de secours | `list` | — | immédiatement | Modèles séparés par des virgules, essayés dans l'ordre si le modèle de service échoue (quota, panne). Le modèle principal est toujours essayé en dernier pour ne pas perdre le résumé. Chaque bascule est journalisée. S'applique immédiatement. |
| `AIHUMMER_AUX_MODEL` | Modèle pour les tâches de service (résumés, notes, titres) | `text` | — | immédiatement | Modèle des tâches de service en arrière-plan : condensation de l'historique ancien en résumé, note mémoire avant compaction, titres des conversations, extraction de faits, reformulation des requêtes de recherche et traduction. Vide = automatique : un modèle moins cher du même fournisseur (Claude → claude-haiku-4-5, Codex → gpt-…-luna/mini) ; à défaut, le modèle principal. « main » = toujours le modèle principal. S'applique immédiatement. |
| `AIHUMMER_CASCADE_MIN_CHARS` | Cascade : min de caractères à escalader | `int` | `0` | immédiatement | Seuil de longueur de requête (caractères) auquel le modèle de cascade le plus puissant entre en jeu. 0 = par défaut. |
| `AIHUMMER_CASCADE_STRONG_MODEL` | Cascade : modèle de secours plus puissant | `text` | — | immédiatement | Modèle vers lequel cascader pour les requêtes longues/complexes (vide = désactivé). |
| `AIHUMMER_CLAUDE_AUTH_URL` | Abonnement Claude : adresse de la page de connexion | `text` | — | immédiatement | La page où vous autorisez la connexion de l’abonnement Claude. Vide — adresse standard ; ne la modifiez que si le support vous le demande. |
| `AIHUMMER_CLAUDE_CLIENT_ID` | Abonnement Claude : identifiant client OAuth | `text` | — | immédiatement | L’identifiant d’application pour se connecter avec un abonnement Claude. Vide — celui par défaut ; ne le modifiez que si le support le demande. |
| `AIHUMMER_CLAUDE_EFFORT` | Claude : profondeur de réflexion | `enum: low \\\| medium \\\| high \\\| xhigh \\\| max` | `medium` | immédiatement | Profondeur de réflexion des modèles Claude avant de répondre, lorsque l’agent ne la fixe pas. Plus élevé est plus précis sur les tâches difficiles, mais plus lent et consomme plus de quota ; plus bas est plus rapide et moins coûteux. Un modèle qui ne connaît pas le niveau choisi reçoit le niveau inférieur le plus proche ; Haiku 4.5 et les modèles plus anciens ne prennent pas en charge la réflexion. La profondeur fixée sur l’agent est prioritaire. S’applique dès le tour suivant. |
| `AIHUMMER_CLAUDE_MAX_TOKENS` | Claude : longueur maximale de réponse (jetons) | `int` | `16000` | immédiatement | Combien de jetons une réponse de Claude peut occuper — par abonnement comme par clé. La réflexion du modèle compte dans la même limite : une valeur trop basse coupe la réponse en pleine phrase ou donne une réponse vide. Si un agent a sa propre longueur de réponse, c’est elle qui s’applique. |
| `AIHUMMER_CLAUDE_REDIRECT_URI` | Abonnement Claude : URI de redirection | `text` | — | immédiatement | Adresse de retour enregistrée auprès du fournisseur. Doit correspondre à ce qui est configuré de son côté, sinon l'échange de code est rejeté. |
| `AIHUMMER_CLAUDE_TOKEN_URL` | Abonnement Claude : adresse d’accès | `text` | — | immédiatement | L’adresse où le serveur obtient et renouvelle l’accès à l’abonnement Claude. Vide — adresse standard ; ne la modifiez que si le support vous le demande. |
| `AIHUMMER_CODEX_BASE_URL` | Base Codex URL | `text` | — | partiellement après redémarrage | Base du transport Codex (abonnement ChatGPT). Appliqué au démarrage/après le redémarrage. |
| `AIHUMMER_CODEX_MAX_OUTPUT_TOKENS` | Jetons de sortie maximum (0 = pas de plafond) | `int` | `0` | immédiatement | Le plafond max_output_tokens pour un tour de discussion. 0 = pas de plafond. Sur les modèles de raisonnement, les jetons de raisonnement comptent également dans ce budget, donc une valeur trop petite donne une réponse vide « incomplète : max_output_tokens ». Appliqué à la volée (pas de redémarrage). |
| `AIHUMMER_CODEX_MODEL` | Identifiant du modèle (transport Codex / gpt-5.5) | `text` | `gpt-5.5` | partiellement après redémarrage | ID de modèle du transport Codex/ChatGPT principal (par exemple gpt-5.5, gpt-5.5-codex). Appliqué au démarrage/après le redémarrage. |
| `AIHUMMER_CODEX_REASONING_EFFORT` | Effort de raisonnement | `enum: none \\\| low \\\| medium \\\| high \\\| xhigh` | `medium` | immédiatement | Profondeur de réflexion du modèle ChatGPT (Codex) avant de répondre, si l’agent ne la fixe pas. Par défaut — « Moyen ». Plus élevé est plus précis, mais plus lent et plus cher. |
| `AIHUMMER_LLM_CALL_TIMEOUT_S` | Délai d'expiration par appel (secondes) | `int` | `120` | immédiatement | Nombre de secondes d’attente de la réponse du modèle à une requête. Si le modèle reste silencieux plus longtemps, la requête est interrompue et la réponse passe au modèle suivant de la liste. Pour Claude, c’est la pause dans le flux qui compte, pas la réponse entière : une longue réponse qui continue n’est pas coupée. 0 — sans limite. |
| `AIHUMMER_LLM_FALLBACK_MODELS` | Modèles de secours (tous les agents) | `text` | `auto` | immédiatement | Qui répond lorsque le modèle principal et les autres fournisseurs échouent (limite d’utilisation atteinte, panne, trop de requêtes). auto — le modèle moins cher de chaque fournisseur en dernier recours (Claude : claude-haiku-4-5, Codex : gpt-…-luna/mini) ; une liste séparée par des virgules — votre propre ordre, chaque modèle va aux fournisseurs de son éditeur ; off — aucun modèle de secours. Le modèle de secours propre à un agent est prioritaire. S’applique immédiatement. |
| `AIHUMMER_LLM_GATEWAY_URL` | LLM passerelle URL | `text` | — | partiellement après redémarrage | Base URL du point de terminaison du modèle compatible OpenAI que l'agent appelle (votre serveur local lama.cpp/vLLM/Ollama ou une passerelle hébergée). Laissez vide pour utiliser le point de terminaison par défaut du fournisseur. |
| `AIHUMMER_LLM_MODEL` | LLM modèle | `text` | — | partiellement après redémarrage | Le nom/identifiant du modèle envoyé au fournisseur à chaque tour (le modèle servi par votre point de terminaison). Doit correspondre à un modèle que le point de terminaison expose réellement. |
| `AIHUMMER_LLM_PAUSE_AUTH_MIN` | Pause après rejet des identifiants, min | `int` | `10` | immédiatement | Pendant combien de minutes ne pas solliciter un fournisseur qui a rejeté les identifiants. Chaque répétition double la pause, dans la limite de six fois la première. Un test de connexion réussi ou le bouton « Reprendre maintenant » le rétablit aussitôt. S'applique dès l'échec suivant. |
| `AIHUMMER_LLM_PAUSE_MODEL_MIN` | Pause d'un modèle que le fournisseur ne sert pas, min | `int` | `60` | immédiatement | Pendant combien de minutes ne pas proposer à un fournisseur un modèle qu'il a dit ne pas servir ; ses autres modèles sont sollicités comme d'habitude. S'applique dès l'échec suivant. |
| `AIHUMMER_LLM_PAUSE_QUOTA_MIN` | Pause après épuisement de la limite, min | `int` | `300` | immédiatement | Pendant combien de minutes ne pas solliciter le modèle (ou tout le compte, si c'est la limite du compte qui est épuisée — Codex, une clé OpenAI, le paiement) une fois sa limite d'utilisation atteinte sans heure de réinitialisation indiquée par le fournisseur. Chaque répétition double la pause, dans la limite d'un jour. Le délai indiqué par le fournisseur prime. S'applique dès l'échec suivant. |
| `AIHUMMER_LLM_PAUSE_SHORT_S` | Pause du fournisseur après une panne, s | `int` | `30` | immédiatement | Pendant combien de secondes ne pas solliciter un fournisseur après une panne, une connexion coupée ou « trop de requêtes ». Un deuxième échec d'affilée double la pause, le troisième et les suivants la multiplient par dix. Si le fournisseur indique lui-même un délai, c'est ce délai qui s'applique. S'applique dès l'échec suivant. |
| `AIHUMMER_LLM_PROVIDER` | LLM fournisseur | `text` | — | partiellement après redémarrage | Quel modèle de backend utiliser (un point de terminaison compatible OpenAI ou le transport d'abonnement Codex/ChatGPT). Décide de la manière dont les requêtes sont envoyées et authentifiées. |
| `AIHUMMER_LLM_RETRIES` | LLM nouvelles tentatives en cas d'erreur transitoire | `int` | `3` | immédiatement | Nombre de tentatives de requête LLM sur une erreur passagère. |
| `AIHUMMER_LLM_TEMPERATURE` | Température | `text` | — | immédiatement | Variété des réponses du modèle (0–2) si l’agent ne la fixe pas : plus bas, plus précis et prévisible ; plus haut, plus vivant. Vide — le modèle décide. Les modèles à raisonnement (ChatGPT/Codex, Claude génération 5) ne l’acceptent pas — laissez le champ vide pour eux. |
| `AIHUMMER_LLM_TOP_P` | Top-p (échantillonnage du noyau) | `text` | — | immédiatement | Une autre façon de varier les réponses (0–1) si l’agent ne la fixe pas. Vide — le modèle décide. On en fixe généralement un seul : la température ou celui-ci ; les modèles à raisonnement ne l’acceptent pas. |
| `AIHUMMER_MODEL_GUARD_INTERVAL_MIN` | Vérification du modèle de l’agent : intervalle, min | `int` | `60` | immédiatement | À quelle fréquence vérifier que le modèle de chaque agent est proposé par un fournisseur activé. Le modèle de l’agent n’est jamais modifié : tant que personne ne le propose, c’est le premier modèle de l’ordre de réponse qui n’est pas en pause qui répond, et une notification nomme les agents — puis une autre quand leur modèle revient. La vérification a toujours lieu au démarrage de la passerelle, et 0 désactive seulement la répétition. Un nouvel intervalle s’applique en moins d’une minute. |
| `AIHUMMER_OPENAI_API` | Style OpenAI API (chat \| réponses) | `enum: \\\| chat \\\| responses` | — | partiellement après redémarrage | chat = /chat/completions, réponses = /responses. Vide = automatique/par défaut. Appliqué au démarrage/après le redémarrage. |
| `AIHUMMER_OPENAI_API_KEY` | Clé OpenAI native API (déploiement par défaut) | `text` | — | partiellement après redémarrage | Votre clé de compte OpenAI pour la boucle OpenAI native (si vous utilisez OpenAI comme fournisseur par défaut). À ne pas confondre avec BYOK par espace de travail sur la page Modèles. Appliqué au démarrage/après le redémarrage. |
| `AIHUMMER_OPENAI_BASE_URL` | Base OpenAI native URL | `text` | — | après redémarrage | Base du API compatible OpenAI (par exemple https://api.openai.com/v1). Appliqué au démarrage/après le redémarrage. |
| `AIHUMMER_OPENAI_MODEL` | Modèle OpenAI natif | `text` | — | après redémarrage | Modèle pour la boucle OpenAI native (lorsque AIHUMMER_OPENAI_API_KEY est défini). Appliqué au démarrage/après le redémarrage. |
| `AIHUMMER_ROUTER_COMPLEX_MODEL` | Routeur : modèle pour virages complexes | `text` | — | immédiatement | Modèle pour les requêtes complexes d'un agent sans modèle propre (vide = niveau désactivé). S'applique dès le tour suivant. |
| `AIHUMMER_ROUTER_SIMPLE_MODEL` | Routeur : modèle pour virages simples | `text` | — | immédiatement | Modèle pour les requêtes simples d'un agent sans modèle propre (vide = niveau désactivé). S'applique dès le tour suivant. |
| `AIHUMMER_ROUTER_STANDARD_MODEL` | Routeur : modèle pour virages standards | `text` | — | immédiatement | Modèle pour les requêtes ordinaires d'un agent sans modèle propre (vide = niveau désactivé). S'applique dès le tour suivant. |
| `AIHUMMER_SUBSCRIPTION_QUOTA_REFRESH_MIN` | Quotas des abonnements : période d’interrogation, min | `int` | `15` | immédiatement | Fréquence à laquelle le panneau interroge ChatGPT (Codex) sur les fenêtres de quota de l'abonnement : au plus une fois par période, pas plus souvent que toutes les 5 minutes et seulement tant que les quotas sont ouverts ; entre-temps, la copie enregistrée est affichée. Claude n'est jamais interrogé : ses limites sont notre estimation. S'applique à la prochaine ouverture des quotas. |
## Media
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_DEEPGRAM_API_KEY` | Clé Deepgram API | `text` | — | immédiatement | La clé du service Deepgram — nécessaire si Deepgram reconnaît les messages vocaux. Si vide, la clé commune de reconnaissance vocale du paramètre voisin est utilisée. S’applique immédiatement. |
| `AIHUMMER_DEEPGRAM_DETECT_LANGUAGE` | Détection de langue Deepgram | `bool` | `0` | immédiatement | Détecter la langue au lieu d’envoyer une langue fixe. S’applique immédiatement. |
| `AIHUMMER_DEEPGRAM_MODEL` | Modèle Deepgram | `text` | `nova-2` | immédiatement | Modèle Deepgram (par exemple nova-2, nova-3, base). Cela dépend de l'accès du projet à la clé. S’applique immédiatement. |
| `AIHUMMER_DEEPGRAM_PUNCTUATE` | Ponctuation Deepgram | `bool` | `1` | immédiatement | Ajouter la ponctuation et les majuscules. S’applique immédiatement. |
| `AIHUMMER_DEEPGRAM_SMART_FORMAT` | Mise en forme intelligente Deepgram | `bool` | `1` | immédiatement | Mettre en forme les nombres et les dates reconnus. S’applique immédiatement. |
| `AIHUMMER_DEEPGRAM_URL` | Base Deepgram URL | `text` | — | immédiatement | Base Deepgram API. Vide = https://api.deepgram.com. S’applique immédiatement. |
| `AIHUMMER_IMAGE_BASE_URL` | Image API base URL (OpenAI repli) | `text` | — | immédiatement | Base des /images API lorsque vous travaillez via une clé OpenAI (vierge = https://api.openai.com/v1). |
| `AIHUMMER_IMAGE_MODEL` | Génération d'images modèle | `text` | — | immédiatement | Modèle pour image_generate (gpt-image-2 par défaut). |
| `AIHUMMER_MEDIA_MAX_UPLOAD_MB` | Taille maximale de téléchargement du média (Mo) | `int` | `256` | immédiatement | Le plus gros fichier (photo, message vocal, vidéo) qu’on peut envoyer en une fois, en mégaoctets. Protège le disque du serveur contre la saturation. Par défaut 256. S’applique immédiatement. |
| `AIHUMMER_SIDECAR_STT` | Reconnaissance vocale sur ce serveur (faster-whisper) | `bool` | `0` | immédiatement | Reconnaissance vocale locale (faster-whisper). NON inclus dans le package : activez le téléchargement du module complémentaire signé (~ 620 Mio pour toutes les versions de Python) et installez le service sur l'hôte. 🔴 Le module complémentaire est publié par une décision distincte du fournisseur (ses packages portent ffmpeg sous GPL) ; s'il n'est pas publié pour votre sortie, il sera honnête à ce sujet et ne cassera rien. Forfait Cloud : la reconnaissance est configurée par le fournisseur. |
| `AIHUMMER_SIDECAR_TTS` | Réponses vocales (edge-tts) | `bool` | `0` | immédiatement | Synthèse vocale (edge-tts, voix Microsoft Edge). NON inclus dans le package : l'activation télécharge le module complémentaire signé (~ 26 Mio) et installe le service sur l'hôte. La synthèse elle-même est mise en ligne pour les votes - « hors ligne » fait ici référence à l'installation du package et à son non-fonctionnement. |
| `AIHUMMER_STT_API_KEY` | STT API clé (facultatif) | `text` | — | immédiatement | Clé d’accès au service de reconnaissance vocale, s’il en exige une. Pour un service sur ce serveur, l’installateur la définit — inutile de la modifier. S’applique immédiatement. |
| `AIHUMMER_STT_ENGINE` | Moteur STT | `enum: auto \\\| faster-whisper \\\| deepgram \\\| codex \\\| off` | `auto` | immédiatement | Avec quoi transcrire les messages vocaux. Auto (par défaut) : Deepgram si sa clé est définie, sinon le service local s’il est installé (interrupteur ci-dessus), sinon rien — et le bot dit honnêtement à l’expéditeur qu’il ne peut pas encore écouter. faster-whisper : le service local ou un /v1/audio/transcriptions externe compatible. deepgram : Deepgram dans le cloud avec votre propre clé. codex : l’abonnement ChatGPT connecté (Modèles → Connecter ChatGPT), consomme son quota. off : ne pas transcrire. S’applique immédiatement. |
| `AIHUMMER_STT_LANGUAGE` | STT langue | `text` | — | immédiatement | Langage de reconnaissance (BCP-47, par exemple ru/en). Utilisé par le moteur deepgram (modèle nova-2). Vide = détection automatique / moteur par défaut. S’applique immédiatement. |
| `AIHUMMER_STT_MODEL` | STT modèle | `text` | `Systran/faster-whisper-small` | immédiatement | modèle plus rapide (par exemple petit/moyen/grand-v3 ou Systran/faster-whisper-⟨size⟩). S’applique immédiatement. |
| `AIHUMMER_TTS_API_KEY` | TTS API clé (edge-tts) | `text` | — | partiellement après redémarrage | Clé d’accès au service de synthèse vocale. Définie automatiquement à l’installation — inutile de la modifier. |
| `AIHUMMER_TTS_ENABLED` | Synthèse vocale activée | `bool` | `1` | partiellement après redémarrage | Permet à l’agent de répondre à voix haute. Il faut pour cela le service de synthèse vocale — installez-le plus haut, dans la section Services supplémentaires. |
| `AIHUMMER_TTS_MODEL` | Modèle TTS | `text` | — | partiellement après redémarrage | Nom du modèle pour le service edge-tts. Appliqué au démarrage/après redémarrage. |
| `AIHUMMER_TTS_VOICE` | Voix TTS | `enum: de-DE-FlorianMultilingualNeural \\\| de-DE-SeraphinaMultilingualNeural \\\| en-US-AndrewMultilingualNeural \\\| en-US-AvaMultilingualNeural \\\| en-US-BrianMultilingualNeural \\\| en-US-EmmaMultilingualNeural \\\| fr-FR-RemyMultilingualNeural \\\| fr-FR-VivienneMultilingualNeural \\\| ru-RU-SvetlanaNeural \\\| ru-RU-DmitryNeural \\\| en-US-JennyNeural \\\| en-US-GuyNeural \\\| en-GB-SoniaNeural \\\| de-DE-KatjaNeural \\\| fr-FR-DeniseNeural \\\| es-ES-ElviraNeural \\\| tr-TR-EmelNeural \\\| pl-PL-ZofiaNeural \\\| zh-CN-XiaoxiaoNeural` | `de-DE-FlorianMultilingualNeural` | partiellement après redémarrage | Voix Edge-tts par défaut (multilingue, y compris le russe). Appliqué au démarrage/après le redémarrage. |
| `AIHUMMER_VIDEO_API_KEY` | Clé d'analyse vidéo API | `text` | — | immédiatement | Clé d’accès au service d’analyse vidéo, s’il en exige une. Vide — le service est utilisé sans clé. |
## Media · Voice
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_TTS_AUTO_REPLY` | Réponses vocales automatiques | `enum: off \\\| always \\\| inbound \\\| tagged` | `inbound` | immédiatement | Jamais, toujours, après un message audio ou sur indication explicite. Réglage modifiable par conversation. |
| `AIHUMMER_TTS_MAX_CHARS` | Limite de caractères à lire | `int` | `0` | immédiatement | 0 : texte intégral ; 100–10000 : limite du texte lu. La réponse intégrale reste dans l’historique. |
| `AIHUMMER_TTS_SUMMARIZE` | Résumer les longues réponses vocales | `bool` | `1` | immédiatement | Résumer les longues réponses pour la lecture. En cas d’échec, lire le début dans la limite prévue. |
| `AIHUMMER_VOICE_AEC` | Annulation d'écho (AEC) | `bool` | `1` | immédiatement | Supprime l’écho : la voix de l’agent sortant du haut-parleur ne revient pas dans le micro et n’interrompt pas la conversation. Désactivez uniquement si la voix sonne déformée dans un casque. |
| `AIHUMMER_VOICE_AGC` | Auto contrôle de gain | `bool` | `1` | immédiatement | Exiger le contrôle automatique du gain du microphone (WebRTC autoGainControl) en mode vocal. |
| `AIHUMMER_VOICE_BARGEIN_FRAMES` | Interrompre l’agent : combien de temps parler | `int` | `5` | immédiatement | Combien de temps parler (en trames de 20 ms) pour que l’agent se taise et écoute. Par défaut 5 — environ 0,1 seconde. |
| `AIHUMMER_VOICE_DUPLEX` | Voix full-duplex en direct | `bool` | `0` | immédiatement | Active le mode full-duplex en direct (streaming + VAD + intervention). S’applique immédiatement. |
| `AIHUMMER_VOICE_NOISE_SUPPRESSION` | Suppression du bruit | `bool` | `1` | immédiatement | Exiger la réduction du bruit lors de la capture du microphone (WebRTC noiseSuppression) en mode vocal. |
| `AIHUMMER_VOICE_VAD_THRESHOLD` | Sensibilité à la voix (0–1) | `text` | `0.02` | immédiatement | À partir de quel volume un son compte comme de la parole. Plus bas — plus sensible : l’agent entend la parole faible, mais aussi le bruit ambiant. Par défaut 0.02. |
## Memory
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_EMBEDDER_DIM` | Dimension du modèle de recherche par sens | `int` | `768` | après redémarrage | Dimension vectorielle : doit correspondre au modèle (multilingual-e5-base=768, bge-m3=1024). |
| `AIHUMMER_EMBEDDER_KEEPALIVE` | Maintenir la vie intégrée | `text` | `5m` | après redémarrage | Durée pendant laquelle le modèle de recherche par sens reste chargé après la dernière requête (uniquement en mode « Par sens »). Par défaut 5m — 5 minutes : ensuite le modèle est déchargé et libère mémoire et processeur. Le garder en permanence (-1) est déconseillé : un modèle bloqué peut occuper un cœur pendant des jours. Format : 30s, 5m, 1h. |
| `AIHUMMER_EMBEDDER_MODEL` | Modèle de recherche par sens | `text` | `yxchia/multilingual-e5-base` | après redémarrage | Le modèle qui permet de chercher dans la mémoire par le sens. Par défaut multilingual-e5-base comprend le russe, est léger et rapide sur un processeur ordinaire. Pour une meilleure qualité sur GPU, bge-m3 convient, mais réglez alors le paramètre de dimension voisin sur 1024 : le nombre doit correspondre au modèle. |
| `AIHUMMER_EMBEDDER_PASSAGE_PREFIX` | Préfixe de passage d'intégration | `text` | — | après redémarrage | Remplacez le préfixe du document stocké (les modèles e5 utilisent automatiquement "passage : "). Laissez vide pour une détection automatique par nom de modèle. |
| `AIHUMMER_EMBEDDER_QUERY_PREFIX` | Préfixe de requête d'intégration | `text` | — | après redémarrage | Remplacez le préfixe de requête de récupération (les modèles e5 utilisent automatiquement "query:"). Laissez vide pour une détection automatique par nom de modèle. |
| `AIHUMMER_EMBEDDER_THREADS` | Threads CPU de l’embedder | `int 0…256` | `0` | après redémarrage | Nombre de threads du processeur que le modèle de recherche par le sens utilise par requête. 0 — automatique : la moitié des threads du serveur, mais au moins 2. Sans limite, le recalcul des vecteurs de la base de connaissances occupait tout le processeur d’un serveur modeste pendant des heures et ralentissait les réponses des agents. Plus — recalcul plus rapide, mais charge plus forte. |
| `AIHUMMER_MEMORY_AGENT_WRITES` | Faits enregistrés par l’agent lui-même | `enum: strangers \\\| immediate \\\| review` | `strangers` | immédiatement | Ce qu’il advient de ce que l’agent retient lui-même — par ex. sur « retiens ceci ». « Directement en mémoire ; des inconnus — à vérifier » (par défaut) — directement en mémoire si le propriétaire ou le cercle de confiance de l’agent l’a dit ; de toute autre personne — à vérifier. « Directement en mémoire » — l’agent le retrouve aussitôt. « À vérifier » — d’abord dans la file Mémoire → vérification ; n’entre dans les réponses qu’après votre approbation. La fiche de l’agent (Mémoire → Réglages) permet de choisir un autre mode. |
| `AIHUMMER_MEMORY_AUTOREPAIR` | Réparation automatique de la mémoire | `bool` | `1` | immédiatement | Après l’autocontrôle, réparer la mémoire : fusionner les doublons, clore les contradictions qui ont un gagnant explicite (confirmé par une personne, date d’événement plus récente, source plus fiable), revérifier auprès de leurs sources les faits marqués confirmés qu’aucune personne n’a confirmés (les non confirmés partent en vérification, rien n’est supprimé). Ce qui est litigieux va seulement dans la file. Chaque correction est journalisée avec un bouton d’annulation ; si la mémoire trouve moins bien après le passage, celui-ci s’annule de lui-même et vous recevez une notification. Effet immédiat, sans redémarrage. |
| `AIHUMMER_MEMORY_CAPTURE` | Mode de capture de mémoire | `enum: auto \\\| review \\\| off` | `review` | immédiatement | Que faire des faits que l’agent remarque lui-même dans la conversation après chaque réponse. « À vérifier » les place dans la file Mémoire → vérification : ils n’entrent dans les réponses qu’après votre approbation. « Directement en mémoire » sans vérification : plus rapide, mais plus de bruit. « Ne pas enregistrer » n’extrait rien des conversations. Ce que l’agent retient sur demande se règle à part. |
| `AIHUMMER_MEMORY_CONTEXT_TIMEOUT` | Délai d'hydratation de la mémoire | `text` | `3s` | immédiatement | Durée pendant laquelle l’agent attend les souvenirs pertinents avant de commencer à répondre. Si la recherche est trop lente, l’agent répond sans eux au lieu de rester bloqué. Par exemple : 2s — 2 secondes, 1500ms — 1,5 seconde. 0 — attendre autant que nécessaire. |
| `AIHUMMER_MEMORY_DIARY_BOOT` | Journal de l’agent au début de la session | `bool` | `1` | immédiatement | Garder sous les yeux de l’agent son journal d’aujourd’hui et d’hier à chaque tour d’une session, sur n’importe quel canal : notes des sessions précédentes, résumé nocturne et entrées de l’agent lui-même. Seules les entrées sur l’interlocuteur actuel et les entrées communes (les vôtres, importées) sont affichées : un client ne voit jamais celles d’un autre. Au plus ~6000 caractères ; l’agent lit le reste lui-même (memory_get). Prend effet immédiatement, sans redémarrage. |
| `AIHUMMER_MEMORY_DIARY_HOUR` | Heure du résumé nocturne | `int` | `3` | immédiatement | À partir de quelle heure (0–23, fuseau horaire de l’instance) le résumé de la journée écoulée est écrit. Par défaut 3 — la nuit, quand les conversations de la journée sont terminées. Prend effet immédiatement, sans redémarrage. |
| `AIHUMMER_MEMORY_DIARY_NIGHTLY` | Résumé nocturne de la journée dans le journal de l’agent | `bool` | `1` | immédiatement | Une fois par jour, écrire dans le journal de l’agent un résumé de la journée écoulée — séparément pour chaque personne avec qui il a parlé (tous les canaux de cette personne ensemble) : ce qui a été demandé et fait, les accords, les tâches datées. Un appel au modèle pour les tâches de service par agent et par personne, au plus 3 par passage toutes les 10 minutes ; les jours manqués sont rattrapés jusqu’à une semaine en arrière. Les conversations avec « ne retiens pas » sont ignorées. Rien n’est écrit tant que la capture de mémoire est désactivée. Le résultat du dernier passage s’affiche dans la fiche de l’agent → Mémoire → Journal. Prend effet immédiatement, sans redémarrage. |
| `AIHUMMER_MEMORY_DREAM_INTERVAL` | Intervalle de réussite des rêves | `string` | `1h` | immédiatement | À quelle fréquence les analyses de passe de rêve auto-entretenues ont examiné les réclamations pour détecter les contradictions dans toutes les portées (durée Go, par exemple 30 m/1h/6h). Définissez 0 pour désactiver. Prend effet immédiatement, sans redémarrage. |
| `AIHUMMER_MEMORY_EXTRACT` | LLM extraction des faits | `bool` | `1` | immédiatement | Extraire les faits normalisés sur le sujet/prédicat/objet via LLM (activé par défaut) au lieu de stocker des fragments de phrases bruts - requis pour que la machinerie graphique/contradiction/rêve se déclenche. Ajoute un appel LLM par message capturé ; partez pour enregistrer l'appel. Prend effet immédiatement, sans redémarrage. |
| `AIHUMMER_MEMORY_MEANING_TIMEOUT` | Délai de la recherche par le sens | `text` | `4s` | immédiatement | Combien de temps une recherche dans la mémoire et dans la base de connaissances attend la recherche par le sens. Si le modèle de sens est occupé (par exemple à calculer des vecteurs après une importation) et ne répond pas à temps, l’agent reçoit aussitôt ce qui a été trouvé par les mots, avec une mention, au lieu d’attendre des dizaines de secondes. Par exemple : 4s — 4 secondes, 1500ms — 1,5 seconde. 0 — attendre autant que nécessaire. S’applique immédiatement, sans redémarrage. |
| `AIHUMMER_MEMORY_QUALITY_CHECK` | Autocontrôle quotidien de la mémoire | `bool` | `1` | immédiatement | Une fois par jour, la mémoire se pose des questions de contrôle sur ses faits confirmés (jusqu’à 60 faits, les mêmes questions chaque jour) ainsi que des questions sans réponse, les fait passer par la recherche en mémoire et le rappel automatique et mesure le rappel, la précision, le MRR et les faux rappels. Résultat et courbe quotidienne : Mémoire → Qualité de la mémoire. Les questions sur les nouveaux faits sont rédigées une seule fois par le modèle de service (celui qui extrait les faits des conversations ; sans lui — selon un modèle) ; les résultats restent sur l’instance. Effet immédiat, sans redémarrage. |
| `AIHUMMER_MEMORY_RECALL` | Rappel automatique de la mémoire | `enum: strong \\\| always \\\| off` | `strong` | immédiatement | Ajouter ou non automatiquement à la réponse ce qui est trouvé en mémoire. « Correspondances fortes uniquement » — le fait doit partager au moins deux mots importants avec le message ; salutations et « ok » n’apportent rien. « Tout ce qui est similaire » — tout ce qui correspond un peu, plus les entrées liées : plus de bruit. « Ne pas ajouter » — l’agent cherche lui-même dans sa mémoire quand il le juge utile. |
| `AIHUMMER_MEMORY_RECALL_MAX` | Faits par réponse | `int` | `5` | immédiatement | Nombre maximal de faits mémorisés ajoutés à une réponse (5 par défaut). Les reformulations d’un même fait comptent pour un. Prend effet immédiatement, sans redémarrage. |
| `AIHUMMER_MEMORY_RECALL_MIN_SCORE` | Correspondance minimale pour le rappel automatique, % | `int` | `10` | immédiatement | Part des mots significatifs du message (pondérés par leur rareté) qu’un fait doit couvrir pour être ajouté automatiquement, en pourcentage. 10 par défaut — calibré sur de vraies conversations. Plus haut = plus rare et plus précis, plus bas = plus fréquent et plus bruité. N’affecte pas la recherche explicite memory_search. 0 = aucun seuil : deux mots significatifs en commun suffisent. Prend effet immédiatement, sans redémarrage. |
| `AIHUMMER_MEMORY_RECALL_MIN_SIMILARITY` | Similarité de sens minimale pour le rappel automatique, % | `int` | `86` | immédiatement | Uniquement pour la recherche en mémoire par le sens (embedder) : à quel point un fait doit être proche du message par le sens pour être ajouté automatiquement, en pourcentage de similarité. Par défaut 86 — réglé pour le modèle multilingual-e5-base sur une vraie mémoire : en dessous, des faits sans rapport s’ajoutent à presque chaque message. D’autres modèles (par exemple bge-m3) mesurent la similarité autrement — choisissez une valeur avec « Interroger la mémoire » dans la fiche de l’agent. 0 = aucun seuil. N’affecte pas la recherche explicite memory_search. Prend effet immédiatement, sans redémarrage. |
| `AIHUMMER_MEMORY_RETRIEVAL` | Mode de récupération de mémoire | `enum: fulltext \\\| embedding` | `fulltext` | après redémarrage | Comment l’agent cherche dans sa mémoire. « Par mots » est une recherche textuelle classique : immédiate et sans charge pour le serveur. « Par sens » trouve ce qui est proche par le sens, même formulé autrement, mais nécessite le modèle de recherche sémantique (section Services supplémentaires) et une charge processeur notable. |
| `AIHUMMER_QDRANT_API_KEY` | Clé Qdrant API | `text` | — | après redémarrage | Clé API Qdrant, si le magasin vectoriel exige une autorisation. Nécessaire uniquement lorsque l'adresse Qdrant est renseignée. Appliqué au démarrage/après le redémarrage. |
| `AIHUMMER_QDRANT_URL` | Qdrant URL (magasin de vecteurs durable) | `text` | — | après redémarrage | Adresse du stockage Qdrant pour la recherche par sens. Vide — les données de recherche sont gardées en mémoire et perdues au redémarrage du serveur ; indiquez une adresse pour un usage durable. |
| `AIHUMMER_RAG_QUERY_EXPANSION` | Reformuler les requêtes de la base de connaissances avec le modèle | `bool` | `0` | immédiatement | Avant de chercher dans la base de connaissances, demander au modèle pour les tâches de service 3 reformulations de la requête et chercher avec toutes. Trouve parfois davantage, mais c’est un appel supplémentaire au modèle à CHAQUE recherche (quota et latence) ; si le modèle échoue, seule la formulation d’origine est cherchée et l’échec apparaît dans le journal et dans le résultat de la recherche. Désactivé par défaut : les mots sont déjà trouvés par la recherche plein texte. Prend effet immédiatement, sans redémarrage. |
| `AIHUMMER_RERANKER_URL` | RAG side-car de reclassement URL | `text` | — | après redémarrage | HTTP URL du side-car cross-encoder pour le reclassement de la recherche hybride. Vide = reclassement. Appliqué au démarrage/après redémarrage. |
## Moderation
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_MODERATION` | Modération des entrées | `bool` | `1` | immédiatement | « off » désactive la protection intégrée contre le jailbreak/l'injection de prompt. Toute autre valeur = activée. Prend effet immédiatement, sans redémarrage. |
| `AIHUMMER_MODERATION_REFUSAL` | Message de refus de modération | `text` | — | immédiatement | Texte de refus renvoyé lorsque le modérateur bloque une requête (vide = intégré). Prend effet immédiatement, sans redémarrage. |
## Network
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_OUTBOUND_PROXY_CUSTOM_URL` | Proxy sortant : adresse personnalisée | `text` | — | immédiatement | URL de proxy HTTPS ; HTTP uniquement sur loopback, sans chemin, requête ni fragment. Enregistrez l’adresse avant de choisir custom. Masquée dans l’API ; stockée dans les paramètres de l’application. |
| `AIHUMMER_OUTBOUND_PROXY_MODE` | Proxy sortant pour les fournisseurs de modèles étrangers | `enum: auto \\\| off \\\| custom` | `auto` | immédiatement | Comment le serveur joint les fournisseurs de modèles étrangers. « Comme chez le fournisseur » — comme configuré dans le compte du fournisseur ; « Direct, sans proxy » — sans intermédiaire ; « Via votre propre proxy » — par l’adresse enregistrée ci-dessous. Le fonctionnement dépend des règles de chaque fournisseur. |
| `AIHUMMER_RUSSIAN_TRUSTED_EXTRA_HOSTS` | Hôtes au-delà de .ru pour les racines du ministère russe du Développement numérique | `list` | — | après redémarrage | Liste des hôtes, séparés par des virgules, qui peuvent être vérifiés par les racines des domaines ministère russe du Développement numérique OVER russes (.ru/.su/.рф - déjà inclus). Nécessaire si votre nœud avec le certificat ministère russe du Développement numérique réside sur un domaine différent. Correspondance par nom ou limite de sous-domaine : example.com couvre api.example.com. Vide = domaines russes uniquement. S'applique au démarrage/après le redémarrage. |
## Performance
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_CHANNEL_TURN_QUEUE_WAIT_SEC` | Attente en file : message de canal (secondes) | `int 10…1200` | `600` | immédiatement | Combien de temps un message de canal (Telegram et autres) attend une place libre quand toutes les places de tours sont occupées. S'il n'en obtient pas à temps, la personne est informée que le serveur est occupé et qu'elle peut réécrire. L'attente compte dans la limite de 30 minutes du tour. 10–1200. S'applique immédiatement. |
| `AIHUMMER_MAX_ACTIVE_TURNS` | Tours d'agents simultanés (tout le serveur) | `int 1…512` | `32` | immédiatement | Nombre de tours d'agents (réponses dans les canaux et le chat web, planifications) que le serveur exécute en même temps. Les autres attendent dans une file aussi longtemps que le permettent les réglages « Attente en file » ci-dessous, et la personne voit « serveur occupé, en file d'attente ». Plus élevé : moins d'attente, mais plus de mémoire, de connexions à la base et de requêtes simultanées au modèle. La moitié de ce nombre limite les appels auxiliaires simultanés au modèle (extraction de mémoire, résumés). 1–512. S'applique immédiatement. |
| `AIHUMMER_SYNC_INBOUND_QUEUE_WAIT_SEC` | Attente en file : appel d'intégration synchrone (secondes) | `int 1…120` | `10` | immédiatement | Combien de temps l'appel d'une intégration qui attend la réponse dans la même requête attend une place libre quand toutes les places de tours sont occupées. S'il n'en obtient pas, l'intégration reçoit « serveur occupé » avec le conseil de réessayer après le même nombre de secondes ; une nouvelle tentative avec le même numéro de message ne l'enregistre pas deux fois. 1–120. S'applique immédiatement. |
| `AIHUMMER_WEB_TURN_QUEUE_WAIT_SEC` | Attente en file : message du chat web (secondes) | `int 10…1200` | `180` | immédiatement | Combien de temps un message du chat web attend une place libre quand toutes les places de tours sont occupées. Pendant ce temps, le chat affiche « serveur occupé, en file d'attente » ; s'il n'en obtient pas à temps, la réponse est refusée avec un bouton « Réessayer » qui reste dans l'historique même après le rechargement de la page. 10–1200. S'applique immédiatement. |
## Public access
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_PUBLIC_URL` | Adresse publique du serveur | `text` | — | partiellement après redémarrage | L’adresse à laquelle le panneau et les applications s’ouvrent depuis Internet, par ex. https://ai.example.com. Faites-la passer par votre proxy (nginx, Caddy) vers le port du serveur — 8780 par défaut. |
| `AIHUMMER_WIDGET_ALLOWED_ORIGINS` | Widget web : origines de sites autorisées | `list` | — | immédiatement | Liste, séparée par des virgules, des origines de navigateur autorisées à intégrer le widget de chat web, par exemple https://example.com,https://www.example.com. Le schéma et le port doivent correspondre exactement. Vide = aucun site externe ne peut utiliser le widget. L'entrée `*` est volontairement ignorée, car elle permettrait à n'importe quelle page internet de dépenser le budget de cette instance. |
| `POCKET_AGENT_GATEWAY_BASE_URL` | URL publique de la passerelle pocket-agent | `text` | — | immédiatement | Proxy → le port de passerelle de l'agent de poche (POCKET_AGENT_PORT, par défaut 8080). |
| `TELEGRAM_PUBLIC_URL` | Webhook Telegram public URL | `text` | — | immédiatement | Mode Webhook uniquement — proxy → le port du connecteur de télégramme (par défaut 8091). public URL nécessaire). |
## SSO (LDAP/AD)
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_LDAP_BASE_DN` | DN de base de recherche d'utilisateur | `text` | — | après redémarrage | Rechercher la racine, par ex. OU=Users,DC=corp,DC=example. |
| `AIHUMMER_LDAP_BIND_DN` | DN de liaison de service | `text` | — | après redémarrage | Compte utilisé pour la liaison de recherche initiale, par ex. CN=svc-aihummer,OU=Service,DC=corp,DC=exemple. Vide = recherche anonyme. |
| `AIHUMMER_LDAP_DEFAULT_ROLE` | LDAP : rôle par défaut (aucune correspondance de groupe) | `text` | — | après redémarrage | Rôle accordé lorsqu'aucun groupe ne correspond à un mappage. Vide = aucun rôle. |
| `AIHUMMER_LDAP_ENABLED` | Activer la connexion LDAP/AD | `bool` | `0` | après redémarrage | Lorsque cette option est activée, les connexions d'administrateur reviennent au répertoire. Le mot de passe de liaison se trouve dans Secrets (portée ldap, nom bind_password). |
| `AIHUMMER_LDAP_GROUP_ATTR` | Attribut de groupe (par défaut memberOf) | `text` | — | après redémarrage | Attribut sur les DN du groupe de liste d'entrées utilisateur. Le blanc désactive le mappage groupe → rôle. |
| `AIHUMMER_LDAP_ROLE_MAPPINGS` | LDAP : groupe → mappages de rôles (JSON) | `text` | — | après redémarrage | JSON objet du DN du groupe (ou CN nu) → rôle, par ex. {"CN=Admins,OU=Groups,DC=corp,DC=example":"admin","Operators":"operator"}. |
| `AIHUMMER_LDAP_SKIP_TLS_VERIFY` | Ignorer la vérification TLS (laboratoire uniquement, 1/0) | `bool` | `0` | après redémarrage | Désactive la vérification du certificat d'annuaire. Ne jamais activer en production. |
| `AIHUMMER_LDAP_URL` | Répertoire URL | `text` | — | après redémarrage | par ex. ldaps://ad.corp.example:636 (TLS) ou ldap://dc1.corp.example:389. |
| `AIHUMMER_LDAP_USER_ATTR` | Attribut de connexion (sAMAccountName par défaut) | `text` | — | après redémarrage | L'attribut LDAP/Active Directory correspond à la connexion que l'utilisateur tape (sAMAccountName par défaut ; uid pour OpenLDAP, userPrincipalName pour les connexions de style UPN). |
| `AIHUMMER_LDAP_USER_FILTER` | Filtre de recherche d'utilisateur | `text` | — | après redémarrage | Doit contenir %s pour la connexion. AD : (sAMAccountName=%s); OpenLDAP : (uid=%s). |
## SSO (OIDC)
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_OIDC_AUDIENCE` | Audience OIDC | `text` | — | après redémarrage | Réclamation `aud` attendue — définissez cette valeur sur l'audience de la ressource THIS pour rejeter les jetons émis pour une autre partie utilisatrice. La réclamation `aud` est désormais REQUIRED sur chaque jeton par défaut (un jeton sans aud est rejeté lorsque cela est défini, aud doit également le contenir) ; production. |
| `AIHUMMER_OIDC_ISSUER` | OIDC émetteur URL | `text` | — | après redémarrage | L'émetteur IdP (par exemple, https://login.example.com). active l'authentification OIDC JWT lorsqu'il est défini. |
| `AIHUMMER_OIDC_JWKS_URL` | URL JWKS de l'OIDC | `text` | — | après redémarrage | JSON Point de terminaison de l'ensemble de clés Web utilisé pour vérifier les signatures de jetons. |
| `AIHUMMER_OIDC_TENANT_CLAIM` | OIDC revendication d'espace de travail | `text` | — | après redémarrage | JWT revendication portant l'identifiant de l'espace de travail (par exemple, tenant_id / org). |
## SSO (SAML)
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_SAML_DEFAULT_ROLE` | SAML : rôle par défaut (aucun groupe correspondance) | `text` | — | après redémarrage | Rôle accordé lorsqu'aucune valeur affirmée ne correspond. Vide = aucun rôle. |
| `AIHUMMER_SAML_ENABLED` | Activer SAML 2.0 SSO | `bool` | `0` | après redémarrage | Expose /saml/metadata, /saml/acs, /saml/login. La clé privée du SP se trouve dans Secrets (portée saml, nom sp_key). |
| `AIHUMMER_SAML_ENTITY_ID` | ID d'entité SP | `text` | — | après redémarrage | ID d'entité SP (par défaut ⟨root⟩/saml/metadata si vide). |
| `AIHUMMER_SAML_IDP_METADATA` | Métadonnées IdP XML | `text` | — | après redémarrage | Collez le document de métadonnées SAML de l'IdP (Okta/Azure AD/ADFS). |
| `AIHUMMER_SAML_ROLE_ATTRIBUTE` | Attribut rôle/groupe (groupes par défaut) | `text` | — | après redémarrage | Attribut d'assertion portant des valeurs de groupe/rôle. |
| `AIHUMMER_SAML_ROLE_MAPPINGS` | SAML : mappages groupe→rôle (JSON) | `text` | — | après redémarrage | JSON objet de valeur affirmée → rôle, par ex. {"AdminGroup":"admin","Ops":"operator"}. |
| `AIHUMMER_SAML_ROOT_URL` | Racine SP URL | `text` | — | après redémarrage | Base accessible de l'extérieur URL de cette passerelle, par ex. https://app.example.com. ACS = ⟨root⟩/saml/acs. |
| `AIHUMMER_SAML_SP_CERT` | Certificat SP (PEM) | `text` | — | après redémarrage | Certificat de signature du SP public (PEM). La clé privée correspondante va dans Secrets (portée saml, nom sp_key). |
## Schedules
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_SCHEDULE_AGENT_MAX_ACTIVE` | Agent : limite de planifications actives | `int` | `20` | immédiatement | Nombre de planifications actives qu’un agent peut avoir lorsqu’il crée ou active lui-même une planification (avec ses outils de planification). Les planifications créées dans le panneau comptent, mais le panneau n’est jamais refusé. À la limite, l’agent est invité à en suspendre ou en supprimer une d’abord. S’applique immédiatement. |
| `AIHUMMER_SCHEDULE_AGENT_MAX_FIRES_PER_DAY` | Agent : exécutions de planifications par jour | `int` | `288` | immédiatement | Nombre de fois par jour (UTC) où l’ensemble des planifications d’un agent peuvent s’exécuter, y compris celles créées dans le panneau et les exécutions manuelles. Les exécutions au-delà de la limite sont ignorées et visibles dans le journal des exécutions. S’applique immédiatement. |
| `AIHUMMER_SCHEDULE_AGENT_MIN_INTERVAL_MINUTES` | Agent : intervalle minimal de planification, minutes | `int` | `5` | immédiatement | L’écart le plus court entre deux exécutions d’une planification récurrente qu’un agent crée ou modifie lui-même. Une planification plus fréquente est refusée. Les planifications créées dans le panneau n’y sont pas soumises. S’applique immédiatement. |
| `AIHUMMER_SCHEDULE_COMMANDS` | Commandes sur le serveur dans les planifications | `bool` | `0` | immédiatement | Permet à une planification d'exécuter un programme sur ce serveur — un collecteur, un rapport, une vérification de sauvegarde. Désactivé par défaut. Seules les commandes de « Commandes autorisées » s'exécutent, exactement telles qu'inscrites ; il n'y a pas de shell. La sortie va à l'agent ou directement dans un chat, et chaque exécution figure dans le journal de la planification. S'applique immédiatement. |
| `AIHUMMER_SCHEDULE_COMMANDS_ALLOWLIST` | Commandes autorisées | `argvlist` | — | immédiatement | Les commandes exactes qu'une planification peut exécuter : le programme (un nom comme df ou un chemin complet) et ses arguments. Une planification n'exécute qu'une commande qui correspond exactement à une entrée, arguments compris. Retirer une commande arrête les planifications qui l'utilisent, et leurs exécutions en donnent la raison. S'applique immédiatement. |
| `AIHUMMER_SCHEDULE_COMMANDS_MAX_OUTPUT_KB` | Limite de sortie des commandes planifiées, Ko | `int 1…1024` | `64` | immédiatement | Quelle part de la sortie d'une commande (1–1024 Ko) est conservée dans le journal et transmise à l'agent ou au chat ; le reste est coupé, et le journal l'indique. S'applique immédiatement. |
| `AIHUMMER_SCHEDULE_COMMANDS_SANDBOX` | Exécuter les commandes planifiées dans le bac à sable du système | `bool` | `1` | immédiatement | Activé : la commande s'exécute dans le bac à sable du système, comme l'exécution de code — les secrets de l'installation et les clés SSH sont masqués, et elle n'écrit que dans son propre dossier temporaire. Sans bac à sable (bubblewrap) sur le serveur, la commande ne s'exécute pas et le journal dit pourquoi. Désactivé : elle s'exécute avec les droits de la passerelle. S'applique immédiatement. |
| `AIHUMMER_SCHEDULE_FAILURE_ADMIN` | Signaler à l’administrateur les tâches en échec | `bool` | `1` | immédiatement | Quand une tâche planifiée échoue ou ne peut pas démarrer, une notification avec son nom, la raison et l’endroit où corriger apparaît dans la cloche du panneau d’administration, et la même est envoyée dans les discussions de canal personnelles des propriétaires (au plus une fois toutes les 6 heures par tâche). Cela s’ajoute au message envoyé au destinataire de la tâche. Désactivé : l’administrateur n’apprend les échecs que par le journal des exécutions. S’applique immédiatement. |
| `AIHUMMER_SCHEDULE_FAILURE_NOTIFY` | Signaler au destinataire l’échec d’une tâche | `bool` | `1` | immédiatement | Quand une tâche planifiée échoue, le même destinataire reçoit un court message (après le premier échec, au plus une fois toutes les 6 heures). Désactivé : les échecs restent seulement dans le journal des exécutions. Une tâche peut le désactiver pour elle-même dans son formulaire. S’applique immédiatement. |
## Security
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_AIRGAPPED` | Mode isolé (sans Internet) | `bool` | `0` | immédiatement | Empêche les agents d’aller sur Internet : recherche web, ouverture de pages et requêtes n’atteignent que des adresses internes et celles des listes autorisées. À activer pour des réseaux fermés sans accès extérieur. |
| `AIHUMMER_AUDIT_RETENTION_DAYS` | Combien de jours conserver le journal des actions | `int` | `0` | après redémarrage | Les entrées du journal d'audit et de l'historique des modifications des paramètres plus anciennes sont supprimées une fois par jour. 0 ou vide — conserver toujours. |
| `AIHUMMER_CORS_ORIGINS` | Origines CORS autorisées | `list` | — | après redémarrage | Liste des origines autorisées, séparées par des virgules. Vide = CORS non autorisé (même origine uniquement). Appliqué au démarrage/après le redémarrage. |
| `AIHUMMER_CSP` | En-tête Content-Security-Policy (remplacement) | `text` | — | après redémarrage | Remplace l'en-tête CSP. Vide = valeur par défaut sûre. Appliquée au démarrage/après redémarrage. |
| `AIHUMMER_INBOUND_SECRET` | Clé des plugins de canal vers le serveur | `text` | — | après redémarrage | Les canaux connectés (Telegram, VK et autres) l’utilisent pour prouver que les messages viennent bien d’eux. Définie automatiquement à l’installation — inutile de la modifier. Si elle est vide, le serveur refuse tous les canaux tant qu’aucune clé n’est définie. |
| `AIHUMMER_OPENAI_COMPAT_KEY` | Entrant compatible OpenAI : clé API statique | `text` | — | après redémarrage | Une clé commune pour les programmes qui se connectent au serveur comme à un service compatible OpenAI. Vide — la clé commune est désactivée ; on peut se connecter avec les clés personnelles de la page Clés API. |
| `AIHUMMER_OPENAI_COMPAT_WORKSPACE` | Entrant compatible OpenAI : identifiant de l'espace de travail | `text` | — | après redémarrage | Identifiant de l'espace de travail auquel l'authentification statique compatible OpenAI est mappée. Vide = AIHUMMER_DEFAULT_WORKSPACE_ID. Appliqué au démarrage/après redémarrage. |
| `AIHUMMER_REQUIRE_2FA` | Exiger 2FA pour les opérateurs | `bool` | `0` | immédiatement | Exiger un deuxième facteur (TOTP/passkey) pour les opérateurs. Lorsque cette option est activée, les opérateurs sans 2FA sont invités à le configurer immédiatement lors de la connexion (sans blocage, afin que le propriétaire ne soit jamais verrouillé). Appliqué immédiatement. |
| `AIHUMMER_REQUIRE_SECURE` | Accepter uniquement les connexions sécurisées (HTTPS/WSS) | `bool` | `0` | après redémarrage | Lorsque cette option est activée, les requêtes simples HTTP sont redirigées vers HTTPS (pour GET/HEAD) ou rejetées (403) ; L'accès localhost est toujours autorisé afin que l'opérateur ne soit jamais clôturé. Honore X-Forwarded-Proto à partir d’un proxy inverse se terminant par TLS. Appliqué au démarrage/après redémarrage. |
| `AIHUMMER_TRUSTED_PROXIES` | Proxys de confiance | `list` | — | immédiatement | Si un proxy (nginx, Caddy, répartiteur de charge) se trouve devant le serveur, saisissez son adresse ou son réseau, séparés par des virgules, par ex. 10.0.0.0/8. Le journal des actions, la liste d’IP autorisées et la protection contre les tentatives de mot de passe verront alors l’adresse réelle du visiteur. Vide — seule l’adresse de la connexion directe compte, et elle ne peut pas être usurpée. |
## Tools
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_BROWSER_ALLOWED_HOSTNAMES` | Navigateur : exceptions des hôtes privés | `list` | — | immédiatement | Noms exacts séparés par des virgules, sans jokers, URL ni ports. Exceptions privées supplémentaires pour le CDP natif sur votre serveur, distinctes de web_fetch. |
| `AIHUMMER_BROWSER_ALLOW_PRIVATE_NETWORK` | Navigateur : autoriser le réseau privé | `bool` | — | immédiatement | Vide conserve la règle précédente ; true ou false active le CDP natif contrôlé. Accès privé uniquement sur votre serveur. Loopback, lien local et métadonnées restent bloqués. |
| `AIHUMMER_BROWSER_PROFILE_SOCKET` | Socket de contrôle des profils du navigateur | `text` | — | immédiatement | Facultatif. Laissez vide : la passerelle trouve elle-même managed-profiles.sock du service du navigateur à l'emplacement d'installation standard. Les profils connectés aux sites se créent dans Connexions → Profils de navigateur. Ni une URL ni le chemin d'un profil source. |
| `AIHUMMER_CODE_EXEC` | Exécution de code par l’agent | `enum: off \\\| host \\\| sandbox` | `off` | immédiatement | L'outil d'exécution de code de l'agent (code_exec). «Désactivé» par défaut. «Sur ce serveur» : les commandes s'exécutent sur le serveur de la passerelle ; la sandbox du système d'exploitation (bubblewrap) masque les secrets de l'installation, mais un agent en mode «Sans restriction» voit les clés SSH et peut écrire hors de son dossier — uniquement pour un serveur de confiance. «Uniquement dans une sandbox» : toujours dans la sandbox du système d'exploitation — secrets et clés masqués, écriture uniquement dans le dossier de l'agent ; sans bubblewrap (ou une image de conteneur), ce mode ne peut pas être enregistré. Ce que chaque agent peut exécuter se règle sur l'agent : Agents → profil → Outils. |
| `AIHUMMER_CODE_EXEC_INTERPRETERS` | Interpréteurs d'exécution de code (JSON) | `text` | — | immédiatement | JSON objet {language: path_to_binary}, par ex. {"python":"/usr/bin/python3"}. Vide = détection automatique. |
| `AIHUMMER_CODE_EXEC_NET_PORTS` | Ports réseau ouverts au code de l’agent | `list` | `53,80,443` | immédiatement | Ports TCP auxquels le code de l’agent peut se connecter dans le bac à sable du système (exécution de code et commandes planifiées), séparés par des virgules. Par défaut 53, 80 et 443 : DNS et sites web. Les autres services de ce serveur et de son réseau local (la base de données, le panneau d’administration, le navigateur, adb, les modèles locaux, Home Assistant) restent fermés au code de l’agent. Un port de la liste est ouvert sur toutes les adresses, ce serveur compris : n’ajoutez que ce dont le code a besoin, par exemple 22 pour SSH. Écrivez any pour lever la limite. Les agents en mode « Sans restriction » ne sont pas limités. Nécessite Linux 6.7 ou plus récent ; sans cela la limite ne s’applique pas, et Agents → Outils le signale. S’applique immédiatement. |
| `AIHUMMER_CODE_EXEC_READ_DIRS` | Dossiers ouverts au code de l’agent (lecture seule) | `list` | — | immédiatement | Dossiers de ce serveur que le code de l’agent peut lire : exécution de code et commandes planifiées dans le bac à sable du système. Séparés par des virgules ou un par ligne, par exemple ~/reports. Vous pouvez aussi indiquer un seul fichier, par exemple ~/scripts/report.py. Ce qui est ouvert ici est visible par le code de tous les agents : n’ouvrez que ce dont ce code a besoin. Vide par défaut : dans le bac à sable, le code ne voit que le dossier de son agent et les dossiers système ; le dossier personnel de l’utilisateur de la passerelle, les données de l’installation, les dossiers des autres agents, les clés et l’historique des commandes restent cachés. La racine, tout le dossier personnel, les données de l’installation et les emplacements contenant des clés ne peuvent pas être ouverts. Le code ne peut pas écrire dans ces dossiers. S’applique immédiatement. |
| `AIHUMMER_CODE_EXEC_SANDBOX_IMAGE` | Image sandbox d'exécution de code | `text` | — | immédiatement | Facultatif, uniquement pour «Uniquement dans une sandbox» : une image de conteneur Docker à la place de la sandbox du système d'exploitation (sans réseau, racine en lecture seule, limites) ; nécessite Docker sur le serveur. Vide = la sandbox du système d'exploitation (bubblewrap). |
| `AIHUMMER_CODE_EXEC_TIMEOUT_SECONDS` | Durée maximale d'exécution du code (secondes) | `int` | `1800` | immédiatement | Durée maximale d'une commande de l'agent, arrière-plan compris : de 10 secondes à 24 heures. Une commande qui n'a pas répondu en 30 secondes n'est pas interrompue mais passe en arrière-plan, où l'agent la suit avec l'outil process. L'agent peut demander une limite plus courte, jamais plus longue. |
| `AIHUMMER_DB_QUERY_DSN` | Connexion à la base pour l’outil de requête de base de données | `text` | — | immédiatement | Chaîne de connexion à une base que l’agent peut lire (lecture seule), par ex. postgres://reader:motdepasse@host/db. Utilisez un utilisateur aux droits minimaux — pas le propriétaire de la base. Vide — l’outil est désactivé. |
| `AIHUMMER_FS_ROOT` | Racine de l'outil de système de fichiers | `text` | — | immédiatement | Le dossier dans lequel l'agent lit les fichiers du serveur (filesystem_read ; les agents ne peuvent pas écrire de fichiers). Vide = tout le serveur avec les droits de l'utilisateur de la passerelle, sauf ses secrets : réglages d'installation (gateway.env), clés SSH/GPG et environnements des processus. Indiquez un dossier pour restreindre l'accès. |
| `AIHUMMER_HTTP_ALLOWLIST` | Adresses pour les requêtes HTTP de l’agent | `list` | — | immédiatement | Liste d'hôtes séparés par des virgules que l'outil http_request peut contacter. Vide = tous sont autorisés, sauf les adresses internes et privées. |
| `AIHUMMER_HTTP_AUTH_JSON` | authentification http_request (JSON) | `text` | — | immédiatement | Carte JSON associant l'hôte aux en-têtes d'autorisation pour l'outil http_request, afin de ne pas conserver les jetons dans l'invite. Vide = sans autorisation. |
| `AIHUMMER_MCP_SERVERS` | Serveurs MCP (JSON) | `text` | — | immédiatement | Description JSON des serveurs MCP externes dont les outils sont rattachés à l'agent. Vide = aucun MCP externe. |
| `AIHUMMER_PROJECT_STUDIOS_PUBLIC_NETWORK` | Studios de projets : réseau public | `bool` | `false` | immédiatement | Autoriser HTTP(S) public pour les fournisseurs choisis et les téléchargements de modèles demandés explicitement. Les adresses privées, locales et de métadonnées restent bloquées. Le mode hors ligne prévaut. Effet immédiat. |
| `AIHUMMER_SIDECAR_CLOAKBROWSER` | Navigateur pour l’agent (CloakBrowser) | `bool` | `0` | immédiatement | Navigateur anti-détection (outils CloakBrowser, browser/computer). Ce qui n'est PAS inclus dans le package de livraison : l'inclusion télécharge le module complémentaire signé (~ 477 MiB, dont Chromium ~ 207 MiB) et installe le service sur l'hôte. Le plus lourd des side-cars - activé uniquement si l'agent a besoin d'ouvrir des sites Web. |
| `AIHUMMER_SIDECAR_SEARXNG` | Recherche web (SearXNG) | `bool` | `0` | immédiatement | Recherche Web (outil SearXNG, web_search). NON inclus dans le package : l'activation télécharge le module complémentaire signé (~ 154 Mio) et installe le service sur l'hôte, la désactivation l'arrête et libère de l'espace. L'installation s'effectue en arrière-plan et prend quelques minutes ; l'état ici montre ce qui se trouve réellement sur le serveur. |
| `AIHUMMER_WEBFETCH_ALLOWLIST` | Sites que l’agent peut ouvrir | `list` | — | immédiatement | Liste de domaines séparés par des virgules que l'outil web_fetch peut contacter. Vide = tous sont autorisés, sauf les adresses internes et privées. |
| `AIHUMMER_WEB_SEARCH_LANGUAGE` | Recherche web : langue des résultats par défaut | `text` | `auto` | immédiatement | Langue des résultats quand l'agent n'en précise pas : un code comme ru, en ou de, ou auto pour la déduire de la requête (convient presque toujours). L'agent peut choisir une autre langue pour une recherche précise. |
| `AIHUMMER_WEB_SEARCH_RESULTS` | Recherche web : résultats par recherche | `int` | `5` | immédiatement | Nombre de résultats renvoyés quand l'agent ne demande pas de nombre : de 1 à 10. Plus de résultats donnent une réponse plus complète mais un contexte plus long. |
| `AIHUMMER_WEB_SEARCH_SOURCE` | Source de la recherche web | `enum: auto \\\| searxng \\\| provider` | `auto` | immédiatement | Où l’agent cherche sur Internet (l’outil web_search). auto — SearXNG s’il est installé, sinon la recherche intégrée du fournisseur du modèle. searxng — SearXNG seulement : sans lui, pas de recherche. provider — la recherche intégrée du fournisseur là où elle existe, SearXNG pour les autres modèles. La recherche intégrée existe chez Codex (abonnement ChatGPT) et OpenAI (api.openai.com) ; GigaChat, YandexGPT et les autres modèles compatibles OpenAI n’en ont pas — sans SearXNG, les agents sur ces modèles ne cherchent pas. Claude (api.anthropic.com et l’abonnement Claude) utilise la recherche intégrée d’Anthropic ; si le compte la refuse, la passerelle l’inscrit au journal et ne propose ensuite à l’agent que SearXNG. Les agents autorisés à chercher se règlent sur la fiche de l’agent, comme avant. S’applique dès le tour suivant. |
| `AIHUMMER_WEB_SEARCH_TIMEOUT_SECONDS` | Délai de recherche web (secondes) | `int` | `30` | immédiatement | 1–600 secondes par recherche. Un délai de tâche plus court reste prioritaire. |
## Updates
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_RESTART_APPLY` | Appliquer les réglages qui demandent un redémarrage | `enum: quiet \\\| manual` | `quiet` | immédiatement | quiet (par défaut) — les réglages enregistrés qui ne prennent effet qu’au prochain démarrage de la passerelle s’appliquent d’eux-mêmes : la passerelle redémarre au prochain moment calme, quand les agents ne font rien et que les personnes se taisent depuis au moins la fenêtre de silence. manual — seulement la mention « en attente de redémarrage » et le bouton. Un redémarrage dure quelques secondes ; les conversations et les tâches ne sont pas perdues. Prend effet immédiatement. |
| `AIHUMMER_RESTART_QUIET_MINUTES` | Moment calme : minutes de silence avant un redémarrage automatique | `int 0…1440` | `10` | immédiatement | Combien de minutes les personnes doivent se taire (et les agents rester inactifs) avant que la passerelle redémarre d’elle-même pour appliquer les réglages enregistrés. 0 — dès que les agents ont fini leur travail en cours. 0–1440. Prend effet immédiatement. |
## Web UI (separate port)
| Clé | Nom | Type | Par défaut | Prend effet | Rôle |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_WEBUI_API_BASE` | Adresse du serveur pour un panneau hébergé à part | `text` | — | après redémarrage | Nécessaire seulement si le panneau s’ouvre depuis une autre adresse que le serveur lui-même. Indiquez l’adresse à laquelle le navigateur joint le serveur, par ex. https://api.example.com. Vide — l’adresse publique du serveur est utilisée, ou la locale à défaut. |
| `AIHUMMER_WEBUI_ENABLED` | Panneau sur un port séparé | `bool` | `1` | après redémarrage | Activé — le panneau s’ouvre sur un port interne séparé que vous pouvez fermer à Internet, et le port public ne sert que les applications et les canaux. Désactivez pour rendre le panneau totalement inaccessible. |
| `AIHUMMER_WEBUI_ORIGIN` | Adresse d’ouverture du panneau | `text` | — | après redémarrage | À renseigner si le panneau s’ouvre via un proxy ou un nom différent de l’adresse de son port, par ex. https://admin.example.com. Le serveur autorisera un navigateur depuis cette adresse à communiquer avec lui. Vide — l’adresse du port du panneau est utilisée. |
Paramètres accessibles à l'opérateur : 237.