ChartEvo: Self-Evolving Agent Harnesses for Long-Tail Chart Reasoning
Organizations: State Key Laboratory of Multimodal Artificial Intelligence Systems, CASIA · School of Artificial Intelligence, University of Chinese Academy of Sciences · New Laboratory of Pattern Recognition, CASIA · Zhongguancun Academy
Abstract
Multimodal large language models (MLLMs) have substantially advanced chart understanding and reasoning, yet their performance remains highly uneven across chart types. While modern MLLMs perform well on common charts, their accuracy drops sharply on long-tail charts with diverse visual structures and reasoning requirements. Tool-augmented agents can improve complex chart reasoning by introducing specialized visual capabilities, but manually engineering strategies and tools for the heterogeneous and evolving long tail is difficult to scale. We introduce ChartEvo, a recursive self-improvement framework that enables chart agents to adapt to underperforming chart types through experience-driven harness-level self-improvement. ChartEvo jointly evolves reusable chart-specific Skills and executable Tools, while learning reusable local tool-call chains to compose evolved capabilities and control the inference overhead of tool-augmented reasoning. On long-tail charts from ChartBench and ChartX, ChartEvo improves accuracy over its base MLLM, Qwen3.7-Plus, by 45.6% and 32.5%, respectively, demonstrating the effectiveness of recursive self-improvement for long-tail chart adaptation.
Figures & tables
| Method | Area | 3Dbar-multi | 3D-stack | Ring | Sector | Radar-M | Radar-MF | Radar-S | Stock | Avg. |
| Direct Visual MLLMs | ||||||||||
| DeepSeek-v4.1-Flash | 30.0 | 38.0 | 12.0 | 28.0 | 44.0 | 14.0 | 26.0 | 12.0 | 80.0 | 31.6 |
| Qwen3.7-Plus | 60.0 | 42.0 | 14.0 | 48.0 | 46.0 | 38.0 | 46.0 | 54.0 | 84.0 | 48.0 |
| Qwen3.8-27B | 36.0 | 42.0 | 20.0 | 34.0 | 42.0 | 42.0 | 48.0 | 26.0 | 86.0 | 41.8 |
| Qwen3.8-Max | 84.0 | 44.0 | 30.0 | 72.0 | 74.0 | 74.0 | 70.0 | 78.0 | 86.0 | 68.0 |
| Kimi-K2.6 | 30.0 | 42.0 | 14.0 | 38.0 | 46.0 | 48.0 | 40.0 | 38.0 | 86.0 | 42.4 |
| Method | Radar | 3D-Bar | Rose | Area | Bubble | Multi-axes | Treemap | Ring | Avg. |
| Direct Visual MLLMs | |||||||||
| DeepSeek-v4.1-flash | 4.2 | 25.0 | 35.9 | 28.0 | 62.5 | 46.2 | 75.6 | 70.3 | 43.4 |
| Qwen3.7-Plus | 16.7 | 21.4 | 46.2 | 48.0 | 65.6 | 79.5 | 75.6 | 75.7 | 53.6 |
| Qwen3.8-27B | 8.3 | 14.3 | 43.6 | 40.0 | 62.5 | 56.4 | 75.6 | 67.6 | 46.0 |
| Qwen3.8-Max | 54.2 | 32.1 | 79.5 | 84.0 | 87.5 | 89.7 | 87.8 | 67.6 | 72.8 |
| Kimi-K2.6 | 12.5 | 28.6 | 61.5 | 40.0 | 75.0 | 74.4 | 58.5 | 75.7 | 53.3 |
| Method | Tokens | Time (s) |
| Qwen3.7-Plus | 2,454.5 | 42.71 |
| Qwen3.8-27B | 672.1 | 11.90 |
| Qwen3.8-Max | 2,975.4 | 61.79 |
| Kimi-K2.6 | 3,612.1 | 46.70 |
| DeepSeek-v4.1-Flash | 8,193.7 | 84.29 |
| ChartEvo (Ours) | 2,907.0 | 68.76 |
| Configuration | Accuracy (%) |
| Base MLLM (Qwen3.7-Plus) | 42.8 |
| with Evolved Skill-only | 55.6 |
| with Base Harness | 57.2 |
| with Evolved Tools | 84.4 |
| ChartEvo (Full) | 94.8 |
| Execution Path | Ratio (%) | Accuracy (%) |
| Chain-based Completion | 77.9 | 98.0 |
| Direct Visual Answering | 9.9 | 94.4 |
| Fallback | 12.2 | 44.8 |
| Average Calls per Question | ||
| Avg. API Calls | 2.30 | |
| Avg. Tool Calls | 5.52 | |
| Configuration | Acc. (%) | API Calls | Tool Calls |
| w/o SELT | 91.2 | 6.19 | 5.41 |
| ChartEvo (Full) | 94.8 | 2.73 | 5.27 |
Appendix figures & tables7 assets
Supplementary material from the paper’s appendix.
Appendix
| Component | Initial | ChartBench | ChartX |
| Distinct Skills | 4 | 13 (+9) | 12 (+8) |
| Available Tools | 25 | 42 (+17) | 60 (+35) |
| Active SELT | 0 | 20 | 71 |
| Skill | Reasoning and Capability-Use Guidance |
| chart-evidence-validation | Reuse validated observations, distinguish rejected from advisory evidence, preserve numerical semantics, and avoid ambiguous bindings or invalid observation references. |
| bar-value | Guide legend and category binding, axis calibration, bar localization, and numerical projection, with handling of stacked segments and negative bars. |
| line-value | Guide series localization, point extraction, and axis projection, while addressing error-bar anchors, ambiguous candidates, and coordinate consistency. |
| pie-percentage | Guide color and label binding, segment measurement, and percentage estimation using geometric and area-based evidence. |
| Tool | Functionality |
| OCR, Text, Color, and Segmentation (7) | |
| locate_text | Locate visible text labels and return their bounding boxes and positions. |
| annotate_legend | Identify specified legend labels and construct their spatial mappings. |
| get_marker_rgb | Extract the RGB color of a marker associated with a legend label. |
| get_embedded_label_rgb | Extract the underlying fill color associated with an embedded data label. |
| clean_chart_image | Remove detected textual regions to produce a cleaned chart image. |
LLM Agent Self-Improvement
Large language model agent self-improvement studies how agents use experience and feedback to improve their behavior, tools, and workflows.
See all 276 papers