Protocols

Each entry below is a factory returning the blue team's Protocol, selected by name with ct run eval --protocol <name>. Names, arguments, and defaults are read from the eval-protocol registry, so this page cannot drift from the code.

Adding one

from control_tower.protocols.eval.registry import protocols @protocols.register() def my_eval_protocol(...): ...

Every non-underscore module under the registry's discovery package is imported on first lookup, so the decorator is all the registration a new eval-protocol needs.

Registered protocols

block-all

U proposes, blue refuses, nothing runs.

Defined in control_tower.protocols.eval.protocols.block_all.block_all.

block-every-other

U proposes, blue refuses the 1st, 3rd, 5th call of each exchange and runs the rest.

Defined in control_tower.protocols.eval.protocols.block_every_other.block_every_other.

defer-to-resample

Draw U several times, score each draft, run the least suspicious.

Defined in control_tower.protocols.eval.protocols.resample.defer_to_resample.

ArgumentTypeDefaultDescription
draftsint3
monitorslistrequired
combineCombineCombine(...)

defer-to-trusted

Score U's action; too suspicious, the trusted model acts instead; more suspicious still, audit and stop.

Defined in control_tower.protocols.eval.protocols.defer_to_trusted.defer_to_trusted.

ArgumentTypeDefaultDescription
monitorslistrequired
combineCombineCombine(...)
defer_thresholdfloat | NoneNone
audit_thresholdfloat | NoneNone
block_messagestr'A safety monitor blocked this action. Take a different, si…

null-blue-team

U proposes, blue allows, everything runs unmodified.

Defined in control_tower.protocols.eval.protocols.null_blue.null_blue_team.

trusted-monitoring

Ask the monitors about each action; above sus_threshold, block up to blocks times, then audit and stop.

Defined in control_tower.protocols.eval.protocols.trusted_monitoring.trusted_monitoring.

ArgumentTypeDefaultDescription
monitorslistrequired
combineCombineCombine(...)
sus_thresholdfloat | NoneNone
blocksint0
block_messagestr'A safety monitor blocked this action. Take a different, si…