Everything K-culture — comebacks to K-beauty, straight to your inboxGet it in your inbox

METAL MEDIA

FinSkillBench: Evaluating AI Agents and Domain Skills for Investment Management

arXiv:2608.180992026-08-20

Giving AI investment agents a validated playbook boosts performance sharply, but letting them write their own doesn't help

FinSkillBench is a benchmark testing whether AI agents can handle real investment tasks across portfolio construction, risk management, and fundamental analysis, using 2,603 task episodes across 12 subtasks. Giving agents human-authored 'curated skill' packages containing validated procedures and executable code raised average scores from 0.366 to 0.528, while letting agents write their own 'self-generated' skills added cost with almost no benefit. The findings held up across 9 models in a 17,820-episode main run and were reproduced with a separate Hermes Agent framework across 8 models and 5,280 episodes.

METAL MEDIA explanatory visual

Giving AI investment agents a validated playbook boosts performance sharply, but letting them write their own doesn't help

  1. 01The benchmark covers 12 realistic investment tasks—portfolio optimization, mandate-violation monitoring, stress testing, financial-statement normalization, and more—each paired with an automated verifier that checks the agent's answer against hidden ground truth.
  2. 02Researchers held tasks, tools, and turn limits fixed while varying only what procedural resources agents could access: no skills at all, human-curated skill packages, or skills the agent writes for itself mid-task.
  3. 03Across 9 models and 17,820 evaluations, curated skills lifted the average score by 16.2 percentage points, with the biggest gains in portfolio construction and risk management tasks.
  4. 04Self-generated skills increased token usage and turn counts but only improved accuracy by 0.5 percentage points—essentially no measurable benefit.
  5. 05An independent replication using the Hermes Agent framework reproduced the same directional pattern across all three domains, confirming the result isn't specific to one agent implementation.
An explanatory diagram made by METAL MEDIA, not a figure supplied by the paper's authors.

What they did

  1. The benchmark covers 12 realistic investment tasks—portfolio optimization, mandate-violation monitoring, stress testing, financial-statement normalization, and more—each paired with an automated verifier that checks the agent's answer against hidden ground truth.
  2. Researchers held tasks, tools, and turn limits fixed while varying only what procedural resources agents could access: no skills at all, human-curated skill packages, or skills the agent writes for itself mid-task.
  3. Across 9 models and 17,820 evaluations, curated skills lifted the average score by 16.2 percentage points, with the biggest gains in portfolio construction and risk management tasks.
  4. Self-generated skills increased token usage and turn counts but only improved accuracy by 0.5 percentage points—essentially no measurable benefit.
  5. An independent replication using the Hermes Agent framework reproduced the same directional pattern across all three domains, confirming the result isn't specific to one agent implementation.
Table 1. Scorer-to-subtask mapping. Soft-vs-hard grading is calibrated to operational severity.
SubtaskScorerObject rewarded
Unconstrained optim.l2_distance_and_objectiveProximity to MV optimum
Constrained optim.constraint_satisfaction_and_ objectiveConstraint flags gate weight L2
Tool-use param.parameter_matchOptimizer contract: nested constraint params
Rebalancingturnover_compliance_and_objectivePost-trade weights, turnover, trade-list consistency
Black–Littermanview_specification_and_weightsPosterior expected returns + posterior-optimal weights
Constraint monitoringexact_matchMandate status + per-constraint accuracy
Risk identificationranked_list_recallRecovery + ordering of exposure categories
Stress testingabsolute_errorPortfolio impact + sector/factor attribution
Risk remediationconstraint_satisfaction_plus_costFeasible trades restoring compliance
Normalizationmetric_absolute_errorCanonical line items within tolerance
Earnings qualityearnings_quality_compositePiotroski components + Beneish flag + ratio terms
Driver decompositiondriver_f1_and_directionNamed drivers, direction, magnitude
Table 2. Aggregate condition means, excluding Phi-4 (5,280 evaluations per condition). CIs are bootstrap 95% intervals (10,000 resamples) on paired deltas.
ConditionMeanΔ vs. No-Skill95% CI
No-Skill0.366
Curated0.528+0.162[+0.152, +0.171]
Self-Generated0.371+0.005[−0.002, +0.011]
Table 3. Domain-level results (excl. Phi-4). PC and RM benefit most because curated skills contain validated solvers and precise input-passing instructions. CI shown for the curated − no-skill paired delta.
DomainNo-SkillCuratedSelf-GenCurated ΔSelf-Gen Δ
Portfolio construction0.3070.5850.301+0.278 [+0.258, +0.298]−0.006 [−0.015, +0.004]
Risk management0.2690.4860.303+0.218 [+0.195, +0.239]+0.034 [+0.018, +0.049]
Fundamental analysis0.4580.5120.454+0.054 [+0.045, +0.064]−0.004 [−0.014, +0.006]
Table 4. Subtask-level results (excl. Phi-4). Sorted by Curated − No-Skill Δ.
SubtaskDomainNo-SkillCuratedSelf-GenΔ
Unconstrained optimizationPC0.2470.7190.236+0.472
Constrained optimizationPC0.1480.5050.127+0.358
Risk identificationRM0.0230.3320.055+0.309
RebalancingPC0.1830.4510.164+0.268
Stress testingRM0.0170.2810.027+0.265
Black–LittermanPC0.1530.3750.147+0.222
Constraint monitoringRM0.5970.7750.651+0.178
Risk remediationRM0.4380.5580.478+0.120
Earnings qualityFA0.4360.5350.474+0.099
Tool-use parameterizationPC0.8030.8720.831+0.069
Driver decompositionFA0.2560.3220.249+0.066
NormalizationFA0.6810.6780.638−0.003
Table 5. Per-model overall and condition means. “Overall” is the unweighted mean across all 12 subtasks averaged over the three conditions.
ModelOverallNo-SkillCuratedSelf-GenCurated Δ
gpt-4.10.4880.3300.7350.398+0.405
gemini-2.5-pro0.4900.3800.6780.412+0.298
DeepSeek-V3.20.5210.4580.6580.447+0.200
gemini-3.1-flash-lite0.4870.4190.6090.434+0.191
claude-sonnet-4.60.5600.5340.6590.488+0.125
gpt-5.40.4520.4300.5200.405+0.091
glm-5.10.2680.2740.2850.245+0.011
grok-40.1070.1040.0770.138−0.027
Phi-40.0000.0000.0000.0000.000
Table 6. Per-episode resource use, excluding Phi-4.
ConditionMedian TokensMean TokensMedian Latency (s)Mean Turns
no-skill19,95238,78359.757.46
curated22,54635,37849.797.30
self-generated40,03463,60676.769.29
Table 7. Hermes harness: aggregate, by-domain, and by-model results. “†” indicates the curated and no-skill 95% CIs do not overlap. Numbers are unweighted means over 1,920 (overall, no-skill) and 5,280 (overall, curated skills) overall episodes. No-skill was a sample run of the first 20 episodes per each 12 subtask (240 total per model).
GroupNNo-Skill (95% CI)NCurated (95% CI)Δ
Overall
All19200.354 [0.338, 0.370]52800.679 [0.669, 0.688]+0.325
By domain
Fundamental analysis4800.439 [0.408, 0.470]24000.567 [0.553, 0.582]+0.129
Portfolio construction8000.325 [0.301, 0.350]16000.760 [0.744, 0.776]+0.435
Risk management6400.325 [0.297, 0.354]12800.785 [0.767, 0.802]+0.459
By model
claude-sonnet-4.62400.304 [0.257, 0.353]6600.795 [0.775, 0.815]+0.490
DeepSeek-V3.22400.371 [0.325, 0.419]6600.686 [0.659, 0.712]+0.315
gemini-2.5-pro2400.333 [0.291, 0.375]6600.477 [0.441, 0.512]+0.144
gemma-4-31b-it2400.375 [0.332, 0.418]6600.642 [0.614, 0.670]+0.267
glm-5.12400.397 [0.350, 0.444]6600.779 [0.758, 0.801]+0.383
gpt-4.12400.285 [0.244, 0.327]6600.699 [0.672, 0.726]+0.414
gpt-5.42400.408 [0.365, 0.451]6600.660 [0.631, 0.687]+0.252
grok-4.202400.357 [0.314, 0.401]6600.691 [0.664, 0.719]+0.334
Table 8. Tool availability by condition. “Always” means available in all three conditions; “Curated only” means available only when the curated skill package is mounted; “Self-gen only” means available only in the self-generated condition.
ToolAvailabilityDescription
submit_answerAlwaysSubmit final JSON answer (session-ending)
load_skillAlwaysLoad a SKILL.md into context (returns “not found” when empty)
load_referencesAlwaysLoad supplementary reference documents for a loaded skill
get_task_dataAlwaysRetrieve specific fields from the task input at full precision
query_xbrlAlways (FA)Query the XBRL financial data panel by ticker, period, and metrics
run_skill_ scriptCurated onlyExecute a validated Python script from the skill directory
save_skillSelf-gen onlyWrite a SKILL.md to the per-episode scratch directory
Table 9. Cognitive and procedural demands by subtask. ✓= primary demand; ∘ = secondary demand.
SubtaskNumerical optim.Tool param.Multi-step comp.Domain knowledgeData retrievalPrecision mgmt.Multi-output
Unconstrained optim.
Constrained optim.
Tool-use param.
Rebalancing
Black–Litterman
Constraint monitoring
Risk identification
Stress testing
Risk remediation
Normalization
Earnings quality
Driver decomposition
Table 10. Complete scorer specifications. Most component scores are clipped or averaged into [0,1]; the exp05 ranked-list scorer does not final-clip NDCG or the composite and can slightly exceed 1 when duplicate predicted risk types receive repeated relevance credit.
ScorerSubtaskFormula
L2 distanceUnconstrained optim.max⁡(0,min⁡(1, 1−∥wp−we∥2/(4​θ))), θ=0.05
Constraint gate + L2Constrained optim.All expected constraint_satisfaction keys must be present and equal; extra predicted keys are ignored. If the gate passes, weight L2 score as above; else 0
Parameter matchTool-use param.Fraction of union leaf parameters matching (numeric: relative error < 0.2; categorical: exact; extra/missing leaves count against the denominator)
Turnover complianceRebalancing0.5⋅sL2+0.25⋅sturn+0.25⋅strade, where sL2=max⁡(0,min⁡(1,1−L2/0.2)), sturn=max⁡(0,1−min⁡(1,|T^−T|/max⁡(|T|,10−9))), and strade is mean expected-ticker trade consistency
View + weightsBlack–LittermanMean of active components: posterior-returns MAE score max⁡(0, 1−MAE/0.05) and weight L2 score max⁡(0,min⁡(1,1−L2/(4​θ))) with θ=0.10
Exact matchConstraint monitoring0.4⋅ 1​[compliant match]+0.6⋅constraint accuracy, where accuracy is status match over expected normalized constraint types
Ranked recallRisk identification0.4⋅recall​@​k+0.3⋅precision​@​k+0.3⋅NDCG​@​k; recall/precision use multiset type overlap; exp05 NDCG uses max magnitude per expected type and is not final-clipped
Absolute errorStress testingP&L: spnl=max⁡(0,min⁡(1, 1−(|e|−0.1​τ)/(3​τ))); with scored sector attribution, 0.7⋅spnl+0.3⋅sattr; else spnl alone
Cost + complianceRisk remediation0.3⋅ 1​[compliant match]+0.3⋅ 1​[turn. OK]+0.4⋅F1​(normalized trade pairs)
Metric MAENormalizationFraction of scored non-metadata metrics with relative error ≤ per-metric tolerance (default 5%); unwraps metrics wrapper when present on both sides
EQ compositeEarnings qualityWeighted mean over active terms: component accuracy (episode weight 0.4), Beneish-flag match (0.3), flag F1 (0.3); numeric-ratio accuracy is included only if numeric_ratio_weight>0 in exp05/zqbok_experiment05
Driver F1Driver decompositionMean of active terms: revenue-driver recall/precision, matched revenue-driver direction, matched revenue numeric accuracy, margin recall/direction, matched margin numeric accuracy, and revenue-Δ accuracy

Why it matters

This shows that for deploying AI agents in real investment workflows, giving them reliable, validated procedures and tools may matter as much as which underlying model is used. It also cautions that letting agents invent their own procedures on the fly is not yet a trustworthy substitute.

Terms in this paper

  • agentic AI · AI systems that go beyond generating text to call tools and carry out multi-step tasks
  • skill · a reusable package of procedural documents and executable code an agent can load and use
  • curated skill · a human-authored, validated package of instructions and scripts
  • self-generated skill · a skill the agent writes for itself during a task before using it to answer
  • point-in-time data · data restricted to what was knowable as of a specific date, preventing lookahead information

Original abstract (English)

Investment management is a high-stakes domain in which agentic AI systems must do more than generate plausible text. They must retrieve point-in-time data, assemble correct computational inputs, invoke specialized methods, and produce auditable structured outputs. We introduce FinSkillBench, an evaluation suite designed to measure whether language model agents can effectively use financial domain skills to solve investment management tasks. The benchmark spans three domains, portfolio construction, risk management, and fundamental analysis, and includes 12 subtasks with 2,603 task episodes. Each episode provides point-in-time inputs, hidden ground truth, and a task-specific verifier.We compare three conditions: no skill, curated skill packages consisting of procedural documents and executable components, and self-generated skills in which the agent writes and reuses its own procedures within an episode. Across 9 models and a large-scale evaluation, curated skills consistently improve performance, raising mean scores from 0.366 to 0.528, with the largest gains in portfolio construction and risk management. In contrast, self-generated skills provide little benefit despite higher computational cost. An independent evaluation using a separate agent framework (Hermes Agent, 8 models, 5,280 episodes total) reproduces the directional pattern across all three domains, with the magnitude of skill effects varying by subtask and harness. These results showthat in investment management agents, access to reliable procedural skills can be as important as model choice, while naive self-generation of skills is often ineffective. We release the benchmark, evaluation tools, curated skill packages, and full trajectories to support further research.

Authors · Jermyn Zhen Yong Bek, Zhuang Qiang Bok, Zhongtian Sun

Read on arXiv

Latest papers

All papers →

Latest from METAL MEDIA