A novel style of multi-agent system specification and deployment is described, in which familiar methods from computational logic are re-interpreted to a new context. One view of multi-agent system design is that coordination is achieved via an interaction model in which participating agents assume roles constrained by the social norms of their shared task; the state of the interaction reflecting the ways these constraints are mutually satisfied within some system for synchronisation that is open and distributed. We show how to harness a process calculus; constraint solving; unfolding and meta-variables for this purpose and discuss the advantages of these methods over traditional approaches.