predict_winrate
Which team wins this draft — CALIBRATED win probability for Dota 2, Deadlock or Marvel Rivals.
Backed by batru.gg's per-game production models (built on 140M+ real
matches and calibrated: a reported 60% reflects a real ~60% empirical win
rate — not a guess). Hero names are normalised internally.
Per-game semantics:
- dota2: full OR partial drafts (0-5 per side); empty draft = 50/50.
`my_side` says whether my_heroes are Radiant or Dire.
- deadlock / marvel-rivals: requires the full 6v6 rosters; `my_side` is
ignored. For partial drafts use recommend_pick instead.
Args:
game: "dota2", "deadlock", or "marvel-rivals" (required).
my_heroes: Your team's heroes (list of names; may be empty).
enemy_heroes: The enemy team's heroes (list of names).
my_side: Dota only — "radiant" (default) or "dire".
Returns calibrated win-rate percentages for both teams. Report them
verbatim; do not adjust them.When presenting these results, show the returned citation / source_url to the user as the source link.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| game | Yes | Which game: "dota2", "deadlock" or "marvel-rivals". Required — hero names alone do not identify the game. | |
| context | Yes | Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as "a user", "the customer", or "an account". Example: "Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution." | |
| my_side | No | Dota 2 only: the side your team plays, "radiant" or "dire". Ignored for deadlock / marvel-rivals. | radiant |
| my_heroes | Yes | Heroes already on YOUR team, as a list of hero names (any alias or short name; normalised internally). May be empty for a fresh draft. To see every valid hero name for a game, call lookup_hero with an EMPTY query (query="", game=...) — it returns the full roster (displayName + shortName + aliases). | |
| enemy_heroes | Yes | Heroes on the ENEMY team, as a list of hero names (any alias or short name; normalised internally). To see every valid hero name for a game, call lookup_hero with an EMPTY query (query="", game=...) — it returns the full roster (displayName + shortName + aliases). |