Bring a large pot of water to boil. As it is heating, prepare the rest of the ingredients.
Prep the tofu: remove from package, drain the water, wrap in a few towels, and place under very heavy books for about 20-30 minutes.
Make the peanut sauce: in a medium bowl, whisk together the peanut butter, lime juice, sesame oil, hoisin sauce, chili oil and water. Set aside.
Thinly slice the shallots. Heat a tablespoon of sesame oil over medium heat in a medium frying pan. Add the shallots, and cook, stirring often, for about 10 minutes or until they crisp. Set aside.
Slice the cabbage, spinach, cucumber and radishes, and distribute them in your serving bowls.
Shred the carrots, and place on top of the other veggies.
Slice the tofu into squares, and place in a large bowl. Toss with the remaining sesame oil and chili oil. Heat a large frying pan over medium, and add the tofu. Cook for about 3-4 minutes, then turn over and cook a final 3 minutes.
Cook your vermicelli according to package directions. Stay near, you don't want to overcook. Stir the pot some while they are cooking so the noodles loosen.
When the noodles are done, drain the water and then add them to your veggie bowls. Top with the tofu, shallots, peanuts and whatever toppings you'd like. I prefer basil only, but many people prefer adding cilantro and jalapeños.
Distribute the peanut sauce over the bowls, spreading it evenly over the vermicelli. Serve, and enjoy!