An AI teammate should know when to help without being asked. We tested 12 frontier models on 50 workplace situations inside a simulated company.
Proactive agents are the next frontier. How do we measure them? #
Anyone who has tried to integrate AI into their life knows the models are too chatty. They catch details you’d miss, but they also overwhelm you with non-important fluff. Muse, Grok, Dots and others are trying to fix this. Meanwhile, agents at work are moving to a different job: lurk in the workspace, watch, and help when it matters. That job has three parts: gathering evidence from systems the conversation never mentions, deciding if help is needed, and who and how should receive it.
Teams choosing a model for a proactive agent, or building one in-house, have had little to go on. Their own company data is too sensitive to benchmark on in public. So we built a company. PageMantle is synthetic, with the tools a real one runs on: a CRM, product analytics, billing, a warehouse, an issue tracker, docs, and Slack. We are open-sourcing all of it.
Existing work covers pieces of this. ProACT and MUIR treat the decision to participate and the quality of the reply as separate questions. Toolathlon is careful about tool behaviour. TheAgentCompany shows that a self-contained company is a workable test environment. None of them combine the speak-or-stay-silent decision with investigation across an extensive, heterogenous company data footprint, and none score where the help belongs: channel, thread, or direct message.
This version compares models, not harnesses. Every model gets the same instructions, the same tools, the same company snapshot, and the same 180-second budget. Deepnote is building a workspace where agents and people work on data together, which is why the question matters to us.
Sales, in #customers:“I’ll tell them we’re launching on Friday.”
Engineering, in #releases:“The release is moving to next Friday.”
Key results for agent builders #
Every model elaborated on the same 50 situations at high effort. The score is the mean of two LLM evaluators, 0 to 10, averaged over all 50.
-
The most expensive models are not the best onesThe three priciest models finish third, fourth, and fifth. The runner-up, GPT-6.1 Sol, costs $0.11 per task . GPT-6 Luna ($0.007) and Claude Fable 5.1 ($3.02) are430× apart in price and 1.1 points apart on a 10-point score. A month of watching one company’s Slack comes to $281 on Sol and $4,684 on Fable 5.2.
-
Models are good at helping and bad at not helpingWhen help was needed, a message went out 9 times out of 10 . When silence was right, a message was held back only6 times out of 10 . For the same model, speaking out of turn cost about 1.8× as much as staying quiet.
-
OpenAI leads on quality & price, Anthropic on speedGPT-6 Astra ( 8.97 ) and GPT-6.1 Sol (8.65 ) lead and sit on all three frontiers: cost, time, and tool calls. Claude Sonnet 5.5 and Opus 5.5 join them on time and tool calls, with faster answers and lower scores.
-
Models work in two styles: snipers or deep thinkersOpus 5.5 answers in 29 seconds with 10 tool calls . Fable 5.2 makes twice the calls in twice the time for a score 4% higher. Sol 6.1 takes 88% longer for a score 10% higher, at under a tenth of Opus’s price.
-
The heaviest tool callers scored lowestGemini 4 Argon averaged 35 tool calls and scored 5.60. Grok 4.7 averaged 36 and scored 4.51. Both models failed to reach an answer in ~half the tasks that required assistance.
-
Fable 5.2 improves on 5.1, but is not #1Claude Fable 5.2 falls behind Astra and Sol. It's best at decision tasks across models, but at a high cost of $1.87 per task, and more tool calls and times taken.
PageMantle: a real fake company #
PageMantle is a high-fidelity synthetic company with the digital footprint of a real software business: users sign up, build and publish websites, customers pay and renew, and teams ship features and resolve incidents. Six years of connected records trace those people, accounts, and events across 11 services.
Company history
Two founders started the company with a seed check in 2020. By 2026, it grew to 71 employees and 100 enterprise customers. Real events from its market and the wider world impact company history and development, alongside its own launches, outages, and departures.
When a competitor launches a feature, PageMantle employees react to it by announcing efforts to counter this in Slack, and they track and deliver it via Linear.
- 2020 · PageMantleTwo founders and a seed check
- Jan 13, 2021 · Real-world eventWebflow raises a $140M Series B
- Dec 7, 2021 · Real-world eventA major AWS disruption becomes a warning
- Jun 21, 2022 · Real-world eventGitHub Copilot goes GA
- Mar 10, 2023 · Real-world eventSVB fails. The CEO moves the cash
- Jul 7, 2023 · PageMantlePageMantle closes a $15 million Series A
- Aug 1, 2024 · Real-world eventEU AI Act enters into force
- Jun 18, 2025 · Real-world eventWix buys Base44
- Mar 2, 2026 · Real-world eventWix launches in ChatGPT
- 2026 · PageMantleLive month: 71 people, 100 enterprise customers
- Product
- Product, platform, infrastructure, or integration releases
- Customer
- Milestones, requests, adoption signals, commercial reactions
- People
- Hires, departures, promotions, team changes
- Funding
- Capital, annual financial results, financing decisions
- Security
- Security, privacy, compliance, and audit work
- Market
- Real-world events and competitor moves
- Incident
- Service failures, defects, urgent recovery
- Operations
- Internal processes, partner programs, operating changes
Company ontology: everything is connected
PageMantle's digital footprint is one of a real company: users onboard creating records in CRM, convert to paid plans, grow, sign enterprise contracts, request features, and churn. Employees join the company, get promoted, own issues and initiatives in Linear, celebrate birthdays, and make mistakes.
- People
- 71 employees Slack, Notion, Linear, HubSpot, Google Calendar
- Customers
- 100 enterprise accounts, plus self-serve Slack, Notion, Linear, HubSpot, Stripe, PostHog, BigQuery, Snowflake
- Contracts and payments
- deals, subscriptions, invoices HubSpot, Stripe, BigQuery, Snowflake
- Problems and decisions
- threads, issues, notes, reports Slack, Notion, Linear, HubSpot
- Product and website usage
- events, traffic, search PostHog, Google Analytics, Search Console, BigQuery, Snowflake
Follow one problem across systems
Five records about one customer over four days, in three services. The people, the account, and the timestamps agree. You will meet this account again in the example task.
- 28 SeptRedpoint Assurance’s health score drops to 34 of 100: red, high renewal risk.
- 29 SeptHannah identifies the issue together with a fellow engineer and briefs the customer.
- 30 SeptMegan accepts the code review at 18:12 UTC. Lucas deploys the repair at 19:07.
- 1 OctThe customer confirms Publish completed. Hannah records it in the thread.
- 1 OctA later, a task gets created to notify other impacted customers, with customer support owning it.
PageMantle's tech stack
Each service runs behind a simulated API designed to mimic the shape of the real service’s API. The simulated APIs are open source in the benchmark repository.
| Service | What it contains | Scale |
|---|---|---|
| Slack | Conversations and threads | 9k messages, 2.5k threads |
| Notion | Documents, policies, meeting notes | 330k words, 680 pages |
| Linear | Issues with comments | 10k+ words |
| HubSpot | Companies, contacts, deals, contracts | 6.8k companies, 21.7k contacts, 5.2M records |
| Stripe | Subscriptions, invoices, payments | 35k billing events |
| Google Calendar | Meetings and recurring events | 3.5k events, 32k attendees |
| PostHog | Product activity and analyses | 9M product events |
| Google Analytics | Traffic, sources, engagement | 2.7M events |
| Google Search Console | Search performance, URL inspections | 186k rows |
| BigQuery | Product records, activity logs, payments | 13M rows |
| Snowflake | Business metrics, performance reports | 31M rows |
slack_search_messages`` slack_get_thread``slack_post_message`` slack_reply_to_thread``notion_search`` notion_fetch_page``linear_search_issues`` hubspot_search_companies``hubspot_search_deals`` stripe_list_invoices``posthog_query_events`` bigquery_query``snowflake_query`` calendar_search_events``analytics_run_report`` search_console_query_performance
Every service exposes search and read tools with the shape and limits of the real API. Slack also exposes posting and replying. Searches run on the stored data, including when they return nothing.
Building a fake company that holds together #
Agents need company data to learn and be tested on, and real company data is too sensitive to share. Generating it is the alternative, and it is hard: ask a model for a million documents and the facts drift apart from one source to the next. So we fixed the facts first and let models write around them.
-
Code fixes the factsEmployee identities and roles, joining dates, customers, contract values, dates, and the links between records. Anything that has to stay consistent is owned by code.
-
Models write inside themWeekly plans, daily events, conversations, documents, and issue descriptions. Language models add variety, working within the facts the code fixed first.
-
Events fan out into recordsOne customer problem becomes a Linear issue, a Slack thread, and a HubSpot note, each written for its own purpose. Where a decision depends on a document, the document exists.
-
Simulated APIs serve itEach service runs behind a simulated API designed to mimic the shape and limits of the real one. Warehouse and analytics data sit in Parquet behind DuckDB. The other services are SQLite-backed. The code is on GitHub .
Why generate at all. We looked for an existing company dataset and found none that covered daily operations end to end. Public technical discussions have real problems but no company around them. Activity logs show who edited a document without the document. A proactive agent needs both: the conversation and the records behind it. And to the best of our knowledge, no benchmark gives its tasks this much company detail to work through.
Tasks are overlays. Every task is a small set of changes on one shared, read-only baseline. A new note that conveniently states the whole answer would change what the test rewards, so added records have to look like ordinary company work. The agent cannot tell an overlay from the baseline.
From a Slack conversation to a scored contribution #
Each of the 12 models faces the same 50 situations at high reasoning effort, with identical instructions, tools, and company state. Keeping these conditions fixed focuses the comparison on the model.
8 task types for everyday work
Find
Find a fact, a document, the responsible person, or the current status.
“Who owns the billing service now?”
Explain
Explain a rule, a process, or how a product works.
“What's the process to get a vendor approved?”
Analyze
Compare data and describe a change, a trend, or a relationship.
“Churn by plan, this quarter vs. last.”
Verify
Check a claim, a document, or a number against its sources.
“Does this PR implement what the spec says?”
Decide
Compare options, set priorities, or recommend the next step.
“Which 10 inbound leads should sales call first today?”
Diagnose
Identify the cause of a problem and propose a way to fix it.
“SSO login fails for one customer. Where?”
Coordinate
Line up the work of colleagues or teams and clarify who owns what.
“Two teams are planning changes that won't work together.”
Guard
Review access and sharing, or check a proposed action against company policy.
“A link to a confidential contract appeared in a shared channel.”
Blind evaluation by two models
After each run, the evaluators check the decision to intervene as well as the message itself. These four dimensions distinguish useful help from a polished interruption.
Which customer needs help first? #
Jonah asks which of three customers needs attention and what to do next. A useful answer checks the latest records, catches Ashland’s wrong preview pages, and gives each account a concrete next step.
Model performance breakdown
Higher cost and more tool calls don’t guarantee better agents #
Across 600 runs, OpenAI leads on score and value, Anthropic on speed, and models find it harder to stay quiet than to speak up.
Two OpenAI models beat the newest Fable
GPT-6 Astra leads at 8.97. GPT-6.1 Sol at 8.65 sits inside Astra’s interval, so this task set does not separate them. Claude Fable 5.2 is third at 8.17: below Astra’s interval, inside Sol’s. It leads Decide tasks, but it has not passed either OpenAI model overall.
Claude Opus 5.5 (7.84) and Claude Fable 5.1 (7.50) follow and are not separable from each other. Then five models land within 0.6 points with overlapping intervals: Claude Sonnet 5.5, GPT-6 Luna, DeepSeek V4.1 Flash, Mistral Large 4, and Claude Haiku 5.5.
Gemini 4 Argon and Grok 4.7 trail mainly because of runs that reached the 180-second limit before any message was sent: 27 and 18 runs.
The zero column matters as much as the mean. Astra and Opus each scored 0 on two tasks. Gemini scored 0 on 17, Grok on 20. An agent that is excellent on average but absent one time in three is a different product from one that is good every time.
Results table
| # | Model | Score | 10 / 10 | 0 / 10 | Helped | Stayed silent | Time | Cost / task | Tool calls |
|---|---|---|---|---|---|---|---|---|---|
| 1 | GPT-6 Astra | 8.97 | 26 | 2 | 40/40 | 8/10 | 54 s | $0.693 | 19.3 |
| 2 | GPT-6.1 Sol | 8.65 | 22 | 3 | 39/40 | 8/10 | 54 s | $0.112 | 18.0 |
| 3 | Claude Fable 5.2 | 8.17 | 18 | 4 | 40/40 | 6/10 | 1 min 0 s | $1.87 | 20.9 |
| 4 | Claude Opus 5.5 | 7.84 | 14 | 2 | 40/40 | 8/10 | 29 s | $1.28 | 10.0 |
| 5 | Claude Fable 5.1 | 7.50 | 11 | 3 | 40/40 | 6/10 | 51 s | $3.02 | 14.5 |
| 6 | Claude Sonnet 5.5 | 6.65 | 11 | 7 | 37/40 | 6/10 | 15 s | $0.420 | 8.9 |
| 7 | GPT-6 Luna | 6.38 | 9 | 9 | 38/40 | 4/10 | 50 s | $0.0070 | 13.7 |
| 8 | DeepSeek V4.1 Flash | 6.35 | 7 | 7 | 38/40 | 4/10 | 1 min 26 s | $0.026 | 21.1 |
| 9 | Mistral Large 4 | 6.09 | 6 | 9 | 37/40 | 4/10 | 1 min 25 s | $0.082 | 22.5 |
| 10 | Claude Haiku 5.5 | 6.05 | 5 | 6 | 38/40 | 5/10 | 28 s | $0.075 | 12.1 |
| 11 | Gemini 4 Argon | 5.60 | 11 | 17 | 23/40 | 10/10 | 2 min 44 s | $0.403 | 34.5 |
| 12 | Grok 4.7 | 4.51 | 8 | 20 | 24/40 | 6/10 | 2 min 25 s | $0.425 | 35.5 |
-
Score
-
8.97
-
10 / 10 scores
-
26
-
0 / 10 scores
-
2
-
Helped
-
40/40
-
Stayed quiet
-
8/10
-
Time
-
54 s
-
Cost / task
-
$0.693
-
Tool calls
-
19.3
-
Score
-
8.65
-
10 / 10 scores
-
22
-
0 / 10 scores
-
3
-
Helped
-
39/40
-
Stayed quiet
-
8/10
-
Time
-
54 s
-
Cost / task
-
$0.112
-
Tool calls
-
18.0
-
Score
-
8.17
-
10 / 10 scores
-
18
-
0 / 10 scores
-
4
-
Helped
-
40/40
-
Stayed quiet
-
6/10
-
Time
-
1 min 0 s
-
Cost / task
-
$1.87
-
Tool calls
-
20.9
-
Score
-
7.84
-
10 / 10 scores
-
14
-
0 / 10 scores
-
2
-
Helped
-
40/40
-
Stayed quiet
-
8/10
-
Time
-
29 s
-
Cost / task
-
$1.28
-
Tool calls
-
10.0
-
Score
-
7.50
-
10 / 10 scores
-
11
-
0 / 10 scores
-
3
-
Helped
-
40/40
-
Stayed quiet
-
6/10
-
Time
-
51 s
-
Cost / task
-
$3.02
-
Tool calls
-
14.5
-
Score
-
6.65
-
10 / 10 scores
-
11
-
0 / 10 scores
-
7
-
Helped
-
37/40
-
Stayed quiet
-
6/10
-
Time
-
15 s
-
Cost / task
-
$0.420
-
Tool calls
-
8.9
-
Score
-
6.38
-
10 / 10 scores
-
9
-
0 / 10 scores
-
9
-
Helped
-
38/40
-
Stayed quiet
-
4/10
-
Time
-
50 s
-
Cost / task
-
$0.0070
-
Tool calls
-
13.7
-
Score
-
6.35
-
10 / 10 scores
-
7
-
0 / 10 scores
-
7
-
Helped
-
38/40
-
Stayed quiet
-
4/10
-
Time
-
1 min 26 s
-
Cost / task
-
$0.026
-
Tool calls
-
21.1
-
Score
-
6.09
-
10 / 10 scores
-
6
-
0 / 10 scores
-
9
-
Helped
-
37/40
-
Stayed quiet
-
4/10
-
Time
-
1 min 25 s
-
Cost / task
-
$0.082
-
Tool calls
-
22.5
-
Score
-
6.05
-
10 / 10 scores
-
5
-
0 / 10 scores
-
6
-
Helped
-
38/40
-
Stayed quiet
-
5/10
-
Time
-
28 s
-
Cost / task
-
$0.075
-
Tool calls
-
12.1
-
Score
-
5.60
-
10 / 10 scores
-
11
-
0 / 10 scores
-
17
-
Helped
-
23/40
-
Stayed quiet
-
10/10
-
Time
-
2 min 44 s
-
Cost / task
-
$0.403
-
Tool calls
-
34.5
-
Score
-
4.51
-
10 / 10 scores
-
8
-
0 / 10 scores
-
20
-
Helped
-
24/40
-
Stayed quiet
-
6/10
-
Time
-
2 min 25 s
-
Cost / task
-
$0.425
-
Tool calls
-
35.5
Time is awaited model response, tool execution excluded. Cost is recorded model spend per task in USD.
The most expensive models are not the best ones
Cost. The three priciest models finish third, fourth, and fifth. Prices span 430×, from Luna at $0.007 per task to Fable 5.1 at $3.02, and those two are 1.1 points apart. Sol scores 0.32 below Astra at one-sixth of the price. Fable 5.2 costs $1.87 per task against $0.69 for Astra and $0.11 for Sol, and scores below both.
Time. Sonnet 5.5 answers in 15 seconds for a 6.65. Opus 5.5 takes 29 seconds for 7.84. Sol and Astra both take about 54 seconds. Those four form the time frontier: OpenAI on score, Anthropic on speed.
Tool calls. Sonnet averages 8.9 calls per task, Opus 10.0, the two leaders 18 to 19. Gemini and Grok average 34.5 and 35.5 and score lowest.
Always on. A proactive agent does not run once. One investigation per Slack thread in PageMantle’s live month, about 2,500 threads at a 70-person company, comes to $281 on Sol 6.1 and $4,684 on Fable 5.2. The table below prices every model the same way.
Models are good at helping and bad at not helping
Agents almost always speak up when help is needed: a message went out 9 times out of 10. Nearly every miss was a run that reached the time limit before sending anything.
Holding back is where they slip. When silence was right, models stayed quiet only 6 times out of 10. The best held back 8 times in 10. The weakest spoke more often than not.
Speaking out of turn also costs more. For the same model, it cost about 1.8× as much as staying quiet, and took about 1.8× as long.
Anthropic’s largest models split here. Fable 5.2 is third at helping and mid-table at holding back. Opus 5.5 is the reverse: a step behind at helping, among the best at staying quiet.
Easy silence is visible: when the resolution sits in the same thread, every model holds back. Hard silence is not: when the thread looks open and a sound analysis is on offer, nearly every model speaks.
Models work in two styles: snipers or deep thinkers
Regardless of price, models work in two styles. Deep thinkers keep searching every tool for evidence before they answer. Snipers make as few calls as they can and answer fast. Opus 5.5 is the sniper: 10 tool calls and 29 seconds per task.
Compared with Opus 5.5, the deep thinkers do about twice the work for a modest gain:
- Fable 5.2 : 2× the tool calls, 2× the time, and 47% more cost, for a score 4% higher.
- Sol 6.1 : 80% more tool calls and 88% more time, for a score 10% higher, at less than a tenth of Opus’s price.
Searching more is not the same as finding more. Gemini 4 Argon made 35 tool calls on average and scored 5.60. Grok 4.7 made 36 and scored 4.51. Each sent a message in a little over half of the tasks that needed one.
The dataset is large, so an agent can never be sure it has read enough. It still has to commit before the limit. Astra and Sol handled that trade-off best: neither reached the limit more than once in 50 runs.
Great at verifying claims, bad at analyzing
Numbers are the common gap. Analyze tasks ask the agent to pull figures from PostHog, BigQuery, or Snowflake and read them against a claim someone made in Slack. That is the weakest type for 8 of 12 models. Checking a claim against its sources (Verify) is the opposite: nearly every model does it well.
Within OpenAI, the two larger models split. Astra is strongest where work crosses teams: lining up owners (Coordinate) and checking access and policy (Guard). Sol is strongest at explaining a rule or a product (Explain) and at finding things, but lining up colleagues is its weak spot, about 3 points below Astra. Both handle numbers well, unlike most of the field.
Within Anthropic, Fable 5.2 and Opus 5.5 split along similar lines. Fable 5.2 is stronger at judgment: comparing options and recommending a next step (Decide), and finding a root cause (Diagnose). Opus 5.5 is stronger at people and process: coordinating teams and explaining how things work. Both trail the OpenAI leaders on Analyze.
The parallel holds in both labs: the model that coordinates best is not the one that explains or decides best. Each type has 5 to 8 tasks, so read these as tendencies to test on your own work, not fixed rankings.
Three ways to lose points
Most lost points trace back to three patterns: the timing out, unwarranted intervention, and getting lost in the context.
-
Running out the clockWhen help was needed, most models sent a message. Gemini 4 Argon and Grok 4.7 were the main exceptions: they often kept investigating until time ran out. Most missed messages were timeouts, not deliberate choices to stay silent. The models were still searching when they needed to act.
-
Stepping into a settled matterThe opposite failure is harder to spot. GPT-6 Luna, DeepSeek V4.1 Flash, and Mistral Large 4 sent a message in 6 of the 10 tasks that called for silence. Both Claude Fable models did so in 4. Those messages were accurate and well placed. The matter had already been handled, and the records said so. A check on message quality alone will not catch this.
-
A wrong conclusion from the right evidenceSome runs found the right record and still drew the wrong conclusion. In a data-access task, GPT-6 Luna referred an employee to the former access administrator after reading the record that confirmed the handover to a new one.
Building proactive agents? Key takeaways: #
-
Route by task complexityCost is a routing problem. An always-on agent investigating about 2,500 threads a month costs $281 on Sol 6.1 , $1,732 on Astra 6, and $4,684 on Fable 5.2. Send routine threads to an inexpensive, capable workhorse and escalate to a stronger model when the task is complex: numbers to reconcile, a decision to weigh, or a matter that may already be closed. We did not test a router. This is a design recommendation drawn from the score and cost spread.
-
Silence is a moatAlmost every model can help. Knowing when to stay quiet is what separates them. The best models still spoke in 2 of 10 situations that called for silence, and their needless messages were well written, so a quality filter will not catch them. Make “is this already handled?” an explicit step, and track false alarms as their own number.
-
Choose models by the organization's task mixRankings move by task type, so onboarding should start by finding out which tasks the organization actually hands the agent. A finance company and a small local shop ask for very different things. Then let task strengths guide the choice: Astra leads five of eight types, including Analyze and Guard. Sol leads Explain and Find. Fable 5.2 leads Decide. Analyze is the weakest type for 8 of 12 models, so test a numbers-heavy mix there first.
-
Speed for live threads, depth for background workWhen someone is waiting in a live conversation, response time is part of the answer: Opus 5.5 replied in about 29 seconds on average and scored 7.84. For digests, monitors, and other background work nobody is waiting, so spend the time on investigation: Sol 6.1 took about 54 seconds, scored 8.65, and cost about a tenth as much.
-
Cap the search and force a decisionMore tool calls did not buy score. The two heaviest callers reached the time limit on 27 and 18 of their 50 runs. Give the harness a budget and a point at which it must commit: a message, or silence.
-
Evaluate the harness, not only the modelThese results hold the instructions, tools, and budget fixed. A different prompt, tool policy, or retrieval step will move every number here. Deepnote is now building a harness benchmark. If your company is building a proactive agent, .
Limitations
- A 50-task panel. Deepnote will release a larger sample of tasks in the next version.
- Fixed snapshot. The agent does not choose the moment the test begins, and teammates do not reply. We measure the contribution at that point, not its effect on a team over time.
- One effort level. Every model ran at high. Lower or higher effort will move both score and cost. We have not run those sweeps yet.
- One month of Slack, six years of records. Tasks start mainly from one month of PageMantle's Slack conversations. The evidence behind them comes from the connected services, which hold six years of interconnected company history. The agent replies only through Slack. Email, documents as a surface, and actions beyond messaging are not in this version.
Building a proactive agent? #
Request a benchmark with the research team.
Run it against your own agent
The simulated services and the judging pipeline are on GitHub. The company they run on is on Hugging Face. Swap in a model, a harness, or a tool policy and see what changes.