Aquí se enumeran todos los ajustes que el operador puede cambiar en un servidor AiHummer. La página se genera del catálogo del propio producto, por eso coincide con su servidor.
El valor se establece en la interfaz web o con el comando aihummer settings set KEY VALUE (Línea de comandos). La columna del valor predeterminado muestra lo que usa el servidor mientras no se defina un valor propio.
[!NOTE]
Los valores secretos nunca se imprimen aquí y las claves de servicio del proveedor no se enumeran: el producto las oculta de todas las listas. Un guion significa valor vacío o una explicación que solo se muestra en la interfaz web.
API
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_PERSONAL_API_KEYS
Claves personales API para compatibilidad con OpenAI
bool
1
tras reiniciar
“off” deshabilita la autenticación de clave personal en el punto final compatible con OpenAI. Cualquier otro valor = habilitado. Se aplica al inicio/después del reinicio.
Agent
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_AGENT_ANNOUNCE_SLOW_TOOLS
Agente: avisar antes de acciones largas
bool
1
inmediatamente
Antes de una acción larga (una imagen, una investigación a fondo, un vídeo, un encargo a un subagente) el agente escribe brevemente qué está haciendo, para que la espera no sea muda. Desactívelo si esos mensajes molestan.
AIHUMMER_AGENT_COMPACT_AT_PCT
Agente: compactar el historial a partir de, % de su presupuesto
int 50…99
85
inmediatamente
Cuando el historial de una conversación llena esta parte de su espacio en la ventana del modelo, los mensajes antiguos se resumen, en segundo plano y tras la respuesta; el turno no espera. Más bajo: compacta más a menudo, pero el modelo recuerda menos literalmente; más alto: con menos frecuencia, pero los turnos pesan más. 50–99; un agente puede sustituirlo.
AIHUMMER_AGENT_COMPACT_TO_PCT
Agente: conservar tras compactar, % del presupuesto del historial
int 10…90
50
inmediatamente
Cuánto del espacio del historial queda literal tras la compactación; todo lo más antiguo pasa al resumen. Debe ser menor que el umbral de compactación: la distancia entre ambos marca cuántos turnos pasan hasta la siguiente compactación. 10–90; un agente puede sustituirlo.
AIHUMMER_AGENT_HISTORY_TURNS
Agente: turnos del diálogo conservados literalmente
int 1…1000
30
inmediatamente
Cuántos turnos recientes de una conversación ve el modelo literalmente (hasta 10 más antes de comprimir). Los mensajes anteriores se resumen en segundo plano; la conversación nunca se borra. La ventana de contexto del modelo se respeta automáticamente. 1–1000; cada agente puede cambiarlo.
AIHUMMER_AGENT_MAX_ITERATIONS
Agente: máximo de pasos con herramientas por turno
int 1…256
25
inmediatamente
Cuántas veces por turno puede un agente llamar a herramientas antes de responder. Al llegar al límite el turno no falla: el agente informa de lo hecho y lo pendiente, y puede pedirle que continúe. Tres llamadas idénticas seguidas con el mismo resultado detienen el turno antes. 1–256; cada agente puede cambiarlo.
AIHUMMER_AGENT_MEMORY_FLUSH
Agente: guardar una nota en memoria antes de comprimir
bool
1
inmediatamente
Antes de condensar los mensajes antiguos en un resumen, el agente guarda en memoria una nota breve sobre objetivos, decisiones y tareas pendientes. Desactívelo para ahorrar la llamada al modelo.
AIHUMMER_AGENT_MEMORY_FLUSH_PROMPT
Agente: qué guarda la nota antes de compactar
text
—
inmediatamente
Su propia tarea para la nota antes de compactar: qué guardar de los mensajes que pasan al resumen (por ejemplo, «anota solo compras, plazos y acuerdos»). Vacío: la integrada, con objetivos, decisiones y tareas pendientes. La protección no se puede desactivar: el texto de la conversación sigue siendo datos, no instrucciones, y nunca se guardan contraseñas ni claves. Hasta 4000 caracteres; un agente puede tener la suya.
AIHUMMER_AGENT_NEW_REMINDERS_MEMORY
Agentes nuevos: recordatorios y escritura en la memoria
bool
1
inmediatamente
Un agente nuevo creado a mano (asistente del primer arranque, «Crear agente», API) crea, cambia y cancela desde el primer turno sus PROPIOS recordatorios y programaciones y escribe hechos en su propia memoria, como la plantilla de asistente personal. Para un agente concreto se desactiva en su ficha (Capacidades). Las plantillas de la biblioteca deciden por sí mismas, una copia conserva los derechos del original, los agentes creados por otro agente empiezan sin ellos; los agentes existentes no cambian. Se aplica al siguiente agente que se cree.
AIHUMMER_AGENT_PROMPT_PART_MAX_CHARS
Agente: máximo de caracteres por parte del prompt
int 1000…1000000
20000
inmediatamente
Cuántos caracteres recibe el modelo de UNA parte de la personalidad del agente: una sección del perfil, una parte del prompt o el prompt principal. Una parte más larga conserva el inicio (3/4) y el final (1/4) con una nota de cuánto se recortó; se muestra en la ficha de la conversación y en la composición del prompt del agente. El nombre, el trato y las restricciones de la personalidad nunca se recortan. 1000–1000000; un agente puede tener su propio valor.
AIHUMMER_AGENT_PROMPT_TOTAL_MAX_CHARS
Agente: máximo de caracteres de toda la personalidad
int 1000…2000000
60000
inmediatamente
Límite total de la personalidad del agente: todas las partes juntas. Si se supera, las partes más largas ceden espacio primero y las cortas quedan enteras. 1000–2000000; un agente puede tener su propio valor.
AIHUMMER_AGENT_SELF_INTRO
Agente: presentarse
enum: first_contact \\| each_dialog \\| never
first_contact
inmediatamente
«Una vez, al conocer a alguien»: el agente se presenta brevemente en su primera conversación con una persona, salvo que quiera ir directo al grano; con alguien conocido no vuelve a presentarse y responde al saludo con naturalidad. «No presentarse nunca»: el agente nunca dice su nombre por iniciativa propia. «Al comienzo de cada nueva conversación» — al comienzo de cada nueva conversación y tras una pausa larga, brevemente y sin resumir asuntos pasados. Un agente puede elegir otra cosa en su ficha («Contexto y comportamiento»).
AIHUMMER_AGENT_SESSION_IDLE_RESET_MINUTES
Agente: empezar la conversación de nuevo tras un silencio (minutos)
int 0…525600
360
inmediatamente
Para «tras un silencio» y «cada día y tras un silencio»: si alguien escribe tras un silencio más largo que este, el agente empieza la conversación de nuevo. Se aplica a los agentes sin valor propio en su ficha. 0: no por silencio. 0–525600; 360 = 6 horas, 1440 = un día.
AIHUMMER_AGENT_SESSION_INDEX_MAX_ENTRIES
Agente: mantener como máximo estas sesiones en la lista
int 0…100000
0
inmediatamente
Las más inactivas salen primero; no se borra nada. 0: sin límite. 0–100000. Se aplica a los agentes sin valor propio en su ficha.
AIHUMMER_AGENT_SESSION_INDEX_PRUNE_DAYS
Agente: quitar de la lista de sesiones tras estos días de silencio
int 0…3650
0
inmediatamente
No se borra nada: la conversación sale de la lista y vuelve con un mensaje nuevo. 0: conservar. 0–3650. Se aplica a los agentes sin valor propio en su ficha.
AIHUMMER_AGENT_SESSION_RESET_AT_HOUR
Agente: hora del reinicio diario
int 0…23
4
inmediatamente
Para los modos «cada día»: una conversación que empezó antes de esta hora vuelve a empezar con el siguiente mensaje de la persona. La hora sigue la zona horaria del servidor (ajuste «Zona horaria» en Sistema y ajustes). 0–23; 4 es de madrugada, cuando casi nadie escribe.
AIHUMMER_AGENT_SESSION_RESET_GROUP_IDLE_MINUTES
Agente: empezar un chat de grupo de nuevo tras un silencio (minutos)
int 0…525600
0
inmediatamente
Para los chats de grupo en los modos «tras un silencio» y «cada día y tras un silencio»: los minutos de silencio tras los que un chat de grupo empieza de nuevo. 0 significa como en los chats personales. 0–525600.
AIHUMMER_AGENT_SESSION_RESET_GROUP_MODE
Agente: cuándo empieza de nuevo un chat de grupo
enum: inherit \\| daily \\| idle \\| both \\| none
inherit
inmediatamente
Una regla propia para los chats de grupo (grupos de Telegram, conversaciones de VK, chats de MAX y otros): como en los chats personales, cada día a la hora de reinicio, tras un silencio, lo que ocurra primero, o nunca. La hora de reinicio es común. Se aplica a los agentes sin regla propia en su ficha.
AIHUMMER_AGENT_SESSION_RESET_MODE
Agente: cuándo empieza de nuevo una conversación
enum: idle \\| daily \\| both \\| none
idle
inmediatamente
Cuándo el agente empieza de nuevo una conversación: cada día a la hora de reinicio (en la zona horaria de la instancia), tras un silencio, lo que ocurra antes, o nunca. Al empezar de nuevo, el agente escribe en su memoria una nota sobre la conversación anterior, y su primer turno recibe el resumen anterior y los últimos mensajes; los mensajes siguen en el archivo y en la búsqueda. Se aplica a los agentes sin regla propia en su ficha; allí se puede fijar una regla aparte para los chats de grupo.
AIHUMMER_AGENT_SESSION_SCOPE
Agente: dónde van las conversaciones personales
enum: chat \\| per-channel-peer \\| per-peer
chat
inmediatamente
«Una por persona» une Telegram, la aplicación y otros chats personales de la misma persona en una sola conversación. Los chats de grupo siempre conservan la suya. Se aplica desde el siguiente mensaje. Se aplica a los agentes sin valor propio en su ficha.
AIHUMMER_AGENT_SILENT_REPLY
Agente: puede quedarse en silencio
enum: groups \\| all \\| off
groups
inmediatamente
En los chats de grupo el agente puede quedarse en silencio si el mensaje no va dirigido a él o no tiene nada que añadir; en los chats privados siempre responde. Puede permitir el silencio también en los chats privados o desactivarlo. Un turno silencioso no envía nada, la ficha de la conversación lo marca como «el agente guardó silencio» y el modelo no lo ve en el historial. Se aplica desde el siguiente turno.
AIHUMMER_AGENT_SKILLS_PROMPT_MAX_CHARS
Agente: máximo de caracteres de la lista de habilidades en el prompt
int 1000…200000
18000
inmediatamente
En cada turno el modelo no ve los textos de las habilidades, sino su lista: identificador, nombre y cuándo usarla; el agente carga por sí mismo las instrucciones de una habilidad cuando la tarea encaja. Si la lista es más larga, primero se quitan las descripciones y luego el final de la lista; el resto lo encuentra el agente bajo demanda. 1000–200000.
AIHUMMER_AGENT_STALE_GAP_HOURS
Agente: pausa tras la cual lo hablado antes es historial (horas)
int 0…8760
12
inmediatamente
Si alguien escribe tras una pausa más larga que esta, el agente recibe una nota: todo lo hablado antes es historial; no se vuelve a contar ni se retoman tareas antiguas sin que lo pidan. Cada mensaje ya lleva su hora y el tiempo transcurrido desde el anterior. 0 = sin nota. 0–8760.
AIHUMMER_AGENT_TOOL_HISTORY_TURNS
Agente: turnos que conservan resultados de herramientas
int 0…100
5
inmediatamente
En cuántos turnos recientes el modelo ve completas las llamadas a herramientas y sus resultados (un resultado se guarda hasta 16 KB). Los turnos anteriores conservan la llamada y el comienzo del resultado. Así el agente recuerda lo que encontró e hizo en lugar de volver a llamar a las herramientas. 0 = no trasladar resultados a turnos posteriores. 0–100; un agente puede sobrescribirlo.
AIHUMMER_APPROVAL_TOOLS
Herramientas que necesitan aprobación
multiselect
—
inmediatamente
Lista de herramientas separadas por comas cuyas llamadas requieren la aprobación manual del operador antes de ejecutarse. En blanco = no se requiere aprobación. Se aplica de inmediato, sin reiniciar.
AIHUMMER_SUBAGENT_MAX_DEPTH
Profundidad máxima del subagente
int 0…10
2
inmediatamente
Profundidad máxima de anidamiento de subagentes (un agente que lanza otro agente). Valor predeterminado 2: protección frente a la recursión infinita.
AIHUMMER_SUBAGENT_TIMEOUT_SEC
Tiempo de espera del subagente (segundos)
int 0…86400
180
inmediatamente
Tiempo máximo para la ejecución de un único subagente, en segundos.
AIHUMMER_TOOL_SEARCH
Carga diferida de herramientas
bool
false
inmediatamente
Muestra directamente el núcleo de herramientas de trabajo y oculta el resto de un catálogo grande tras una herramienta de búsqueda que nombra cada herramienta oculta. Solo compensa en catálogos grandes (decenas de herramientas de plugins, MCP u OpenAPI): por debajo del umbral de tamaño todas se muestran directamente, porque una llamada extra al modelo para buscar una herramienta cuesta más que los esquemas. Se aplica en el siguiente turno.
AIHUMMER_TOOL_SEARCH_CORE
Carga diferida de herramientas: herramientas siempre activas
Herramientas siempre visibles directamente en modo diferido. Por defecto, el núcleo de trabajo: búsqueda web, lectura de páginas, memoria, historial de conversación, base de conocimiento, código, archivos, mensajes, programaciones y vinculación de la aplicación. La búsqueda en la memoria y en la base de conocimiento (memory_search, memory_get, search_knowledge) se muestra siempre, diga lo que diga esta lista. Una lista vacía restaura este núcleo.
AIHUMMER_TOOL_SEARCH_MIN_POOL_TOKENS
Carga diferida de herramientas: tamaño mínimo de las ocultas (tokens)
int 0…1000000
4000
inmediatamente
Ocultar herramientas solo si los esquemas fuera del núcleo suman al menos esta cantidad de tokens (unos 4 caracteres cada uno). Por debajo, todas se muestran directamente: una llamada extra al modelo para buscar una herramienta cuesta más que mostrar los esquemas.
AIHUMMER_TOOL_SEARCH_THRESHOLD
Carga diferida de herramientas: herramientas mínimas para diferir
int 0…1000
12
inmediatamente
Solo posponga cuando más de esta cantidad de herramientas sobrevivan al filtro de perfil del agente.
Agent · Reasoning
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_AGENT_BEST_OF_N
Mejor de N: número de candidatas
int 0…8
0
inmediatamente
El agente prepara tantas respuestas candidatas y se queda con la mejor. 0 o 1: desactivado; desde 2: activado. Cada candidata cuesta como una respuesta aparte.
AIHUMMER_AGENT_DEBATE_JUDGE_PROMPT
Debate: solicitud de juez (anulación)
text
—
inmediatamente
Anula el mensaje del juez del debate (en blanco = integrado).
AIHUMMER_AGENT_DEBATE_N
Debate: número de respuestas candidatas
int 0…8
0
inmediatamente
El agente prepara tantas respuestas candidatas, las compara y da la mejor. 0 o 1: desactivado; desde 2: activado. Cada candidata cuesta como una respuesta aparte.
AIHUMMER_AGENT_DEBATE_PROMPT
Debate: solicitud de candidato (anulación)
text
—
inmediatamente
Anula el mensaje del candidato del debate (en blanco = integrado).
AIHUMMER_AGENT_DEBATE_ROUNDS
Debate: rondas
int 1…10
1
inmediatamente
Número de rondas de debate para el panel de candidatos.
AIHUMMER_AGENT_JUDGE_PROMPT
Mensaje de evaluación de lo mejor de N (anular)
text
—
inmediatamente
Anula el mensaje de evaluación del mejor de N (en blanco = integrado).
AIHUMMER_AGENT_PLAN_PROMPT
Mensaje del planificador (anular)
text
—
inmediatamente
Anula el mensaje del planificador (en blanco = integrado).
AIHUMMER_AGENT_PLAN_STEPS
Planificador-ejecutor: máximo de pasos del plan (0=apagado)
int 0…32
0
inmediatamente
⟩0 ejecuta un pase separado de planificador→ejecutor→síntesis (bueno para tareas complejas de varios pasos). 0 desactiva. Típico entre 4 y 8.
AIHUMMER_AGENT_PLAN_STEP_ITERS
Planificador: iteraciones de herramientas por paso (0=predeterminado)
int 0…64
0
inmediatamente
Limita las iteraciones de llamada de herramientas por paso del plan. 0 = predeterminado integrado (4).
AIHUMMER_AGENT_REFLECT
Pase de autocrítica
bool
0
inmediatamente
Agrega un pase de reflexión/autocrítica antes de la respuesta final.
AIHUMMER_AGENT_REFLECT_PROMPT
Mensaje de reflexión (anular)
text
—
inmediatamente
Anula el mensaje de autocrítica (en blanco = integrado).
AIHUMMER_AGENT_SELF_HEAL
Herramienta de autorreparación-reintentos de error (0=apagado)
int 0…10
0
inmediatamente
⟩0 reintentos fallidos de llamadas a herramientas con una sugerencia correctiva, hasta este límite.
Pista de idioma/localización de respuesta predeterminada, p. ru-RU. Se anulan las instrucciones de persona/operador.
AIHUMMER_TIMEZONE
Zona horaria
text
UTC
inmediatamente
Zona horaria IANA para la fecha actual del agente y para las programaciones sin zona propia, p. ej. Europe/Moscow. Predeterminado UTC.
Channels
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_CHANNEL_FAILURE_NOTICE
Avisar a la persona cuando falla una respuesta
enum: always \\| once \\| off
always
inmediatamente
Qué recibe la persona en un canal (Telegram y otros) cuando el agente no pudo responder: «Cada vez», un mensaje breve en su idioma; «Como mucho una vez cada 4 horas», un mensaje por conversación en 4 horas; «No avisar», nada. El mensaje no incluye códigos de error ni nombres de proveedores; los detalles los ve en Sesiones y en las notificaciones.
AIHUMMER_CHANNEL_FAILURE_TEXT_BLOCKED
Mensaje de fallo: la instancia está suspendida
text
—
inmediatamente
Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato.
AIHUMMER_CHANNEL_FAILURE_TEXT_BUDGET
Mensaje de fallo: se agotó el presupuesto del propietario
text
—
inmediatamente
Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato.
AIHUMMER_CHANNEL_FAILURE_TEXT_BUSY
Mensaje de fallo: la pasarela está sobrecargada
text
—
inmediatamente
Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato.
AIHUMMER_CHANNEL_FAILURE_TEXT_CONFIG
Mensaje de fallo: la conexión del modelo requiere al propietario
text
—
inmediatamente
Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato.
AIHUMMER_CHANNEL_FAILURE_TEXT_FAILED
Mensaje de fallo: otro fallo
text
—
inmediatamente
Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato.
AIHUMMER_CHANNEL_FAILURE_TEXT_QUOTA
Mensaje de fallo: se agotó el límite de uso del modelo
text
—
inmediatamente
Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato.
AIHUMMER_CHANNEL_FAILURE_TEXT_STEP_LIMIT
Mensaje de fallo: la tarea no cupo en una sola respuesta
text
—
inmediatamente
Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato.
AIHUMMER_CHANNEL_FAILURE_TEXT_TOO_LONG
Mensaje de fallo: la conversación es demasiado larga para el modelo
text
—
inmediatamente
Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato.
AIHUMMER_CHANNEL_FAILURE_TEXT_UNAVAILABLE
Mensaje de fallo: el modelo no está disponible temporalmente
text
—
inmediatamente
Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato.
AIHUMMER_CONFIDENTIAL_PERSONA
Persona web confidencial
bool
0
inmediatamente
Cuando está activado, el agente de chat web no revela ni conserva los detalles de su persona/identidad y mantiene las respuestas a la tarea en cuestión; utilícelo para implementaciones web anónimas o sensibles a la privacidad. Se aplica de inmediato, sin reiniciar.
AIHUMMER_INBOUND_COALESCE_MS
Ventana de agrupación de mensajes (ms)
int
500
inmediatamente
Varios mensajes que una persona envía seguidos al mismo chat (mensajes cortos, un álbum de fotos, una corrección rápida) reciben UNA sola respuesta si la pausa entre ellos es menor que esta ventana. Los mensajes que llegan mientras se prepara una respuesta se responden justo después, nunca en paralelo. Por defecto 500 ms; 0 = sin espera entre mensajes sueltos; un álbum de fotos se sigue reuniendo (pausas de hasta 3 s, como máximo 20 s) para recibir una sola respuesta. La agrupación funciona en Telegram; Slack, WhatsApp, VK, el correo y otros conectores que esperan respuesta a cada mensaje (y las integraciones vía /v1/inbound/generic) reciben una respuesta por cada mensaje, igualmente de una en una y en orden. Se aplica de inmediato.
AIHUMMER_INBOUND_EDIT_MODE
Cuando alguien edita un mensaje ya respondido
enum: correct \\| history
correct
inmediatamente
correct — el bot responde otra vez sabiendo que es una corrección («antes / ahora»); history — la edición solo corrige el historial de la conversación, sin nueva respuesta (útil para erratas). La edición de un mensaje que el bot aún no ha respondido siempre solo reemplaza su texto. Funciona donde el canal informa de las ediciones (Telegram). Se aplica de inmediato.
AIHUMMER_INBOUND_QUEUE_MODE
Mensajes escritos mientras el agente trabaja
enum: steer \\| collect \\| followup
steer
inmediatamente
Qué ocurre con un mensaje que la misma persona envía mientras el agente aún prepara una respuesta (busca, ejecuta herramientas): steer (predeterminado): el agente lo ve antes de su siguiente paso y lo tiene en cuenta en la misma respuesta; collect: se responde con la siguiente respuesta. followup: cada uno de esos mensajes recibe su propia respuesta, uno tras otro. Las fotos, los archivos, las respuestas a un mensaje y los reenvíos siempre esperan a la siguiente respuesta. Se aplica de inmediato.
AIHUMMER_INBOUND_REQUIRE_BINDING
Responder solo a usuarios aprovisionados
bool
true
inmediatamente
true = el bot ignora cualquier remitente del canal que sea NOT un usuario AiHummer aprovisionado (un usuario con un rol vinculado): los miembros del chat aleatorios y las invocaciones de invitados no obtienen respuesta false (predeterminado) = responder a todos.
Integrations
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_A2A_PUBLISH
Publicar agente sobre Agent2Agent (A2A)
bool
0
tras reiniciar
Publicar el agente como un servidor A2A (Tarjeta de agente + POST /a2a/mensaje). Se aplica al inicio/después del reinicio.
AIHUMMER_MCP_EXPORT_TOOLS
Herramientas abiertas a asistentes externos
multiselect
—
tras reiniciar
Una lista explícita de nombres de herramientas permitidas para clientes MCP externos, separados por comas. Vacío = no publicar ninguna herramienta. La política integrada también prohíbe las clases peligrosas a nivel de host, incluso si figuran en la lista. Se aplica al inicio/después del reinicio.
AIHUMMER_MCP_PUBLISH
Publicar herramientas a través de MCP
bool
0
tras reiniciar
Permite que asistentes externos (p. ej. Claude Desktop) usen las herramientas de sus agentes. Qué herramientas abrir se elige en el ajuste contiguo: mientras la lista esté vacía, no se abre ninguna.
AIHUMMER_MODULE_CPU_QUOTA
Límite de CPU del plugin (por plugin)
text
75%
inmediatamente
Qué parte del procesador puede usar cada plugin (systemd CPUQuota): 75% son tres cuartos de un núcleo, 150% es un núcleo y medio. El plugin recibe el nuevo valor en su próxima instalación, actualización o al guardar su configuración; hasta entonces los plugins en ejecución mantienen el límite anterior.
AIHUMMER_MODULE_MEMORY_MAX
Límite de memoria del plugin (por plugin)
text
512M
inmediatamente
Cuánta memoria puede usar cada plugin (systemd MemoryMax): un tamaño como 512M, 1G o 2048M (al menos 64M), o infinity para no limitar. El sistema detiene el plugin que lo supere. El plugin recibe el nuevo valor en su próxima instalación, actualización o al guardar su configuración; hasta entonces los plugins en ejecución mantienen el límite anterior.
Knowledge connectors
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_KB_SYNC_INTERVAL
Con qué frecuencia actualizar la base de conocimiento desde las fuentes
text
—
inmediatamente
Con qué frecuencia el servidor trae por sí mismo los cambios de las fuentes conectadas a la base de conocimiento. Por ejemplo: 30m, cada 30 minutos; 6h, cada 6 horas. Vacío o 0: solo a mano. Volver a cargar nunca crea duplicados. La exportación de Slack se sube a mano.
LLM
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_AUX_FALLBACK_MODELS
Tareas de servicio: modelos de respaldo
list
—
inmediatamente
Modelos separados por comas que se prueban en orden si falla el modelo de servicio (cuota, caída). El modelo principal siempre se prueba al final para que no se pierda el resumen. Cada cambio se registra. Se aplica de inmediato.
AIHUMMER_AUX_MODEL
Modelo para tareas de servicio (resúmenes, notas, títulos)
text
—
inmediatamente
Modelo para tareas de servicio en segundo plano: condensar el historial antiguo en un resumen, la nota de memoria antes de la compactación, títulos de conversaciones, extracción de hechos, reformulación de consultas de búsqueda y traducción. Vacío = automático: un modelo más barato del mismo proveedor (Claude → claude-haiku-4-5, Codex → gpt-…-luna/mini); si no lo hay, el modelo principal. “main” = siempre el modelo principal. Se aplica de inmediato.
AIHUMMER_CASCADE_MIN_CHARS
Cascada: caracteres mínimos para escalar
int
0
inmediatamente
Umbral de longitud de solicitud (caracteres) en el que se activa el modelo en cascada más fuerte. 0 = predeterminado.
AIHUMMER_CASCADE_STRONG_MODEL
Cascada: modelo alternativo más sólido
text
—
inmediatamente
Modelo al que conectarse en cascada para solicitudes largas/complejas (en blanco = desactivado).
AIHUMMER_CLAUDE_AUTH_URL
Suscripción de Claude: dirección de la página de acceso
text
—
inmediatamente
La página en la que autoriza conectar la suscripción de Claude. Vacío: dirección estándar; cámbiela solo si se lo pide el soporte.
AIHUMMER_CLAUDE_CLIENT_ID
Suscripción Claude: ID de cliente OAuth
text
—
inmediatamente
El identificador de la app para entrar con una suscripción de Claude. Vacío: el estándar; cámbielo solo si se lo pide el soporte.
AIHUMMER_CLAUDE_EFFORT
Claude: profundidad de razonamiento
enum: low \\| medium \\| high \\| xhigh \\| max
medium
inmediatamente
Con qué profundidad piensan los modelos Claude antes de responder cuando el agente no lo fija. Más alto es más preciso en tareas difíciles, pero más lento y consume más cuota; más bajo es más rápido y económico. Un modelo que no conoce el nivel elegido recibe el inferior más cercano; Haiku 4.5 y modelos anteriores no admiten razonamiento. La profundidad fijada en el agente tiene prioridad. Se aplica desde el siguiente turno.
AIHUMMER_CLAUDE_MAX_TOKENS
Claude: longitud máxima de respuesta (tokens)
int
16000
inmediatamente
Cuántos tokens puede ocupar una respuesta de Claude, por suscripción y por clave. El razonamiento del modelo cuenta en el mismo límite: un valor demasiado bajo corta la respuesta a media frase o la deja vacía. Si un agente tiene su propia longitud de respuesta, se aplica esa.
AIHUMMER_CLAUDE_REDIRECT_URI
Suscripción Claude: redirigir URI
text
—
inmediatamente
Dirección de devolución registrada con el proveedor. Debe coincidir con lo configurado en su lado, de lo contrario se rechaza el intercambio de código.
AIHUMMER_CLAUDE_TOKEN_URL
Suscripción de Claude: dirección de acceso
text
—
inmediatamente
La dirección en la que el servidor obtiene y renueva el acceso a la suscripción de Claude. Vacío: dirección estándar; cámbiela solo si se lo pide el soporte.
AIHUMMER_CODEX_BASE_URL
Base de Codex URL
text
—
parcialmente tras reiniciar
Base del transporte Codex (suscripción ChatGPT). Se aplica al inicio/después del reinicio.
AIHUMMER_CODEX_MAX_OUTPUT_TOKENS
Tokens de salida máxima (0 = sin límite)
int
0
inmediatamente
El límite de max_output_tokens para un turno de chat. 0 = sin límite. En los modelos de razonamiento, los tokens de razonamiento también cuentan para este presupuesto, por lo que un valor demasiado pequeño produce una respuesta vacía ‘incompleta: max_output_tokens’. Se aplica sobre la marcha (sin reinicio).
AIHUMMER_CODEX_MODEL
Identificación del modelo (transporte Codex/gpt-5.5)
text
gpt-5.5
parcialmente tras reiniciar
Identificación del modelo del transporte principal Codex/ChatGPT (por ejemplo, gpt-5.5, gpt-5.5-codex). Se aplica al inicio/después del reinicio.
AIHUMMER_CODEX_REASONING_EFFORT
Esfuerzo de razonamiento
enum: none \\| low \\| medium \\| high \\| xhigh
medium
inmediatamente
Cuánto razona el modelo de ChatGPT (Codex) antes de responder si el agente no lo fija. Por defecto, «Medio». Más alto es más preciso, pero más lento y caro.
AIHUMMER_LLM_CALL_TIMEOUT_S
Tiempo de espera por llamada (segundos)
int
120
inmediatamente
Cuántos segundos esperar la respuesta del modelo a una petición. Si el modelo calla más tiempo, la petición se corta y la respuesta pasa al siguiente modelo de la lista. En Claude se cuenta la pausa en el flujo de respuesta, no la respuesta entera: una respuesta larga que sigue llegando no se corta. 0: sin límite.
AIHUMMER_LLM_FALLBACK_MODELS
Modelos de reserva (todos los agentes)
text
auto
inmediatamente
Quién responde cuando el modelo principal y los demás proveedores fallan (límite de uso alcanzado, caída, demasiadas solicitudes). auto — el modelo más económico de cada proveedor como último recurso (Claude: claude-haiku-4-5, Codex: gpt-…-luna/mini); una lista separada por comas — su propio orden, cada modelo va a los proveedores de su fabricante; off — sin modelos de reserva. El modelo de reserva propio de un agente tiene prioridad. Se aplica al instante.
AIHUMMER_LLM_GATEWAY_URL
LLM puerta de enlace URL
text
—
parcialmente tras reiniciar
Base URL del punto final del modelo compatible con OpenAI al que llama el agente (su servidor local llama.cpp/vLLM/Ollama o una puerta de enlace alojada). Déjelo en blanco para usar el punto final predeterminado del proveedor.
AIHUMMER_LLM_MODEL
LLM modelo
text
—
parcialmente tras reiniciar
El nombre/ID del modelo enviado al proveedor en cada turno (el modelo que sirve su punto final). Debe coincidir con un modelo que el terminal realmente expone.
AIHUMMER_LLM_PAUSE_AUTH_MIN
Pausa tras rechazo de credenciales, min
int
10
inmediatamente
Cuántos minutos no consultar a un proveedor que rechazó las credenciales. Cada repetición duplica la pausa, hasta seis veces la primera. Una prueba de conexión correcta o el botón «Reanudar ahora» lo devuelven al momento. Se aplica desde el siguiente fallo.
AIHUMMER_LLM_PAUSE_MODEL_MIN
Pausa de un modelo que el proveedor no sirve, min
int
60
inmediatamente
Cuántos minutos no ofrecer a un proveedor un modelo que dijo no servir; sus otros modelos se consultan como siempre. Se aplica desde el siguiente fallo.
AIHUMMER_LLM_PAUSE_QUOTA_MIN
Pausa tras agotar el límite, min
int
300
inmediatamente
Cuántos minutos no consultar el modelo (o toda la cuenta, si se agotó el límite de la cuenta: Codex, una clave de OpenAI, el pago) cuando se agotó su límite de uso y el proveedor no indicó cuándo se restablece. Cada repetición duplica la pausa, hasta un día. El plazo indicado por el proveedor manda. Se aplica desde el siguiente fallo.
AIHUMMER_LLM_PAUSE_SHORT_S
Pausa del proveedor tras un fallo, s
int
30
inmediatamente
Cuántos segundos no consultar a un proveedor tras un fallo, una conexión caída o «demasiadas solicitudes». Un segundo fallo seguido duplica la pausa; el tercero y siguientes la multiplican por diez. Si el proveedor indica su propio plazo, se espera ese plazo. Se aplica desde el siguiente fallo.
AIHUMMER_LLM_PROVIDER
LLM proveedor
text
—
parcialmente tras reiniciar
Qué modelo de backend usar (un punto final compatible con OpenAI o el transporte de suscripción Codex/ChatGPT). Decide cómo se envían y autentican las solicitudes.
AIHUMMER_LLM_RETRIES
LLM reintentos en caso de error transitorio
int
3
inmediatamente
Número de LLM reintentos de solicitud en un error transitorio.
AIHUMMER_LLM_TEMPERATURE
Temperatura
text
—
inmediatamente
Cuán variadas son las respuestas del modelo (0–2) si el agente no lo fija: más bajo es más preciso y predecible; más alto, más vivo. Vacío: decide el modelo. Los modelos con razonamiento (ChatGPT/Codex, Claude de 5.ª generación) no lo aceptan: deje el campo vacío para ellos.
AIHUMMER_LLM_TOP_P
Top-p (núcleo) muestreo)
text
—
inmediatamente
Otra forma de variar las respuestas (0–1) si el agente no lo fija. Vacío: decide el modelo. Normalmente se fija solo uno: la temperatura o este; los modelos con razonamiento no lo aceptan.
AIHUMMER_MODEL_GUARD_INTERVAL_MIN
Comprobación del modelo del agente: intervalo, min
int
60
inmediatamente
Con qué frecuencia comprobar que el modelo de cada agente lo ofrece algún proveedor activado. El modelo del agente nunca se cambia: mientras nadie lo ofrezca, responde el primer modelo del orden de respuesta que no esté en pausa y una notificación nombra a los agentes, y otra cuando su modelo vuelva. La comprobación siempre se ejecuta al iniciar la pasarela, y 0 desactiva solo la repetición. Un intervalo nuevo se aplica en menos de un minuto.
AIHUMMER_OPENAI_API
Estilo OpenAI API (chat | respuestas)
enum: \\| chat \\| responses
—
parcialmente tras reiniciar
chat = /chat/completions, respuestas = /responses. En blanco = automático/predeterminado. Se aplica al inicio/después del reinicio.
AIHUMMER_OPENAI_API_KEY
Clave nativa de OpenAI API (implementación) predeterminado)
text
—
parcialmente tras reiniciar
La clave de su cuenta OpenAI para el bucle nativo de OpenAI (si usa OpenAI como proveedor predeterminado). No debe confundirse con BYOK por espacio de trabajo en la página Modelos. Se aplica al inicio/después del reinicio.
AIHUMMER_OPENAI_BASE_URL
Base nativa de OpenAI URL
text
—
tras reiniciar
Base de API compatible con OpenAI (por ejemplo, https://api.openai.com/v1). Se aplica al inicio/después del reinicio.
AIHUMMER_OPENAI_MODEL
Modelo nativo de OpenAI
text
—
tras reiniciar
Modelo para el bucle OpenAI nativo (cuando se establece AIHUMMER_OPENAI_API_KEY). Se aplica al inicio/después del reinicio.
AIHUMMER_ROUTER_COMPLEX_MODEL
Enrutador: modelo para giros complejos
text
—
inmediatamente
Modelo para las solicitudes complejas de un agente sin modelo propio (en blanco = nivel desactivado). Se aplica desde el siguiente turno.
AIHUMMER_ROUTER_SIMPLE_MODEL
Enrutador: modelo para giros simples
text
—
inmediatamente
Modelo para las solicitudes simples de un agente sin modelo propio (en blanco = nivel desactivado). Se aplica desde el siguiente turno.
AIHUMMER_ROUTER_STANDARD_MODEL
Enrutador: modelo para giros estándar
text
—
inmediatamente
Modelo para las solicitudes habituales de un agente sin modelo propio (en blanco = nivel desactivado). Se aplica desde el siguiente turno.
AIHUMMER_SUBSCRIPTION_QUOTA_REFRESH_MIN
Cuotas de suscripción: periodo de consulta, min
int
15
inmediatamente
Con qué frecuencia el panel consulta a ChatGPT (Codex) las ventanas de cuota de la suscripción: como mucho una vez por periodo, no más de una vez cada 5 minutos y solo mientras las cuotas están abiertas; entre consultas se muestra la copia guardada. A Claude nunca se le pregunta: sus límites son nuestra estimación. Se aplica la próxima vez que se abran las cuotas.
Media
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_DEEPGRAM_API_KEY
Clave API de Deepgram
text
—
inmediatamente
La clave del servicio Deepgram: necesaria si Deepgram reconoce los mensajes de voz. Si está vacía, se usa la clave común de reconocimiento de voz del ajuste contiguo. Se aplica de inmediato.
AIHUMMER_DEEPGRAM_DETECT_LANGUAGE
Detección de idioma de Deepgram
bool
0
inmediatamente
Detectar el idioma en lugar de enviar uno fijo. Se aplica al instante.
AIHUMMER_DEEPGRAM_MODEL
Modelo Deepgram
text
nova-2
inmediatamente
Modelo Deepgram (por ejemplo, nova-2, nova-3, base). Depende del acceso del proyecto a la clave. Se aplica al instante.
AIHUMMER_DEEPGRAM_PUNCTUATE
Puntuación de Deepgram
bool
1
inmediatamente
Añadir puntuación y mayúsculas. Se aplica al instante.
AIHUMMER_DEEPGRAM_SMART_FORMAT
Formato inteligente de Deepgram
bool
1
inmediatamente
Dar formato a números y fechas reconocidos. Se aplica al instante.
Modelo para image_generate (gpt-image-2 predeterminado).
AIHUMMER_MEDIA_MAX_UPLOAD_MB
Tamaño máximo de carga de medios (MB)
int
256
inmediatamente
El archivo más grande (foto, mensaje de voz, vídeo) que se puede subir de una vez, en megabytes. Protege el disco del servidor de llenarse. Por defecto 256. Se aplica de inmediato.
AIHUMMER_SIDECAR_STT
Reconocimiento de voz en este servidor (faster-whisper)
bool
0
inmediatamente
Reconocimiento de voz local (faster-whisper). NO incluido en el paquete: habilitar descarga el complemento firmado (~620 MiB para todas las versiones de Python) e instala el servicio en el host. 🔴 El complemento se publica por decisión del proveedor independiente (sus paquetes llevan ffmpeg bajo la GPL); Si no se publica para su lanzamiento, incluirlo será honesto al respecto y no romperá nada. Plan nube: el reconocimiento lo configura el proveedor.
AIHUMMER_SIDECAR_TTS
Respuestas por voz (edge-tts)
bool
0
inmediatamente
Síntesis de voz (edge-tts, voces Microsoft Edge). NO incluido en el paquete: al habilitarlo, se descarga el complemento firmado (~26 MiB) e instala el servicio en el host. La síntesis en sí se pone en línea para votar; “fuera de línea” aquí se refiere a instalar el paquete, no funcionar.
AIHUMMER_STT_API_KEY
STT API clave (opcional)
text
—
inmediatamente
Clave de acceso al servicio de reconocimiento de voz, si la requiere. Para un servicio en este servidor la fija el instalador: no hace falta cambiarla. Se aplica de inmediato.
AIHUMMER_STT_ENGINE
motor STT
enum: auto \\| faster-whisper \\| deepgram \\| codex \\| off
auto
inmediatamente
Cómo se transcriben los mensajes de voz. Auto (predeterminado): Deepgram si su clave está configurada; si no, el servicio local si está instalado (interruptor de arriba); si no, nada, y el bot le dice con franqueza al remitente que aún no puede escuchar. faster-whisper: el servicio local o un /v1/audio/transcriptions externo compatible. deepgram: Deepgram en la nube con su propia clave. codex: la suscripción de ChatGPT conectada (Modelos → Conectar ChatGPT); consume su cuota. off: no transcribir. Se aplica al instante.
AIHUMMER_STT_LANGUAGE
STT idioma
text
—
inmediatamente
Idioma de reconocimiento (BCP-47, por ejemplo, ru/en). Utilizado por el motor deepgram (modelo nova-2). En blanco = detección automática/valor predeterminado del motor. Se aplica al instante.
AIHUMMER_STT_MODEL
STT modelo
text
Systran/faster-whisper-small
inmediatamente
modelo de susurro más rápido (por ejemplo, pequeño/mediano/grande-v3 o Systran/faster-whisper-⟨size⟩). Se aplica al instante.
AIHUMMER_TTS_API_KEY
TTS API clave (edge-tts)
text
—
parcialmente tras reiniciar
Clave de acceso al servicio de voz. Se fija automáticamente al instalar: no hace falta cambiarla.
AIHUMMER_TTS_ENABLED
Texto a voz habilitado
bool
1
parcialmente tras reiniciar
Permite al agente responder por voz. Para ello hace falta el servicio de voz: instálelo arriba, en la sección Servicios adicionales.
AIHUMMER_TTS_MODEL
TTS modelo
text
—
parcialmente tras reiniciar
Nombre del modelo para el servicio edge-tts. Se aplica al inicio/después del reinicio.
Voz edge-tts predeterminada (multilingüe, incluido ruso). Se aplica al inicio/después del reinicio.
AIHUMMER_VIDEO_API_KEY
Análisis de vídeo API clave
text
—
inmediatamente
Clave de acceso al servicio de análisis de vídeo, si la requiere. Vacío: el servicio se usa sin clave.
Media · Voice
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_TTS_AUTO_REPLY
Respuestas de voz automáticas
enum: off \\| always \\| inbound \\| tagged
inbound
inmediatamente
Nunca, siempre, al recibir audio o con una marca explícita. Puede cambiarse por conversación.
AIHUMMER_TTS_MAX_CHARS
Límite de caracteres de voz
int
0
inmediatamente
0: texto completo; 100–10000: límite del texto hablado. La respuesta completa permanece en el historial.
AIHUMMER_TTS_SUMMARIZE
Resumir respuestas de voz largas
bool
1
inmediatamente
Resumir respuestas largas para escucharlas. Si falla, leer el principio dentro del límite.
AIHUMMER_VOICE_AEC
Cancelación de eco (AEC)
bool
1
inmediatamente
Elimina el eco: la propia voz del agente desde el altavoz no vuelve al micrófono ni interrumpe la conversación. Desactívelo solo si la voz suena distorsionada en unos auriculares.
AIHUMMER_VOICE_AGC
Auto control de ganancia
bool
1
inmediatamente
Exigir el control automático de ganancia del micrófono (WebRTC autoGainControl) en el modo de voz.
AIHUMMER_VOICE_BARGEIN_FRAMES
Interrumpir al agente: cuánto hay que hablar
int
5
inmediatamente
Cuánto hay que hablar (en tramos de 20 ms) para que el agente calle y escuche. Por defecto 5, unos 0,1 segundos.
AIHUMMER_VOICE_DUPLEX
Voz en vivo full-duplex
bool
0
inmediatamente
Habilita el modo dúplex completo en vivo (transmisión + VAD + irrupción). Se aplica al instante.
AIHUMMER_VOICE_NOISE_SUPPRESSION
Supresión de ruido
bool
1
inmediatamente
Exigir la supresión de ruido en la captura del micrófono (WebRTC noiseSuppression) en el modo de voz.
AIHUMMER_VOICE_VAD_THRESHOLD
Sensibilidad a la voz (0–1)
text
0.02
inmediatamente
A partir de qué volumen un sonido cuenta como voz. Menor: más sensible; el agente oye el habla baja, pero también el ruido. Por defecto 0.02.
Memory
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_EMBEDDER_DIM
Dimensión del modelo de búsqueda por significado
int
768
tras reiniciar
Dimensión del vector: debe coincidir con el modelo (multilingual-e5-base=768, bge-m3=1024).
AIHUMMER_EMBEDDER_KEEPALIVE
Incrustador keep-alive
text
5m
tras reiniciar
Cuánto tiempo sigue cargado el modelo de búsqueda por significado tras la última consulta (solo en modo «Por significado»). Por defecto 5m, 5 minutos: después el modelo se descarga y libera memoria y CPU. No se recomienda mantenerlo siempre (-1): un modelo bloqueado puede ocupar un núcleo de CPU durante días. Formato: 30s, 5m, 1h.
AIHUMMER_EMBEDDER_MODEL
Modelo de búsqueda por significado
text
yxchia/multilingual-e5-base
tras reiniciar
El modelo que permite buscar en la memoria por significado. El predeterminado multilingual-e5-base entiende ruso, es ligero y va rápido en una CPU normal. Para mejor calidad en GPU sirve bge-m3, pero entonces ponga 1024 en el ajuste de dimensión contiguo: el número debe coincidir con el modelo.
AIHUMMER_EMBEDDER_PASSAGE_PREFIX
Prefijo de paso de incrustador
text
—
tras reiniciar
Anule el prefijo del documento almacenado (los modelos e5 utilizan automáticamente “passage: “). Déjelo en blanco para realizar la detección automática por nombre de modelo.
AIHUMMER_EMBEDDER_QUERY_PREFIX
Prefijo de consulta de incrustador
text
—
tras reiniciar
Anule el prefijo de consulta de recuperación (los modelos e5 usan automáticamente “query: “). Déjelo en blanco para que se detecte automáticamente por nombre de modelo.
AIHUMMER_EMBEDDER_THREADS
Hilos de CPU del embedder
int 0…256
0
tras reiniciar
Cuántos hilos del procesador usa el modelo de búsqueda por significado en cada solicitud. 0 — automático: la mitad de los hilos del servidor, pero al menos 2. Sin límite, recalcular los vectores de la base de conocimiento en un servidor débil ocupaba todo el procesador durante horas y frenaba las respuestas de los agentes. Más — recálculo más rápido, pero más carga.
AIHUMMER_MEMORY_AGENT_WRITES
Hechos que el agente guarda por sí mismo
enum: strangers \\| immediate \\| review
strangers
inmediatamente
Qué pasa con lo que el agente recuerda por sí mismo, por ejemplo ante «recuerda esto». «Directo a la memoria; de desconocidos, a revisión» (predeterminado): directo a la memoria si lo dijo el propietario o el círculo de confianza del agente; de cualquier otra persona, a revisión. «Directo a la memoria»: el agente lo encuentra enseguida. «A revisión»: primero a la cola Memoria → revisión; llega a las respuestas solo tras su aprobación. En la ficha del agente (Memoria → Ajustes) se puede elegir otro modo.
AIHUMMER_MEMORY_AUTOREPAIR
Reparación automática de la memoria
bool
1
inmediatamente
Tras la autocomprobación, reparar la memoria: fusionar duplicados, cerrar las contradicciones con un ganador explícito (confirmado por una persona, fecha de evento posterior, fuente de más peso), volver a comprobar contra sus fuentes los hechos marcados como confirmados que ninguna persona confirmó (los no confirmados pasan a revisión, no se borra nada). Lo dudoso solo va a la cola. Cada corrección queda registrada con un botón para deshacerla; si después la memoria encuentra peor, la pasada se revierte sola y recibe una notificación. Se aplica al instante, sin reiniciar.
AIHUMMER_MEMORY_CAPTURE
Modo de captura de memoria
enum: auto \\| review \\| off
review
inmediatamente
Qué hacer con los hechos que el agente detecta por sí mismo en la conversación tras cada respuesta. «A revisión» los pone en la cola Memoria → revisión: llegan a las respuestas solo tras su aprobación. «Directo a la memoria» sin revisión: más rápido, pero con más ruido. «No guardar» no extrae nada de las conversaciones. Lo que el agente recuerda a petición se configura aparte.
AIHUMMER_MEMORY_CONTEXT_TIMEOUT
Tiempo de espera de hidratación de la memoria
text
3s
inmediatamente
Cuánto espera el agente a encontrar recuerdos relevantes antes de empezar a responder. Si la búsqueda tarda demasiado, el agente responde sin ellos en vez de quedarse colgado. Por ejemplo: 2s, 2 segundos; 1500ms, 1,5 segundos. 0: esperar lo necesario.
AIHUMMER_MEMORY_DIARY_BOOT
Diario del agente al inicio de la sesión
bool
1
inmediatamente
Mantener presente el diario del agente de hoy y de ayer en cada turno de una sesión, en cualquier canal: notas de sesiones anteriores, el resumen nocturno y las entradas del propio agente. Solo se muestran las entradas sobre el interlocutor actual y las comunes (suyas, subidas): un cliente nunca ve las de otro. Como máximo ~6000 caracteres; el resto lo lee el agente (memory_get). Se aplica de inmediato, sin reiniciar.
AIHUMMER_MEMORY_DIARY_HOUR
Hora del resumen nocturno
int
3
inmediatamente
A partir de qué hora (0–23, zona horaria de la instancia) se escribe el resumen del día anterior. Por defecto 3: de noche, cuando han terminado las conversaciones del día. Se aplica de inmediato, sin reiniciar.
AIHUMMER_MEMORY_DIARY_NIGHTLY
Resumen nocturno del día en el diario del agente
bool
1
inmediatamente
Una vez al día, escribir en el diario del agente un resumen del día anterior, por separado para cada persona con la que habló (todos los canales de esa persona juntos): qué se pidió y qué se hizo, acuerdos, tareas con fechas. Una llamada al modelo para tareas de servicio por agente y persona, como máximo 3 por pasada cada 10 minutos; los días perdidos se recuperan hasta una semana atrás. Se omiten las conversaciones con «no recuerdes». No se escribe mientras la captura de memoria esté desactivada. El resultado de la última pasada se ve en la ficha del agente → Memoria → Diario. Se aplica de inmediato, sin reiniciar.
AIHUMMER_MEMORY_DREAM_INTERVAL
Intervalo de paso de sueño
string
1h
inmediatamente
Con qué frecuencia los escaneos del pase de ensueño automantenido revisaron reclamos de contradicciones en todos los ámbitos (duración del recorrido, por ejemplo, 30 m/1 h/6 h). Establezca 0 para desactivar. Se aplica de inmediato, sin reiniciar.
AIHUMMER_MEMORY_EXTRACT
LLM extracción de hechos
bool
1
inmediatamente
Extraiga hechos normalizados de sujeto/predicado/objeto a través de LLM (activado por defecto) en lugar de almacenar fragmentos de oraciones sin procesar, lo cual es necesario para que se active la maquinaria de gráficos/contradicciones/sueños. Agrega una llamada LLM por mensaje capturado; active para guardar la llamada. Se aplica de inmediato, sin reiniciar.
AIHUMMER_MEMORY_MEANING_TIMEOUT
Tiempo límite de la búsqueda por significado
text
4s
inmediatamente
Cuánto espera una búsqueda en la memoria y en la base de conocimiento a la búsqueda por significado. Si el modelo de significado está ocupado (por ejemplo, calculando vectores tras una importación) y no responde a tiempo, el agente recibe de inmediato lo encontrado por palabras, con una nota, en lugar de esperar decenas de segundos. Por ejemplo: 4s — 4 segundos, 1500ms — 1,5 segundos. 0 — esperar lo que haga falta. Se aplica de inmediato, sin reinicio.
AIHUMMER_MEMORY_QUALITY_CHECK
Autocomprobación diaria de la memoria
bool
1
inmediatamente
Una vez al día la memoria se hace preguntas de control sobre sus hechos confirmados (hasta 60 hechos, las mismas preguntas cada día) y preguntas sin respuesta, las pasa por la búsqueda en memoria y el recuerdo automático y mide la exhaustividad, la precisión, el MRR y los falsos recuerdos. Resultado y gráfico diario: Memoria → Calidad de la memoria. Las preguntas sobre hechos nuevos las redacta una sola vez el modelo de servicio (el que extrae hechos de las conversaciones; sin él, con una plantilla); los resultados se quedan en la instancia. Se aplica al instante, sin reiniciar.
AIHUMMER_MEMORY_RECALL
Recuperación automática de memoria
enum: strong \\| always \\| off
strong
inmediatamente
Si lo encontrado en la memoria se añade automáticamente a la respuesta. «Solo coincidencias fuertes»: el hecho debe coincidir con el mensaje en al menos dos palabras importantes; saludos y «ok» no traen nada. «Todo lo parecido»: todo lo que coincidió de algún modo y los registros vinculados: más ruido. «No añadir»: el agente busca en la memoria por sí mismo cuando lo crea necesario.
AIHUMMER_MEMORY_RECALL_MAX
Hechos por respuesta
int
5
inmediatamente
Número máximo de hechos de memoria añadidos a una respuesta (predeterminado 5). Las reformulaciones del mismo hecho cuentan como uno. Se aplica de inmediato, sin reiniciar.
AIHUMMER_MEMORY_RECALL_MIN_SCORE
Coincidencia mínima para la recuperación automática, %
int
10
inmediatamente
Qué proporción de las palabras significativas del mensaje (ponderadas por rareza) debe cubrir un hecho para añadirse automáticamente, en porcentaje. Predeterminado 10, ajustado con conversaciones reales. Más alto = menos frecuente y más preciso; más bajo = más frecuente y con más ruido. No afecta a la búsqueda explícita memory_search. 0 = sin umbral: bastan dos palabras significativas coincidentes. Se aplica de inmediato, sin reiniciar.
AIHUMMER_MEMORY_RECALL_MIN_SIMILARITY
Similitud mínima de significado para la recuperación automática, %
int
86
inmediatamente
Solo para la búsqueda de memoria por significado (embedder): cuán cerca en significado del mensaje debe estar un hecho para añadirse automáticamente, en porcentaje de similitud. Por defecto 86: ajustado para el modelo multilingual-e5-base con memoria real; por debajo, se añaden hechos ajenos a casi cada mensaje. Otros modelos (por ejemplo bge-m3) miden la similitud de otra forma: elija un valor con «Preguntar a la memoria» en la ficha del agente. 0 = sin umbral. No afecta a la búsqueda explícita memory_search. Se aplica de inmediato, sin reiniciar.
AIHUMMER_MEMORY_RETRIEVAL
Modo de recuperación de memoria
enum: fulltext \\| embedding
fulltext
tras reiniciar
Cómo busca el agente en la memoria. «Por palabras» es la búsqueda de texto normal: funciona al instante y no carga el servidor. «Por significado» encuentra lo parecido en sentido, aunque se diga con otras palabras, pero necesita el modelo de búsqueda por significado (sección Servicios adicionales) y una carga de CPU notable.
AIHUMMER_QDRANT_API_KEY
Clave Qdrant API
text
—
tras reiniciar
Clave API de Qdrant, si el almacén vectorial requiere autorización. Solo es necesaria cuando se ha indicado la dirección de Qdrant. Se aplica al inicio/después del reinicio.
AIHUMMER_QDRANT_URL
Qdrant URL (almacén de vectores duraderos)
text
—
tras reiniciar
Dirección del almacén Qdrant para la búsqueda por significado. Vacío: los datos de búsqueda se guardan en memoria y se pierden al reiniciar el servidor; indique una dirección para uso permanente.
AIHUMMER_RAG_QUERY_EXPANSION
Reformular con el modelo las consultas a la base de conocimiento
bool
0
inmediatamente
Antes de buscar en la base de conocimiento, pedir al modelo para tareas de servicio 3 reformulaciones de la consulta y buscar con todas. A veces encuentra más, pero es una llamada extra al modelo en CADA búsqueda (cuota y latencia); si el modelo falla, solo se busca con la formulación original y el fallo aparece en el registro y en el resultado de la búsqueda. Desactivado por defecto: las palabras ya se encuentran con la búsqueda de texto completo. Se aplica de inmediato, sin reiniciar.
AIHUMMER_RERANKER_URL
RAG sidecar reranker URL
text
—
tras reiniciar
HTTP URL del sidecar del codificador cruzado para reclasificar la búsqueda híbrida. En blanco = reclasificación desactivada. Se aplica al inicio/después del reinicio.
Moderation
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_MODERATION
Moderación de entrada
bool
1
inmediatamente
“off” desactiva la protección integrada contra jailbreak/prompt-injection. Cualquier otro valor = activada. Se aplica de inmediato, sin reiniciar.
AIHUMMER_MODERATION_REFUSAL
Mensaje de rechazo de moderación
text
—
inmediatamente
Texto de rechazo que se devuelve cuando el moderador bloquea una solicitud (en blanco = integrado). Se aplica de inmediato, sin reiniciar.
Network
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_OUTBOUND_PROXY_CUSTOM_URL
Proxy saliente: dirección propia
text
—
inmediatamente
URL de proxy HTTPS; HTTP solo en loopback, sin ruta, consulta ni fragmento. Guarda la dirección antes de elegir custom. Se oculta en la API y se almacena en los ajustes de la aplicación.
AIHUMMER_OUTBOUND_PROXY_MODE
Proxy saliente para proveedores de modelos extranjeros
enum: auto \\| off \\| custom
auto
inmediatamente
Cómo llega el servidor a los proveedores de modelos extranjeros. «Según el proveedor»: como esté configurado en la cuenta del proveedor; «Directo, sin proxy»: sin intermediarios; «A través de su propio proxy»: mediante la dirección que guardó abajo. Que funcione depende de las reglas de cada proveedor.
AIHUMMER_RUSSIAN_TRUSTED_EXTRA_HOSTS
Hosts fuera de .ru para las raíces del Ministerio de Desarrollo Digital de Rusia
list
—
tras reiniciar
Lista de hosts, separados por comas, que pueden ser verificados por las raíces de Ministerio de Desarrollo Digital de Rusia SOBRE dominios rusos (.ru/.su/.рф - ya incluido). Es necesario si su nodo con el certificado Ministerio de Desarrollo Digital de Rusia se encuentra en un dominio diferente. Coincidencia por nombre o límite de subdominio: ejemplo.com cubre api.ejemplo.com. Vacío = solo dominios rusos. Se aplica al inicio/después del reinicio.
Performance
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_CHANNEL_TURN_QUEUE_WAIT_SEC
Espera en cola: mensaje de canal (segundos)
int 10…1200
600
inmediatamente
Cuánto espera un mensaje de canal (Telegram y otros) a que haya un hueco libre cuando todos los huecos de turnos están ocupados. Si no lo consigue a tiempo, se avisa a la persona de que el servidor está ocupado y puede volver a escribir. La espera cuenta dentro del límite de 30 minutos del turno. 10–1200. Se aplica al instante.
AIHUMMER_MAX_ACTIVE_TURNS
Turnos de agentes simultáneos (todo el servidor)
int 1…512
32
inmediatamente
Cuántos turnos de agentes (respuestas en canales y en el chat web, programaciones) ejecuta el servidor a la vez. El resto espera en cola tanto tiempo como permitan los ajustes «Espera en cola» de abajo, y la persona ve «servidor ocupado, en cola». Un valor mayor reduce la espera, pero usa más memoria, conexiones a la base de datos y peticiones simultáneas al modelo. La mitad de este número limita las llamadas auxiliares simultáneas al modelo (extracción de memoria, resúmenes). 1–512. Se aplica al instante.
AIHUMMER_SYNC_INBOUND_QUEUE_WAIT_SEC
Espera en cola: llamada síncrona de integración (segundos)
int 1…120
10
inmediatamente
Cuánto espera a que haya un hueco libre la llamada de una integración que aguarda la respuesta en la misma petición, cuando todos los huecos de turnos están ocupados. Si no lo consigue, la integración recibe «servidor ocupado» con el consejo de reintentar tras el mismo número de segundos; un reintento con el mismo número de mensaje no lo guarda dos veces. 1–120. Se aplica al instante.
AIHUMMER_WEB_TURN_QUEUE_WAIT_SEC
Espera en cola: mensaje del chat web (segundos)
int 10…1200
180
inmediatamente
Cuánto espera un mensaje del chat web a que haya un hueco libre cuando todos los huecos de turnos están ocupados. Mientras tanto el chat muestra «servidor ocupado, en cola»; si no lo consigue a tiempo, la respuesta se rechaza con un botón «Reintentar» que sigue en el historial incluso tras recargar la página. 10–1200. Se aplica al instante.
Public access
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_PUBLIC_URL
Dirección pública del servidor
text
—
parcialmente tras reiniciar
La dirección desde la que el panel y las apps se abren en internet, p. ej. https://ai.example.com. Diríjala a través de su proxy (nginx, Caddy) al puerto del servidor, 8780 por defecto.
AIHUMMER_WIDGET_ALLOWED_ORIGINS
Widget web: orígenes de sitio permitidos
list
—
inmediatamente
Lista separada por comas de orígenes del navegador autorizados a insertar el widget de chat web, por ejemplo https://example.com,https://www.example.com. El esquema y el puerto deben coincidir exactamente. Vacío = ningún sitio externo puede usar el widget. La entrada * se ignora de forma intencionada, porque permitiría que cualquier página de internet gastara el presupuesto de esta instancia.
POCKET_AGENT_GATEWAY_BASE_URL
Puerta de enlace de agente de bolsillo público URL
text
—
inmediatamente
Proxy → el puerto de puerta de enlace del agente de bolsillo (POCKET_AGENT_PORT, predeterminado 8080. El agente remoto marca esto mediante un ticket único.
TELEGRAM_PUBLIC_URL
Webhook de Telegram público URL
text
—
inmediatamente
Solo modo webhook: proxy → el puerto del conector de telegramas (predeterminado 8091). URL necesario).
SSO (LDAP/AD)
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_LDAP_BASE_DN
DN de base de búsqueda de usuario
text
—
tras reiniciar
Raíz de búsqueda, p. OU=Users,DC=corp,DC=example.
AIHUMMER_LDAP_BIND_DN
DN de enlace de servicio
text
—
tras reiniciar
Cuenta utilizada para el enlace de búsqueda inicial, p. CN=svc-aihummer,OU=Servicio,DC=corp,DC=ejemplo. En blanco = búsqueda anónima.
AIHUMMER_LDAP_DEFAULT_ROLE
LDAP: rol predeterminado (no hay coincidencia de grupo)
text
—
tras reiniciar
Rol otorgado cuando ningún grupo coincide con una asignación. En blanco = sin función.
AIHUMMER_LDAP_ENABLED
Habilitar LDAP/inicio de sesión AD
bool
0
tras reiniciar
Cuando está activado, los inicios de sesión de administrador vuelven al directorio. La contraseña de vinculación se encuentra en Secretos (alcance ldap, nombre bind_password).
AIHUMMER_LDAP_GROUP_ATTR
Atributo de grupo (predeterminado memberOf)
text
—
tras reiniciar
Atributo en los DN del grupo de lista de entradas de usuario. En blanco se deshabilita la asignación de grupo → rol.
AIHUMMER_LDAP_ROLE_MAPPINGS
LDAP: grupo→asignaciones de roles (JSON)
text
—
tras reiniciar
JSON objeto del grupo DN (o CN simple) → rol, p.e. {“CN=Admins,OU=Groups,DC=corp,DC=example”:“admin”,“Operators”:“operator”}.
AIHUMMER_LDAP_SKIP_TLS_VERIFY
Omitir verificación TLS (solo laboratorio, 1/0)
bool
0
tras reiniciar
Deshabilita la verificación del certificado de directorio. Nunca habilite en producción.
AIHUMMER_LDAP_URL
Directorio URL
text
—
tras reiniciar
p.ej. ldaps://ad.corp.example:636 (TLS) o ldap://dc1.corp.example:389.
AIHUMMER_LDAP_USER_ATTR
Atributo de inicio de sesión (predeterminado sAMAccountName)
text
—
tras reiniciar
El atributo LDAP/Active Directory coincide con el inicio de sesión que escribe el usuario (sAMAccountName predeterminado; uid para OpenLDAP, userPrincipalName para inicios de sesión de estilo UPN).
AIHUMMER_LDAP_USER_FILTER
Filtro de búsqueda de usuario
text
—
tras reiniciar
Debe contener %s para el inicio de sesión. ANUNCIO: (sAMAccountName=%s); OpenLDAP: (uid=%s).
SSO (OIDC)
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_OIDC_AUDIENCE
OIDC audiencia
text
—
tras reiniciar
Reclamo aud esperado: establezca esto en la audiencia del recurso THIS para rechazar los tokens acuñados para otra parte de confianza. El reclamo aud ahora es REQUIRED en cada token de forma predeterminada (un token sin aud se rechaza cuando está configurado, aud también debe contenerlo). en producción.
AIHUMMER_OIDC_ISSUER
OIDC emisor URL
text
—
tras reiniciar
El emisor del IdP (por ejemplo, https://login.example.com). habilita la autenticación OIDC JWT cuando está configurada.
AIHUMMER_OIDC_JWKS_URL
URL de JWKS de OIDC
text
—
tras reiniciar
JSON Punto final del conjunto de claves web utilizado para verificar las firmas de tokens.
AIHUMMER_OIDC_TENANT_CLAIM
OIDC reclamo de espacio de trabajo
text
—
tras reiniciar
JWT reclamo que lleva la identificación del espacio de trabajo (por ejemplo, tenant_id / org).
SSO (SAML)
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_SAML_DEFAULT_ROLE
SAML: Rol predeterminado (sin grupo) coincidencia)
text
—
tras reiniciar
Rol otorgado cuando no se asigna ningún valor afirmado. En blanco = sin función.
AIHUMMER_SAML_ENABLED
Habilitar SAML 2.0 SSO
bool
0
tras reiniciar
Expone /saml/metadata, /saml/acs, /saml/login. La clave privada del SP se encuentra en Secretos (alcance saml, nombre sp_key).
AIHUMMER_SAML_ENTITY_ID
ID de entidad SP
text
—
tras reiniciar
ID de entidad del SP (el valor predeterminado es ⟨root⟩/saml/metadata si está en blanco).
AIHUMMER_SAML_IDP_METADATA
Metadatos de IdP XML
text
—
tras reiniciar
Pegue el documento de metadatos SAML del IdP (Okta/Azure AD/ADFS).
AIHUMMER_SAML_ROLE_ATTRIBUTE
Atributo de rol/grupo (grupos predeterminados)
text
—
tras reiniciar
Atributo de aserción que lleva valores de grupo/rol.
AIHUMMER_SAML_ROLE_MAPPINGS
SAML: Grupo→asignaciones de roles (JSON)
text
—
tras reiniciar
JSON objeto de valor afirmado → rol, p.e. {“AdminGroup”:“admin”,“Ops”:“operator”}.
AIHUMMER_SAML_ROOT_URL
SP raíz URL
text
—
tras reiniciar
Base accesible externamente URL de esta puerta de enlace, p. https://app.example.com. ACS = ⟨root⟩/saml/acs.
AIHUMMER_SAML_SP_CERT
Certificado SP (PEM)
text
—
tras reiniciar
Certificado de firma de SP público (PEM). La clave privada correspondiente va en Secretos (alcance saml, nombre sp_key).
Schedules
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_SCHEDULE_AGENT_MAX_ACTIVE
Agente: límite de programaciones activas
int
20
inmediatamente
Cuántas programaciones activas puede tener un agente cuando crea o activa una programación por sí mismo (con sus herramientas de programación). Las creadas en el panel cuentan para el límite, pero al panel nunca se le rechaza. Al llegar al límite, se pide al agente que primero pause o elimine una. Se aplica de inmediato.
AIHUMMER_SCHEDULE_AGENT_MAX_FIRES_PER_DAY
Agente: ejecuciones de programaciones por día
int
288
inmediatamente
Cuántas veces al día (UTC) pueden ejecutarse en total todas las programaciones de un agente, incluidas las creadas en el panel y las ejecuciones manuales. Las ejecuciones por encima del límite se omiten y se muestran en el registro de ejecuciones. Se aplica de inmediato.
AIHUMMER_SCHEDULE_AGENT_MIN_INTERVAL_MINUTES
Agente: intervalo mínimo de programación, minutos
int
5
inmediatamente
El menor intervalo entre dos ejecuciones de una programación periódica que un agente crea o cambia por sí mismo. Una programación más frecuente se rechaza. Las programaciones creadas en el panel no están limitadas por esto. Se aplica de inmediato.
AIHUMMER_SCHEDULE_COMMANDS
Comandos en el servidor en las programaciones
bool
0
inmediatamente
Permite que una programación ejecute un programa en este servidor: un recopilador, un informe, una comprobación de copia de seguridad. Desactivado por defecto. Solo se ejecutan los comandos de «Comandos permitidos», exactamente como están escritos; no hay shell. La salida va al agente o directamente a un chat, y cada ejecución aparece en el registro de la programación. Se aplica de inmediato.
AIHUMMER_SCHEDULE_COMMANDS_ALLOWLIST
Comandos permitidos
argvlist
—
inmediatamente
Los comandos exactos que puede ejecutar una programación: el programa (un nombre como df o una ruta completa) y sus argumentos. Una programación solo ejecuta un comando que coincide exactamente con una entrada, argumentos incluidos. Quitar un comando detiene las programaciones que lo usan, y sus ejecuciones indican el motivo. Se aplica de inmediato.
AIHUMMER_SCHEDULE_COMMANDS_MAX_OUTPUT_KB
Límite de salida de los comandos programados, KB
int 1…1024
64
inmediatamente
Cuánta salida de un comando (1–1024 KB) se guarda en el registro y se pasa al agente o al chat; el resto se corta y el registro lo indica. Se aplica de inmediato.
AIHUMMER_SCHEDULE_COMMANDS_SANDBOX
Ejecutar los comandos programados en el entorno aislado del sistema
bool
1
inmediatamente
Activado: el comando se ejecuta en el entorno aislado del sistema, como la ejecución de código; los secretos de la instalación y las claves SSH quedan ocultos y solo escribe en su propia carpeta temporal. Sin entorno aislado (bubblewrap) en el servidor, el comando no se ejecuta y el registro dice por qué. Desactivado: se ejecuta con los permisos de la pasarela. Se aplica de inmediato.
AIHUMMER_SCHEDULE_FAILURE_ADMIN
Avisar al administrador de las tareas fallidas
bool
1
inmediatamente
Cuando una tarea programada falla o no puede empezar, aparece en la campana de notificaciones del panel un aviso con su nombre, el motivo y dónde corregirlo, y lo mismo se envía a los chats de canal propios de los propietarios (como máximo una vez cada 6 horas por tarea). Esto se suma al mensaje al destinatario de la tarea. Desactivado: el administrador solo se entera de los fallos por el registro de ejecuciones. Se aplica de inmediato.
AIHUMMER_SCHEDULE_FAILURE_NOTIFY
Avisar al destinatario si una tarea falla
bool
1
inmediatamente
Cuando una tarea programada falla, el mismo destinatario recibe un mensaje breve (tras el primer fallo, como máximo una vez cada 6 horas). Desactivado: los fallos quedan solo en el registro de ejecuciones. Cada tarea puede desactivarlo en su formulario. Se aplica de inmediato.
Security
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_AIRGAPPED
Modo aislado (sin internet)
bool
0
inmediatamente
Impide que los agentes salgan a internet: la búsqueda web, la apertura de páginas y las peticiones solo llegan a direcciones internas y a las de las listas permitidas. Actívelo en redes cerradas sin salida al exterior.
AIHUMMER_AUDIT_RETENTION_DAYS
Cuántos días conservar el registro de acciones
int
0
tras reiniciar
Las entradas del registro de auditoría y del historial de cambios de la configuración más antiguas se eliminan una vez al día. 0 o vacío: conservar siempre.
AIHUMMER_CORS_ORIGINS
Orígenes CORS permitidos
list
—
tras reiniciar
Lista de orígenes permitidos separados por comas. En blanco = CORS no permitido (solo del mismo origen). Se aplica al inicio/después del reinicio.
AIHUMMER_CSP
Encabezado Content-Security-Policy (anulación)
text
—
tras reiniciar
Anula el encabezado CSP. En blanco = un valor predeterminado seguro. Se aplica al inicio/después del reinicio.
AIHUMMER_INBOUND_SECRET
Clave de los plugins de canal con el servidor
text
—
tras reiniciar
Los canales conectados (Telegram, VK y otros) la usan para demostrar que los mensajes vienen realmente de ellos. Se fija automáticamente al instalar: no hace falta cambiarla. Si está vacía, el servidor rechaza todos los canales hasta que se defina una clave.
AIHUMMER_OPENAI_COMPAT_KEY
Entrante compatible con OpenAI: clave estática API
text
—
tras reiniciar
Una clave común para programas que se conectan al servidor como a un servicio compatible con OpenAI. Vacío: la clave común está desactivada; se puede conectar con claves personales de la página Claves de API.
AIHUMMER_OPENAI_COMPAT_WORKSPACE
Entrante compatible con OpenAI: ID del espacio de trabajo
text
—
tras reiniciar
Id. del espacio de trabajo al que se asigna la autenticación estática compatible con OpenAI. En blanco = AIHUMMER_DEFAULT_WORKSPACE_ID. Se aplica al inicio/después del reinicio.
AIHUMMER_REQUIRE_2FA
Requiere 2FA para operadores
bool
0
inmediatamente
Requiere un segundo factor (TOTP/contraseña) para los operadores. Cuando está activado, se solicita a los operadores sin 2FA que lo configuren inmediatamente al iniciar sesión (sin bloquear, por lo que el propietario nunca queda bloqueado). Aplicado inmediatamente.
AIHUMMER_REQUIRE_SECURE
Aceptar solo conexiones seguras (HTTPS/WSS)
bool
0
tras reiniciar
Cuando está activado, las solicitudes HTTP simples se redirigen a HTTPS (para GET/HEAD) o se rechazan (403); El acceso al host local siempre está permitido, por lo que el operador nunca queda excluido. Honra X-Forwarded-Proto desde un proxy inverso con terminación TLS. Se aplica al inicio/después del reinicio.
AIHUMMER_TRUSTED_PROXIES
Proxies de confianza
list
—
inmediatamente
Si hay un proxy (nginx, Caddy, balanceador) delante del servidor, escriba su dirección o red separadas por comas, p. ej. 10.0.0.0/8. Así el registro de acciones, la lista de IP permitidas y la protección contra adivinar contraseñas verán la dirección real del visitante. Vacío: solo cuenta la dirección de la conexión directa y no se puede falsificar.
Tools
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_BROWSER_ALLOWED_HOSTNAMES
Navegador: excepciones de hosts privados
list
—
inmediatamente
Nombres exactos separados por comas, sin comodines, URL ni puertos. Excepciones privadas adicionales para CDP nativo en servidor propio, aparte de web_fetch.
AIHUMMER_BROWSER_ALLOW_PRIVATE_NETWORK
Navegador: permitir la red privada
bool
—
inmediatamente
Vacío conserva la política anterior; true o false activa el CDP nativo comprobado. Acceso privado solo en servidor propio. Loopback, enlace local y metadatos siguen bloqueados.
AIHUMMER_BROWSER_PROFILE_SOCKET
Socket de control de perfiles del navegador
text
—
inmediatamente
Opcional. Déjalo vacío: la pasarela encuentra por sí misma managed-profiles.sock del servicio del navegador en la ubicación de instalación estándar. Los perfiles con sesión en sitios se crean en Conexiones → Perfiles del navegador. No es una URL ni la ruta de un perfil de origen.
AIHUMMER_CODE_EXEC
Ejecución de código por el agente
enum: off \\| host \\| sandbox
off
inmediatamente
La herramienta de ejecución de código del agente (code_exec). «Desactivado» es el valor predeterminado. «En este servidor»: los comandos se ejecutan en el servidor de la pasarela; la zona de pruebas del sistema operativo (bubblewrap) oculta los secretos de la instalación, pero un agente en modo «Sin restricciones» ve las claves SSH y puede escribir fuera de su carpeta; solo para un servidor de confianza. «Solo en zona de pruebas»: siempre en la zona de pruebas del sistema operativo; los secretos y las claves quedan ocultos y solo se escribe en la carpeta del agente; sin bubblewrap (o una imagen de contenedor) este modo no se puede guardar. Lo que cada agente puede ejecutar se define en el agente: Agentes → perfil → Herramientas.
Puertos TCP a los que puede conectarse el código del agente en el entorno aislado del sistema operativo (ejecución de código y comandos de programación), separados por comas. Por defecto 53, 80 y 443: DNS y sitios web. Los demás servicios de este servidor y de su red local (la base de datos, el panel de administración, el navegador, adb, los modelos locales, Home Assistant) quedan cerrados al código del agente. Un puerto de la lista está abierto en cualquier dirección, también en este servidor, así que añada solo lo que el código necesita, por ejemplo 22 para SSH. Escriba any para quitar el límite. Los agentes en modo «Sin restricciones» no están limitados. Requiere Linux 6.7 o posterior; sin él el límite no se aplica y Agentes → Herramientas lo indica. Se aplica de inmediato.
AIHUMMER_CODE_EXEC_READ_DIRS
Carpetas abiertas al código del agente (solo lectura)
list
—
inmediatamente
Carpetas de este servidor que el código del agente puede leer: ejecución de código y comandos de programación en el entorno aislado del sistema operativo. Separadas por comas o una por línea, por ejemplo ~/reports. También puede indicar un solo archivo, por ejemplo ~/scripts/report.py. Lo que se abre aquí es visible para el código de todos los agentes, así que abra solo lo que ese código necesita. Vacío por defecto: en el entorno aislado el código solo ve la carpeta de su agente y las carpetas del sistema; la carpeta personal del usuario de la pasarela, los datos de la instalación, las carpetas de otros agentes, las claves y el historial de comandos permanecen ocultos. No se pueden abrir la raíz, toda la carpeta personal, los datos de la instalación ni los lugares con claves. El código no puede escribir en estas carpetas. Se aplica de inmediato.
AIHUMMER_CODE_EXEC_SANDBOX_IMAGE
Imagen de zona de pruebas de Code-exec
text
—
inmediatamente
Opcional, solo para «Solo en zona de pruebas»: una imagen de contenedor Docker en lugar de la zona de pruebas del sistema operativo (sin red, raíz de solo lectura, límites); requiere Docker en el servidor. Vacío = la zona de pruebas del sistema operativo (bubblewrap).
AIHUMMER_CODE_EXEC_TIMEOUT_SECONDS
Límite de tiempo de ejecución de código (segundos)
int
1800
inmediatamente
Cuánto puede durar un comando del agente, incluidos los de segundo plano: de 10 segundos a 24 horas. Un comando que no responde en 30 segundos no se corta, sino que pasa a segundo plano, donde el agente lo revisa con la herramienta process. El agente puede pedir un límite menor, nunca mayor.
AIHUMMER_DB_QUERY_DSN
Conexión a la base de datos para la herramienta de consultas
text
—
inmediatamente
Cadena de conexión a una base de datos que el agente puede leer (solo lectura), p. ej. postgres://reader:contraseña@host/db. Use un usuario con permisos mínimos, no el propietario de la base. Vacío: la herramienta está desactivada.
AIHUMMER_FS_ROOT
Raíz de la herramienta del sistema de archivos
text
—
inmediatamente
La carpeta dentro de la cual el agente lee los archivos del servidor (filesystem_read; los agentes no pueden escribir archivos). Vacío = todo el servidor con los permisos del usuario del gateway, salvo sus secretos: ajustes de instalación (gateway.env), claves SSH/GPG y entornos de procesos. Indique una carpeta para restringir el acceso.
AIHUMMER_HTTP_ALLOWLIST
Direcciones para las peticiones HTTP del agente
list
—
inmediatamente
Lista de hosts separados por comas a los que la herramienta http_request puede acceder. En blanco = se permiten todos, salvo las direcciones internas y privadas.
AIHUMMER_HTTP_AUTH_JSON
autenticación http_request (JSON)
text
—
inmediatamente
Mapa JSON que asocia el host con las cabeceras de autorización para la herramienta http_request, para no guardar los tokens en el prompt. En blanco = sin autorización.
AIHUMMER_MCP_SERVERS
MCP servidores (JSON)
text
—
inmediatamente
Descripción en JSON de los servidores MCP externos cuyas herramientas se conectan al agente. En blanco = sin MCP externos.
AIHUMMER_PROJECT_STUDIOS_PUBLIC_NETWORK
Estudios de proyectos: red pública
bool
false
inmediatamente
Permitir HTTP(S) público para los proveedores elegidos y las descargas de modelos solicitadas expresamente. Las direcciones privadas, locales y de metadatos siguen bloqueadas. El modo sin conexión tiene prioridad. Se aplica de inmediato.
AIHUMMER_SIDECAR_CLOAKBROWSER
Navegador para el agente (CloakBrowser)
bool
0
inmediatamente
Navegador antidetección (herramientas CloakBrowser, browser/computer). Lo que NO está incluido en el paquete de entrega: la inclusión descarga el complemento firmado (~477 MiB, de los cuales Chromium ~207 MiB) e instala el servicio en el host. El complemento más pesado: habilítelo solo si el agente necesita abrir sitios web.
AIHUMMER_SIDECAR_SEARXNG
Búsqueda web (SearXNG)
bool
0
inmediatamente
Búsqueda web (herramienta SearXNG, web_search). NO incluido en el paquete: al activarlo se descarga el complemento firmado (~154 MiB) e instala el servicio en el host; al desactivarlo se detiene y se libera espacio. La instalación se produce en segundo plano y tarda unos minutos; el estado aquí muestra lo que realmente hay en el servidor.
AIHUMMER_WEBFETCH_ALLOWLIST
Sitios que el agente puede abrir
list
—
inmediatamente
Lista de dominios separados por comas a los que la herramienta web_fetch puede acceder. En blanco = se permiten todos, salvo las direcciones internas y privadas.
AIHUMMER_WEB_SEARCH_LANGUAGE
Búsqueda web: idioma predeterminado de los resultados
text
auto
inmediatamente
Idioma de los resultados cuando el agente no indica uno: un código como ru, en o de, o auto para detectarlo a partir de la consulta (sirve casi siempre). El agente puede elegir otro idioma en una búsqueda concreta.
AIHUMMER_WEB_SEARCH_RESULTS
Búsqueda web: resultados por búsqueda
int
5
inmediatamente
Cuántos resultados devuelve una búsqueda cuando el agente no pide una cantidad: de 1 a 10. Más resultados dan una respuesta más completa, pero un contexto más largo.
AIHUMMER_WEB_SEARCH_SOURCE
Fuente de búsqueda web
enum: auto \\| searxng \\| provider
auto
inmediatamente
Dónde busca el agente en internet (la herramienta web_search). auto: SearXNG si está instalado; si no, la búsqueda integrada del proveedor del modelo. searxng: solo SearXNG; sin él no hay búsqueda. provider: la búsqueda integrada del proveedor donde exista y SearXNG para los demás modelos. La búsqueda integrada existe en Codex (suscripción de ChatGPT) y OpenAI (api.openai.com); GigaChat, YandexGPT y otros modelos compatibles con OpenAI no la tienen: sin SearXNG, los agentes con esos modelos no buscan. Claude (api.anthropic.com y la suscripción de Claude) usa la búsqueda integrada de Anthropic; si la cuenta la rechaza, la pasarela lo anota en el registro y a partir de ahí ofrece al agente solo SearXNG. Qué agentes pueden buscar se configura en la ficha del agente, como antes. Se aplica desde el siguiente turno.
AIHUMMER_WEB_SEARCH_TIMEOUT_SECONDS
Tiempo de búsqueda web (segundos)
int
30
inmediatamente
1–600 segundos por búsqueda. Sigue vigente un plazo de tarea más corto.
Updates
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_RESTART_APPLY
Aplicar los ajustes que requieren reinicio
enum: quiet \\| manual
quiet
inmediatamente
quiet (predeterminado): los ajustes guardados que solo surten efecto con un nuevo arranque de la pasarela se aplican solos: la pasarela se reinicia en el siguiente momento tranquilo, cuando los agentes no hacen nada y las personas llevan en silencio al menos la ventana de silencio. manual: solo la marca «esperando reinicio» y el botón. Un reinicio dura unos segundos; las conversaciones y las tareas no se pierden. Se aplica de inmediato.
AIHUMMER_RESTART_QUIET_MINUTES
Momento tranquilo: minutos de silencio antes de un reinicio automático
int 0…1440
10
inmediatamente
Cuántos minutos deben callar las personas (y estar inactivos los agentes) antes de que la pasarela se reinicie sola para aplicar los ajustes guardados. 0: en cuanto los agentes terminen su trabajo actual. 0–1440. Se aplica de inmediato.
Web UI (separate port)
Clave
Nombre
Tipo
Predeterminado
Se aplica
Qué hace
AIHUMMER_WEBUI_API_BASE
Dirección del servidor para un panel alojado aparte
text
—
tras reiniciar
Solo hace falta si el panel se abre desde una dirección distinta a la del propio servidor. Indique la dirección por la que el navegador llega al servidor, p. ej. https://api.example.com. Vacío: se usa la dirección pública del servidor o, si no hay, la local.
AIHUMMER_WEBUI_ENABLED
Panel en un puerto aparte
bool
1
tras reiniciar
Activado: el panel se abre en un puerto interno aparte que puede cerrar a internet, y el puerto público solo atiende apps y canales. Desactívelo para que el panel no esté disponible en absoluto.
AIHUMMER_WEBUI_ORIGIN
Dirección desde la que se abre el panel
text
—
tras reiniciar
Rellénelo si el panel se abre a través de un proxy o con un nombre distinto de la dirección de su puerto, p. ej. https://admin.example.com. El servidor permitirá que un navegador desde esa dirección se comunique con él. Vacío: se usa la dirección del puerto del panel.
Ajustes disponibles para el operador: 237.
Aquí se enumeran todos los ajustes que el operador puede cambiar en un servidor AiHummer. La página se genera del catálogo del propio producto, por eso coincide con su servidor.
El valor se establece en la interfaz web o con el comando `aihummer settings set KEY VALUE` ([Línea de comandos](/es/v1.4/reference/cli/)). La columna del valor predeterminado muestra lo que usa el servidor mientras no se defina un valor propio.
> [!NOTE]
> Los valores secretos nunca se imprimen aquí y las claves de servicio del proveedor no se enumeran: el producto las oculta de todas las listas. Un guion significa valor vacío o una explicación que solo se muestra en la interfaz web.
## API
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_PERSONAL_API_KEYS` | Claves personales API para compatibilidad con OpenAI | `bool` | `1` | tras reiniciar | "off" deshabilita la autenticación de clave personal en el punto final compatible con OpenAI. Cualquier otro valor = habilitado. Se aplica al inicio/después del reinicio. |
## Agent
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_AGENT_ANNOUNCE_SLOW_TOOLS` | Agente: avisar antes de acciones largas | `bool` | `1` | inmediatamente | Antes de una acción larga (una imagen, una investigación a fondo, un vídeo, un encargo a un subagente) el agente escribe brevemente qué está haciendo, para que la espera no sea muda. Desactívelo si esos mensajes molestan. |
| `AIHUMMER_AGENT_COMPACT_AT_PCT` | Agente: compactar el historial a partir de, % de su presupuesto | `int 50…99` | `85` | inmediatamente | Cuando el historial de una conversación llena esta parte de su espacio en la ventana del modelo, los mensajes antiguos se resumen, en segundo plano y tras la respuesta; el turno no espera. Más bajo: compacta más a menudo, pero el modelo recuerda menos literalmente; más alto: con menos frecuencia, pero los turnos pesan más. 50–99; un agente puede sustituirlo. |
| `AIHUMMER_AGENT_COMPACT_TO_PCT` | Agente: conservar tras compactar, % del presupuesto del historial | `int 10…90` | `50` | inmediatamente | Cuánto del espacio del historial queda literal tras la compactación; todo lo más antiguo pasa al resumen. Debe ser menor que el umbral de compactación: la distancia entre ambos marca cuántos turnos pasan hasta la siguiente compactación. 10–90; un agente puede sustituirlo. |
| `AIHUMMER_AGENT_HISTORY_TURNS` | Agente: turnos del diálogo conservados literalmente | `int 1…1000` | `30` | inmediatamente | Cuántos turnos recientes de una conversación ve el modelo literalmente (hasta 10 más antes de comprimir). Los mensajes anteriores se resumen en segundo plano; la conversación nunca se borra. La ventana de contexto del modelo se respeta automáticamente. 1–1000; cada agente puede cambiarlo. |
| `AIHUMMER_AGENT_MAX_ITERATIONS` | Agente: máximo de pasos con herramientas por turno | `int 1…256` | `25` | inmediatamente | Cuántas veces por turno puede un agente llamar a herramientas antes de responder. Al llegar al límite el turno no falla: el agente informa de lo hecho y lo pendiente, y puede pedirle que continúe. Tres llamadas idénticas seguidas con el mismo resultado detienen el turno antes. 1–256; cada agente puede cambiarlo. |
| `AIHUMMER_AGENT_MEMORY_FLUSH` | Agente: guardar una nota en memoria antes de comprimir | `bool` | `1` | inmediatamente | Antes de condensar los mensajes antiguos en un resumen, el agente guarda en memoria una nota breve sobre objetivos, decisiones y tareas pendientes. Desactívelo para ahorrar la llamada al modelo. |
| `AIHUMMER_AGENT_MEMORY_FLUSH_PROMPT` | Agente: qué guarda la nota antes de compactar | `text` | — | inmediatamente | Su propia tarea para la nota antes de compactar: qué guardar de los mensajes que pasan al resumen (por ejemplo, «anota solo compras, plazos y acuerdos»). Vacío: la integrada, con objetivos, decisiones y tareas pendientes. La protección no se puede desactivar: el texto de la conversación sigue siendo datos, no instrucciones, y nunca se guardan contraseñas ni claves. Hasta 4000 caracteres; un agente puede tener la suya. |
| `AIHUMMER_AGENT_NEW_REMINDERS_MEMORY` | Agentes nuevos: recordatorios y escritura en la memoria | `bool` | `1` | inmediatamente | Un agente nuevo creado a mano (asistente del primer arranque, «Crear agente», API) crea, cambia y cancela desde el primer turno sus PROPIOS recordatorios y programaciones y escribe hechos en su propia memoria, como la plantilla de asistente personal. Para un agente concreto se desactiva en su ficha (Capacidades). Las plantillas de la biblioteca deciden por sí mismas, una copia conserva los derechos del original, los agentes creados por otro agente empiezan sin ellos; los agentes existentes no cambian. Se aplica al siguiente agente que se cree. |
| `AIHUMMER_AGENT_PROMPT_PART_MAX_CHARS` | Agente: máximo de caracteres por parte del prompt | `int 1000…1000000` | `20000` | inmediatamente | Cuántos caracteres recibe el modelo de UNA parte de la personalidad del agente: una sección del perfil, una parte del prompt o el prompt principal. Una parte más larga conserva el inicio (3/4) y el final (1/4) con una nota de cuánto se recortó; se muestra en la ficha de la conversación y en la composición del prompt del agente. El nombre, el trato y las restricciones de la personalidad nunca se recortan. 1000–1000000; un agente puede tener su propio valor. |
| `AIHUMMER_AGENT_PROMPT_TOTAL_MAX_CHARS` | Agente: máximo de caracteres de toda la personalidad | `int 1000…2000000` | `60000` | inmediatamente | Límite total de la personalidad del agente: todas las partes juntas. Si se supera, las partes más largas ceden espacio primero y las cortas quedan enteras. 1000–2000000; un agente puede tener su propio valor. |
| `AIHUMMER_AGENT_SELF_INTRO` | Agente: presentarse | `enum: first_contact \\\| each_dialog \\\| never` | `first_contact` | inmediatamente | «Una vez, al conocer a alguien»: el agente se presenta brevemente en su primera conversación con una persona, salvo que quiera ir directo al grano; con alguien conocido no vuelve a presentarse y responde al saludo con naturalidad. «No presentarse nunca»: el agente nunca dice su nombre por iniciativa propia. «Al comienzo de cada nueva conversación» — al comienzo de cada nueva conversación y tras una pausa larga, brevemente y sin resumir asuntos pasados. Un agente puede elegir otra cosa en su ficha («Contexto y comportamiento»). |
| `AIHUMMER_AGENT_SESSION_IDLE_RESET_MINUTES` | Agente: empezar la conversación de nuevo tras un silencio (minutos) | `int 0…525600` | `360` | inmediatamente | Para «tras un silencio» y «cada día y tras un silencio»: si alguien escribe tras un silencio más largo que este, el agente empieza la conversación de nuevo. Se aplica a los agentes sin valor propio en su ficha. 0: no por silencio. 0–525600; 360 = 6 horas, 1440 = un día. |
| `AIHUMMER_AGENT_SESSION_INDEX_MAX_ENTRIES` | Agente: mantener como máximo estas sesiones en la lista | `int 0…100000` | `0` | inmediatamente | Las más inactivas salen primero; no se borra nada. 0: sin límite. 0–100000. Se aplica a los agentes sin valor propio en su ficha. |
| `AIHUMMER_AGENT_SESSION_INDEX_PRUNE_DAYS` | Agente: quitar de la lista de sesiones tras estos días de silencio | `int 0…3650` | `0` | inmediatamente | No se borra nada: la conversación sale de la lista y vuelve con un mensaje nuevo. 0: conservar. 0–3650. Se aplica a los agentes sin valor propio en su ficha. |
| `AIHUMMER_AGENT_SESSION_RESET_AT_HOUR` | Agente: hora del reinicio diario | `int 0…23` | `4` | inmediatamente | Para los modos «cada día»: una conversación que empezó antes de esta hora vuelve a empezar con el siguiente mensaje de la persona. La hora sigue la zona horaria del servidor (ajuste «Zona horaria» en Sistema y ajustes). 0–23; 4 es de madrugada, cuando casi nadie escribe. |
| `AIHUMMER_AGENT_SESSION_RESET_GROUP_IDLE_MINUTES` | Agente: empezar un chat de grupo de nuevo tras un silencio (minutos) | `int 0…525600` | `0` | inmediatamente | Para los chats de grupo en los modos «tras un silencio» y «cada día y tras un silencio»: los minutos de silencio tras los que un chat de grupo empieza de nuevo. 0 significa como en los chats personales. 0–525600. |
| `AIHUMMER_AGENT_SESSION_RESET_GROUP_MODE` | Agente: cuándo empieza de nuevo un chat de grupo | `enum: inherit \\\| daily \\\| idle \\\| both \\\| none` | `inherit` | inmediatamente | Una regla propia para los chats de grupo (grupos de Telegram, conversaciones de VK, chats de MAX y otros): como en los chats personales, cada día a la hora de reinicio, tras un silencio, lo que ocurra primero, o nunca. La hora de reinicio es común. Se aplica a los agentes sin regla propia en su ficha. |
| `AIHUMMER_AGENT_SESSION_RESET_MODE` | Agente: cuándo empieza de nuevo una conversación | `enum: idle \\\| daily \\\| both \\\| none` | `idle` | inmediatamente | Cuándo el agente empieza de nuevo una conversación: cada día a la hora de reinicio (en la zona horaria de la instancia), tras un silencio, lo que ocurra antes, o nunca. Al empezar de nuevo, el agente escribe en su memoria una nota sobre la conversación anterior, y su primer turno recibe el resumen anterior y los últimos mensajes; los mensajes siguen en el archivo y en la búsqueda. Se aplica a los agentes sin regla propia en su ficha; allí se puede fijar una regla aparte para los chats de grupo. |
| `AIHUMMER_AGENT_SESSION_SCOPE` | Agente: dónde van las conversaciones personales | `enum: chat \\\| per-channel-peer \\\| per-peer` | `chat` | inmediatamente | «Una por persona» une Telegram, la aplicación y otros chats personales de la misma persona en una sola conversación. Los chats de grupo siempre conservan la suya. Se aplica desde el siguiente mensaje. Se aplica a los agentes sin valor propio en su ficha. |
| `AIHUMMER_AGENT_SILENT_REPLY` | Agente: puede quedarse en silencio | `enum: groups \\\| all \\\| off` | `groups` | inmediatamente | En los chats de grupo el agente puede quedarse en silencio si el mensaje no va dirigido a él o no tiene nada que añadir; en los chats privados siempre responde. Puede permitir el silencio también en los chats privados o desactivarlo. Un turno silencioso no envía nada, la ficha de la conversación lo marca como «el agente guardó silencio» y el modelo no lo ve en el historial. Se aplica desde el siguiente turno. |
| `AIHUMMER_AGENT_SKILLS_PROMPT_MAX_CHARS` | Agente: máximo de caracteres de la lista de habilidades en el prompt | `int 1000…200000` | `18000` | inmediatamente | En cada turno el modelo no ve los textos de las habilidades, sino su lista: identificador, nombre y cuándo usarla; el agente carga por sí mismo las instrucciones de una habilidad cuando la tarea encaja. Si la lista es más larga, primero se quitan las descripciones y luego el final de la lista; el resto lo encuentra el agente bajo demanda. 1000–200000. |
| `AIHUMMER_AGENT_STALE_GAP_HOURS` | Agente: pausa tras la cual lo hablado antes es historial (horas) | `int 0…8760` | `12` | inmediatamente | Si alguien escribe tras una pausa más larga que esta, el agente recibe una nota: todo lo hablado antes es historial; no se vuelve a contar ni se retoman tareas antiguas sin que lo pidan. Cada mensaje ya lleva su hora y el tiempo transcurrido desde el anterior. 0 = sin nota. 0–8760. |
| `AIHUMMER_AGENT_TOOL_HISTORY_TURNS` | Agente: turnos que conservan resultados de herramientas | `int 0…100` | `5` | inmediatamente | En cuántos turnos recientes el modelo ve completas las llamadas a herramientas y sus resultados (un resultado se guarda hasta 16 KB). Los turnos anteriores conservan la llamada y el comienzo del resultado. Así el agente recuerda lo que encontró e hizo en lugar de volver a llamar a las herramientas. 0 = no trasladar resultados a turnos posteriores. 0–100; un agente puede sobrescribirlo. |
| `AIHUMMER_APPROVAL_TOOLS` | Herramientas que necesitan aprobación | `multiselect` | — | inmediatamente | Lista de herramientas separadas por comas cuyas llamadas requieren la aprobación manual del operador antes de ejecutarse. En blanco = no se requiere aprobación. Se aplica de inmediato, sin reiniciar. |
| `AIHUMMER_SUBAGENT_MAX_DEPTH` | Profundidad máxima del subagente | `int 0…10` | `2` | inmediatamente | Profundidad máxima de anidamiento de subagentes (un agente que lanza otro agente). Valor predeterminado 2: protección frente a la recursión infinita. |
| `AIHUMMER_SUBAGENT_TIMEOUT_SEC` | Tiempo de espera del subagente (segundos) | `int 0…86400` | `180` | inmediatamente | Tiempo máximo para la ejecución de un único subagente, en segundos. |
| `AIHUMMER_TOOL_SEARCH` | Carga diferida de herramientas | `bool` | `false` | inmediatamente | Muestra directamente el núcleo de herramientas de trabajo y oculta el resto de un catálogo grande tras una herramienta de búsqueda que nombra cada herramienta oculta. Solo compensa en catálogos grandes (decenas de herramientas de plugins, MCP u OpenAPI): por debajo del umbral de tamaño todas se muestran directamente, porque una llamada extra al modelo para buscar una herramienta cuesta más que los esquemas. Se aplica en el siguiente turno. |
| `AIHUMMER_TOOL_SEARCH_CORE` | Carga diferida de herramientas: herramientas siempre activas | `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` | inmediatamente | Herramientas siempre visibles directamente en modo diferido. Por defecto, el núcleo de trabajo: búsqueda web, lectura de páginas, memoria, historial de conversación, base de conocimiento, código, archivos, mensajes, programaciones y vinculación de la aplicación. La búsqueda en la memoria y en la base de conocimiento (memory_search, memory_get, search_knowledge) se muestra siempre, diga lo que diga esta lista. Una lista vacía restaura este núcleo. |
| `AIHUMMER_TOOL_SEARCH_MIN_POOL_TOKENS` | Carga diferida de herramientas: tamaño mínimo de las ocultas (tokens) | `int 0…1000000` | `4000` | inmediatamente | Ocultar herramientas solo si los esquemas fuera del núcleo suman al menos esta cantidad de tokens (unos 4 caracteres cada uno). Por debajo, todas se muestran directamente: una llamada extra al modelo para buscar una herramienta cuesta más que mostrar los esquemas. |
| `AIHUMMER_TOOL_SEARCH_THRESHOLD` | Carga diferida de herramientas: herramientas mínimas para diferir | `int 0…1000` | `12` | inmediatamente | Solo posponga cuando más de esta cantidad de herramientas sobrevivan al filtro de perfil del agente. |
## Agent · Reasoning
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_AGENT_BEST_OF_N` | Mejor de N: número de candidatas | `int 0…8` | `0` | inmediatamente | El agente prepara tantas respuestas candidatas y se queda con la mejor. 0 o 1: desactivado; desde 2: activado. Cada candidata cuesta como una respuesta aparte. |
| `AIHUMMER_AGENT_DEBATE_JUDGE_PROMPT` | Debate: solicitud de juez (anulación) | `text` | — | inmediatamente | Anula el mensaje del juez del debate (en blanco = integrado). |
| `AIHUMMER_AGENT_DEBATE_N` | Debate: número de respuestas candidatas | `int 0…8` | `0` | inmediatamente | El agente prepara tantas respuestas candidatas, las compara y da la mejor. 0 o 1: desactivado; desde 2: activado. Cada candidata cuesta como una respuesta aparte. |
| `AIHUMMER_AGENT_DEBATE_PROMPT` | Debate: solicitud de candidato (anulación) | `text` | — | inmediatamente | Anula el mensaje del candidato del debate (en blanco = integrado). |
| `AIHUMMER_AGENT_DEBATE_ROUNDS` | Debate: rondas | `int 1…10` | `1` | inmediatamente | Número de rondas de debate para el panel de candidatos. |
| `AIHUMMER_AGENT_JUDGE_PROMPT` | Mensaje de evaluación de lo mejor de N (anular) | `text` | — | inmediatamente | Anula el mensaje de evaluación del mejor de N (en blanco = integrado). |
| `AIHUMMER_AGENT_PLAN_PROMPT` | Mensaje del planificador (anular) | `text` | — | inmediatamente | Anula el mensaje del planificador (en blanco = integrado). |
| `AIHUMMER_AGENT_PLAN_STEPS` | Planificador-ejecutor: máximo de pasos del plan (0=apagado) | `int 0…32` | `0` | inmediatamente | ⟩0 ejecuta un pase separado de planificador→ejecutor→síntesis (bueno para tareas complejas de varios pasos). 0 desactiva. Típico entre 4 y 8. |
| `AIHUMMER_AGENT_PLAN_STEP_ITERS` | Planificador: iteraciones de herramientas por paso (0=predeterminado) | `int 0…64` | `0` | inmediatamente | Limita las iteraciones de llamada de herramientas por paso del plan. 0 = predeterminado integrado (4). |
| `AIHUMMER_AGENT_REFLECT` | Pase de autocrítica | `bool` | `0` | inmediatamente | Agrega un pase de reflexión/autocrítica antes de la respuesta final. |
| `AIHUMMER_AGENT_REFLECT_PROMPT` | Mensaje de reflexión (anular) | `text` | — | inmediatamente | Anula el mensaje de autocrítica (en blanco = integrado). |
| `AIHUMMER_AGENT_SELF_HEAL` | Herramienta de autorreparación-reintentos de error (0=apagado) | `int 0…10` | `0` | inmediatamente | ⟩0 reintentos fallidos de llamadas a herramientas con una sugerencia correctiva, hasta este límite. |
## Agent · System prompt
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_LOCALE` | Configuración regional predeterminada | `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` | inmediatamente | Pista de idioma/localización de respuesta predeterminada, p. ru-RU. Se anulan las instrucciones de persona/operador. |
| `AIHUMMER_TIMEZONE` | Zona horaria | `text` | `UTC` | inmediatamente | Zona horaria IANA para la fecha actual del agente y para las programaciones sin zona propia, p. ej. Europe/Moscow. Predeterminado UTC. |
## Channels
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_CHANNEL_FAILURE_NOTICE` | Avisar a la persona cuando falla una respuesta | `enum: always \\\| once \\\| off` | `always` | inmediatamente | Qué recibe la persona en un canal (Telegram y otros) cuando el agente no pudo responder: «Cada vez», un mensaje breve en su idioma; «Como mucho una vez cada 4 horas», un mensaje por conversación en 4 horas; «No avisar», nada. El mensaje no incluye códigos de error ni nombres de proveedores; los detalles los ve en Sesiones y en las notificaciones. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_BLOCKED` | Mensaje de fallo: la instancia está suspendida | `text` | — | inmediatamente | Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_BUDGET` | Mensaje de fallo: se agotó el presupuesto del propietario | `text` | — | inmediatamente | Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_BUSY` | Mensaje de fallo: la pasarela está sobrecargada | `text` | — | inmediatamente | Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_CONFIG` | Mensaje de fallo: la conexión del modelo requiere al propietario | `text` | — | inmediatamente | Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_FAILED` | Mensaje de fallo: otro fallo | `text` | — | inmediatamente | Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_QUOTA` | Mensaje de fallo: se agotó el límite de uso del modelo | `text` | — | inmediatamente | Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_STEP_LIMIT` | Mensaje de fallo: la tarea no cupo en una sola respuesta | `text` | — | inmediatamente | Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_TOO_LONG` | Mensaje de fallo: la conversación es demasiado larga para el modelo | `text` | — | inmediatamente | Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato. |
| `AIHUMMER_CHANNEL_FAILURE_TEXT_UNAVAILABLE` | Mensaje de fallo: el modelo no está disponible temporalmente | `text` | — | inmediatamente | Déjelo vacío para enviar el mensaje integrado en el idioma de la persona. Su texto se envía tal como está escrito, en el idioma en que lo escriba; {ref} inserta el código de la respuesta, con el que encuentra el turno en Sesiones. Se aplica de inmediato. |
| `AIHUMMER_CONFIDENTIAL_PERSONA` | Persona web confidencial | `bool` | `0` | inmediatamente | Cuando está activado, el agente de chat web no revela ni conserva los detalles de su persona/identidad y mantiene las respuestas a la tarea en cuestión; utilícelo para implementaciones web anónimas o sensibles a la privacidad. Se aplica de inmediato, sin reiniciar. |
| `AIHUMMER_INBOUND_COALESCE_MS` | Ventana de agrupación de mensajes (ms) | `int` | `500` | inmediatamente | Varios mensajes que una persona envía seguidos al mismo chat (mensajes cortos, un álbum de fotos, una corrección rápida) reciben UNA sola respuesta si la pausa entre ellos es menor que esta ventana. Los mensajes que llegan mientras se prepara una respuesta se responden justo después, nunca en paralelo. Por defecto 500 ms; 0 = sin espera entre mensajes sueltos; un álbum de fotos se sigue reuniendo (pausas de hasta 3 s, como máximo 20 s) para recibir una sola respuesta. La agrupación funciona en Telegram; Slack, WhatsApp, VK, el correo y otros conectores que esperan respuesta a cada mensaje (y las integraciones vía /v1/inbound/generic) reciben una respuesta por cada mensaje, igualmente de una en una y en orden. Se aplica de inmediato. |
| `AIHUMMER_INBOUND_EDIT_MODE` | Cuando alguien edita un mensaje ya respondido | `enum: correct \\\| history` | `correct` | inmediatamente | correct — el bot responde otra vez sabiendo que es una corrección («antes / ahora»); history — la edición solo corrige el historial de la conversación, sin nueva respuesta (útil para erratas). La edición de un mensaje que el bot aún no ha respondido siempre solo reemplaza su texto. Funciona donde el canal informa de las ediciones (Telegram). Se aplica de inmediato. |
| `AIHUMMER_INBOUND_QUEUE_MODE` | Mensajes escritos mientras el agente trabaja | `enum: steer \\\| collect \\\| followup` | `steer` | inmediatamente | Qué ocurre con un mensaje que la misma persona envía mientras el agente aún prepara una respuesta (busca, ejecuta herramientas): steer (predeterminado): el agente lo ve antes de su siguiente paso y lo tiene en cuenta en la misma respuesta; collect: se responde con la siguiente respuesta. followup: cada uno de esos mensajes recibe su propia respuesta, uno tras otro. Las fotos, los archivos, las respuestas a un mensaje y los reenvíos siempre esperan a la siguiente respuesta. Se aplica de inmediato. |
| `AIHUMMER_INBOUND_REQUIRE_BINDING` | Responder solo a usuarios aprovisionados | `bool` | `true` | inmediatamente | true = el bot ignora cualquier remitente del canal que sea NOT un usuario AiHummer aprovisionado (un usuario con un rol vinculado): los miembros del chat aleatorios y las invocaciones de invitados no obtienen respuesta false (predeterminado) = responder a todos. |
## Integrations
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_A2A_PUBLISH` | Publicar agente sobre Agent2Agent (A2A) | `bool` | `0` | tras reiniciar | Publicar el agente como un servidor A2A (Tarjeta de agente + POST /a2a/mensaje). Se aplica al inicio/después del reinicio. |
| `AIHUMMER_MCP_EXPORT_TOOLS` | Herramientas abiertas a asistentes externos | `multiselect` | — | tras reiniciar | Una lista explícita de nombres de herramientas permitidas para clientes MCP externos, separados por comas. Vacío = no publicar ninguna herramienta. La política integrada también prohíbe las clases peligrosas a nivel de host, incluso si figuran en la lista. Se aplica al inicio/después del reinicio. |
| `AIHUMMER_MCP_PUBLISH` | Publicar herramientas a través de MCP | `bool` | `0` | tras reiniciar | Permite que asistentes externos (p. ej. Claude Desktop) usen las herramientas de sus agentes. Qué herramientas abrir se elige en el ajuste contiguo: mientras la lista esté vacía, no se abre ninguna. |
| `AIHUMMER_MODULE_CPU_QUOTA` | Límite de CPU del plugin (por plugin) | `text` | `75%` | inmediatamente | Qué parte del procesador puede usar cada plugin (systemd CPUQuota): 75% son tres cuartos de un núcleo, 150% es un núcleo y medio. El plugin recibe el nuevo valor en su próxima instalación, actualización o al guardar su configuración; hasta entonces los plugins en ejecución mantienen el límite anterior. |
| `AIHUMMER_MODULE_MEMORY_MAX` | Límite de memoria del plugin (por plugin) | `text` | `512M` | inmediatamente | Cuánta memoria puede usar cada plugin (systemd MemoryMax): un tamaño como 512M, 1G o 2048M (al menos 64M), o infinity para no limitar. El sistema detiene el plugin que lo supere. El plugin recibe el nuevo valor en su próxima instalación, actualización o al guardar su configuración; hasta entonces los plugins en ejecución mantienen el límite anterior. |
## Knowledge connectors
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_KB_SYNC_INTERVAL` | Con qué frecuencia actualizar la base de conocimiento desde las fuentes | `text` | — | inmediatamente | Con qué frecuencia el servidor trae por sí mismo los cambios de las fuentes conectadas a la base de conocimiento. Por ejemplo: 30m, cada 30 minutos; 6h, cada 6 horas. Vacío o 0: solo a mano. Volver a cargar nunca crea duplicados. La exportación de Slack se sube a mano. |
## LLM
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_AUX_FALLBACK_MODELS` | Tareas de servicio: modelos de respaldo | `list` | — | inmediatamente | Modelos separados por comas que se prueban en orden si falla el modelo de servicio (cuota, caída). El modelo principal siempre se prueba al final para que no se pierda el resumen. Cada cambio se registra. Se aplica de inmediato. |
| `AIHUMMER_AUX_MODEL` | Modelo para tareas de servicio (resúmenes, notas, títulos) | `text` | — | inmediatamente | Modelo para tareas de servicio en segundo plano: condensar el historial antiguo en un resumen, la nota de memoria antes de la compactación, títulos de conversaciones, extracción de hechos, reformulación de consultas de búsqueda y traducción. Vacío = automático: un modelo más barato del mismo proveedor (Claude → claude-haiku-4-5, Codex → gpt-…-luna/mini); si no lo hay, el modelo principal. "main" = siempre el modelo principal. Se aplica de inmediato. |
| `AIHUMMER_CASCADE_MIN_CHARS` | Cascada: caracteres mínimos para escalar | `int` | `0` | inmediatamente | Umbral de longitud de solicitud (caracteres) en el que se activa el modelo en cascada más fuerte. 0 = predeterminado. |
| `AIHUMMER_CASCADE_STRONG_MODEL` | Cascada: modelo alternativo más sólido | `text` | — | inmediatamente | Modelo al que conectarse en cascada para solicitudes largas/complejas (en blanco = desactivado). |
| `AIHUMMER_CLAUDE_AUTH_URL` | Suscripción de Claude: dirección de la página de acceso | `text` | — | inmediatamente | La página en la que autoriza conectar la suscripción de Claude. Vacío: dirección estándar; cámbiela solo si se lo pide el soporte. |
| `AIHUMMER_CLAUDE_CLIENT_ID` | Suscripción Claude: ID de cliente OAuth | `text` | — | inmediatamente | El identificador de la app para entrar con una suscripción de Claude. Vacío: el estándar; cámbielo solo si se lo pide el soporte. |
| `AIHUMMER_CLAUDE_EFFORT` | Claude: profundidad de razonamiento | `enum: low \\\| medium \\\| high \\\| xhigh \\\| max` | `medium` | inmediatamente | Con qué profundidad piensan los modelos Claude antes de responder cuando el agente no lo fija. Más alto es más preciso en tareas difíciles, pero más lento y consume más cuota; más bajo es más rápido y económico. Un modelo que no conoce el nivel elegido recibe el inferior más cercano; Haiku 4.5 y modelos anteriores no admiten razonamiento. La profundidad fijada en el agente tiene prioridad. Se aplica desde el siguiente turno. |
| `AIHUMMER_CLAUDE_MAX_TOKENS` | Claude: longitud máxima de respuesta (tokens) | `int` | `16000` | inmediatamente | Cuántos tokens puede ocupar una respuesta de Claude, por suscripción y por clave. El razonamiento del modelo cuenta en el mismo límite: un valor demasiado bajo corta la respuesta a media frase o la deja vacía. Si un agente tiene su propia longitud de respuesta, se aplica esa. |
| `AIHUMMER_CLAUDE_REDIRECT_URI` | Suscripción Claude: redirigir URI | `text` | — | inmediatamente | Dirección de devolución registrada con el proveedor. Debe coincidir con lo configurado en su lado, de lo contrario se rechaza el intercambio de código. |
| `AIHUMMER_CLAUDE_TOKEN_URL` | Suscripción de Claude: dirección de acceso | `text` | — | inmediatamente | La dirección en la que el servidor obtiene y renueva el acceso a la suscripción de Claude. Vacío: dirección estándar; cámbiela solo si se lo pide el soporte. |
| `AIHUMMER_CODEX_BASE_URL` | Base de Codex URL | `text` | — | parcialmente tras reiniciar | Base del transporte Codex (suscripción ChatGPT). Se aplica al inicio/después del reinicio. |
| `AIHUMMER_CODEX_MAX_OUTPUT_TOKENS` | Tokens de salida máxima (0 = sin límite) | `int` | `0` | inmediatamente | El límite de max_output_tokens para un turno de chat. 0 = sin límite. En los modelos de razonamiento, los tokens de razonamiento también cuentan para este presupuesto, por lo que un valor demasiado pequeño produce una respuesta vacía 'incompleta: max_output_tokens'. Se aplica sobre la marcha (sin reinicio). |
| `AIHUMMER_CODEX_MODEL` | Identificación del modelo (transporte Codex/gpt-5.5) | `text` | `gpt-5.5` | parcialmente tras reiniciar | Identificación del modelo del transporte principal Codex/ChatGPT (por ejemplo, gpt-5.5, gpt-5.5-codex). Se aplica al inicio/después del reinicio. |
| `AIHUMMER_CODEX_REASONING_EFFORT` | Esfuerzo de razonamiento | `enum: none \\\| low \\\| medium \\\| high \\\| xhigh` | `medium` | inmediatamente | Cuánto razona el modelo de ChatGPT (Codex) antes de responder si el agente no lo fija. Por defecto, «Medio». Más alto es más preciso, pero más lento y caro. |
| `AIHUMMER_LLM_CALL_TIMEOUT_S` | Tiempo de espera por llamada (segundos) | `int` | `120` | inmediatamente | Cuántos segundos esperar la respuesta del modelo a una petición. Si el modelo calla más tiempo, la petición se corta y la respuesta pasa al siguiente modelo de la lista. En Claude se cuenta la pausa en el flujo de respuesta, no la respuesta entera: una respuesta larga que sigue llegando no se corta. 0: sin límite. |
| `AIHUMMER_LLM_FALLBACK_MODELS` | Modelos de reserva (todos los agentes) | `text` | `auto` | inmediatamente | Quién responde cuando el modelo principal y los demás proveedores fallan (límite de uso alcanzado, caída, demasiadas solicitudes). auto — el modelo más económico de cada proveedor como último recurso (Claude: claude-haiku-4-5, Codex: gpt-…-luna/mini); una lista separada por comas — su propio orden, cada modelo va a los proveedores de su fabricante; off — sin modelos de reserva. El modelo de reserva propio de un agente tiene prioridad. Se aplica al instante. |
| `AIHUMMER_LLM_GATEWAY_URL` | LLM puerta de enlace URL | `text` | — | parcialmente tras reiniciar | Base URL del punto final del modelo compatible con OpenAI al que llama el agente (su servidor local llama.cpp/vLLM/Ollama o una puerta de enlace alojada). Déjelo en blanco para usar el punto final predeterminado del proveedor. |
| `AIHUMMER_LLM_MODEL` | LLM modelo | `text` | — | parcialmente tras reiniciar | El nombre/ID del modelo enviado al proveedor en cada turno (el modelo que sirve su punto final). Debe coincidir con un modelo que el terminal realmente expone. |
| `AIHUMMER_LLM_PAUSE_AUTH_MIN` | Pausa tras rechazo de credenciales, min | `int` | `10` | inmediatamente | Cuántos minutos no consultar a un proveedor que rechazó las credenciales. Cada repetición duplica la pausa, hasta seis veces la primera. Una prueba de conexión correcta o el botón «Reanudar ahora» lo devuelven al momento. Se aplica desde el siguiente fallo. |
| `AIHUMMER_LLM_PAUSE_MODEL_MIN` | Pausa de un modelo que el proveedor no sirve, min | `int` | `60` | inmediatamente | Cuántos minutos no ofrecer a un proveedor un modelo que dijo no servir; sus otros modelos se consultan como siempre. Se aplica desde el siguiente fallo. |
| `AIHUMMER_LLM_PAUSE_QUOTA_MIN` | Pausa tras agotar el límite, min | `int` | `300` | inmediatamente | Cuántos minutos no consultar el modelo (o toda la cuenta, si se agotó el límite de la cuenta: Codex, una clave de OpenAI, el pago) cuando se agotó su límite de uso y el proveedor no indicó cuándo se restablece. Cada repetición duplica la pausa, hasta un día. El plazo indicado por el proveedor manda. Se aplica desde el siguiente fallo. |
| `AIHUMMER_LLM_PAUSE_SHORT_S` | Pausa del proveedor tras un fallo, s | `int` | `30` | inmediatamente | Cuántos segundos no consultar a un proveedor tras un fallo, una conexión caída o «demasiadas solicitudes». Un segundo fallo seguido duplica la pausa; el tercero y siguientes la multiplican por diez. Si el proveedor indica su propio plazo, se espera ese plazo. Se aplica desde el siguiente fallo. |
| `AIHUMMER_LLM_PROVIDER` | LLM proveedor | `text` | — | parcialmente tras reiniciar | Qué modelo de backend usar (un punto final compatible con OpenAI o el transporte de suscripción Codex/ChatGPT). Decide cómo se envían y autentican las solicitudes. |
| `AIHUMMER_LLM_RETRIES` | LLM reintentos en caso de error transitorio | `int` | `3` | inmediatamente | Número de LLM reintentos de solicitud en un error transitorio. |
| `AIHUMMER_LLM_TEMPERATURE` | Temperatura | `text` | — | inmediatamente | Cuán variadas son las respuestas del modelo (0–2) si el agente no lo fija: más bajo es más preciso y predecible; más alto, más vivo. Vacío: decide el modelo. Los modelos con razonamiento (ChatGPT/Codex, Claude de 5.ª generación) no lo aceptan: deje el campo vacío para ellos. |
| `AIHUMMER_LLM_TOP_P` | Top-p (núcleo) muestreo) | `text` | — | inmediatamente | Otra forma de variar las respuestas (0–1) si el agente no lo fija. Vacío: decide el modelo. Normalmente se fija solo uno: la temperatura o este; los modelos con razonamiento no lo aceptan. |
| `AIHUMMER_MODEL_GUARD_INTERVAL_MIN` | Comprobación del modelo del agente: intervalo, min | `int` | `60` | inmediatamente | Con qué frecuencia comprobar que el modelo de cada agente lo ofrece algún proveedor activado. El modelo del agente nunca se cambia: mientras nadie lo ofrezca, responde el primer modelo del orden de respuesta que no esté en pausa y una notificación nombra a los agentes, y otra cuando su modelo vuelva. La comprobación siempre se ejecuta al iniciar la pasarela, y 0 desactiva solo la repetición. Un intervalo nuevo se aplica en menos de un minuto. |
| `AIHUMMER_OPENAI_API` | Estilo OpenAI API (chat \| respuestas) | `enum: \\\| chat \\\| responses` | — | parcialmente tras reiniciar | chat = /chat/completions, respuestas = /responses. En blanco = automático/predeterminado. Se aplica al inicio/después del reinicio. |
| `AIHUMMER_OPENAI_API_KEY` | Clave nativa de OpenAI API (implementación) predeterminado) | `text` | — | parcialmente tras reiniciar | La clave de su cuenta OpenAI para el bucle nativo de OpenAI (si usa OpenAI como proveedor predeterminado). No debe confundirse con BYOK por espacio de trabajo en la página Modelos. Se aplica al inicio/después del reinicio. |
| `AIHUMMER_OPENAI_BASE_URL` | Base nativa de OpenAI URL | `text` | — | tras reiniciar | Base de API compatible con OpenAI (por ejemplo, https://api.openai.com/v1). Se aplica al inicio/después del reinicio. |
| `AIHUMMER_OPENAI_MODEL` | Modelo nativo de OpenAI | `text` | — | tras reiniciar | Modelo para el bucle OpenAI nativo (cuando se establece AIHUMMER_OPENAI_API_KEY). Se aplica al inicio/después del reinicio. |
| `AIHUMMER_ROUTER_COMPLEX_MODEL` | Enrutador: modelo para giros complejos | `text` | — | inmediatamente | Modelo para las solicitudes complejas de un agente sin modelo propio (en blanco = nivel desactivado). Se aplica desde el siguiente turno. |
| `AIHUMMER_ROUTER_SIMPLE_MODEL` | Enrutador: modelo para giros simples | `text` | — | inmediatamente | Modelo para las solicitudes simples de un agente sin modelo propio (en blanco = nivel desactivado). Se aplica desde el siguiente turno. |
| `AIHUMMER_ROUTER_STANDARD_MODEL` | Enrutador: modelo para giros estándar | `text` | — | inmediatamente | Modelo para las solicitudes habituales de un agente sin modelo propio (en blanco = nivel desactivado). Se aplica desde el siguiente turno. |
| `AIHUMMER_SUBSCRIPTION_QUOTA_REFRESH_MIN` | Cuotas de suscripción: periodo de consulta, min | `int` | `15` | inmediatamente | Con qué frecuencia el panel consulta a ChatGPT (Codex) las ventanas de cuota de la suscripción: como mucho una vez por periodo, no más de una vez cada 5 minutos y solo mientras las cuotas están abiertas; entre consultas se muestra la copia guardada. A Claude nunca se le pregunta: sus límites son nuestra estimación. Se aplica la próxima vez que se abran las cuotas. |
## Media
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_DEEPGRAM_API_KEY` | Clave API de Deepgram | `text` | — | inmediatamente | La clave del servicio Deepgram: necesaria si Deepgram reconoce los mensajes de voz. Si está vacía, se usa la clave común de reconocimiento de voz del ajuste contiguo. Se aplica de inmediato. |
| `AIHUMMER_DEEPGRAM_DETECT_LANGUAGE` | Detección de idioma de Deepgram | `bool` | `0` | inmediatamente | Detectar el idioma en lugar de enviar uno fijo. Se aplica al instante. |
| `AIHUMMER_DEEPGRAM_MODEL` | Modelo Deepgram | `text` | `nova-2` | inmediatamente | Modelo Deepgram (por ejemplo, nova-2, nova-3, base). Depende del acceso del proyecto a la clave. Se aplica al instante. |
| `AIHUMMER_DEEPGRAM_PUNCTUATE` | Puntuación de Deepgram | `bool` | `1` | inmediatamente | Añadir puntuación y mayúsculas. Se aplica al instante. |
| `AIHUMMER_DEEPGRAM_SMART_FORMAT` | Formato inteligente de Deepgram | `bool` | `1` | inmediatamente | Dar formato a números y fechas reconocidos. Se aplica al instante. |
| `AIHUMMER_DEEPGRAM_URL` | Base de Deepgram URL | `text` | — | inmediatamente | Deepgram API base. En blanco = https://api.deepgram.com. Se aplica al instante. |
| `AIHUMMER_IMAGE_BASE_URL` | Imagen API base URL (respaldo de OpenAI) | `text` | — | inmediatamente | Base de /images API cuando se trabaja con una clave OpenAI (en blanco = https://api.openai.com/v1). |
| `AIHUMMER_IMAGE_MODEL` | Generación de imágenes modelo | `text` | — | inmediatamente | Modelo para image_generate (gpt-image-2 predeterminado). |
| `AIHUMMER_MEDIA_MAX_UPLOAD_MB` | Tamaño máximo de carga de medios (MB) | `int` | `256` | inmediatamente | El archivo más grande (foto, mensaje de voz, vídeo) que se puede subir de una vez, en megabytes. Protege el disco del servidor de llenarse. Por defecto 256. Se aplica de inmediato. |
| `AIHUMMER_SIDECAR_STT` | Reconocimiento de voz en este servidor (faster-whisper) | `bool` | `0` | inmediatamente | Reconocimiento de voz local (faster-whisper). NO incluido en el paquete: habilitar descarga el complemento firmado (~620 MiB para todas las versiones de Python) e instala el servicio en el host. 🔴 El complemento se publica por decisión del proveedor independiente (sus paquetes llevan ffmpeg bajo la GPL); Si no se publica para su lanzamiento, incluirlo será honesto al respecto y no romperá nada. Plan nube: el reconocimiento lo configura el proveedor. |
| `AIHUMMER_SIDECAR_TTS` | Respuestas por voz (edge-tts) | `bool` | `0` | inmediatamente | Síntesis de voz (edge-tts, voces Microsoft Edge). NO incluido en el paquete: al habilitarlo, se descarga el complemento firmado (~26 MiB) e instala el servicio en el host. La síntesis en sí se pone en línea para votar; "fuera de línea" aquí se refiere a instalar el paquete, no funcionar. |
| `AIHUMMER_STT_API_KEY` | STT API clave (opcional) | `text` | — | inmediatamente | Clave de acceso al servicio de reconocimiento de voz, si la requiere. Para un servicio en este servidor la fija el instalador: no hace falta cambiarla. Se aplica de inmediato. |
| `AIHUMMER_STT_ENGINE` | motor STT | `enum: auto \\\| faster-whisper \\\| deepgram \\\| codex \\\| off` | `auto` | inmediatamente | Cómo se transcriben los mensajes de voz. Auto (predeterminado): Deepgram si su clave está configurada; si no, el servicio local si está instalado (interruptor de arriba); si no, nada, y el bot le dice con franqueza al remitente que aún no puede escuchar. faster-whisper: el servicio local o un /v1/audio/transcriptions externo compatible. deepgram: Deepgram en la nube con su propia clave. codex: la suscripción de ChatGPT conectada (Modelos → Conectar ChatGPT); consume su cuota. off: no transcribir. Se aplica al instante. |
| `AIHUMMER_STT_LANGUAGE` | STT idioma | `text` | — | inmediatamente | Idioma de reconocimiento (BCP-47, por ejemplo, ru/en). Utilizado por el motor deepgram (modelo nova-2). En blanco = detección automática/valor predeterminado del motor. Se aplica al instante. |
| `AIHUMMER_STT_MODEL` | STT modelo | `text` | `Systran/faster-whisper-small` | inmediatamente | modelo de susurro más rápido (por ejemplo, pequeño/mediano/grande-v3 o Systran/faster-whisper-⟨size⟩). Se aplica al instante. |
| `AIHUMMER_TTS_API_KEY` | TTS API clave (edge-tts) | `text` | — | parcialmente tras reiniciar | Clave de acceso al servicio de voz. Se fija automáticamente al instalar: no hace falta cambiarla. |
| `AIHUMMER_TTS_ENABLED` | Texto a voz habilitado | `bool` | `1` | parcialmente tras reiniciar | Permite al agente responder por voz. Para ello hace falta el servicio de voz: instálelo arriba, en la sección Servicios adicionales. |
| `AIHUMMER_TTS_MODEL` | TTS modelo | `text` | — | parcialmente tras reiniciar | Nombre del modelo para el servicio edge-tts. Se aplica al inicio/después del reinicio. |
| `AIHUMMER_TTS_VOICE` | TTS voz | `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` | parcialmente tras reiniciar | Voz edge-tts predeterminada (multilingüe, incluido ruso). Se aplica al inicio/después del reinicio. |
| `AIHUMMER_VIDEO_API_KEY` | Análisis de vídeo API clave | `text` | — | inmediatamente | Clave de acceso al servicio de análisis de vídeo, si la requiere. Vacío: el servicio se usa sin clave. |
## Media · Voice
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_TTS_AUTO_REPLY` | Respuestas de voz automáticas | `enum: off \\\| always \\\| inbound \\\| tagged` | `inbound` | inmediatamente | Nunca, siempre, al recibir audio o con una marca explícita. Puede cambiarse por conversación. |
| `AIHUMMER_TTS_MAX_CHARS` | Límite de caracteres de voz | `int` | `0` | inmediatamente | 0: texto completo; 100–10000: límite del texto hablado. La respuesta completa permanece en el historial. |
| `AIHUMMER_TTS_SUMMARIZE` | Resumir respuestas de voz largas | `bool` | `1` | inmediatamente | Resumir respuestas largas para escucharlas. Si falla, leer el principio dentro del límite. |
| `AIHUMMER_VOICE_AEC` | Cancelación de eco (AEC) | `bool` | `1` | inmediatamente | Elimina el eco: la propia voz del agente desde el altavoz no vuelve al micrófono ni interrumpe la conversación. Desactívelo solo si la voz suena distorsionada en unos auriculares. |
| `AIHUMMER_VOICE_AGC` | Auto control de ganancia | `bool` | `1` | inmediatamente | Exigir el control automático de ganancia del micrófono (WebRTC autoGainControl) en el modo de voz. |
| `AIHUMMER_VOICE_BARGEIN_FRAMES` | Interrumpir al agente: cuánto hay que hablar | `int` | `5` | inmediatamente | Cuánto hay que hablar (en tramos de 20 ms) para que el agente calle y escuche. Por defecto 5, unos 0,1 segundos. |
| `AIHUMMER_VOICE_DUPLEX` | Voz en vivo full-duplex | `bool` | `0` | inmediatamente | Habilita el modo dúplex completo en vivo (transmisión + VAD + irrupción). Se aplica al instante. |
| `AIHUMMER_VOICE_NOISE_SUPPRESSION` | Supresión de ruido | `bool` | `1` | inmediatamente | Exigir la supresión de ruido en la captura del micrófono (WebRTC noiseSuppression) en el modo de voz. |
| `AIHUMMER_VOICE_VAD_THRESHOLD` | Sensibilidad a la voz (0–1) | `text` | `0.02` | inmediatamente | A partir de qué volumen un sonido cuenta como voz. Menor: más sensible; el agente oye el habla baja, pero también el ruido. Por defecto 0.02. |
## Memory
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_EMBEDDER_DIM` | Dimensión del modelo de búsqueda por significado | `int` | `768` | tras reiniciar | Dimensión del vector: debe coincidir con el modelo (multilingual-e5-base=768, bge-m3=1024). |
| `AIHUMMER_EMBEDDER_KEEPALIVE` | Incrustador keep-alive | `text` | `5m` | tras reiniciar | Cuánto tiempo sigue cargado el modelo de búsqueda por significado tras la última consulta (solo en modo «Por significado»). Por defecto 5m, 5 minutos: después el modelo se descarga y libera memoria y CPU. No se recomienda mantenerlo siempre (-1): un modelo bloqueado puede ocupar un núcleo de CPU durante días. Formato: 30s, 5m, 1h. |
| `AIHUMMER_EMBEDDER_MODEL` | Modelo de búsqueda por significado | `text` | `yxchia/multilingual-e5-base` | tras reiniciar | El modelo que permite buscar en la memoria por significado. El predeterminado multilingual-e5-base entiende ruso, es ligero y va rápido en una CPU normal. Para mejor calidad en GPU sirve bge-m3, pero entonces ponga 1024 en el ajuste de dimensión contiguo: el número debe coincidir con el modelo. |
| `AIHUMMER_EMBEDDER_PASSAGE_PREFIX` | Prefijo de paso de incrustador | `text` | — | tras reiniciar | Anule el prefijo del documento almacenado (los modelos e5 utilizan automáticamente "passage: "). Déjelo en blanco para realizar la detección automática por nombre de modelo. |
| `AIHUMMER_EMBEDDER_QUERY_PREFIX` | Prefijo de consulta de incrustador | `text` | — | tras reiniciar | Anule el prefijo de consulta de recuperación (los modelos e5 usan automáticamente "query: "). Déjelo en blanco para que se detecte automáticamente por nombre de modelo. |
| `AIHUMMER_EMBEDDER_THREADS` | Hilos de CPU del embedder | `int 0…256` | `0` | tras reiniciar | Cuántos hilos del procesador usa el modelo de búsqueda por significado en cada solicitud. 0 — automático: la mitad de los hilos del servidor, pero al menos 2. Sin límite, recalcular los vectores de la base de conocimiento en un servidor débil ocupaba todo el procesador durante horas y frenaba las respuestas de los agentes. Más — recálculo más rápido, pero más carga. |
| `AIHUMMER_MEMORY_AGENT_WRITES` | Hechos que el agente guarda por sí mismo | `enum: strangers \\\| immediate \\\| review` | `strangers` | inmediatamente | Qué pasa con lo que el agente recuerda por sí mismo, por ejemplo ante «recuerda esto». «Directo a la memoria; de desconocidos, a revisión» (predeterminado): directo a la memoria si lo dijo el propietario o el círculo de confianza del agente; de cualquier otra persona, a revisión. «Directo a la memoria»: el agente lo encuentra enseguida. «A revisión»: primero a la cola Memoria → revisión; llega a las respuestas solo tras su aprobación. En la ficha del agente (Memoria → Ajustes) se puede elegir otro modo. |
| `AIHUMMER_MEMORY_AUTOREPAIR` | Reparación automática de la memoria | `bool` | `1` | inmediatamente | Tras la autocomprobación, reparar la memoria: fusionar duplicados, cerrar las contradicciones con un ganador explícito (confirmado por una persona, fecha de evento posterior, fuente de más peso), volver a comprobar contra sus fuentes los hechos marcados como confirmados que ninguna persona confirmó (los no confirmados pasan a revisión, no se borra nada). Lo dudoso solo va a la cola. Cada corrección queda registrada con un botón para deshacerla; si después la memoria encuentra peor, la pasada se revierte sola y recibe una notificación. Se aplica al instante, sin reiniciar. |
| `AIHUMMER_MEMORY_CAPTURE` | Modo de captura de memoria | `enum: auto \\\| review \\\| off` | `review` | inmediatamente | Qué hacer con los hechos que el agente detecta por sí mismo en la conversación tras cada respuesta. «A revisión» los pone en la cola Memoria → revisión: llegan a las respuestas solo tras su aprobación. «Directo a la memoria» sin revisión: más rápido, pero con más ruido. «No guardar» no extrae nada de las conversaciones. Lo que el agente recuerda a petición se configura aparte. |
| `AIHUMMER_MEMORY_CONTEXT_TIMEOUT` | Tiempo de espera de hidratación de la memoria | `text` | `3s` | inmediatamente | Cuánto espera el agente a encontrar recuerdos relevantes antes de empezar a responder. Si la búsqueda tarda demasiado, el agente responde sin ellos en vez de quedarse colgado. Por ejemplo: 2s, 2 segundos; 1500ms, 1,5 segundos. 0: esperar lo necesario. |
| `AIHUMMER_MEMORY_DIARY_BOOT` | Diario del agente al inicio de la sesión | `bool` | `1` | inmediatamente | Mantener presente el diario del agente de hoy y de ayer en cada turno de una sesión, en cualquier canal: notas de sesiones anteriores, el resumen nocturno y las entradas del propio agente. Solo se muestran las entradas sobre el interlocutor actual y las comunes (suyas, subidas): un cliente nunca ve las de otro. Como máximo ~6000 caracteres; el resto lo lee el agente (memory_get). Se aplica de inmediato, sin reiniciar. |
| `AIHUMMER_MEMORY_DIARY_HOUR` | Hora del resumen nocturno | `int` | `3` | inmediatamente | A partir de qué hora (0–23, zona horaria de la instancia) se escribe el resumen del día anterior. Por defecto 3: de noche, cuando han terminado las conversaciones del día. Se aplica de inmediato, sin reiniciar. |
| `AIHUMMER_MEMORY_DIARY_NIGHTLY` | Resumen nocturno del día en el diario del agente | `bool` | `1` | inmediatamente | Una vez al día, escribir en el diario del agente un resumen del día anterior, por separado para cada persona con la que habló (todos los canales de esa persona juntos): qué se pidió y qué se hizo, acuerdos, tareas con fechas. Una llamada al modelo para tareas de servicio por agente y persona, como máximo 3 por pasada cada 10 minutos; los días perdidos se recuperan hasta una semana atrás. Se omiten las conversaciones con «no recuerdes». No se escribe mientras la captura de memoria esté desactivada. El resultado de la última pasada se ve en la ficha del agente → Memoria → Diario. Se aplica de inmediato, sin reiniciar. |
| `AIHUMMER_MEMORY_DREAM_INTERVAL` | Intervalo de paso de sueño | `string` | `1h` | inmediatamente | Con qué frecuencia los escaneos del pase de ensueño automantenido revisaron reclamos de contradicciones en todos los ámbitos (duración del recorrido, por ejemplo, 30 m/1 h/6 h). Establezca 0 para desactivar. Se aplica de inmediato, sin reiniciar. |
| `AIHUMMER_MEMORY_EXTRACT` | LLM extracción de hechos | `bool` | `1` | inmediatamente | Extraiga hechos normalizados de sujeto/predicado/objeto a través de LLM (activado por defecto) en lugar de almacenar fragmentos de oraciones sin procesar, lo cual es necesario para que se active la maquinaria de gráficos/contradicciones/sueños. Agrega una llamada LLM por mensaje capturado; active para guardar la llamada. Se aplica de inmediato, sin reiniciar. |
| `AIHUMMER_MEMORY_MEANING_TIMEOUT` | Tiempo límite de la búsqueda por significado | `text` | `4s` | inmediatamente | Cuánto espera una búsqueda en la memoria y en la base de conocimiento a la búsqueda por significado. Si el modelo de significado está ocupado (por ejemplo, calculando vectores tras una importación) y no responde a tiempo, el agente recibe de inmediato lo encontrado por palabras, con una nota, en lugar de esperar decenas de segundos. Por ejemplo: 4s — 4 segundos, 1500ms — 1,5 segundos. 0 — esperar lo que haga falta. Se aplica de inmediato, sin reinicio. |
| `AIHUMMER_MEMORY_QUALITY_CHECK` | Autocomprobación diaria de la memoria | `bool` | `1` | inmediatamente | Una vez al día la memoria se hace preguntas de control sobre sus hechos confirmados (hasta 60 hechos, las mismas preguntas cada día) y preguntas sin respuesta, las pasa por la búsqueda en memoria y el recuerdo automático y mide la exhaustividad, la precisión, el MRR y los falsos recuerdos. Resultado y gráfico diario: Memoria → Calidad de la memoria. Las preguntas sobre hechos nuevos las redacta una sola vez el modelo de servicio (el que extrae hechos de las conversaciones; sin él, con una plantilla); los resultados se quedan en la instancia. Se aplica al instante, sin reiniciar. |
| `AIHUMMER_MEMORY_RECALL` | Recuperación automática de memoria | `enum: strong \\\| always \\\| off` | `strong` | inmediatamente | Si lo encontrado en la memoria se añade automáticamente a la respuesta. «Solo coincidencias fuertes»: el hecho debe coincidir con el mensaje en al menos dos palabras importantes; saludos y «ok» no traen nada. «Todo lo parecido»: todo lo que coincidió de algún modo y los registros vinculados: más ruido. «No añadir»: el agente busca en la memoria por sí mismo cuando lo crea necesario. |
| `AIHUMMER_MEMORY_RECALL_MAX` | Hechos por respuesta | `int` | `5` | inmediatamente | Número máximo de hechos de memoria añadidos a una respuesta (predeterminado 5). Las reformulaciones del mismo hecho cuentan como uno. Se aplica de inmediato, sin reiniciar. |
| `AIHUMMER_MEMORY_RECALL_MIN_SCORE` | Coincidencia mínima para la recuperación automática, % | `int` | `10` | inmediatamente | Qué proporción de las palabras significativas del mensaje (ponderadas por rareza) debe cubrir un hecho para añadirse automáticamente, en porcentaje. Predeterminado 10, ajustado con conversaciones reales. Más alto = menos frecuente y más preciso; más bajo = más frecuente y con más ruido. No afecta a la búsqueda explícita memory_search. 0 = sin umbral: bastan dos palabras significativas coincidentes. Se aplica de inmediato, sin reiniciar. |
| `AIHUMMER_MEMORY_RECALL_MIN_SIMILARITY` | Similitud mínima de significado para la recuperación automática, % | `int` | `86` | inmediatamente | Solo para la búsqueda de memoria por significado (embedder): cuán cerca en significado del mensaje debe estar un hecho para añadirse automáticamente, en porcentaje de similitud. Por defecto 86: ajustado para el modelo multilingual-e5-base con memoria real; por debajo, se añaden hechos ajenos a casi cada mensaje. Otros modelos (por ejemplo bge-m3) miden la similitud de otra forma: elija un valor con «Preguntar a la memoria» en la ficha del agente. 0 = sin umbral. No afecta a la búsqueda explícita memory_search. Se aplica de inmediato, sin reiniciar. |
| `AIHUMMER_MEMORY_RETRIEVAL` | Modo de recuperación de memoria | `enum: fulltext \\\| embedding` | `fulltext` | tras reiniciar | Cómo busca el agente en la memoria. «Por palabras» es la búsqueda de texto normal: funciona al instante y no carga el servidor. «Por significado» encuentra lo parecido en sentido, aunque se diga con otras palabras, pero necesita el modelo de búsqueda por significado (sección Servicios adicionales) y una carga de CPU notable. |
| `AIHUMMER_QDRANT_API_KEY` | Clave Qdrant API | `text` | — | tras reiniciar | Clave API de Qdrant, si el almacén vectorial requiere autorización. Solo es necesaria cuando se ha indicado la dirección de Qdrant. Se aplica al inicio/después del reinicio. |
| `AIHUMMER_QDRANT_URL` | Qdrant URL (almacén de vectores duraderos) | `text` | — | tras reiniciar | Dirección del almacén Qdrant para la búsqueda por significado. Vacío: los datos de búsqueda se guardan en memoria y se pierden al reiniciar el servidor; indique una dirección para uso permanente. |
| `AIHUMMER_RAG_QUERY_EXPANSION` | Reformular con el modelo las consultas a la base de conocimiento | `bool` | `0` | inmediatamente | Antes de buscar en la base de conocimiento, pedir al modelo para tareas de servicio 3 reformulaciones de la consulta y buscar con todas. A veces encuentra más, pero es una llamada extra al modelo en CADA búsqueda (cuota y latencia); si el modelo falla, solo se busca con la formulación original y el fallo aparece en el registro y en el resultado de la búsqueda. Desactivado por defecto: las palabras ya se encuentran con la búsqueda de texto completo. Se aplica de inmediato, sin reiniciar. |
| `AIHUMMER_RERANKER_URL` | RAG sidecar reranker URL | `text` | — | tras reiniciar | HTTP URL del sidecar del codificador cruzado para reclasificar la búsqueda híbrida. En blanco = reclasificación desactivada. Se aplica al inicio/después del reinicio. |
## Moderation
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_MODERATION` | Moderación de entrada | `bool` | `1` | inmediatamente | "off" desactiva la protección integrada contra jailbreak/prompt-injection. Cualquier otro valor = activada. Se aplica de inmediato, sin reiniciar. |
| `AIHUMMER_MODERATION_REFUSAL` | Mensaje de rechazo de moderación | `text` | — | inmediatamente | Texto de rechazo que se devuelve cuando el moderador bloquea una solicitud (en blanco = integrado). Se aplica de inmediato, sin reiniciar. |
## Network
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_OUTBOUND_PROXY_CUSTOM_URL` | Proxy saliente: dirección propia | `text` | — | inmediatamente | URL de proxy HTTPS; HTTP solo en loopback, sin ruta, consulta ni fragmento. Guarda la dirección antes de elegir custom. Se oculta en la API y se almacena en los ajustes de la aplicación. |
| `AIHUMMER_OUTBOUND_PROXY_MODE` | Proxy saliente para proveedores de modelos extranjeros | `enum: auto \\\| off \\\| custom` | `auto` | inmediatamente | Cómo llega el servidor a los proveedores de modelos extranjeros. «Según el proveedor»: como esté configurado en la cuenta del proveedor; «Directo, sin proxy»: sin intermediarios; «A través de su propio proxy»: mediante la dirección que guardó abajo. Que funcione depende de las reglas de cada proveedor. |
| `AIHUMMER_RUSSIAN_TRUSTED_EXTRA_HOSTS` | Hosts fuera de .ru para las raíces del Ministerio de Desarrollo Digital de Rusia | `list` | — | tras reiniciar | Lista de hosts, separados por comas, que pueden ser verificados por las raíces de Ministerio de Desarrollo Digital de Rusia SOBRE dominios rusos (.ru/.su/.рф - ya incluido). Es necesario si su nodo con el certificado Ministerio de Desarrollo Digital de Rusia se encuentra en un dominio diferente. Coincidencia por nombre o límite de subdominio: ejemplo.com cubre api.ejemplo.com. Vacío = solo dominios rusos. Se aplica al inicio/después del reinicio. |
## Performance
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_CHANNEL_TURN_QUEUE_WAIT_SEC` | Espera en cola: mensaje de canal (segundos) | `int 10…1200` | `600` | inmediatamente | Cuánto espera un mensaje de canal (Telegram y otros) a que haya un hueco libre cuando todos los huecos de turnos están ocupados. Si no lo consigue a tiempo, se avisa a la persona de que el servidor está ocupado y puede volver a escribir. La espera cuenta dentro del límite de 30 minutos del turno. 10–1200. Se aplica al instante. |
| `AIHUMMER_MAX_ACTIVE_TURNS` | Turnos de agentes simultáneos (todo el servidor) | `int 1…512` | `32` | inmediatamente | Cuántos turnos de agentes (respuestas en canales y en el chat web, programaciones) ejecuta el servidor a la vez. El resto espera en cola tanto tiempo como permitan los ajustes «Espera en cola» de abajo, y la persona ve «servidor ocupado, en cola». Un valor mayor reduce la espera, pero usa más memoria, conexiones a la base de datos y peticiones simultáneas al modelo. La mitad de este número limita las llamadas auxiliares simultáneas al modelo (extracción de memoria, resúmenes). 1–512. Se aplica al instante. |
| `AIHUMMER_SYNC_INBOUND_QUEUE_WAIT_SEC` | Espera en cola: llamada síncrona de integración (segundos) | `int 1…120` | `10` | inmediatamente | Cuánto espera a que haya un hueco libre la llamada de una integración que aguarda la respuesta en la misma petición, cuando todos los huecos de turnos están ocupados. Si no lo consigue, la integración recibe «servidor ocupado» con el consejo de reintentar tras el mismo número de segundos; un reintento con el mismo número de mensaje no lo guarda dos veces. 1–120. Se aplica al instante. |
| `AIHUMMER_WEB_TURN_QUEUE_WAIT_SEC` | Espera en cola: mensaje del chat web (segundos) | `int 10…1200` | `180` | inmediatamente | Cuánto espera un mensaje del chat web a que haya un hueco libre cuando todos los huecos de turnos están ocupados. Mientras tanto el chat muestra «servidor ocupado, en cola»; si no lo consigue a tiempo, la respuesta se rechaza con un botón «Reintentar» que sigue en el historial incluso tras recargar la página. 10–1200. Se aplica al instante. |
## Public access
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_PUBLIC_URL` | Dirección pública del servidor | `text` | — | parcialmente tras reiniciar | La dirección desde la que el panel y las apps se abren en internet, p. ej. https://ai.example.com. Diríjala a través de su proxy (nginx, Caddy) al puerto del servidor, 8780 por defecto. |
| `AIHUMMER_WIDGET_ALLOWED_ORIGINS` | Widget web: orígenes de sitio permitidos | `list` | — | inmediatamente | Lista separada por comas de orígenes del navegador autorizados a insertar el widget de chat web, por ejemplo https://example.com,https://www.example.com. El esquema y el puerto deben coincidir exactamente. Vacío = ningún sitio externo puede usar el widget. La entrada `*` se ignora de forma intencionada, porque permitiría que cualquier página de internet gastara el presupuesto de esta instancia. |
| `POCKET_AGENT_GATEWAY_BASE_URL` | Puerta de enlace de agente de bolsillo público URL | `text` | — | inmediatamente | Proxy → el puerto de puerta de enlace del agente de bolsillo (POCKET_AGENT_PORT, predeterminado 8080. El agente remoto marca esto mediante un ticket único. |
| `TELEGRAM_PUBLIC_URL` | Webhook de Telegram público URL | `text` | — | inmediatamente | Solo modo webhook: proxy → el puerto del conector de telegramas (predeterminado 8091). URL necesario). |
## SSO (LDAP/AD)
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_LDAP_BASE_DN` | DN de base de búsqueda de usuario | `text` | — | tras reiniciar | Raíz de búsqueda, p. OU=Users,DC=corp,DC=example. |
| `AIHUMMER_LDAP_BIND_DN` | DN de enlace de servicio | `text` | — | tras reiniciar | Cuenta utilizada para el enlace de búsqueda inicial, p. CN=svc-aihummer,OU=Servicio,DC=corp,DC=ejemplo. En blanco = búsqueda anónima. |
| `AIHUMMER_LDAP_DEFAULT_ROLE` | LDAP: rol predeterminado (no hay coincidencia de grupo) | `text` | — | tras reiniciar | Rol otorgado cuando ningún grupo coincide con una asignación. En blanco = sin función. |
| `AIHUMMER_LDAP_ENABLED` | Habilitar LDAP/inicio de sesión AD | `bool` | `0` | tras reiniciar | Cuando está activado, los inicios de sesión de administrador vuelven al directorio. La contraseña de vinculación se encuentra en Secretos (alcance ldap, nombre bind_password). |
| `AIHUMMER_LDAP_GROUP_ATTR` | Atributo de grupo (predeterminado memberOf) | `text` | — | tras reiniciar | Atributo en los DN del grupo de lista de entradas de usuario. En blanco se deshabilita la asignación de grupo → rol. |
| `AIHUMMER_LDAP_ROLE_MAPPINGS` | LDAP: grupo→asignaciones de roles (JSON) | `text` | — | tras reiniciar | JSON objeto del grupo DN (o CN simple) → rol, p.e. {"CN=Admins,OU=Groups,DC=corp,DC=example":"admin","Operators":"operator"}. |
| `AIHUMMER_LDAP_SKIP_TLS_VERIFY` | Omitir verificación TLS (solo laboratorio, 1/0) | `bool` | `0` | tras reiniciar | Deshabilita la verificación del certificado de directorio. Nunca habilite en producción. |
| `AIHUMMER_LDAP_URL` | Directorio URL | `text` | — | tras reiniciar | p.ej. ldaps://ad.corp.example:636 (TLS) o ldap://dc1.corp.example:389. |
| `AIHUMMER_LDAP_USER_ATTR` | Atributo de inicio de sesión (predeterminado sAMAccountName) | `text` | — | tras reiniciar | El atributo LDAP/Active Directory coincide con el inicio de sesión que escribe el usuario (sAMAccountName predeterminado; uid para OpenLDAP, userPrincipalName para inicios de sesión de estilo UPN). |
| `AIHUMMER_LDAP_USER_FILTER` | Filtro de búsqueda de usuario | `text` | — | tras reiniciar | Debe contener %s para el inicio de sesión. ANUNCIO: (sAMAccountName=%s); OpenLDAP: (uid=%s). |
## SSO (OIDC)
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_OIDC_AUDIENCE` | OIDC audiencia | `text` | — | tras reiniciar | Reclamo `aud` esperado: establezca esto en la audiencia del recurso THIS para rechazar los tokens acuñados para otra parte de confianza. El reclamo `aud` ahora es REQUIRED en cada token de forma predeterminada (un token sin aud se rechaza cuando está configurado, aud también debe contenerlo). en producción. |
| `AIHUMMER_OIDC_ISSUER` | OIDC emisor URL | `text` | — | tras reiniciar | El emisor del IdP (por ejemplo, https://login.example.com). habilita la autenticación OIDC JWT cuando está configurada. |
| `AIHUMMER_OIDC_JWKS_URL` | URL de JWKS de OIDC | `text` | — | tras reiniciar | JSON Punto final del conjunto de claves web utilizado para verificar las firmas de tokens. |
| `AIHUMMER_OIDC_TENANT_CLAIM` | OIDC reclamo de espacio de trabajo | `text` | — | tras reiniciar | JWT reclamo que lleva la identificación del espacio de trabajo (por ejemplo, tenant_id / org). |
## SSO (SAML)
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_SAML_DEFAULT_ROLE` | SAML: Rol predeterminado (sin grupo) coincidencia) | `text` | — | tras reiniciar | Rol otorgado cuando no se asigna ningún valor afirmado. En blanco = sin función. |
| `AIHUMMER_SAML_ENABLED` | Habilitar SAML 2.0 SSO | `bool` | `0` | tras reiniciar | Expone /saml/metadata, /saml/acs, /saml/login. La clave privada del SP se encuentra en Secretos (alcance saml, nombre sp_key). |
| `AIHUMMER_SAML_ENTITY_ID` | ID de entidad SP | `text` | — | tras reiniciar | ID de entidad del SP (el valor predeterminado es ⟨root⟩/saml/metadata si está en blanco). |
| `AIHUMMER_SAML_IDP_METADATA` | Metadatos de IdP XML | `text` | — | tras reiniciar | Pegue el documento de metadatos SAML del IdP (Okta/Azure AD/ADFS). |
| `AIHUMMER_SAML_ROLE_ATTRIBUTE` | Atributo de rol/grupo (grupos predeterminados) | `text` | — | tras reiniciar | Atributo de aserción que lleva valores de grupo/rol. |
| `AIHUMMER_SAML_ROLE_MAPPINGS` | SAML: Grupo→asignaciones de roles (JSON) | `text` | — | tras reiniciar | JSON objeto de valor afirmado → rol, p.e. {"AdminGroup":"admin","Ops":"operator"}. |
| `AIHUMMER_SAML_ROOT_URL` | SP raíz URL | `text` | — | tras reiniciar | Base accesible externamente URL de esta puerta de enlace, p. https://app.example.com. ACS = ⟨root⟩/saml/acs. |
| `AIHUMMER_SAML_SP_CERT` | Certificado SP (PEM) | `text` | — | tras reiniciar | Certificado de firma de SP público (PEM). La clave privada correspondiente va en Secretos (alcance saml, nombre sp_key). |
## Schedules
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_SCHEDULE_AGENT_MAX_ACTIVE` | Agente: límite de programaciones activas | `int` | `20` | inmediatamente | Cuántas programaciones activas puede tener un agente cuando crea o activa una programación por sí mismo (con sus herramientas de programación). Las creadas en el panel cuentan para el límite, pero al panel nunca se le rechaza. Al llegar al límite, se pide al agente que primero pause o elimine una. Se aplica de inmediato. |
| `AIHUMMER_SCHEDULE_AGENT_MAX_FIRES_PER_DAY` | Agente: ejecuciones de programaciones por día | `int` | `288` | inmediatamente | Cuántas veces al día (UTC) pueden ejecutarse en total todas las programaciones de un agente, incluidas las creadas en el panel y las ejecuciones manuales. Las ejecuciones por encima del límite se omiten y se muestran en el registro de ejecuciones. Se aplica de inmediato. |
| `AIHUMMER_SCHEDULE_AGENT_MIN_INTERVAL_MINUTES` | Agente: intervalo mínimo de programación, minutos | `int` | `5` | inmediatamente | El menor intervalo entre dos ejecuciones de una programación periódica que un agente crea o cambia por sí mismo. Una programación más frecuente se rechaza. Las programaciones creadas en el panel no están limitadas por esto. Se aplica de inmediato. |
| `AIHUMMER_SCHEDULE_COMMANDS` | Comandos en el servidor en las programaciones | `bool` | `0` | inmediatamente | Permite que una programación ejecute un programa en este servidor: un recopilador, un informe, una comprobación de copia de seguridad. Desactivado por defecto. Solo se ejecutan los comandos de «Comandos permitidos», exactamente como están escritos; no hay shell. La salida va al agente o directamente a un chat, y cada ejecución aparece en el registro de la programación. Se aplica de inmediato. |
| `AIHUMMER_SCHEDULE_COMMANDS_ALLOWLIST` | Comandos permitidos | `argvlist` | — | inmediatamente | Los comandos exactos que puede ejecutar una programación: el programa (un nombre como df o una ruta completa) y sus argumentos. Una programación solo ejecuta un comando que coincide exactamente con una entrada, argumentos incluidos. Quitar un comando detiene las programaciones que lo usan, y sus ejecuciones indican el motivo. Se aplica de inmediato. |
| `AIHUMMER_SCHEDULE_COMMANDS_MAX_OUTPUT_KB` | Límite de salida de los comandos programados, KB | `int 1…1024` | `64` | inmediatamente | Cuánta salida de un comando (1–1024 KB) se guarda en el registro y se pasa al agente o al chat; el resto se corta y el registro lo indica. Se aplica de inmediato. |
| `AIHUMMER_SCHEDULE_COMMANDS_SANDBOX` | Ejecutar los comandos programados en el entorno aislado del sistema | `bool` | `1` | inmediatamente | Activado: el comando se ejecuta en el entorno aislado del sistema, como la ejecución de código; los secretos de la instalación y las claves SSH quedan ocultos y solo escribe en su propia carpeta temporal. Sin entorno aislado (bubblewrap) en el servidor, el comando no se ejecuta y el registro dice por qué. Desactivado: se ejecuta con los permisos de la pasarela. Se aplica de inmediato. |
| `AIHUMMER_SCHEDULE_FAILURE_ADMIN` | Avisar al administrador de las tareas fallidas | `bool` | `1` | inmediatamente | Cuando una tarea programada falla o no puede empezar, aparece en la campana de notificaciones del panel un aviso con su nombre, el motivo y dónde corregirlo, y lo mismo se envía a los chats de canal propios de los propietarios (como máximo una vez cada 6 horas por tarea). Esto se suma al mensaje al destinatario de la tarea. Desactivado: el administrador solo se entera de los fallos por el registro de ejecuciones. Se aplica de inmediato. |
| `AIHUMMER_SCHEDULE_FAILURE_NOTIFY` | Avisar al destinatario si una tarea falla | `bool` | `1` | inmediatamente | Cuando una tarea programada falla, el mismo destinatario recibe un mensaje breve (tras el primer fallo, como máximo una vez cada 6 horas). Desactivado: los fallos quedan solo en el registro de ejecuciones. Cada tarea puede desactivarlo en su formulario. Se aplica de inmediato. |
## Security
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_AIRGAPPED` | Modo aislado (sin internet) | `bool` | `0` | inmediatamente | Impide que los agentes salgan a internet: la búsqueda web, la apertura de páginas y las peticiones solo llegan a direcciones internas y a las de las listas permitidas. Actívelo en redes cerradas sin salida al exterior. |
| `AIHUMMER_AUDIT_RETENTION_DAYS` | Cuántos días conservar el registro de acciones | `int` | `0` | tras reiniciar | Las entradas del registro de auditoría y del historial de cambios de la configuración más antiguas se eliminan una vez al día. 0 o vacío: conservar siempre. |
| `AIHUMMER_CORS_ORIGINS` | Orígenes CORS permitidos | `list` | — | tras reiniciar | Lista de orígenes permitidos separados por comas. En blanco = CORS no permitido (solo del mismo origen). Se aplica al inicio/después del reinicio. |
| `AIHUMMER_CSP` | Encabezado Content-Security-Policy (anulación) | `text` | — | tras reiniciar | Anula el encabezado CSP. En blanco = un valor predeterminado seguro. Se aplica al inicio/después del reinicio. |
| `AIHUMMER_INBOUND_SECRET` | Clave de los plugins de canal con el servidor | `text` | — | tras reiniciar | Los canales conectados (Telegram, VK y otros) la usan para demostrar que los mensajes vienen realmente de ellos. Se fija automáticamente al instalar: no hace falta cambiarla. Si está vacía, el servidor rechaza todos los canales hasta que se defina una clave. |
| `AIHUMMER_OPENAI_COMPAT_KEY` | Entrante compatible con OpenAI: clave estática API | `text` | — | tras reiniciar | Una clave común para programas que se conectan al servidor como a un servicio compatible con OpenAI. Vacío: la clave común está desactivada; se puede conectar con claves personales de la página Claves de API. |
| `AIHUMMER_OPENAI_COMPAT_WORKSPACE` | Entrante compatible con OpenAI: ID del espacio de trabajo | `text` | — | tras reiniciar | Id. del espacio de trabajo al que se asigna la autenticación estática compatible con OpenAI. En blanco = AIHUMMER_DEFAULT_WORKSPACE_ID. Se aplica al inicio/después del reinicio. |
| `AIHUMMER_REQUIRE_2FA` | Requiere 2FA para operadores | `bool` | `0` | inmediatamente | Requiere un segundo factor (TOTP/contraseña) para los operadores. Cuando está activado, se solicita a los operadores sin 2FA que lo configuren inmediatamente al iniciar sesión (sin bloquear, por lo que el propietario nunca queda bloqueado). Aplicado inmediatamente. |
| `AIHUMMER_REQUIRE_SECURE` | Aceptar solo conexiones seguras (HTTPS/WSS) | `bool` | `0` | tras reiniciar | Cuando está activado, las solicitudes HTTP simples se redirigen a HTTPS (para GET/HEAD) o se rechazan (403); El acceso al host local siempre está permitido, por lo que el operador nunca queda excluido. Honra X-Forwarded-Proto desde un proxy inverso con terminación TLS. Se aplica al inicio/después del reinicio. |
| `AIHUMMER_TRUSTED_PROXIES` | Proxies de confianza | `list` | — | inmediatamente | Si hay un proxy (nginx, Caddy, balanceador) delante del servidor, escriba su dirección o red separadas por comas, p. ej. 10.0.0.0/8. Así el registro de acciones, la lista de IP permitidas y la protección contra adivinar contraseñas verán la dirección real del visitante. Vacío: solo cuenta la dirección de la conexión directa y no se puede falsificar. |
## Tools
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_BROWSER_ALLOWED_HOSTNAMES` | Navegador: excepciones de hosts privados | `list` | — | inmediatamente | Nombres exactos separados por comas, sin comodines, URL ni puertos. Excepciones privadas adicionales para CDP nativo en servidor propio, aparte de web_fetch. |
| `AIHUMMER_BROWSER_ALLOW_PRIVATE_NETWORK` | Navegador: permitir la red privada | `bool` | — | inmediatamente | Vacío conserva la política anterior; true o false activa el CDP nativo comprobado. Acceso privado solo en servidor propio. Loopback, enlace local y metadatos siguen bloqueados. |
| `AIHUMMER_BROWSER_PROFILE_SOCKET` | Socket de control de perfiles del navegador | `text` | — | inmediatamente | Opcional. Déjalo vacío: la pasarela encuentra por sí misma managed-profiles.sock del servicio del navegador en la ubicación de instalación estándar. Los perfiles con sesión en sitios se crean en Conexiones → Perfiles del navegador. No es una URL ni la ruta de un perfil de origen. |
| `AIHUMMER_CODE_EXEC` | Ejecución de código por el agente | `enum: off \\\| host \\\| sandbox` | `off` | inmediatamente | La herramienta de ejecución de código del agente (code_exec). «Desactivado» es el valor predeterminado. «En este servidor»: los comandos se ejecutan en el servidor de la pasarela; la zona de pruebas del sistema operativo (bubblewrap) oculta los secretos de la instalación, pero un agente en modo «Sin restricciones» ve las claves SSH y puede escribir fuera de su carpeta; solo para un servidor de confianza. «Solo en zona de pruebas»: siempre en la zona de pruebas del sistema operativo; los secretos y las claves quedan ocultos y solo se escribe en la carpeta del agente; sin bubblewrap (o una imagen de contenedor) este modo no se puede guardar. Lo que cada agente puede ejecutar se define en el agente: Agentes → perfil → Herramientas. |
| `AIHUMMER_CODE_EXEC_INTERPRETERS` | Intérpretes de Code-exec (JSON) | `text` | — | inmediatamente | JSON objeto {language: path_to_binary}, p.e. {"python":"/usr/bin/python3"}. En blanco = detección automática. |
| `AIHUMMER_CODE_EXEC_NET_PORTS` | Puertos de red abiertos al código del agente | `list` | `53,80,443` | inmediatamente | Puertos TCP a los que puede conectarse el código del agente en el entorno aislado del sistema operativo (ejecución de código y comandos de programación), separados por comas. Por defecto 53, 80 y 443: DNS y sitios web. Los demás servicios de este servidor y de su red local (la base de datos, el panel de administración, el navegador, adb, los modelos locales, Home Assistant) quedan cerrados al código del agente. Un puerto de la lista está abierto en cualquier dirección, también en este servidor, así que añada solo lo que el código necesita, por ejemplo 22 para SSH. Escriba any para quitar el límite. Los agentes en modo «Sin restricciones» no están limitados. Requiere Linux 6.7 o posterior; sin él el límite no se aplica y Agentes → Herramientas lo indica. Se aplica de inmediato. |
| `AIHUMMER_CODE_EXEC_READ_DIRS` | Carpetas abiertas al código del agente (solo lectura) | `list` | — | inmediatamente | Carpetas de este servidor que el código del agente puede leer: ejecución de código y comandos de programación en el entorno aislado del sistema operativo. Separadas por comas o una por línea, por ejemplo ~/reports. También puede indicar un solo archivo, por ejemplo ~/scripts/report.py. Lo que se abre aquí es visible para el código de todos los agentes, así que abra solo lo que ese código necesita. Vacío por defecto: en el entorno aislado el código solo ve la carpeta de su agente y las carpetas del sistema; la carpeta personal del usuario de la pasarela, los datos de la instalación, las carpetas de otros agentes, las claves y el historial de comandos permanecen ocultos. No se pueden abrir la raíz, toda la carpeta personal, los datos de la instalación ni los lugares con claves. El código no puede escribir en estas carpetas. Se aplica de inmediato. |
| `AIHUMMER_CODE_EXEC_SANDBOX_IMAGE` | Imagen de zona de pruebas de Code-exec | `text` | — | inmediatamente | Opcional, solo para «Solo en zona de pruebas»: una imagen de contenedor Docker en lugar de la zona de pruebas del sistema operativo (sin red, raíz de solo lectura, límites); requiere Docker en el servidor. Vacío = la zona de pruebas del sistema operativo (bubblewrap). |
| `AIHUMMER_CODE_EXEC_TIMEOUT_SECONDS` | Límite de tiempo de ejecución de código (segundos) | `int` | `1800` | inmediatamente | Cuánto puede durar un comando del agente, incluidos los de segundo plano: de 10 segundos a 24 horas. Un comando que no responde en 30 segundos no se corta, sino que pasa a segundo plano, donde el agente lo revisa con la herramienta process. El agente puede pedir un límite menor, nunca mayor. |
| `AIHUMMER_DB_QUERY_DSN` | Conexión a la base de datos para la herramienta de consultas | `text` | — | inmediatamente | Cadena de conexión a una base de datos que el agente puede leer (solo lectura), p. ej. postgres://reader:contraseña@host/db. Use un usuario con permisos mínimos, no el propietario de la base. Vacío: la herramienta está desactivada. |
| `AIHUMMER_FS_ROOT` | Raíz de la herramienta del sistema de archivos | `text` | — | inmediatamente | La carpeta dentro de la cual el agente lee los archivos del servidor (filesystem_read; los agentes no pueden escribir archivos). Vacío = todo el servidor con los permisos del usuario del gateway, salvo sus secretos: ajustes de instalación (gateway.env), claves SSH/GPG y entornos de procesos. Indique una carpeta para restringir el acceso. |
| `AIHUMMER_HTTP_ALLOWLIST` | Direcciones para las peticiones HTTP del agente | `list` | — | inmediatamente | Lista de hosts separados por comas a los que la herramienta http_request puede acceder. En blanco = se permiten todos, salvo las direcciones internas y privadas. |
| `AIHUMMER_HTTP_AUTH_JSON` | autenticación http_request (JSON) | `text` | — | inmediatamente | Mapa JSON que asocia el host con las cabeceras de autorización para la herramienta http_request, para no guardar los tokens en el prompt. En blanco = sin autorización. |
| `AIHUMMER_MCP_SERVERS` | MCP servidores (JSON) | `text` | — | inmediatamente | Descripción en JSON de los servidores MCP externos cuyas herramientas se conectan al agente. En blanco = sin MCP externos. |
| `AIHUMMER_PROJECT_STUDIOS_PUBLIC_NETWORK` | Estudios de proyectos: red pública | `bool` | `false` | inmediatamente | Permitir HTTP(S) público para los proveedores elegidos y las descargas de modelos solicitadas expresamente. Las direcciones privadas, locales y de metadatos siguen bloqueadas. El modo sin conexión tiene prioridad. Se aplica de inmediato. |
| `AIHUMMER_SIDECAR_CLOAKBROWSER` | Navegador para el agente (CloakBrowser) | `bool` | `0` | inmediatamente | Navegador antidetección (herramientas CloakBrowser, browser/computer). Lo que NO está incluido en el paquete de entrega: la inclusión descarga el complemento firmado (~477 MiB, de los cuales Chromium ~207 MiB) e instala el servicio en el host. El complemento más pesado: habilítelo solo si el agente necesita abrir sitios web. |
| `AIHUMMER_SIDECAR_SEARXNG` | Búsqueda web (SearXNG) | `bool` | `0` | inmediatamente | Búsqueda web (herramienta SearXNG, web_search). NO incluido en el paquete: al activarlo se descarga el complemento firmado (~154 MiB) e instala el servicio en el host; al desactivarlo se detiene y se libera espacio. La instalación se produce en segundo plano y tarda unos minutos; el estado aquí muestra lo que realmente hay en el servidor. |
| `AIHUMMER_WEBFETCH_ALLOWLIST` | Sitios que el agente puede abrir | `list` | — | inmediatamente | Lista de dominios separados por comas a los que la herramienta web_fetch puede acceder. En blanco = se permiten todos, salvo las direcciones internas y privadas. |
| `AIHUMMER_WEB_SEARCH_LANGUAGE` | Búsqueda web: idioma predeterminado de los resultados | `text` | `auto` | inmediatamente | Idioma de los resultados cuando el agente no indica uno: un código como ru, en o de, o auto para detectarlo a partir de la consulta (sirve casi siempre). El agente puede elegir otro idioma en una búsqueda concreta. |
| `AIHUMMER_WEB_SEARCH_RESULTS` | Búsqueda web: resultados por búsqueda | `int` | `5` | inmediatamente | Cuántos resultados devuelve una búsqueda cuando el agente no pide una cantidad: de 1 a 10. Más resultados dan una respuesta más completa, pero un contexto más largo. |
| `AIHUMMER_WEB_SEARCH_SOURCE` | Fuente de búsqueda web | `enum: auto \\\| searxng \\\| provider` | `auto` | inmediatamente | Dónde busca el agente en internet (la herramienta web_search). auto: SearXNG si está instalado; si no, la búsqueda integrada del proveedor del modelo. searxng: solo SearXNG; sin él no hay búsqueda. provider: la búsqueda integrada del proveedor donde exista y SearXNG para los demás modelos. La búsqueda integrada existe en Codex (suscripción de ChatGPT) y OpenAI (api.openai.com); GigaChat, YandexGPT y otros modelos compatibles con OpenAI no la tienen: sin SearXNG, los agentes con esos modelos no buscan. Claude (api.anthropic.com y la suscripción de Claude) usa la búsqueda integrada de Anthropic; si la cuenta la rechaza, la pasarela lo anota en el registro y a partir de ahí ofrece al agente solo SearXNG. Qué agentes pueden buscar se configura en la ficha del agente, como antes. Se aplica desde el siguiente turno. |
| `AIHUMMER_WEB_SEARCH_TIMEOUT_SECONDS` | Tiempo de búsqueda web (segundos) | `int` | `30` | inmediatamente | 1–600 segundos por búsqueda. Sigue vigente un plazo de tarea más corto. |
## Updates
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_RESTART_APPLY` | Aplicar los ajustes que requieren reinicio | `enum: quiet \\\| manual` | `quiet` | inmediatamente | quiet (predeterminado): los ajustes guardados que solo surten efecto con un nuevo arranque de la pasarela se aplican solos: la pasarela se reinicia en el siguiente momento tranquilo, cuando los agentes no hacen nada y las personas llevan en silencio al menos la ventana de silencio. manual: solo la marca «esperando reinicio» y el botón. Un reinicio dura unos segundos; las conversaciones y las tareas no se pierden. Se aplica de inmediato. |
| `AIHUMMER_RESTART_QUIET_MINUTES` | Momento tranquilo: minutos de silencio antes de un reinicio automático | `int 0…1440` | `10` | inmediatamente | Cuántos minutos deben callar las personas (y estar inactivos los agentes) antes de que la pasarela se reinicie sola para aplicar los ajustes guardados. 0: en cuanto los agentes terminen su trabajo actual. 0–1440. Se aplica de inmediato. |
## Web UI (separate port)
| Clave | Nombre | Tipo | Predeterminado | Se aplica | Qué hace |
| --- | --- | --- | --- | --- | --- |
| `AIHUMMER_WEBUI_API_BASE` | Dirección del servidor para un panel alojado aparte | `text` | — | tras reiniciar | Solo hace falta si el panel se abre desde una dirección distinta a la del propio servidor. Indique la dirección por la que el navegador llega al servidor, p. ej. https://api.example.com. Vacío: se usa la dirección pública del servidor o, si no hay, la local. |
| `AIHUMMER_WEBUI_ENABLED` | Panel en un puerto aparte | `bool` | `1` | tras reiniciar | Activado: el panel se abre en un puerto interno aparte que puede cerrar a internet, y el puerto público solo atiende apps y canales. Desactívelo para que el panel no esté disponible en absoluto. |
| `AIHUMMER_WEBUI_ORIGIN` | Dirección desde la que se abre el panel | `text` | — | tras reiniciar | Rellénelo si el panel se abre a través de un proxy o con un nombre distinto de la dirección de su puerto, p. ej. https://admin.example.com. El servidor permitirá que un navegador desde esa dirección se comunique con él. Vacío: se usa la dirección del puerto del panel. |
Ajustes disponibles para el operador: 237.