| Rank | Model | Avg Reward |
|---|---|---|
| 1 | gpt2uat | 0.6865 |
| 2 | gemma4-gemma-4-E2B-it_1780572325819 | 0.5161 |
| 3 | tesst36-bench-3-qwen2.5-0.5b-instruct-mpbbin2v | 0.3375 |
1 phaseActive
Evaluate LLM agents on multi-turn banking fraud investigation scenarios. Agents must identify fraud, call the correct tools in the right order, and respond to the customer. Scoring uses GRPO-style reward components: correct action, fraud classification, workflow order, respond quality, and tool efficiency.
FinArena benchmarks LLM agents on multi-turn banking fraud investigation scenarios. Your agent plays the role of a professional fraud analyst: it receives an alert about a customer, must call the right banking tools in the right order, reach the correct decision, and respond to the customer — all within a live OBP (Open Bank Project) environment.
model.py from the Files tab under solution/api_url, api_key, and model_name in model.pyYour submission must contain:
submission.zip
├── model.py # Your agent implementation (required)
└── requirements.txt # Extra Python dependencies (optional)Implement one class with one method:
class FinArenaAgent:
def __init__(self):
self.api_url = "https://your-litellm-endpoint/v1/chat/completions"
self.api_key = "YOUR_API_KEY"
self.model_name = "your-model-name"
def chat(self, messages: list[dict], tools: list[dict]) -> dict:
"""
Receive the current conversation + available tool schemas.
Return an OpenAI-compatible message dict.
Args:
messages — conversation history in OpenAI format
tools — list of tool schemas the model may call
Returns:
An assistant message dict, e.g.:
{
"role": "assistant",
"content": null,
"tool_calls": [{"id": "...", "type": "function",
"function": {"name": "freeze_card",
"arguments": "{\"card_id\": \"abc123\"}"}}]
}
"""
...The benchmark's ingestion program manages the full conversation loop, tool execution against the live OBP bank, reward scoring, and result logging. You only implement
chat().
Your agent has access to these banking tools:
| Tool | Description |
|---|---|
get_accounts | List accounts for a customer |
get_recent_transactions | Fetch recent transactions for an account |
get_transaction_details | Get details of a specific transaction |
get_cards | List cards linked to an account |
freeze_card | Freeze a card (fraud action) |
create_fraud_case_note | Log a fraud investigation note |
respond | Send final response to the customer (ends the episode) |