Ep 337 thread 2:34 w/ Justy & Cody

This closes a loop I've been working on for three months. Every agent harness debate has a hidden assumption: that t...

Rohit Ghumare's thread argues the agent harness debate is asking the wrong question. Instead of debating how thick the wrapper around a backend should be, the insight is that agents, queues, sandboxes, and services should all participate in the same execution model — built on three primitives: Worker, Function, and Trigger. The payoff is live discovery, live extensibility, and a single trace across everything.

Script: Sonnet 4.6 Voice: Cartesia TTS

Transcript

Justy Exploring Next, episode 337. There's a thread going around that basically says every agent framework argument you've ever heard is arguing about the wrong thing — and honestly, after reading it, I think that's right.

Cody The frame most teams are stuck in is: agent on top, backend below, harness in between. The debate is just how thick that harness should be. LangChain, CrewAI, Anthropic's tooling — they're all in that conversation. This thread says the conversation itself is the mistake.

Justy And there's actual math behind it. One agent talking to five services gives you five paths to debug. Four agents, same five services — eighty paths. Stochastic ones.

Cody N squared times M. And what most teams ship makes it worse: agent fires an HTTP request, triggers a queue publish, writes to a database. Three separate retry schedules, no shared trace. You're debugging by correlating timestamps across systems with different log formats.

Justy That's not a future problem — that's what production agent bills look like right now.

Cody So the argument is: make everything — agents, queues, sandboxes — participants in the same execution model. Three primitives do it. Worker, any process that connects. Function, a unit of work with a stable ID. And Trigger, what causes that function to run — HTTP, cron, queue, state change. Live discovery means any connecting worker gets the full current catalog of every function on every other worker. No stale tool descriptions. That's been a real source of silent failures.

Justy The recursion example in the thread is wild — an agent worker spawning a sandbox worker mid-task, hardware-isolated, it registers its own functions, joins the live catalog, gets torn down when it's done. The agent extended itself with a capability that didn't exist when it started.

Cody Same primitive the whole way down. The thread draws the analogy to everything-is-a-file in Unix, or components-as-functions in React. I think that's a bit aspirational — those took years to actually feel inevitable — but the shape is right. The proof will be whether the single-trace story actually holds across language boundaries at scale.

Justy For Build Next — if you want to poke at this, look at Inngest. Register one agent as a worker, wire a couple functions with triggers, and just watch the trace. Solo builders can do that in an afternoon. If you want to go further, try spawning a sandbox worker from inside an agent call and see the catalog update live.

Justy That's 337. If the harness debate has been bugging you, this thread is worth the full read. See you next time.