Skip to main content
Usa esta receta cuando un turno del agente pueda llamar sin riesgo a varias herramientas locales independientes y quieras ejecutarlas en paralelo sin alterar el orden determinista de sus resultados.

Cuándo usarlo

Usa toolExecution.toolConcurrency cuando:
  • el modelo pueda emitir varias llamadas a herramientas locales en un mismo turno
  • esas herramientas no dependan unas de otras
  • la ejecución en serie desperdicie tiempo de trabajo
  • quieras conservar los mensajes de resultados en el orden original de las llamadas
No uses una concurrencia alta si una herramienta modifica un estado compartido o si las herramientas posteriores dependen de los resultados anteriores.

Ejemplo

Consulta la versión incluida en packages/sdk/agent-sdk-ts/examples/parallel-tool-agent.ts.

Qué garantiza el entorno de ejecución

  • las herramientas locales pueden ejecutarse en paralelo hasta el límite de toolConcurrency
  • se siguen emitiendo los eventos tool.started y tool.completed para cada herramienta
  • los mensajes de resultados guardados conservan el orden original de las llamadas
  • el estado se sigue guardando al terminar la fase de herramientas
  • se sigue aplicando a cada herramienta el tiempo límite de timeoutMs

Recomendaciones operativas

  • empieza con un valor de concurrencia bajo, como 2 o 3
  • procura que las herramientas locales sean idempotentes y tengan pocos efectos secundarios
  • usa timeoutMs para que una dependencia bloqueada no consuma todos los trabajadores
  • añade store solo si tu aplicación necesita reanudar ejecuciones o coordinar procesos remotos

Validación

Después de habilitar este patrón:
  • ejecuta las pruebas del ciclo del agente que cubren turnos con varias herramientas
  • confirma que el flujo siga produciendo mensajes de resultados ordenados
  • confirma que los registros del operador sigan mostrando los eventos tool.started y tool.completed esperados
Última modificación el 2 de octubre de 2026