| Primus-FinAgent |
| Primus-FinAgent is a 4B-parameter agentic model for financial analysis over SEC 10-K filings. Given a question about a company's filing, it discovers the relevant tables, inspects their schemas, writes SQL, and computes the answer — using tools, not memorized facts. |
|
|
| What it does |
| It runs a multi-turn ReAct loop (up to 20 turns) with native function calling over four tools: |
|
|
| Tool Purpose |
| get_table_names list available tables for a company |
| get_table_info inspect a table's columns, dtypes, sample values |
| sql_query run a filtered SQL query (no SELECT *) |
| calculator evaluate a numeric expression |
| It concludes with a FINAL ANSWER: block in the requested unit (ratio, %, $, etc.). The hallmark behavior: it discovers schemas instead of guessing, reads tool errors and self-corrects, and cites the figures it used. |
| |
| Intended use |
| Agentic question-answering over structured financial tables (10-K / SEC-style data). |
| Research and reproduction of small-specialist-vs-generalist tool-use findings. |
| Not intended for: financial advice, unverified production decisions, or use outside an agent scaffold with the four tools below. |
| |
| Training |
| Base: Qwen/Qwen3-4B-Instruct-2507 |
| Algorithm: GRPO (Group Relative Policy Optimization), full-parameter, FSDP2 + optimizer offload |
| Reward: binary correctness from an LLM judge (gpt-5-nano) + a small bonus for inspecting the correct tables |
| Rollouts: vLLM, multi-turn tool-calling ReAct over an in-memory SQLite of ~6,900 SEC tables (207 companies) |
| Hardware: 8× A100-80GB, single node |
| Data: single-table FinQA QA pairs |
| |
| |
| |
| |