Rinse beans, then put in a pot with 10 cups water. Add the halved onion and epazote and bring to a boil. Lower the heat and simmer, covered, for 1 hour.
Heat the oil in a skillet and saute the chiles with the chopped onion, garlic, and cumin seed until golden brown.
Add the tomato and continue to cook for 3 minutes.
Remove the onion and herbs from the beans and discard. Add the sauted onion mixture to the beans. If you like the flavor of cilantro, add some that is chopped. Bring the beans to a boil and then simmer, uncovered, for 10 minutes.
Squeeze the juice of 1 lime into the soup. Add salt and pepper. Puree if you wish.