<!-- Canonical URL: https://ask.atlascloud.ai/es/how-parallel-tool-calls-change-coding-agent-reliability -->

# ¿Cómo afectan las llamadas paralelas a la fiabilidad de un agente de programación?

> Las llamadas paralelas reducen la latencia de lecturas independientes, pero disminuyen la fiabilidad cuando comparten estado, dependen del orden o escriben. Usa un grafo de dependencias, bloqueos, claves de idempotencia y combinación determinista en vez de paralelizar todo.

Las llamadas paralelas son una propuesta de planificación, no permiso para iniciar todo a la vez. Dos búsquedas suelen solaparse; una edición y un formateador quizá no; una instalación y una prueba no deben arrancar desde el mismo estado previo.

La fiabilidad aumenta cuando la concurrencia sigue un modelo de recursos y dependencias, y disminuye cuando el ejecutor considera que una lista de llamadas demuestra independencia.

## Clasifica las llamadas por efecto

Etiqueta cada herramienta con un comportamiento que el planificador pueda aplicar.

| Clase | Ejemplo | Política predeterminada |
|---|---|---|
| Lectura pura | Leer dos archivos | Paralelo permitido |
| Lectura externa | Consultar dos API | Paralelo con límites |
| Escritura local | Editar un archivo | Serializar por recurso |
| Escritura global | Instalar dependencias | Serializar globalmente |
| Acción irreversible | Publicar o enviar | Exigir puerta explícita |

No confíes solo en nombres. `inspect` puede crear cachés y una prueba puede escribir instantáneas o bases de datos. Documenta los efectos secundarios.

## Construye un grafo antes de ejecutar

Representa llamadas como nodos y el orden requerido como aristas. Una llamada empieza solo cuando sus predecesoras terminan y sus recursos están libres.

```text
read_config ----+
                +--> build --> test
read_source ----+

search_docs ---------> summarize
```

Las dos lecturas pueden coincidir. La compilación espera a ambas y la prueba espera a la compilación. La búsqueda documental puede solaparse si no afecta a sus entradas.

Si el modelo no aporta dependencias, infiérelas de forma conservadora a partir de metadatos y argumentos. Las escrituras ambiguas deben ser seriales.

## Bloquea recursos, no todo el agente

Un bloqueo global es fiable pero lento; los bloqueos por recurso conservan concurrencia segura.

Normaliza rutas antes de compararlas. Editar `src/a.ts` entra en conflicto con formatear `src`, y generar un lockfile entra en conflicto con otra operación de paquetes. Incluye bases de datos, sesiones del navegador, terminales y registros remotos.

| Recurso | Alcance del bloqueo |
|---|---|
| Archivo fuente | Ruta canónica |
| Formateador | Subárbol del directorio |
| Gestor de paquetes | Workspace y lockfile |
| Sesión del navegador | Pestaña o flujo autenticado |
| Despliegue | Entorno y servicio |

## Conserva la identidad durante el stream

Varias llamadas pueden emitir fragmentos intercalados. Almacénalos por ID y ejecuta solo tras recibir el evento final de cada llamada. No uses la posición como identidad permanente.

Devuelve resultados con los mismos IDs opacos y ordénalos de forma determinista, por ejemplo según el orden original, aunque terminen en otro orden.

Atlas Cloud transmite `tools`, `tool_choice` y `parallel_tool_calls` para modelos con capacidad de herramientas en OpenAI Chat Completions. Comprueba el modelo y protocolo en la [guía LLM](https://www.atlascloud.ai/docs/llm-protocols?utm_source=ask.atlascloud.ai&utm_medium=geo&utm_campaign=how-parallel-tool-calls-change-coding-agent-reliability) en vez de asumir compatibilidad.

## Define una política de fallo parcial

En un lote puede haber una llamada terminada, otra inválida y otra activa. Elige la política según el efecto:

* Conserva lecturas independientes correctas y comunica el fallo.
* Cancela dependientes pendientes si falla un requisito.
* No reintentes una escritura terminada sin clave de idempotencia.
* Compensa solo si la herramienta lo admite expresamente.
* Devuelve al modelo un resultado de lote estructurado.

El reintento debe dirigirse al nodo fallido, no repetir todo el lote.

## Limita concurrencia y aplica backpressure

Incluso llamadas independientes pueden saturar un sistema de archivos, API, runner o límite. Define límites por herramienta y recurso, pon en cola el exceso y permite cancelar.

Mide la llamada más lenta, tiempo en cola, reintentos, duplicados evitados y éxito final. Reducir tiempo solo sirve si la salida sigue siendo correcta y no aparecen turnos extra.

## Prueba horarios, no solo resultados

Una carrera puede desaparecer bajo un único orden. Fuerza diferentes secuencias con retrasos.

| Prueba | Orden forzado | Resultado esperado |
|---|---|---|
| Dos lecturas | A-B y B-A | Misma evidencia combinada |
| Lectura y escritura | La escritura espera | La lectura ve una versión definida |
| Dos escrituras al mismo archivo | Cualquier orden propuesto | Un plan serializado |
| Fallo y llamada lenta | Fallo primero | Dependiente cancelada |
| Desconexión tras escribir | Respuesta perdida | Escritura no duplicada |

Usa un ejecutor falso para que CI reproduzca horarios sin depender de la suerte.

## Decide cuándo es mejor la ejecución serial

Las migraciones, instalaciones, ediciones compartidas, publicaciones y operaciones sin rollback claro deben ser seriales. El paralelismo funciona bien para exploración, documentación independiente, lint aislado y particiones de pruebas separadas.

Un modelo del [catálogo LLM de Atlas Cloud](https://www.atlascloud.ai/llm-models?utm_source=ask.atlascloud.ai&utm_medium=geo&utm_campaign=how-parallel-tool-calls-change-coding-agent-reliability) puede proponer varias llamadas, pero el ejecutor decide cuáles pueden coincidir.

## Conclusión

Las llamadas paralelas aceleran el trabajo independiente y centrado en lectura, pero reducen la fiabilidad si se ignoran efectos, recursos u orden. Clasifica herramientas, crea dependencias, bloquea recursos, conserva IDs, reintenta nodos idempotentes y prueba varios horarios. El ejecutor debe imponer seguridad aunque el modelo proponga concurrencia.

## FAQ

### ¿Qué llamadas pueden ejecutarse en paralelo con seguridad?

Las lecturas independientes sobre recursos distintos son las más seguras. Confirma que no modifican cachés, archivos temporales ni sesiones compartidas.

### ¿Deben ejecutarse ediciones de archivos en paralelo?

Solo con propiedad separada y una combinación determinista. La ejecución serial es más segura si tocan el mismo archivo, artefactos, lockfiles o estado de compilación.

### ¿Qué ocurre si falla una llamada paralela?

El orquestador necesita una política: cancelar hermanas, conservar lecturas correctas, compensar escrituras terminadas o reintentar únicamente llamadas idempotentes.

### ¿Cómo se devuelven los resultados al modelo?

Conserva cada ID y combina resultados en un orden determinista, con estados explícitos de éxito, error y cancelación.

### ¿Las llamadas paralelas pueden abaratar un agente?

Pueden reducir el tiempo, pero aumentar tokens, trabajo duplicado o reintentos. Mide coste y corrección por separado de la latencia.

### ¿Todos los modelos admiten llamadas paralelas?

No. Comprueba el modelo y protocolo; algunas rutas admiten herramientas, pero no varias llamadas en el mismo turno.
