Informal share

Models, harnesses
and a notebook

model

harness

notebook
(task record)

Theme 1

Choosing the right model

Theme 2

Agent = LLM + harness

Zheng Zhang

Intro

A learning method in daily life

LLMs are changing everyday life.

A machine-learning method

p(next token | context)

A change in daily work

writing · coding · reading · deciding

Why?

Intro

The next-token model

An LLM predicts a continuation.

p(next token | context)

pi ∝ exp(zi / T)

Cross-entropy ↔ compression

Training → post-training → generation

Schematic next-token probabilities for the same scores at two sampling temperatures
T = sampling temperature · same scores zi in both panels

Intro

The capability debate

There may be a ceiling; LLMs will still change daily life.

Open question

Is text enough?

Other bets: world models, spatial intelligence

Even so

One of the most important moments

Three reasons

1Language

2Recombination

3Action

Intro · reason 1

Language connects worlds

Words connect ideas, mathematics, code and observations.

“Try the other limit.” language A new discovery calculate · test · check

What starts as words can end as something new.

Intro · reason 2

Recombination

Recombining what is already known goes further than expected.

Literature search

Erdős problems

existing solutions found in papers

Rediscovery

Kerr symmetries

Lupsasca: a known result recovered

New calculation

Cosmic-string loops

Scherrer: the odd-n case, checked against his even-n result

Reason 3: a model can also act on what it describes → Part 2

Erdős episode, Oct 2025 (TechCrunch, 19 Oct 2025) · Bubeck et al., Nov 2025, arXiv:2511.16072, Sec. I.2 and III.2

1 · Choosing the right model

Three kinds of cook

Speed, breadth and task quality: different models, different trade-offs.

speed generality task quality

Task-specific model · the trained apprentice

Fast on a familiar menu. A new task may need retraining.

LLM · the head chef

A wide menu. Quality, speed and cost vary by task.

Jev · the cook next door

New dishes without lessons, and fast.
For bounded judgments; check quality on the task.

1 · Choosing the right model

One pass or many

A language model writes its answer; Jev picks one.

17 × 24 = 408

step by step · deliberate

2 + 2 = 4

at once · immediate

LLM: generates token by token

"What colour is the sky?"

The

pass 1

sky

pass 2

is

pass 3

blue

pass 4

Jev: one pass, every option

"What colour is the sky?" · blue / red / yellow

blue

0.92

red

0.05

yellow

0.03

Fast / slow thinking is an analogy; sequential generation is not itself reasoning.

Jev, vendor-reported: 70–500 ms per callinput $0.042 / 1M tokens · output freeprobabilities illustrative

1 · Choosing the right model

Jev demo: triaging bug reports

A typed answer, with a confidence that code can branch on.

state

one bug report, free text

question · Score

severity: 0 cosmetic → 4 critical

# code decides, not the model if confidence < 0.5: a person elif score < 1.5: backlog elif score < 2.5: this sprint else: on-call
Reportscoreconf.outcome
Typo on the settings page0.001.00backlog
PDF export fails over 50 pages; splitting works2.001.00this sprint
Checkout returns a 500 error for every customer3.360.70on-call
Notes gone after the update, or maybe deleted3.190.34a person

"Notes gone after the update, or maybe deleted"

0 cosmetic

0.01

1 minor

0.14

2 workaround

0.07

3 blocked

0.19

4 critical

0.59

score 3.19

alone, would wake on-call

confidence 0.34

split answer → a person reads it

Recorded jev-1.14.0 answers from the TypeSafe documentation, "Routing by confidence" (accessed Nov 2026) · not a live call

1 · Choosing the right model

Many small judgments

Questions change daily; cheap, fast answers make small checks worth automating.

LLM · few, large jobs

a report · some code · an analysis

Jev · many small checks

every email · comment · issue · abstract

Classify 1 million abstracts, ~300 tokens each estimate · input only · accuracy not compared

≈ $13

Jev

≈ $30

Haiku 5.5

≈ $1,200

Opus 5.5

Output price per 1M tokens, one provider: Haiku 5.5 $0.50 → Fable 5.2 $40 (80×)

2 · Agent = LLM + harness

Painting and acting

Harness changes alter the same model's behaviour.

the same model

+

tools

brief, permissions

schedule, memory, files

A full description still needs a brush.

Critic: same model, new brief, fewer permissions

Assistant: weekly market review, memory, report files

Agent = LLM + harness

after LangChain, "Agent = Model + Harness" (Mar 2026)

2 · Agent = LLM + harness

The tool-call loop

Tool results feed the next step.

Context Model Permission check Tool Observation observation goes back into the context stop · ask the person continue

2 · Agent = LLM + harness

Three harnesses

Three working environments, three strengths.

Claude Code

subagents

session messaging

Codex

long runs

scheduled jobs

DSH

everything is a plugin

access

subscription · API key · self-hosted endpoint

2 · Agent = LLM + harness

rheplicant-agent: the console

Projects, task documents and every execution.

rheplicant console: Workbench of the demos project with three task documents and their executions
rheplicant-agent console, captured 13 Nov 2026 · demo task with placeholder physics; numbers are not predictions

2 · Agent = LLM + harness

A task document sets up the physics

The signal path, drawn from the task file.

Signal path of the rfi-flagging demo task: sky components, ionosphere, atmosphere, ground and RFI fields, beam and beam spill, with node descriptions
rheplicant-agent console, captured 13 Nov 2026 · demo task with placeholder physics; numbers are not predictions

2 · Agent = LLM + harness

Results from the run

Waterfall before and after flagging, read from saved output.

Results of one rfi-flagging run: waterfall before and after flagging, 60 to 85 MHz
rheplicant-agent console, captured 13 Nov 2026 · demo task with placeholder physics; numbers are not predictions

2 · Agent = LLM + harness

Trajectory: one recorded tool run

Prompt → validate → run → results · 9 seconds.

Recorded DSH Trajectory view of one turn: system prompt, user message, three context records, the validate and run tool calls with results, and the inspector for the validate call showing payload, result, schema and a duration of 3,090 ms
rheplicant-agent console, captured 13 Nov 2026 · demo task with placeholder physics; numbers are not predictions

2 · Agent = LLM + harness

Shared instructions and skills

The aw skill, task-handoff, travels with the task.

aw: task-handoff skill one copy per project · .agents/skills AGENTS.md project rules · CLAUDE.md imports it Claude Codevia symlink in .claude/skills Codexreads .agents/skills DSHreads .agents/skills

2 · Agent = LLM + harness

Provider independence

One notebook connects providers.

Claude subscription to Claude Code, free Codex plan to Codex, self-hosted Gemma and hosted APIs to DSH; all three share AGENTS.md, skills and the task record written through the aw CLI

2 · Agent = LLM + harness

This talk's task record

Claude and Codex took turns preparing this talk.

$ aw tasks | cut -f1-3 T-001 ready r12
Revision strip of this talk's task, coloured by agent

2 · Agent = LLM + harness

Recorded handoffs

1,283 handoffs in 91 tasks, across three agents.

24 of 91

tasks used two or more agents

Share of handoffs: Codex 876, Claude 384, DSH 23
aw task records, 12 Sep – 12 Nov 2026 (snapshot) · labels name the harness, not the model behind it

2 · Agent = LLM + harness

Completion and acceptance

Done is a claim.

sft-wick T-001 · a public package · one block per revision

25 revisions of the sft-wick task coloured by agent, with DSH marking it done at 20:31 UTC, Codex failing acceptance at 20:40 UTC, and the 0.6.1 release on 14 Sep

Closing

Summary

Task-sized models, one shared notebook.

Theme 1

Choosing the right model

task-sized models

Theme 2

Agent = LLM + harness

task record kept outside any one provider

model

harness

notebook

Backup

For questions

Backup ↩

System 1 terminology

Terms depend on context.

TypeSafe

"System One": typed decisions (Jev)

LeCun

autoregressive language modelling counts as System 1

Labs

non-thinking vs thinking mode

Backup ↩

Shared interfaces

These interfaces do different jobs.

AGENTS.md

project instructions

Agent Skills

task procedures (SKILL.md)

MCP

tool connections

Harness support varies.

Backup ↩

Building a harness

A harness needs execution and recovery.

Model side

loop · context · model adapter

Execution side

tools · permissions · sandbox

State side

session log · failures ·
recovery · checks

Backup ↩

Access and payment paths

Access and task records are separate.

Subscription login

check each vendor's terms

API credentials

pay per token

Self-hosted endpoint

OpenAI-compatible server

Check support and terms for each tool.

Backup ↩

A researcher-use survey

Survey results describe their respondents.

10,480

respondents · Springer Nature · Jul 2026

≈ 50%

frequent use for information gathering and editing

Self-reported use

Backup ↩

Self-hosting and memory

Context is shared across slots.

Model

Gemma 4 31B · QAT Q4_0

Runtime

llama.cpp · one A100 40 GB

Capacity

8 slots · 224K context, one shared pool

Rule of thumb

weights ≈ parameters × bits ÷ 8, plus cache and runtime

Backup ↩

aw limits and adoption

A task record reports work.

Adoption (snapshot)

76 registered projects · 21 with tasks · 55 without tasks

Native-session bindings used: 0

Limits

no automatic verification · local, not encrypted or redacted · revision checks do not lock code

Backup ↩

Weekly handoffs

Activity came in bursts.

Weekly handoff records by agent from September to November 2026

Backup ↩

Harness references

Several sources shaped this framing.

Weng, 2023

planning, memory, tools around an LLM

Anthropic, 2025

harnesses for long-running work

Hashimoto, 2026

"harness engineering"

LangChain, 2026

Agent = Model + Harness

Weng, "LLM Powered Autonomous Agents", 23 Jun 2023 · Anthropic, "Effective harnesses for long-running agents", 26 Nov 2025 · Hashimoto, "My AI Adoption Journey", 5 Feb 2026 · Trivedy, "The Anatomy of an Agent Harness", LangChain, 10 Mar 2026

Backup ↩

DSH extension layers

Plugins compose the working environment.

Profile

bundles → patch layers → user overrides

Plugins

tools · prompt sections · UI · model adapters

Domain service

rheplicant compute, over JSON-RPC

The assembled configuration still needs checking.

Backup ↩

Emulator runtime

A task-specific model trades generality for speed.

Runtime per call: one set of CMB and matter spectra

Emulator about 60 milliseconds against about one minute for high-precision CLASS or CAMB
Bolliet et al. 2023, CosmoPower (arXiv:2303.01591)

Backup ↩

GPU energy estimate

About a quarter watt-hour per 500 tokens, GPU only.

Measured · Sep 2026 deployment test

8 concurrent image+text requests

GPU ≈ 234 W

≈ 130 tokens/s in total

Estimate · GPU only

≈ 1.8 J per token

500 tokens ≈ 0.25 Wh

≈ a 10 W LED for 90 seconds

Backup ↩

Routing and a self-hosted model

Name model tiers, not versions; some jobs run on the group GPU.

Rule for subagents

least expensive model that reliably does the bounded task

It named versions; they are now "older generation".

DSH

DeepSeek Harness

OpenAI-compatible
endpoint

Group GPU server

Gemma 4 31B · llama.cpp
one A100 40 GB

Deployment test, 8 concurrent requests · GPU only · energy estimated

≈ 234 W at ≈ 130 tokens/s in total → 500 tokens ≈ 0.25 Wh
a 10 W LED for 90 s

Group deployment record, 11 Sep 2026 · energy per token is an estimate from that test

Backup ↩

One turn in rheplicant-agent

A domain harness connects the model to scientific tools.

One agent turn: prompt, context assembly, model call, tool policy check, validate and run as separate calls to the compute service, result text back to the model; session log feeds the Trajectory view
Recorded DSH Trajectory view of one turn: system prompt, user message, three context records, the validate and run tool calls with results, and the inspector for the validate call showing payload, result, schema and a duration of 3,090 ms

26

packages on DSH

0

forks of DSH

YAML

model route, tools, prompts,
UI: config rows

rheplicant-agent: five model-facing tools in front of rheplicant, a radio-telescope digital twin

Recorded run, 13 Nov 2026 (DSH Trajectory view) · rheplicant-agent: 26 package rows on DSH 0.1.5-rc.2; no fork, four hash-checked adaptor patches

Backup ↩

Physical-model acceptance

The physical model still needed questioning.

Anonymised shape of a long task: Codex rejecting DSH work four times, a long automated continuation, then a human pause

Codex rejects DSH ×4

implementation errors found and fixed

Continue → loop paused by hand

and question the physical model

Numbers in the strip count revisions; block width grows with the square root of the count

Backup ↩

Sessions and access

Sessions stay native; the task record moves.

aw moves no sessions

386

Claude Code sessions Codex imported by itself

Access is separate

Anthropic consumer logins

Free · Pro · Max

only in claude.ai and Claude Code

Anthropic consumer-terms clarification, Feb 2026 (The Register, 20 Feb 2026; Claude Agent SDK documentation)