LinUCB

Shipped

Contextual bandit that learns per-arm reward models from features.

Example

How LinUCB decides — the pool is evaluated and the winner is assigned. Each strategy selects differently.

type == "lead"selectedTriggerNew LeadWebhookExploreLinUCBStrategyae-westμ 0.72ae-eastμ 0.61 · explorecentralμ 0.55Assigned
Show the code
// LinUCB selects from the pool and assigns.
engine.Route(ductor.Route{
Match: `routable.type == "lead"`,
Strategy: "linucb",
Pool: "sales-team",
})
 
// Durable, observable, exactly-once.
decision, err := engine.Dispatch(ctx, routable)

How it works

A linear contextual bandit. Uses routable features and per-arm confidence bounds to learn which recipient wins under which conditions. Optional module.

ExplainableStateful