It all depends. If you have very few pipelines you can use single agent pool and put inside also agent which you want to test. Why this is ok for very few. Becaus you can use demands to control which agent will be assigned to the pipelines. But since both agents are in the same pool if you do not do this explicit it will take any free agent available innthe pool.
To do this you need first set custom demands. Please go to Project Settings -> Agent Pools -> Select pool -> go to Agents tabb -> select agent -> go to capabilities and add User-defined capabilities

When you do this you can use this as demands in the pipeline:
pool:
name: MyPool
demands:
- type -equals test
However it would be good to do the same for your stable agents and set type ready
for instance. Then you will have to modify all your pipelines to control which pipeline should take which agent.
Another approach would be a separate agent pool and parameterize this via runtime parameters:
parameters:
- name: myString
type: string
default: 'default value!'
- name: mynum
displayName: 'My Number Param'
type: number
default: 123
- name: mypool
displayName: 'Pool'
type: pool
values:
- ubuntu-latest
- windows-latest
- macos-latest
pool: ${{ parameters.mypool }}
steps:
- script: echo ${{ parameters.myString }} was entered at runtime!
- ${{ if not(eq(parameters.mynum, 123)) }}:
- script: echo You overrode the default number to ${{ parameters.mynum }}
Like here

In this case you just need to change pipeline where you want to have test agents available to choose.