ep 02 field notes
Show Us Your Agent Skills / EP 02 / guest dossier
ERIC MA MODERNA MARIMO PAIR AGENTIC EDA SOCRATES NOT SYCOPHANT

ERIC MA

Eric does data science as a live conversation: the agent edits a reactive Marimo notebook, reaches into the Python kernel, and renders plots, while he chooses every scientific question and owns the interpretation. Asking an agent to "do it all for me," he says, is irresponsible as a data scientist.

EP 02 · ERIC MA · agentic EDA in a live Marimo notebook, on stream

DATA SCIENCE AS CONVERSATION

"I don't go into the analysis with a vague question and just ask the agent to do it all for me. That, I think, is irresponsible as a data scientist." So Eric splits the work: the agent handles the routine loops, and the human keeps "load the data context into my head" firmly in the loop. The agent is "a pair programmer, not a thing that just does the whole thing for me."

The enabler is the Marimo Pair skill: markdown instructions plus a bash script that let the coding agent reach directly into the Python kernel. The surface is a reactive Marimo notebook, where cells never go stale the way they do in Jupyter, so the agent can edit live while state stays coherent.

Inside the write-up: the principles below, a session walkthrough, anti-patterns, the finished notebook, and the AGENTS.md rules that keep it presentation-ready.

Eric's Marimo notebook showing a protein structure colored by mutational effect
The analysis moves into a 3D protein structure, colored by mutational effect. Eric, seeing the key mutations in space: "Oh, yes! Okay, we know what to do now with this molecule." [00:37:07]

"It can help me amplify where I don't know what I don't know."

Eric's favorite thing about agents: not just doing the boring work, but surfacing the gaps. "There are ways to use AI as Socrates instead of a sycophant." 00:05:36

ONE PLOT AT A TIME

the live protein-engineering analysis. every timestamp opens the segment
Teach the domain firstBefore any plot, Eric explains the mutation notation: A.111.C means wild-type A at position 111, mutated to C. The agent can't plot what it can't read. 00:17:39
Ask for one plot, then correct itA heat map over single-point mutations, then a fix: Viridis for activity (0 to 1), divergent scale for chirality (-1 to +1). The scale changes the interpretation. 00:25:20
Leave notes, demand artifacts"You have to have artifacts that back the claims that you have." Eric writes a note to self about the weak chirality-activity relationship as the agent builds. 00:28:20
Build a custom view when plots run outAn AnyWidget + 3Dmol.js protein viewer: "coding agents are better at TypeScript than I am," so custom scientific interfaces get cheap. 00:32:09
Correct the agent's mistakes in plain language"Opus made a mistake on this one": it drew balls-and-sticks for everything and missed the ribbon. Eric fixes it by talking, without leaving the notebook. 00:32:51
Let the notebook write the conclusionThe agent calculates and interpolates the quantitative lack of correlation into a markdown cell. The finding: best mutations sat outside the active site. 00:37:54
A Plotly heat map of single-point mutations with a dropdown for activity vs chirality
The first artifact: a heat map of single-point mutations, dropdown for activity vs chirality, color scales corrected to match each metric's range. [00:22:03]
A Plotly scatter plot of joined single-point mutants shared between activity and chirality
The next question, the next artifact: a scatter of mutants shared across activity and chirality, where Eric spots the weak correlation. [00:26:43]

"Load the data context into my head, versus this routine thing that I need a machine to automate."

Eric's split of data science into two buckets. EDA lives almost entirely in the first: looking, staring, understanding. The agent gets the second. 00:24:19

WHAT MAKES IT WORK

the pieces behind a notebook that stays readable and honest
skill

marimo-pair

Markdown instructions plus a bash script that let a coding agent reach into the live Python kernel. The bridge Jupyter never had. Install and point it at your own work.

workflow

agentic-eda

The full write-up: human directs one question at a time, every claim backed by an artifact, the agent as pair programmer.

reference

AGENTS.md

Two rules keep the notebook presentation-ready: interleave explanatory markdown with code, and give every cell a unique descriptive name.

reference

demo.py

The finished notebook from the live run: plots, widgets, the 3D viewer, notes to self, and the agent-written conclusion, all preserved.

"I do commits and pushes by agent commands. I don't do git commit on the terminal anymore."

His answer to what would embarrass him if his agent logs leaked. The boring work, including the ugly rebase edge cases, is the agent's now. 00:09:50

THE STACK

cursor + marimo + opus drive the demo. the rest is his hunt for cheaper intelligence