All work

Executive operationsIn productionEngineering

Dynamic tool discovery across 100+ integrations

Why direct tool-calling collapses somewhere past thirty tools, what we replaced it with, and how an agent acts inside login-only apps without a credential ever reaching the model.

Who this is for
Engineers and technical leads reviewing the architecture and implementation decisions.
Challenge
Direct tool-calling degrades past roughly thirty tools. Selection goes quietly wrong, maintenance fragments, and anything behind SSO stays unreachable, which caps how much of a routine can be finished.
Solution
One typed tool layer with retrieval before invocation, a planner-critic loop with bounded retry, an encrypted local vault that keeps credentials out of model context, and code execution instead of summarisation for analysis.
Impact
The registry grew past a hundred tools with selection staying reliable, and no-intervention plan completion moved from about 55% to 80%.
Status
In production. Retrieval-before-invocation shipped here before the major labs published the equivalent pattern as a standard.

Published

In short

Bigcircle does not hand Solarpunk the tool list: the agent queries a registry of 100+ typed contracts, retrieves only the definitions for that step, and calls the tool through an adapter that injects credentials from an encrypted vault on the machine. A critic chooses continue, retry, or escalate before the run is called finished. No-intervention plan completion moved from about 55% to 80% in an internal measurement that has not been re-confirmed with the client. The product is in production.

Key facts

Definition

Solarpunk is Bigcircle's desktop runtime that queries a typed tool registry, injects credentials only inside the adapter, and lets a critic accept or stop the step.

How Bigcircle does it

  1. Bigcircle keeps the registry, the encrypted vault, and execution on the machine, and calls the model as a reasoning service rather than as the holder of keys.
  2. Bigcircle retrieves the contracts that apply to the current step, then runs think-act-observe with credentials injected in the adapter alone.
  3. Bigcircle's critic matches the observation to the step, and spreadsheet work returns code that re-runs instead of a description of the table.

Comparison

Putting every integration into one prompt is where tool choice goes wrong once the list is long, while Bigcircle queries the registry and checks claimed completion against application state.

Key number

Bigcircle's internal measurement, not yet re-confirmed with the client, put no-intervention plan completion at about 55% before local retrieval and planner memory and at 80% after.

55% → 80%
Plans completed without a human

Internal measurement, before and after local memory and retrieval landed. Not yet reconfirmed with the client.

40–60%
Of recurring exec rituals automated

1:1 prep, pipeline reviews and board updates, across the routines we instrumented. Internal figure.

Hours → 15 min
Spreadsheet analysis

Observed on the analysis workloads we tested. The agent returns a notebook an analyst can re-run, not a number to take on trust.

Stack

Planner with self-checksSecure MCP tool meshDynamic tool-discoveryOn-device credential vault

The product had to finish cross-system work, not describe it. That single requirement is what separates this from an assistant, and it forces three things a chat product never has to solve: acting inside systems that only expose a login screen, holding a plan together across a hundred-plus tools, and proving afterwards that the work was actually done.

This is the engineering half of the case study. The business read (what changed for the leadership teams using it, and what it was worth) is a separate document.

The problem

The naive architecture is to wire a model directly to each service and describe every tool in the system prompt. It works, convincingly, up to roughly the point where you have thirty tools. Then three separate things break at once.

Tool selection degrades. With a hundred-plus tool definitions competing for attention in one context, the model starts choosing plausible-but-wrong tools, and the failure is quiet: it returns a confident result from the wrong system. The context cost is the visible symptom; the selection error is the expensive one.

Maintenance degrades. Every integration wired directly is its own credential handling, its own error shapes, its own prompt fragments. A vendor changes a response and the break surfaces somewhere unrelated, days later.

And the coverage ceiling is hard. A large share of executive work lives behind SSO and MFA in apps with no usable API. An agent restricted to services with clean APIs cannot finish a routine; it can only finish the part of a routine that happens to be convenient, which leaves a human holding the sequence anyway.

  • Tool selection has to stay reliable as the registry grows past a hundred

  • Credentials must never enter model context, while still being usable inside login-only apps

  • A long plan has to survive a mid-sequence failure rather than derailing on the first surprise

  • Spreadsheet reasoning must be reproducible, which rules out having a model describe a table

Architecture

The system is a desktop runtime rather than a hosted service, and that is the decision everything else follows from. Credentials, the tool registry, retrieval and execution all sit on the user's machine. The model is called as a reasoning service; it is never the thing holding the keys.

Between the model and every integration sits one uniform tool layer. Nothing is wired point-to-point. A tool is a typed contract (declared inputs, declared outputs, declared side effects) and the agent's entire capability surface is the set of registered contracts. That boundary is what makes the action space enumerable, which in turn is what makes governance a property of the system rather than a promise in a prompt.

The credential vault is encrypted and local. Secrets are injected into the tool adapter at execution time, at the point of use, and never travel into the prompt. This is what makes browser-based action inside an authenticated app defensible rather than reckless: the agent drives a session, it does not learn a password.

Design decision: the model is not given the registry. It queries it. Retrieval-before-invocation is the choice that let the tool count grow past a hundred without selection accuracy falling apart.

We shipped that pattern into production before the major labs published it as a documented standard. We are not claiming to have invented an idea, retrieval over a large action space is not exotic. We are saying that when we hit the wall, there was nothing to copy, and the design we arrived at independently is the one the ecosystem converged on months later. That is the useful signal for anyone evaluating who to hand an unsolved problem to.

The business read: what this bought the leadership teams using it

How it works

Plan#

A goal is decomposed into an ordered sequence of steps. The planner is working against the shape of the task, not against a list of a hundred tools, because at this stage it has not been handed any.

Discover#

For a given step, the agent searches the registry and retrieves only the applicable tool definitions before invoking anything. Two effects, and the second matters more than the first: the working context stays small, and the model is choosing among a handful of relevant contracts rather than a hundred competing ones.

Act and observe#

Each step runs as a think-act-observe loop. The tool call executes through the adapter (with credentials injected there and only there) and the raw observation comes back into the loop rather than being summarised away.

Critique#

A critic evaluates the observation against what the step was actually supposed to achieve, and decides: continue, retry, or escalate. This is the component that makes long plans viable. Without it, one bad observation propagates through every subsequent step, and the agent reports success on work it never completed.

Execute code for analysis#

Spreadsheet and CSV work does not go through summarisation. The agent infers the schema, writes code, runs it, inspects the actual result, and refines. The artifact handed back is a notebook that re-runs, which means the analysis is auditable rather than assertable.

Remember#

Local retrieval plus planner memory ground the agent in the user's own workspace and carry context between runs, so a plan for a recurring routine is informed by how that routine went last time.

Control planes

Governance#

The registered tool layer is the action boundary, not a policy applied over a general capability, but the capability itself. Tool contracts bound inputs and outputs. Credential custody sits outside model context. Where the agent cannot proceed within those bounds it escalates; there is no path by which it invents access it was not granted.

Orchestration#

Goal decomposition, then per-step retrieval, then think-act-observe, then critique, then the next step. That loop coordinates the tool registry, authenticated browser sessions, code execution, retrieval and memory, and it holds state across email, calendar, documents, CRM and ERP for the length of a routine.

Observability#

The unit of observation is the whole run, not the individual model call. One trace links goal, plan, the tools discovered, the calls made, the observations returned, each critic decision, every retry, any escalation, the final result, and the resulting state in the target application.

That last element is the one that is usually missing and matters most. Comparing the agent's claimed completion against the actual application state is what catches false completion, an agent reporting success on work that did not land.

When it fails

The failure modes worth designing for are not model failures. They are: a login that does not go through, a page whose state has moved since the plan was made, an action the target system does not actually support, a tool that returns a partial result, and a completion check that does not pass.

Each of those enters a bounded retry or escalation path rather than a free-running loop. Bounded is the operative word, an agent that retries indefinitely against a broken vendor is worse than one that stops, because it burns cost and time while looking busy.

Escalation hands back the specific unresolved step with its trace attached, so the human resolves one thing instead of auditing the whole run. And because the trace distinguishes a planning defect from a provider outage, an expired session, stale state, or an unsupported action, a failure report points at a fix rather than starting an investigation.

Results

The architecture moved leaders from manual coordination to review, and it did so while keeping both the access surface and the failure behaviour inspectable.

Retrieval-before-invocation is what carried the tool count past a hundred; the critic loop is what carried plan length past the first surprise; the local vault is what carried coverage into the systems that only have a login screen. Each of the numbers below traces to one of those three.

  • No-intervention plan completion rose from ~55% to 80% once local retrieval and planner memory grounded the agent in the user's workspace

  • 100+ tools registered with reliable selection, via retrieval before invocation rather than a fully-loaded tool context

  • Spreadsheet analysis from hours to under fifteen minutes, as re-runnable notebooks rather than model-asserted numbers

  • Vendor changes contained to a single integration, because nothing is wired point-to-point

Evidence

Directly demonstrable in the system: the tool registry and its size, retrieval before invocation, the encrypted local credential vault, code-execution analysis, authenticated browser action, and the critic loop.

Internal measurements not yet re-confirmed with the client: the 55% to 80% completion change, the 40–60% recurring-work reduction, and the hours-to-fifteen-minutes analysis result. These were measured during the build, on our own instrumentation. We have not restated them as client-verified production figures.

On the timing claim: retrieval-before-invocation went into this product before the major labs published the equivalent pattern as a standard. That is a statement about our own delivery record, and it is datable from the build history rather than from anyone else's announcement.

If you are evaluating this pattern for your own system, the question we would ask first is not which model you are using. It is whether you can enumerate your agent's action surface, and whether you can compare what it claims it did against what actually changed. Everything above is downstream of those two.

How we classify each of these numbers, and the value model behind them

Common questions

  • How does Bigcircle select a tool when the registry passes 100 integrations?

    Bigcircle does not put the registry in the prompt. The planner decomposes the goal before it has been handed any tools, and each step searches the registry for the contracts that apply. The model then chooses among that handful and invokes one through the adapter. Retrieval before invocation is how selection stayed reliable past 100 tools, and the product is in production.

  • Where do Solarpunk credentials live during a login-only session?

    Bigcircle keeps an encrypted vault on the machine and injects secrets into the tool adapter at execution, not into the prompt. The agent drives an authenticated browser session instead of learning a password. There is no path by which it grants itself access it was not given. The product is in production.

  • What does the Solarpunk critic do with a bad observation?

    Bigcircle's critic compares the observation with what the step was supposed to achieve and chooses continue, retry, or escalate. Retry is bounded, so a broken vendor does not keep running. Escalation returns the unresolved step with its trace, separating a planning defect from a provider outage, an expired session, stale state, or an unsupported action. The 55% to 80% completion change is an internal measurement and has not been re-confirmed with the client.

  • Why does Solarpunk run spreadsheet analysis as code?

    Bigcircle does not ask the model to describe a table. The agent infers the schema, writes code, runs it, inspects the result, and returns a notebook that can be rerun. A reviewer can check that notebook instead of trusting a paragraph about the numbers. The hours-to-under-fifteen-minutes result is an internal measurement from the build and has not been restated as a client-verified production figure.

Want the version of this built for you?

We can walk you through Venture-Backed B2B SaaS Built an AI Chief-of-Staff Agent live — the architecture, the failure modes, and what we would change for your constraints. Tell us what you are building and we will come back with a concrete plan.

Reply within 2h

We store your name, email, company, and message, and email a copy to hello@bigcircle.ai. Read the privacy page and the terms.