Skip to main content

Referencia de configuración (loomcoding.toml)

Qué es

Cada clave que Loomcoding lee del fichero de proyecto loomcoding.toml, y de dos ficheros del perfil, providers.toml y runtime.toml. Cada clave tiene su tipo, su valor por defecto y si un cambio requiere reiniciar. La página sigue al código, y no al revés.

Para qué

  • Encontrar la clave que cambia un comportamiento, con su rango permitido.
  • Consultar el valor por defecto de una clave que no has escrito.
  • Saber qué cambios surten efecto al momento y cuáles requieren reiniciar.

Cómo

  1. Abre loomcoding.toml en la raíz del proyecto. Loom lo crea en la primera apertura si falta.
  2. Escribe solo las claves que quieras cambiar. Una clave que no escribas toma su valor por defecto.
  3. Reinicia Loom para aplicar el cambio, salvo que la tabla indique otra cosa en las notas.

Ejemplo​

model = "gpt-4o-mini"
max_steps = 12
effort = "high"

[provider]
kind = "openai_compat"
base_url = "https://api.example.invalid/v1"
api_key_env = "EXAMPLE_API_KEY"

[limits]
temperature = 0.2

[agents]
confirm_delegation = "always"

Cómo se leen los valores​

  • Loom lee loomcoding.toml al arrancar y al abrir el agente. Un cambio hecho a mano mientras Loom está en marcha no afecta a la sesión en curso. Por eso, cada clave de abajo requiere reiniciar.
  • /settings guarda sus cambios y los aplica al momento. Al guardar, Loom vuelve a leer también [provider] prompt_cache, request_timeout_secs y [limits].
  • Un proyecto nuevo toma el proveedor y el modelo de la entrada por defecto de providers.toml, o de la primera entrada si no hay una por defecto. Su max_steps es 8.
  • /flow odd on y /flow odd off guardan [flows.odd] enabled. El cambio se aplica al reiniciar.
  • /verbose cambia solo la sesión. No escribe el fichero.
  • Los servidores MCP se configuran en mcp.toml del perfil, no en este fichero.

Nivel superior​

ClaveTipoValor por defectoRequiere reiniciarQué hace
modelcadenasin valor (obligatoria)SíIdentificador del modelo que se envía al proveedor.
max_stepsentero30 cuando la clave no apareceSíNúmero máximo de pasos del agente en un turno.
effortcadenasin valor (el del modelo)SíEsfuerzo de razonamiento. Usa uno de los niveles que ofrece el modelo; /effort los lista.

[provider]​

ClaveTipoValor por defectoRequiere reiniciarQué hace
kindenumeraciónsin valor (obligatoria)SíTipo de API: openai_compat, openai_responses, anthropic o gemini.
base_urlcadenasin valor (obligatoria)SíURL base de la API. /settings acepta HTTPS, o HTTP para localhost, y rechaza credenciales dentro de la URL.
api_key_envcadenavacíaSíNombre de la variable de entorno que guarda la clave. Vacía para un servidor local que no necesita clave.
prompt_cachebooleanosin valor (activada)SíPuntos de caché de prompts del adaptador de Anthropic. LOOMCODING_PROMPT_CACHE la sustituye.
context_windowentero, mayor que 0sin valor (decide el catálogo del modelo)SíTokens por petición que el servidor procesa dentro del plazo.
request_timeout_secsentero, de 1 a 3600120SíTiempo total de cada petición en el adaptador compatible con OpenAI.
effortslista de cadenas, como máximo 16vacía (decide el catálogo del modelo)SíNiveles de esfuerzo que admite un modelo local, en el orden en que la interfaz los muestra. Ejemplo: ["none", "low", "xhigh"].

Búsqueda de la clave para api_key_env: el entorno del proceso, después el fichero .env del proyecto, y después el almacén de credenciales del sistema con el mismo nombre. Loom nunca escribe la clave en el fichero.

[limits]​

ClaveTipoValor por defectoRequiere reiniciarQué hace
max_read_stepsenterosin valor (4 veces max_steps, como mínimo 1)SíNúmero máximo de pasos de lectura en una respuesta del modelo.
max_parallel_toolsentero8 (0 equivale a 8)SíNúmero máximo de llamadas paralelas a herramientas en una respuesta del modelo.
max_concurrent_requestsentero4 (0 equivale a 4)SíNúmero máximo de peticiones simultáneas al proveedor.
max_output_tokensentero4096 (0 equivale a 4096)SíLímite de tokens de salida de cada petición, razonamiento incluido. Tope de 32768.
temperaturenúmero, de 0.0 a 2.00.0SíTemperatura de muestreo. Un valor fuera del rango es un error.

[agents]​

ClaveTipoValor por defectoRequiere reiniciarQué hace
global_dirruta~/.agents/agentsSíCarpeta de agentes globales. Un ~/ inicial se expande a la carpeta personal.
project_dirruta.agents/agents dentro del proyectoSíCarpeta de agentes del proyecto. Una ruta relativa parte de la raíz del proyecto.
trust_project_agentsbooleanofalseSíAprueba todos los agentes del proyecto sin preguntar.
confirm_delegationenumeracióndoubtSíCuándo se pregunta antes de delegar. doubt pregunta solo si encajan varios agentes; always pregunta siempre; never no pregunta.
routingenumeraciónoffSíElección automática de agente. off no elige; rule usa las etiquetas de las tarjetas, sin llamar a un modelo; classifier aplica primero la regla y después un modelo barato.
routing_modelcadenael modelo del padreSíModelo del clasificador. Solo se usa con routing = "classifier".
delegationenumeraciónsin valor (el comportamiento actual)Síoff quita las herramientas de subagentes al modelo. on_request delega solo si lo pides. proactive delega las subtareas independientes. Solo off lo garantiza el código; los otros dos son reglas del prompt.
max_active_subagentsentero, de 1 a 648SíNúmero de subagentes que corren a la vez.
max_depthentero, de 1 a 31SíProfundidad de la delegación. 1 significa sin delegación anidada. Los valores fuera de rango se ajustan al límite.
stall_threshold_secsentero, de 10 a 3600120SíSegundos sin latido antes de que un subagente se marque como atascado.
lost_threshold_secsentero, de 30 a 21600300SíSegundos sin latido antes de que un subagente se marque como perdido. Un valor menor sube al umbral de atasco más 30 segundos.
lost_actionenumeraciónnotifySíQué pasa con un subagente perdido. notify solo lo comunica; fail marca su tarea como fallida y detiene su trabajo.
catalog_rootslista de rutas, como máximo 8vacíaSíRaíces adicionales con .agents/agents y .agents/skills. Sus agentes vienen de terceros, así que necesitan aprobación.

[a2a]​

ClaveTipoValor por defectoRequiere reiniciarQué hace
roleenumeraciónoffSíoff desactiva A2A. serve expone agentes locales a otros clientes, en modo de solo lectura. consume llama a agentes remotos que hayas aprobado. both hace ambas cosas.
request_timeout_secsentero, de 1 a 60030SíPlazo de cada petición HTTP a un agente remoto.
max_card_bytesentero, de 1 a 838860865536SíTamaño máximo de una tarjeta de agente remoto.
max_result_bytesentero, de 1 a 8388608262144SíTamaño máximo del cuerpo de una respuesta remota.
card_refresh_secsentero3600SíSegundos entre descargas de las tarjetas. 0 desactiva la actualización. Los valores por debajo de 60 pasan a 60.
ca_filerutasin valorSíFichero PEM con autoridades de certificación adicionales para los agentes remotos. Se suma a las raíces públicas.
trusted_jwksrutasin valorSíFichero JWKS con las claves que firman las tarjetas. Si se define, toda tarjeta remota necesita una firma válida.

[a2a.serve]​

Solo se usa cuando [a2a] role es serve o both. Una clave desconocida en esta sección es un error.

ClaveTipoValor por defectoRequiere reiniciarQué hace
listencadena127.0.0.1:7077SíDirección en la que escucha el servidor A2A local.
agentcadenadefaultSíNombre del agente local que se ofrece a los clientes. Hasta 200 caracteres.
authtablasin valorSíAutenticación de los clientes. Consulta [a2a.serve.auth].
public_urlcadenasin valorSíDirección pública que se anuncia en la tarjeta del agente. Se valida con las mismas reglas que base_url.
max_concurrent_tasksentero, de 1 a 644SíNúmero de tareas que se atienden a la vez.
max_wait_secsentero, de 1 a 30030SíLímite superior, en segundos, para esperar una tarea.
max_task_secsentero, de 1 a 14400600SíLímite superior, en segundos, para una tarea.

[a2a.serve.auth]​

ClaveTipoValor por defectoRequiere reiniciarQué hace
schemeenumeraciónsin valor (obligatoria con auth)SíEsquema de autenticación: bearer o apikey.
namecadenasin valorSíNombre de la cabecera de la clave. Solo se usa con apikey.
envcadenasin valor (obligatoria)SíVariable de entorno que guarda el secreto. El secreto nunca se escribe en el fichero.

[ui]​

ClaveTipoValor por defectoRequiere reiniciarQué hace
verbose_provider_noticesbooleanofalseSíMuestra en la transcripción los avisos de inicio y fin de cada petición al proveedor. Sin él, mientras corre una petición aparece un indicador de carga.

[compaction]​

ClaveTipoValor por defectoRequiere reiniciarQué hace
backgroundbooleanofalseSíGenera el resumen en segundo plano cuando el contexto se acerca a su límite. Apagada, usa la vía síncrona.

[budget]​

Los avisos aparecen al 80 % y al 100 % de cada límite.

ClaveTipoValor por defectoRequiere reiniciarQué hace
session_tokensentero, mayor que 0sin valorSíLímite de tokens de entrada más salida de la sesión.
session_cost_usdnúmero, mayor que 0sin valorSíLímite en dólares estadounidenses para la sesión, según precios conocidos.
hard_stopbooleanofalseSíSi es true, el agente deja de pedir respuestas al modelo cuando la sesión llega al 100 % de un límite. Si no, el presupuesto solo avisa.

[output_filter]​

ClaveTipoValor por defectoRequiere reiniciarQué hace
enabledbooleanofalseSíCompacta la salida de bash y job_output con reglas para cargo, git y gestores de paquetes. La salida íntegra se conserva en tool-output. LOOMCODING_NO_FILTER=1 lo desactiva.

[flows.<kind>]​

ClaveTipoValor por defectoRequiere reiniciarQué hace
enabledbooleanotrue para oddSíActiva o desactiva un modo de flujo. Hoy solo existe odd. Un kind tiene de 1 a 32 caracteres: letras minúsculas, dígitos, _ o -.

providers.toml​

Este fichero vive en la carpeta del perfil, no en el proyecto. Loom lo crea en su primer uso con tres entradas: llama (un llama-server local), strata y polystrata. Las claves nunca se guardan aquí, solo el nombre de la variable que las contiene.

ClaveTipoValor por defectoRequiere reiniciarQué hace
defaultcadenallama en el fichero inicialSíIdentificador de la entrada de la que toma sus ajustes iniciales un proyecto nuevo.
idcadenasin valor (obligatorio)SíNombre corto que escribes en /provider. Un identificador repetido se ignora; gana la primera entrada.
namecadenasin valor (obligatorio)SíEtiqueta que se muestra en la interfaz.
kindcadenasin valor (obligatorio)SíTipo de API. Hoy solo se acepta openai_compat.
base_urlcadenasin valor (obligatoria)SíURL base, con /v1.
api_key_envcadenasin valorSíVariable que guarda la clave, si el servidor la necesita.
modelcadenasin valor (obligatorio)SíModelo de reserva, que se usa cuando el servidor no responde a la sonda.
context_windowenterosin valorSíVentana de contexto declarada.

runtime.toml​

Este fichero opcional vive en la carpeta del perfil. Loom no lo crea. El servidor local lo lee al arrancar, así que un cambio requiere reiniciar ese servidor. Contiene una sección [a2a] con las mismas claves de arriba, y una sección [supervisor].

ClaveTipoValor por defectoRequiere reiniciarQué hace
supervisortablasin valorSíArranca el agente supervisor, con los ajustes de la sección siguiente.

[supervisor] en runtime.toml​

El supervisor responde con un plazo de 15 segundos, fijado en el código. Si sus ajustes no se pueden usar, no arranca ningún supervisor.

ClaveTipoValor por defectoRequiere reiniciarQué hace
providertablasin valor (obligatoria)SíProveedor del supervisor, con las claves kind, base_url y api_key_env de [provider].
modelcadenasin valor (obligatorio)SíModelo del supervisor.

Siguientes pasos​