{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/txagent-an-ai-agent-for-therapeutic-reasoning","title":"TxAgent: An AI Agent for Therapeutic Reasoning Across a Universe of Tools","arxiv_id":"2503.10970","date":"2025-03-14","proceeding":null,"authors":["ShangHua Gao","Richard Zhu","Zhenglun Kong","Ayush Noori","Xiaorui Su","Curtis Ginder","Theodoros Tsiligkaridis","Marinka Zitnik"],"abstract":"Precision therapeutics require multimodal adaptive models that generate personalized treatment recommendations. We introduce TxAgent, an AI agent that leverages multi-step reasoning and real-time biomedical knowledge retrieval across a toolbox of 211 tools to analyze drug interactions, contraindications, and patient-specific treatment strategies. TxAgent evaluates how drugs interact at molecular, pharmacokinetic, and clinical levels, identifies contraindications based on patient comorbidities and concurrent medications, and tailors treatment strategies to individual patient characteristics. It retrieves and synthesizes evidence from multiple biomedical sources, assesses interactions between drugs and patient conditions, and refines treatment recommendations through iterative reasoning. It selects tools based on task objectives and executes structured function calls to solve therapeutic tasks that require clinical reasoning and cross-source validation. The ToolUniverse consolidates 211 tools from trusted sources, including all US FDA-approved drugs since 1939 and validated clinical insights from Open Targets. TxAgent outperforms leading LLMs, tool-use models, and reasoning agents across five new benchmarks: DrugPC, BrandPC, GenericPC, TreatmentPC, and DescriptionPC, covering 3,168 drug reasoning tasks and 456 personalized treatment scenarios. It achieves 92.1% accuracy in open-ended drug reasoning tasks, surpassing GPT-4o and outperforming DeepSeek-R1 (671B) in structured multi-step reasoning. TxAgent generalizes across drug name variants and descriptions. By integrating multi-step inference, real-time knowledge grounding, and tool-assisted decision-making, TxAgent ensures that treatment recommendations align with established clinical guidelines and real-world evidence, reducing the risk of adverse events and improving therapeutic decision-making.","url_abs":"https://arxiv.org/abs/2503.10970v1","url_pdf":"https://arxiv.org/pdf/2503.10970v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"txagent-an-ai-agent-for-therapeutic-reasoning","repo_url":"https://github.com/mims-harvard/ToolUniverse","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"txagent-an-ai-agent-for-therapeutic-reasoning","repo_url":"https://github.com/mims-harvard/TxAgent","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"txagent-an-ai-agent-for-therapeutic-reasoning","repo_url":"https://huggingface.co/mims-harvard/ToolRAG-T1-GTE-Qwen2-1.5B","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":null},{"paper_slug":"txagent-an-ai-agent-for-therapeutic-reasoning","repo_url":"https://huggingface.co/mims-harvard/TxAgent-T1-Llama-3.1-8B","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[{"task_slug":"ai-agent","task_name":"AI Agent"},{"task_slug":"decision-making","task_name":"Decision Making"}],"methods":[{"method_slug":"align","method_name":"ALIGN"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2503.10970","atlas_url":"https://app.syntology.ai/?focus=2503.10970","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2503.10970"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mims-harvard/TxAgent","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://huggingface.co/mims-harvard/ToolRAG-T1-GTE-Qwen2-1.5B","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/mims-harvard/ToolUniverse","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://huggingface.co/mims-harvard/TxAgent-T1-Llama-3.1-8B","reach":null}],"summary":{"ran":4},"by_repo_kind":{"official":{"samples":4,"ran":4,"repositories":2}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"e33927c11679251a","entry":"convert_or_to_beta","repo":"mims-harvard/ToolUniverse","repo_kind":"official","path":"skills/tooluniverse-polygenic-risk-score/python_implementation.py","file_url":"https://github.com/mims-harvard/ToolUniverse/blob/HEAD/skills/tooluniverse-polygenic-risk-score/python_implementation.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e33927c11679251a"}},{"code_sha256_prefix":"7fede7833116c47c","entry":"get_md5","repo":"mims-harvard/TxAgent","repo_kind":"official","path":"src/txagent/utils.py","file_url":"https://github.com/mims-harvard/TxAgent/blob/HEAD/src/txagent/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7fede7833116c47c"}},{"code_sha256_prefix":"b6ad432f0ed2bda6","entry":"parse_effect_size","repo":"mims-harvard/ToolUniverse","repo_kind":"official","path":"skills/tooluniverse-polygenic-risk-score/python_implementation.py","file_url":"https://github.com/mims-harvard/ToolUniverse/blob/HEAD/skills/tooluniverse-polygenic-risk-score/python_implementation.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b6ad432f0ed2bda6"}},{"code_sha256_prefix":"153243b3402cacd8","entry":"tool_result_format","repo":"mims-harvard/TxAgent","repo_kind":"official","path":"src/txagent/utils.py","file_url":"https://github.com/mims-harvard/TxAgent/blob/HEAD/src/txagent/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"153243b3402cacd8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}