An agent-based approach to tool integration