Thank you for your help. We actually figured out it was the soft food we were giving him. He's much better now.
He may just have intestinal parasites. Tapeworm, giardia, coccidia and others may be difficult to find on standard fecal tests. I would take your puppy to the vet ASAP and have him dewormed empirically. Please also have a fecal or stool check. Most worms and protozoa are NOT eliminated with only one or two de-wormings, and different parasites require different anti-parasite medications.