Here is the rude question most agent teams still do not ask. Not "can it finish?" Not even "can it call tools?" Ask this instead: if the person who started the run disappears midway through a long job, what exactly remains for the next operator to inspect, approve, resume, or ship? If the answer is mostly memory, warm session luck, and chat scrollback, you do not have dependable automation yet.
The first production test for an agent is second-operator handoff. A durable system leaves four receipts behind: explicit state, bounded authority, resumable work, and a public proof surface someone else can verify without guessing.
The minute-17 question is better than the benchmark question
Benchmarks mostly ask whether the model can reason. Production asks whether the workflow can survive interruption. A second operator is a much harsher auditor than a benchmark because they do not inherit the first operator's hidden context. They need the live handle, the allowed actions, the work-in-progress status, and the final ship path spelled out where the system itself can expose them.
This is why the handoff question is unusually useful for local-first agents. It forces you to separate reasoning from authority, state from vibe, and completion from mere output. It turns "looks autonomous" into something falsifiable.
State receipt
A new operator must be able to find the exact run handle, conversation identity, or previous response reference without reading someone's mind.
Authority receipt
The next operator must know which tools are bounded, which actions need approval, and where sensitive authority begins.
Wait receipt
Long work needs a resumable wait path instead of timeout theater or "just rerun it" folklore.
Proof receipt
The last operator should leave behind a route, log, build gate, or deploy check that somebody else can inspect after the fact.
The official stack is moving toward handoff, not stage magic
The underlying platforms are quietly converging on this same idea. On May 21, 2025, OpenAI added remote MCP server support and background mode to the Responses API. That is not a demo flourish. It is an operating concession that real jobs may need external tools, long runtimes, and work that outlives a single foreground turn.
OpenAI's background mode guide makes the posture explicit: submit long-running work asynchronously, track the response object, poll for status, and even resume streamed output from a cursor after disconnects. Their conversation state guide pushes in the same direction by giving you durable conversation identifiers and previous-response continuity instead of asking operators to rebuild context from scratch.
The MCP maintainers are making similar moves. The
MCP Apps announcement
emphasized sandboxed iframes, auditable JSON-RPC traffic, and optional approval for
UI-initiated tool calls. Then the
July 28, 2026 release candidate
went further: the protocol core became stateless, the older handshake/session layer
was removed, and the post explicitly recommended returning explicit handles such as
basket_id or browser_id instead of hiding continuity inside
a server-side session.
Even the authorization section of the MCP specification points the same way: authorization is a distinct concern, token passthrough needs care, and servers must not quietly inherit ambient authority just because a model wants it. Reliability is becoming more inspectable because the trust boundary is becoming more explicit.
Local serving is also becoming less exotic. The vLLM OpenAI-compatible server docs now document Responses-style and OpenAI-compatible endpoints, which means local-first stacks can follow the same resumable control-plane shape instead of inventing an entirely different operating story.
The Chopshopr version is boring on purpose
Chopshopr's local path is useful precisely because it refuses to hide the seams. The
repo keeps one default model per registration, exposes the main inference surface in
src/index.js,
and keeps host authority separate in src/nemoclaw-mcp.js so model calls
do not quietly blur into unrestricted shell control.
The handoff story follows the same pattern. Use local_generate_default
for normal work. Use local_health when startup truth matters. Use
local_wait when a long local step should stay inside the same MCP run
without pretending a new human turn happened. On the host side, bounded verbs such as
nemoclaw_doctor, nemoclaw_run, and
openshell_run tell the next operator where authority actually lives.
The ship path matters just as much as the runtime path. Chopshopr treats local work as incomplete until it closes through the verified branch workflow described in Shipping local work and Worktree-first build and autoship. A good handoff does not end with "I think it worked." It ends with a route, a build receipt, a pushed commit, and a live verification somebody else can replay.
1. Start a long run.
2. Hand the next operator only the surfaced receipts.
3. Forbid extra Slack context.
4. Ask them to inspect, resume, or ship.
If they cannot continue safely, the missing receipt is the product bug. Typical failures are hidden session state, unclear tool authority, non-resumable waits, or a ship path that still lives in one person's head.
bun run worktree:check
bun run build
bun run ship:mainline
The same branch that verified the work should be the branch that ships it. That is a better handoff artifact than a triumphant chat message.
What usually breaks under the handoff test
- Hidden continuity: the system needs a warm process or a remembered branch that was never surfaced.
- Ghost authority: the second operator cannot tell whether a tool call is read-only, bounded, or high consequence.
- Timeout theater: long work can start, but no one can tell whether they should wait, poll, resume, or restart.
- No public receipt: the final answer exists, but no route, build log, deploy check, or inspectable artifact proves it shipped.
The unusual claim
The hidden benefit of local-first agent infrastructure is not only privacy or lower latency. It is that local operators can shape better handoff surfaces. They can keep model endpoints explicit, host authority bounded, and ship gates near the work itself. That makes the system easier to resume when the glamorous first run is over.
So the next time an agent demo looks impressive, do not ask whether it solved the task. Ask whether another operator could take over halfway through and finish the job without folklore. That question is stranger than most benchmark questions, and much closer to the truth of dependable tools.
Read next
If you want the failure map behind this note, read What breaks first in local agents is not the model. If you want the approval discipline, read Nothing left inside the tool call. If you want the setup path that keeps the default local stack legible, read Start the local MCP stack without guessing.
Sources
- OpenAI: New tools and features in the Responses API
- OpenAI Docs: Background mode guide
- OpenAI Docs: Conversation state guide
- Model Context Protocol: MCP Apps
- Model Context Protocol: Release candidate for the specification
- Model Context Protocol specification: Authorization
- vLLM Docs: OpenAI-compatible server
- Chopshopr repo: Included entrypoints
- Chopshopr repo: Shipping local work
- Chopshopr repo: Worktree-first build and autoship