The members of the KRAFT (Knowledge Reuse And Fusion/Transformation) consortium (Gray et al, 1997) are working together to design and build a system which will have intelligent mediators that act as knowledge brokers and, more significantly, transform knowledge to make it useable by powerful problem-solvers at various sites on the network. The project aims to investigate how Distributed Information System architectures can support the transformation and reuse of a particular class of knowledge, namely constraints (Gray, 1994).Currently there is great interest in Distributed Information Systems using mediators and facilitators following the DARPA-funded Knowledge Sharing Effort (KSE) (Neches et al, 1991), which has led to systems such as InfoSleuth (Bayardo et al). Whereas the KSE has explored very general kinds of common-sense knowledge and natural language applications, we wish to look more specifically at those kinds of knowledge that can be represented declaratively as constraints, and transformed in various ways for use in design, scheduling, knowledge integration, and many other applications. The KRAFT architecture is thus thoroughly based on agents, in order to provide extensibility and adaptability to new sources of data. The agents pass around highly structured data items, representing entity instances, defined according to an extensible data model schema. These entity instances often contain cross-references to other entities, much as in hypertext, but which are regulated by a formally typed structure given by a data model. Thus much of the behaviour of the agents is driven by the structure and content of the entities being passed. A big difference from other agent-based systems is that the agents can also pass constraints as data, where constraints are a very general declarative form of predicate definition which can compute using functions. They are effectively recipes for selecting or calculating things; they can be passed between agents, and may then be fused together or transformed into new recipes. This is the heart of the KRAFT architecture. It opens up lots of possibilities. One obvious area of application is in configuration problems. Traditionally these have been tackled by Rule-based Systems such as the famous XCON system, used for configuring VAX computers. Nowadays we tackle them more as Constraint Satisfaction problems. In the KRAFT architecture the domains of many of the variables will be entities stored in remote databases. Constraints on these entity types may be set by their makers, and stored with them in the database. The constraints can then be found by a mediator and passed to a constraint solver together with other problem-specific restrictions. The solver then has to find feasible values to satisfy the constraints, as is common in engineering problems. However, note that the problem is complicated by constraints that refer to related instances of other entity types, whose values must be extracted from the database and checked for compatibility. Usually configuration problems are solved by specially written pieces of software including pre-programmed constraints that take their parameter values from a number of flat files prepared by the designer. The KRAFT architecture generalises this to allow both the parameters and the constraints representing the problem to be searched for and selected and brought together, over a network of nodes that may develop in various unanticipated ways. The agent architecture looks to be the best hope for coping with evolutionary change and the autonomy of different resource nodes. An online reference can be found at http://www.csd.abdn.ac.uk/~apreece/Research/KRAFT/kraft_agents98.html.