{"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/arxiv-2605-27378","title":"OralAgent: Integrating Reasoning, Tools, and Knowledge for Interactive Dental Image Analysis","arxiv_id":"2605.27378","date":"2026-04-09","proceeding":null,"authors":["Jing Hao","Siyuan Dai","Yongxin Zhang","Yuci Liang","Jiamin Wu","Jiahao Bao","Yuxuan Fan","Zanting Ye","Yanpeng Sun","Xinyu Zhang","Ming Hu","Liang Zhan","James Kit Hon Tsoi","Linlin Shen","Junjun He","Kuo Feng Hung"],"abstract":"Dental image analysis plays a pivotal role in supporting accurate diagnosis and treatment planning in oral healthcare. Although recent advances have produced dental AI models for specific tasks and individual imaging modalities, their isolated designs limit practical use in real-world clinical workflows. In this paper, we present OralAgent, the first dental-specialized AI agent that unifies multimodal reasoning, tool-based decision-making, and knowledge-grounded retrieval within an end-to-end automated framework. It integrates 22 visual analysis tools and 368 widely-used classical dental textbooks, enabling autonomous reasoning, planning, tool use, knowledge retrieval, and multi-step workflow execution. Furthermore, we introduce OralCorpus, a large-scale, high-quality bilingual textual resource containing 134.8M tokens curated for dental retrieval-augmented generation (RAG). To evaluate models' multidisciplinary dental knowledge, we construct OralQA-ZH, a Chinese multiple-choice question benchmark consisting of 798 items across eleven oral subspecialties. Extensive experiments demonstrate that OralAgent achieves state-of-the-art performance on the MMOral-Uni, MMOral-OPG, and OralQA-ZH benchmarks, highlighting its effectiveness, interpretability, and adaptability in real-world clinical settings. The code and models are publicly available at https://github.com/isjinghao/OralAgent.","url_abs":"https://arxiv.org/abs/2605.27378","url_pdf":"https://arxiv.org/pdf/2605.27378","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2605.27378","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2605.27378"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/isjinghao/OralAgent","reach":null}],"summary":{"ran":7,"ran_draft_wrong":2,"unverified":1},"by_repo_kind":{"found_in_text":{"samples":10,"ran":9,"repositories":1}},"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":"fcb74c8a86642376","entry":"compare_messages_gen","repo":"isjinghao/OralAgent","repo_kind":"found_in_text","path":"oralagent/llava/eval/eval_multimodal_chat_gpt_score.py","file_url":"https://github.com/isjinghao/OralAgent/blob/HEAD/oralagent/llava/eval/eval_multimodal_chat_gpt_score.py","link_basis":"first_harvest_node","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":"fcb74c8a86642376"}},{"code_sha256_prefix":"c7eacf8297119313","entry":"conv_to_str","repo":"isjinghao/OralAgent","repo_kind":"found_in_text","path":"oralagent/llava/eval/eval_multimodal_chat_gpt_score.py","file_url":"https://github.com/isjinghao/OralAgent/blob/HEAD/oralagent/llava/eval/eval_multimodal_chat_gpt_score.py","link_basis":"first_harvest_node","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":"c7eacf8297119313"}},{"code_sha256_prefix":"908505ed68ff4871","entry":"expand2square","repo":"isjinghao/OralAgent","repo_kind":"found_in_text","path":"oralagent/llava/mm_utils.py","file_url":"https://github.com/isjinghao/OralAgent/blob/HEAD/oralagent/llava/mm_utils.py","link_basis":"first_harvest_node","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":"908505ed68ff4871"}},{"code_sha256_prefix":"42a46570620cd9fa","entry":"get_chunk","repo":"isjinghao/OralAgent","repo_kind":"found_in_text","path":"oralagent/llava/eval/model_vqa.py","file_url":"https://github.com/isjinghao/OralAgent/blob/HEAD/oralagent/llava/eval/model_vqa.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"42a46570620cd9fa"}},{"code_sha256_prefix":"c3ee9d07c900dd55","entry":"load_image_from_base64","repo":"isjinghao/OralAgent","repo_kind":"found_in_text","path":"oralagent/llava/mm_utils.py","file_url":"https://github.com/isjinghao/OralAgent/blob/HEAD/oralagent/llava/mm_utils.py","link_basis":"first_harvest_node","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":"c3ee9d07c900dd55"}},{"code_sha256_prefix":"f0f8c9c5a77c9b5b","entry":"process_images","repo":"isjinghao/OralAgent","repo_kind":"found_in_text","path":"oralagent/llava/mm_utils.py","file_url":"https://github.com/isjinghao/OralAgent/blob/HEAD/oralagent/llava/mm_utils.py","link_basis":"first_harvest_node","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":"f0f8c9c5a77c9b5b"}},{"code_sha256_prefix":"076c252c52cbb161","entry":"split_list","repo":"isjinghao/OralAgent","repo_kind":"found_in_text","path":"oralagent/llava/eval/model_vqa.py","file_url":"https://github.com/isjinghao/OralAgent/blob/HEAD/oralagent/llava/eval/model_vqa.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"076c252c52cbb161"}},{"code_sha256_prefix":"90719ea4ae0ed586","entry":"sum_list_list","repo":"isjinghao/OralAgent","repo_kind":"found_in_text","path":"oralagent/llava/eval/eval_multimodal_chat_gpt_score.py","file_url":"https://github.com/isjinghao/OralAgent/blob/HEAD/oralagent/llava/eval/eval_multimodal_chat_gpt_score.py","link_basis":"first_harvest_node","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":"90719ea4ae0ed586"}},{"code_sha256_prefix":"d4ba997957e75202","entry":"violates_moderation","repo":"isjinghao/OralAgent","repo_kind":"found_in_text","path":"oralagent/llava/utils.py","file_url":"https://github.com/isjinghao/OralAgent/blob/HEAD/oralagent/llava/utils.py","link_basis":"first_harvest_node","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":"d4ba997957e75202"}},{"code_sha256_prefix":"37899f22fb191b37","entry":"pretty_print_semaphore","repo":"isjinghao/OralAgent","repo_kind":"found_in_text","path":"oralagent/llava/utils.py","file_url":"https://github.com/isjinghao/OralAgent/blob/HEAD/oralagent/llava/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"37899f22fb191b37"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.CL","source":"arxiv_2026.jsonl"},"syntology_extracted_results":{"kind":"leaderboard_placements","source":"Syntology's leaderboard-shaped extractor over the paper's own arXiv-HTML tables: a model pointed at a cell, the number was read from that cell and checked against the board's metric, dataset, split and scale, and an independent check accepted the entry; not reviewed by the paper's authors or the archive's editors","extractor_model":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","verifier_model":null,"prompt_sha":"fa63d4bb9d755694","coverage":{"sentence":"Syntology has checked 6,264 of the 9,581 papers on this site that are newer than the archive; results from the others appear after they are checked.","papers_newer_than_archive":9581,"papers_checked":6264},"entries":[],"not_placed":{"boards":0,"rejected_by_independent_check":0,"refused_by_a_rule":0,"check_did_not_answer":0,"proposed_without_a_cell":0,"declined_by_site":0}}}