For this causative situation, the two examples you gave can be referred to as ‘receiver only’ and ‘receiver + agent’ respectively, where the receiver is a person or thing being acted upon and the agent is a person or thing being made to act.
- subject + faire + infinitive + receiver
In this situation, the subject only has something happen to the receiver.
- “Je fais laver la voiture” – “I am having the car washed.”
- “Je fais faire du café” – “I am having some coffee made”
Receiver + Agent:
- subject + faire + infinitive + receiver + par/à + agent
In this situation, the subject has the agent do something to receiver.
- “Je fais laver la voiture à/par Michel” – “I am having the car washed by Michel” or “I am having Michel wash the car”.
- “Je fais faire du café à/par Michel” – “I am having some coffee made by Michel” or “I am having Michel make some coffee”.
There is a third situation that I would like to bring to your attention though:
- subject + faire + infinitive + agent
In this situation the subject makes the agent do something, but not to anything else, as is there is no receiver.
- “Je fais manger Michel” – “I am making Michel eat”
- “Il fait partir l’homme” – “He is making the man leave”
The first ‘faire’ is conjugated based on the subject and tense. You don’t necessarily need a second ‘faire’ unless this is the verb you wish to use for the action being done. In my examples, I provided both situations.
Some examples relating to tense:
Passé composé: “J’ai fait laver la voiture” – “I had the car washed”
Futur proche: “Je vais faire laver la voiture” – “I am going to have the car washed”
A complete analysis of a ‘receiver + agent’ sentence:
- “Il fait laver la voiture à/par Luc” – “He is having the car washed by Luc” or “He is having Luc wash the car”
- Il – subject
- fait – conjugation of ‘faire’, 3rd person present.
- laver – infinitive
- la voiture – receiver
- à/par – prepositions
- Luc – Agent
More examples and contexts can be found at: http://french.about.com/od/grammar/a/causative.htm
EDIT: Important comment below on the nuances on which prepositions to use.
There’s a nuance for à and par. À is rather colloquial as it often
conotes that the task is inflicted to someone. Par is the standard
preposition for an agent, the focus is then on the task being done not
on the agent performing the task. Je fais lecher mes bottes à Michel
is humiliating; je fais lecher mes bottes par Michel is rather stupid…
– Stéphane Gimenez
At some time in the evolution of the language some grammarians have made the rule that the faire + infinitive is regarded as a single verbal entity and that the verb and the infinitive are almost never separated. This does bring about a problem when the construction has TWO direct objects (what you call the agent and the receiver). In French no verb or verbal entity can have two direct objects. So when the verbal entity faire + infinitive has two direct objects one of them must become a second object governed by à (complément d’objet second (COS)). The one that becomes the second object is always the object of faire — what you call the agent — it is certainly not called the agent in French since the faire + infinitive is in the ACTIVE voice.
Je fais laver la voiture à Luc.
I am getting Luc to wash the car or I am having the car washed by Luc.
I am not French and cannot really feel the nuances but according to French grammar the rule is to use the preposition à and to use par only when there is ambiguity as in
J’ai fait lire le poème à ma petite-amie.
This could mean “I got my girlfriend to read the poem”.
But it could mean “I had the poem read to my girlfriend” (I got someone to read the poem to my girlfriend).
That is, the object (agent) of faire is not expressed as in
J’ai fait lire le poème.
I got someone to read the poem (I had the poem read).
So if the first meaning is required then par could be used to make sure.
J’ai fait lire le poème par ma petite-amie.