  In this paper, we propose a new language, called AR ({\it Action Rules}), and
describe how various propagators for finite-domain constraints can be
implemented in it. An action rule specifies a pattern for agents, an action
that the agents can carry out, and an event pattern for events that can
activate the agents. AR combines the goal-oriented execution model of logic
programming with the event-driven execution model. This hybrid execution model
facilitates programming constraint propagators. A propagator for a constraint
is an agent that maintains the consistency of the constraint and is activated
by the updates of the domain variables in the constraint. AR has a much
stronger descriptive power than {\it indexicals}, the language widely used in
the current finite-domain constraint systems, and is flexible for implementing
not only interval-consistency but also arc-consistency algorithms. As examples,
we present a weak arc-consistency propagator for the {\tt all\_distinct}
constraint and a hybrid algorithm for n-ary linear equality constraints.
B-Prolog has been extended to accommodate action rules. Benchmarking shows that
B-Prolog as a CLP(FD) system significantly outperforms other CLP(FD) systems.
