DocsScienceThe workbench

The workbench

An agent that chooses each step from what it has learned so far, a toolkit of about a hundred tools, and a live Python kernel you share with it. This is the machinery behind every answer in Essarion Science.

01How a turn runs

A turn is a loop. The agent sees your request, the conversation so far, the files in the session and the full list of tools it can run right now. It makes one decision: call one tool with typed inputs, or finish with an answer. The tool's result comes back as an observation, and it decides again.

There is no fixed pipeline. A one-line factual question may take two steps; a target assessment may take forty. A few rules keep the loop honest:

When a turn reaches its step or time limit, or stalls, it writes up what it has and says why it stopped.

Reading the request

Before the first tool call, the agent writes down how it read the request and shows it to you as a card: what you want, the decision it feeds, what a good answer would contain, what it decided without asking, and the next move beyond the question. It also picks what the turn should hand over:

DeliverableWhat it is
SummaryA direct answer, possibly with figures.
DossierAn assessment of a target, compound or mechanism.
Candidate setRanked molecules or drugs, with the argument for each.
Experiment protocolAn experiment someone could run.
Decision memoWhat to do, on what evidence, and what would change it.
Data packageComputed tables to take away and use.
Research campaignA set of hypotheses, ranked and stress-tested.

The document is built only from what the turn produced. Sections with no evidence behind them say so, and the operations that failed are listed next to the ones that worked. A turn that did no real work, such as a short conversational reply, hands nothing over.

The plan and the scratchpad

For longer work the agent writes a plan: the goal, the ordered steps, and what it expects each step to show. The plan is kept whole for the rest of the turn, even as older steps in the transcript are condensed, and each step is marked with what actually happened. A result that contradicts a written expectation is treated as a finding.

The scratchpad is the turn's working memory. It has sections for the working hypothesis, evidence for and against, anomalies, open questions, methodological concerns and dead ends. The agent is instructed to note anything unexpected under anomalies as soon as it sees it.

What depth changes

Depth is set in the Databases & skills sheet. It sets how much room a turn has, which heavier tools it may use, and how persistent it is.

ScanDeep diveExhaustive
Steps per turn1460200
Time limitShortestLongerLongest
Literature poolSmallestLargerLargest
Multiverse curve, PDF table extraction, replication graphOffOnOn
Can be sent back for stopping early, and again for unsupported proseNoUp to 2 times eachUp to 6 times each
If it is about to say a question cannot be settledAcceptedPushed to try an unused relevant tool, or 3 testable conjecturesPushed to try an unused relevant tool, or 8 testable conjectures
Reasoning per model callLowHighHigh, with the largest thinking budget

The reviewer and the check that claimed work actually happened run at every depth. See Verification.

NoteDepth is breadth and persistence, not a lower bar. Deeper runs try more, and are held to the same rules about what they may claim.

02The toolkit

The agent sees every tool that can run in the current state, with its exact name and input fields. It can also ask for any tool's full manual page, or ask which tools address a goal. That second question also returns what the system cannot do, so a missing capability is reported as a gap in the system rather than a gap in the science.

FamilyExamplesWhat they do
Retrievalbiomed.search_literature, biomed.fetch_structure, biomed.query_variants, literature.search, web.fetchPull records from the databases, the wider literature, or a public URL.
Bundled datadata.catalog, data.query, data.aggregateQuery the two bundled datasets locally: rows, counts and base rates.
Literature reviewreview.screen, review.extract, review.prismaScreen records against written criteria, pull the same fields from every included paper with a checked quote under each, and draw the PRISMA flow.
Biologytarget.assess, variant.interpret, seq.homology, expr.differential, sc.annotate, gwas.locus_to_gene, phylo.tree, clone.simulateTarget dossiers, variant evidence, BLAST homology, differential expression, cell-type naming, GWAS gene assignment, trees, and cloning checks.
Chemistry and pharmacologychem.profile, chem.analogs, chem.admet, pharma.drug_profile, pharma.safety_signal, trials.landscapeMedicinal-chemistry profiles and alerts, analogue design, ADMET from published models, drug profiles, FAERS signals, and the trial landscape by intervention.
Engines and discoverystructure.pockets, qsar.build, pk.simulate, trial.simulate, discover.gauntlet, discover.campaignCompute what no database holds, and propose and stress-test new ideas. See Engines & discovery.
Statistics and verificationhypothesis.parse, preregistration.build, meta.pool_effects, multiverse.specification_curve, adversarial.collaborateTest a claim formally. See Verification.
Compute and outputbiomed.notebook_exec, biomed.run_skill, figure.render, biomed.build_model, report.writeRun code, run a skill, draw a chart, build a 3D model, write a cited report.
Working memoryplan.write, scratchpad.write, conjecture.spawn, files.read, vision.inspectKeep the plan, take notes, turn findings into testable conjectures, read session files, and look at images.

Skills

Skills are packaged computations. All run locally or against a public endpoint, with no key.

SkillProvides
Sequence toolsGC content, translation, ORF finding and pairwise alignment (Biopython).
Single-cell QCPer-cell QC metrics with MAD outlier flagging for single-cell RNA-seq.
Molecular designDescriptors, drug-likeness rules, PAINS and Brenk alerts, similarity, scaffolds, clustering and analogue enumeration (RDKit).
Protein biophysicsMolecular weight, pI, extinction coefficient, GRAVY, instability, transmembrane spans and developability liabilities from sequence.
Variant effectEnsembl VEP consequences for rsIDs and HGVS, plus Grantham distance for missense changes.
CRISPR guide designSpCas9, SaCas9 and Cas12a guides, scored, with seed-aware off-target scanning.
PCR primer designPrimer pairs with nearest-neighbour Tm, salt correction, dimer and hairpin checks.
Dose-responseFour-parameter logistic fits for IC50/EC50 with confidence intervals, plus Bliss and Loewe combination analysis.
Enzyme kineticsMichaelis–Menten fits for Km, Vmax and kcat, and inhibition-mechanism identification with Ki.
PharmacokineticsOne- and two-compartment simulation, parameter derivation, allometric scaling and target coverage.
Survival analysisKaplan–Meier curves, log-rank tests with a proportional-hazards check, and univariate Cox regression.
Trial designSample size and power for continuous, binary and time-to-event endpoints, 3+3 and BOIN escalation, and interim futility.

03The notebook kernel

Each session has one Python kernel, and it persists across cells and across turns. A table loaded in the first turn is still there in the fifth. That is what makes the analysis cumulative rather than a series of disconnected snippets.

numpy, scipy, pandas, networkx and Biopython are available. Charts are drawn through a built-in figure API rather than matplotlib or plotly, which are not available in the kernel. Files attached to the session can be read from it.

Running your own cells

The Notebook tab of the workbench panel has a console into the same kernel. Variables the agent built are already in scope, and anything you define is visible to the agent's next cell. Your cells appear in the notebook marked as yours. The console also lists the kernel's variables and can reset the kernel.

A cell, and the cell after it
# cell 1
import pandas as pd
effects = pd.DataFrame(rows)
effects.describe()

# cell 2 — `effects` is still bound
effects.groupby("study_design")["hedges_g"].agg(["mean", "count"])
NoteThe kernel lives in memory. A session you have not used for a while can come back with an empty kernel. The transcript and artifacts remain; variables need to be recreated.

What the kernel will not do

Every cell, whether the agent's or yours, passes a static check before it runs: no underscore or dunder access, no open, eval, exec or getattr, and imports only from a safelist of compute libraries. Each cell has a wall-clock timeout. Persistence keeps the namespace and relaxes nothing else.

04Figures, models and artifacts

When a question compares, ranks or describes a distribution or a structure, the agent is instructed to compute the numbers and show them, not just describe them. Charts are drawn in the notebook. 3D models are built from real coordinates:

The agent is forbidden from hand-building protein coordinates. If a real fold is not available, it says so. Designing a new sequence for a backbone depends on an external design service; where that service is not available, the tool reports it.

Every artifact opens in a panel with five tabs: View, Code, Execution log, Inputs and Environment. You can download the producing script. Redrawing the same figure adds a new version you can step back through. Open a chart and click on it to leave a note; the agent changes the code and redraws it.

05Files and images

Files you attach, up to 64 MB each, are stored in the session's workspace. The agent sees the list every turn and can read them with its file tools or from the kernel. Pasted screenshots, gels, plots and micrographs can be inspected with a vision tool, which the agent also uses to check figures it has drawn.

06Beyond the typed tools

For a public resource with no connector, the agent can fetch a URL directly. The fetch is recorded as a source, so it can be cited and checked. Only public addresses can be reached; private, loopback and cloud-metadata addresses are refused, and redirects are checked at every hop.

A sandboxed shell also exists for work no typed tool covers. Each command runs in its own process with CPU, memory, file-size and file-descriptor limits. It is never offered at Scan depth, and whether it is offered at other depths depends on the resources of the deployment.

Can’t find what you need?

Write to us and a person will answer.