I think the main issue is that every tool description is the exact same, minus a tiny piece (the doc name)
Maybe generating a summary on the fly (and caching that somewhere) and using that as the description would be better?
from llama_index import SummaryIndex
index = SummaryIndex(nodes)
response = index.as_query_engine(response_mode='tree_summarize', use_async=True).query("Summarize the provided text.")