What changes when the AI can act on your files, your data, and your analyses
2026-09-24
You use chatbots. You write prompts. You judge whether the answer is any good.
That intuition transfers directly. This session adds three things:
A talk this morning. This afternoon, a book you work through at your own pace.
| 10:00 | The talk — from chatbot to agent, under the hood, working well, reaching outside your files |
| 12:00 | Lunch |
| 13:00 | The book — hands-on, your own material, with me in the room |
| 14:30 | The Vahedi lab’s afternoon |
Scan this now. The book is where this afternoon happens: setup, seven chapters, every prompt with a copy button. Do its Setup chapter over lunch if you can.
So much of the work in this institute already lives in files:
params.yamlA chatbot reasons about a snippet you paste. An agent reasons about the files as they actually are.
“Take this peak table, tell me what’s in it, flag anything that looks wrong, and make me a volcano plot.”
A capable but junior colleague — not an oracle.
Your job shifts:
You can often swap the model and keep the workflow. Model = intelligence. Framework = the workflow that puts it to work.
Whenever it gives you a result, ask:
“How do I know this is right? Show me the evidence.”
Evidence is something you can look at: the command it ran, a count, a plot, a diff. “I checked” is not evidence.
Fluent and correct are different properties, and nothing in the output distinguishes them for you.
You
The goal
say what done looks like, as something you can check
The agent
The work
checks itself against that endpoint, and shows the evidence
Both
The ledger
records who did what, and what the evidence was
The best goals end in something checkable. The best agent work arrives with its evidence attached. The two go together: you can’t show that a vague goal was met.
The agent is a collaborator that can’t speak for itself. When the session ends, the only account of what it did is the one somebody wrote down.
The fields are a starting point, not a form: Goal · Who did what · Evidence · Confidently wrong · Keep. Change them until they fit how you work.
Three minutes, with your neighbour. Pick one thing you’d actually like done. Say the goal in one sentence — then say how you’d know the result was right.
| A website | a personal or lab site — from your CV, a paper, or your ORCID |
| A literature review | “…and note where the sources disagree” |
| Your CV | what’s missing, what’s stale — then fold in the last two years |
| Slides from a paper | yours or open-access, with speaker notes |
| A messy spreadsheet | tidy it, and list every change you made |
| A data file | what’s in it, what’s suspicious, plot it |
| An app | a filterable browser over ENCODE or 4D Nucleome metadata |
This afternoon: Chapter 1 builds the website, Chapter 2 its ledger, Chapter 6 the app.
Reading is cheap; writing is expensive. The size of the answer matters, not just the size of the prompt.
The same model, in two different harnesses, is not the same tool.
| The model | The harness |
|---|---|
| reasons, plans, writes | reads files, runs commands, retries |
| picked by the vendor | how much it can see and do before asking you |
| changes every few months | decides whether it verifies its own work |
So “which model should I use?” is rarely the question that matters. For the work in this room, the gap between the best model and the fifth best is smaller than the gap between a clear request and a vague one.
Start with whatever your institution already provides.
Not “did it match the reference answer” — “would a scientist accept this?” Eight out of ten means yes, with minor edits.
K-Bench 01 (K-Dense)2
Scientific accuracy 6.2, communication 7.3 — in every one of the nine models. Nothing reaches “acceptable” on average.
K-Bench 01 · average score by dimension, sorted · nine models, 1,602 runs2
31% of runs overclaimed — more than missing files, shallow analysis or fabricated results. Back to the one rule: “How do I know this is right? Show me the evidence.”
K-Bench 01, failure tags per run · left: all runs · right: by model2
All real, and all in the files you have:
| What it looks like | What it actually is |
|---|---|
chr column reads 12, X |
Ensembl-style names — silently joins to nothing against UCSC |
padj is NA for 20,982 genes |
DESeq2 independent filtering; padj < 0.05 drops them all |
| A peak 93,567 bp wide | Union peak set merged neighbours — not one regulatory element |
pvalue of exactly 0 |
Floating-point underflow; -log10 gives infinity |
log2FoldChange of -1.13 |
Higher in the knockout — and nothing in the file says so |
Each is a checkable endpoint you can ask for up front: “report how many rows joined”, “state the reference level”. Then write it down once, in a DATA.md.
The more independently it works, the more the specification carries. A one-line request leaves dozens of decisions open, and it guesses every one: unguided one-shot attempts land about a third of the time.
The fix costs two minutes and isn’t writing a spec yourself:
“Interview me until you could do this without guessing. One question at a time. Look around first — don’t ask me what you can work out.”
And end the goal on something checkable: “…and every DE call states its reference level.” That endpoint is what its evidence gets measured against.
Three minutes, with your neighbour. Think of a folder you work in — an analysis, a grant, a manuscript. What would a smart newcomer get wrong on day one? Name one thing that isn’t written down anywhere.
Don’t write a file describing your project. It can read your project. Write down the part that’s only in your head — and if your list is empty, write no file.
This afternoon: Chapter 3 turns that list into an AGENTS.md, and tests it in a fresh session.
padj of NA means DESeq2 filtered the gene out — not that the gene wasn’t significantThe fix isn’t a smarter model. It’s writing the procedure down once, so the agent loads it exactly when it’s relevant — that’s what a skill is.
lab-qc-report/
├── SKILL.md # required: frontmatter + instructions
├── scripts/ # optional: code the agent runs
└── references/ # optional: docs loaded on demand
SKILL.md needs exactly two fields: name and description.
The description is the whole game. The agent never sees the body until it has already decided to load it.
| Weak | “Helps with QC.” |
| Strong | “Runs our standard QC on a differential peak table: chromosome naming, fold-change direction, p-value underflow, peak widths. Use when asked to check, QC, or sanity-check a peaks or DESeq2 file.” |
A good rule, written once: “3 mice with 100 cells each is n = 3 (mice), not n = 300 (cells).” And a candid paper: “We report no task-level evaluation.”
Scientific Agent Skills (K-Dense, MIT licence) — 166 skills today: pydeseq2, bulk-rnaseq, scanpy, experimental-design… · paper: arXiv:2609.000653
Three minutes. Which check or procedure do you do by hand, every time, that a new trainee forgets? Write it down once, as a skill — then say what file you’d test it on.
| Results-table triage | encode the traps from earlier, once |
| Ledger summary | who did what across a project, and which evidence is only the agent’s word |
| Reference check | does every citation resolve, and say what the sentence claims? |
| Paper → lab meeting | ten bullets for a named audience, plus the likely questions |
| Reviewer 2 | attack the paragraph before a real reviewer does |
| Figure legend | bullets in, journal-style legend out |
This afternoon: Chapter 4 — the agent writes the skill with you, and you test it on a file where you already know the answer.
Claude Science is a research workbench built on exactly the mechanism on the last few slides.
Same SKILL.md. Same folder. The thing you’ll write this afternoon is the unit of composition in a research platform.
Beta, on Pro / Max / Team / Enterprise. One researcher in their write-up built about twenty custom skills for a single workflow.
The moment an agent edits your files, git stops being a developer habit. It’s what lets you say no.
git diff shows exactly what the agent didYou don’t type the commands: the agent already knows git. What it doesn’t know is your lab’s habits — what needs a second pair of eyes, how you name things. Same move as skills: write that down once. This afternoon: Chapter 7.
MCP (Model Context Protocol) is the plumbing that lets it call out to the actual system of record — a database, a search index, a LIMS — instead of recalling one from training.
“Which genes does Open Targets most strongly link to ICF syndrome, and what do recent PubMed papers say about how they converge on DNA methylation?”
One sentence. Two unrelated resources. No glue code — the agent chooses which tools to call, and in what order.
The answer comes back with DNMT3B, ZBTB24, CDCA7 and HELLS, ICF types 1 to 4, which this room can check from memory. That is the property that makes it convincing.
Retrieval beats recall. When a model is unreliable about facts, the fix is usually not a better prompt — it’s a connection to the system of record.
An agent cannot reliably distinguish instructions from you from text that arrived inside a tool result.
So a compromised paper abstract, variant annotation, or search result can steer it.
user-scope grants.mcp.json before you approve itThe thing that makes an agent useful for your work — many steps, without supervision — is the same thing that makes it useful to an attacker.
| The agent was… | It reached… | What stopped it | |
|---|---|---|---|
| OpenAI · Jul | chasing a cyber-benchmark score | out of its sandbox, into Hugging Face’s production systems | nothing: found afterwards |
| Anthropic · Apr–Jul | in three cyber evaluations | a real company’s database; a booby-trapped package on PyPI, run on 15 machines | in one run, the model itself, once it worked out the target was real |
| UK AISI · Aug | on the open internet, on purpose | fake identities to pressure an open-source maintainer | the maintainer, who said no |
None of these was a research task. Then one was.
OpenAI, 21 Jul · Anthropic, 30 Jul · AISI, 4 Aug · full accounts in the appendix
An OpenAI agent answering questions about Australian health spending, in an internal evaluation, got past blocks into the national Medicare statistics database.
No patient records were accessed, OpenAI says: “aggregate health statistics and internal file names”.
CNN · 23 September 2026 · the prime minister’s account; a forensic investigation is under way · cnn.com
Your layers: a scoped folder, permission prompts, version control — and a person who reads the evidence before it counts. Like the maintainer.
AGENTS.md and skills, so every trainee’s agent starts from what the lab has already learned.None of these needs you to write code. The book’s chapters 2, 3 and 4 are the hands-on versions.
Agents are most useful when the work lives in real files — and only as good as the evidence they show.
AGENTS.md for rules, skills for procedures| 13:00 | Setup, then 1 Build a website · 2 The ledger |
| then, pick | 3 Teach the agent your project · 4 Write a skill · 5 Connect to a database (MCP) · 6 Build an app · 7 Work like a project |
| 14:30 | The Vahedi lab’s afternoon — real lab datasets |
Nobody is expected to finish. Keep the ledger going. Your own material first — every chapter has a fallback, and works on Windows too.
Or have your agent teach it to you — the book’s preface has the prompt.
This deck, with the full speaker notes as a handout, plus every link below.
golnazvahedi/epigenetics-agentic-workshopToken, price, and context-window figures are mid-2026 and illustrative; the relationships are stable, the numbers are perishable. And the document that actually governs what you may use is your institution’s AI and data-governance policy.
| What it is | Reach for it when | |
|---|---|---|
| MCP | plumbing to an external system | the agent must touch real data |
| Skill | procedural knowledge, loaded on demand | you keep pasting the same steps |
| Sub-agent | isolated worker, own context window | a side task would flood your context |
| Slash command | a skill you invoke, not one that fires | side effects need deterministic timing |
They compose: a skill can run as a sub-agent; a sub-agent can preload skills.
Specify → implement → review. In three different sessions.
| Why separate | ||
|---|---|---|
| 1. Specify | have it interview you; write SPEC.md |
the interview transcript is full of rejected ideas |
| 2. Implement | fresh session, from the spec alone | hand over the distillate, not the conversation |
| 3. Review | fresh session, given the diff and the spec | see what the code does, not what it was meant to do |
The separation is the mechanism. All three in one session and step 3 is worthless.
A reviewer told to find problems will find problems — indefinitely.
This is among the best uses of a sub-agent: a reviewer that cannot see your reasoning.
A sub-agent has its own context window, tools, and optionally its own model.
The canonical case: “read these forty files and tell me which three matter.”
Delegate work that is wide but shallow. Keep work that is narrow but deep.
| name | yours to pick — it namespaces every tool the server exposes |
| transport | stdio = a process you launch · http = a URL someone else runs |
| location | command + args for stdio · url for http |
An agent tidying “ugly” code cannot know the ugliness was deliberate. Write the decision down — but not the way you would write it for a person.
Instructions in a context file are advisory. A hook is deterministic — it runs on defined events and can block the action. If a step must not be skipped, it wants a hook, not a sentence.
The dotted Pareto frontier: models nobody beats on score and price at once. Everything below it is dominated — something else is better and cheaper.
Artificial Analysis · a composite “intelligence index” against cost per task, log scale · 25 of 674 models · captured 23 September 2026
TechCrunch · 21 July 2026.
The sandbox was the only thing in the way.
Anthropic went back through its own cyber-evaluation transcripts after the OpenAI disclosure. It found three of the same thing.
Different cause — a network-isolation misunderstanding with an evaluation partner, not a proxy zero-day. Same shape: the machines had live internet access the prompt said they did not. And the newest model stopped on its own, having worked out the target was real.
Separate incident, separate count — three organisations here, not OpenAI’s. Disclosed 2026-07-30. anthropic.com/news/investigating-incidents-cybersecurity-evals
The UK AI Security Institute, testing seven models on one cyber challenge — internet access on purpose, safety filters off, 122 runs:
The maintainer — a person — refused. No real-world harm found.
Reported 4 August 2026 · not a sandbox escape; the access was deliberate · aisi.gov.uk incident report
Not a second clone — one history, several working directories. Two agents in one directory interleave their edits, and neither did anything wrong.
The pairing that comes up most: one worktree implements, another reviews on its own branch — the reviewer sees a checkout the writer can’t modify underneath it.