Another approach that might be both more powerful and cheaper (because no training needed) would be to just activate the toolness/thinkness/whatever directions at inference time, as steering vectors injected into the activations. Since the harness knows which type of mode should be active for each token in and out, it can just abliterate all the incorrect token modes and activate only the one that’s needed. You’d need to do a little bit of manual work to find the vectors after, but you wouldn’t need to rely on the model actually learning to respect the tags.
Another approach that might be both more powerful and cheaper (because no training needed) would be to just activate the toolness/thinkness/whatever directions at inference time, as steering vectors injected into the activations. Since the harness knows which type of mode should be active for each token in and out, it can just abliterate all the incorrect token modes and activate only the one that’s needed. You’d need to do a little bit of manual work to find the vectors after, but you wouldn’t need to rely on the model actually learning to respect the tags.