dshkit

DeepSeek Harness glossary: turn, step, round, seam, scope, goal

The vocabulary dsh uses and what each term means precisely — the turn/step/round loop hierarchy, capability seams, agent scopes and shadowing, goals and goal rounds, human commands, and the Ralph loop.

Updated 2026-08-134 min
Short answer

A step is one model request plus the tool executions its response causes. A turn is one drain of admitted input, ending after the model and its tools stop. A round is an outer policy iteration containing a turn. Everything else in the harness — seams, scopes, goals, Ralph loops — is defined against that hierarchy.

The harness's documentation is unusually precise about vocabulary, and the precision is load-bearing: several terms that sound interchangeable are not. This page collects the definitions that actually change how you use the tool.

The loop hierarchy

Three nested units, smallest first:

step — one model request plus the tool executions caused by its response.

turn — one drain of admitted input in a session, ending after the model and its tools stop. A turn contains one or more steps.

round — an outer policy iteration containing a turn.

The practical consequence: when a limit or a cap is described, check which unit it counts. A cap on rounds and a cap on steps bound very different things. A single turn can contain many steps, and one round contains a turn.

Capability seams

seam — a swappable capability comprising three roles: a Service Definition (an abstract class or concrete registry owning ctx.<key>), one or more Service Providers, and Consumers that inject the service.

The documentation adds the sentence that matters: "The seam is the complete capability, never one role."

This is the architectural reason "everything is a plugin" is more than a slogan. A capability is not an implementation you might swap — it is a definition, its providers, and its consumers considered together. Swapping the web-search backend means replacing a provider behind ctx.web, and nothing that consumes it needs to know.

Agent scope

scope — the unit of per-agent registration for contributions such as tools and prompts. Either global, or scoped to one agent.

scope key — the opaque identity a scope is keyed by, compared by object identity. A live agent serves as its own scope key.

agent context (agent.ctx) — the agent's scoped context, where registrations are scope-visible and scope-lifetime.

scope carrier — the thisArg a scope-filtered dispatch carries; it admits untagged listeners plus the subject's own.

scoped dispatch — an event about one agent's activity dispatches with that agent's carrier.

shadowing — most-specific-wins name resolution. A scoped item replaces a same-named global item for that scope alone.

restriction / scope-local registration — a restriction filters the global tool set for one scope by intersection.

setup window — the creation slot in which a creator composes an agent's scoped world, before publishing it.

lineage — parent/child facts carried as data. The documentation is emphatic that lineage "affects visibility never" — a child does not see something because it is a child; it sees it because its scope registers it.

That last point is worth pausing on. Delegation hierarchies in many systems leak: a child inherits the parent's capabilities by virtue of being a child. Here, visibility comes from scope alone and lineage is only a recorded fact. It is what makes "a reviewer that can read but never write" a reliable restriction rather than a hopeful instruction.

Goals

goal — one durable completion objective attached to an existing session, with a phase and a round cap.

goal round — one continuation cycle admitted for the current goal.

goal activation — process-local permission for a continuation consumer to admit another goal round. Either armed or disarmed.

Three separate ideas: what you are trying to achieve, one attempt at continuing toward it, and the permission that allows another attempt. A goal with a round cap and an explicit activation state is a bounded autonomous loop — bounded being the operative word.

Human commands

human command — a slash-prefixed instruction interpreted and executed by a human-facing adapter, without becoming a model message.

command plane — discovery, parsing, dispatch, cancellation and result rendering, owned by UI adapters.

goal command — the /goal command, for observing or mutating the current goal.

The design point is the phrase "without becoming a model message". A human command is not a prompt that the model interprets; it is executed by the adapter. That is a cleaner separation than most agent interfaces manage, where slash commands are just prompt text with a convention on top.

Ralph

Ralph loop — one foreground fresh-agent workflow run toward an immutable objective.

Ralph round — one fresh child session in a Ralph loop, with no parent conversation seed.

Ralph handoff — the normalised bounded structured report passed from one continuing Ralph round to the next.

Covered in more depth in sub-agents and workflows, but the three definitions read together already tell the story: fixed objective, no context inheritance, bounded structured continuity.

Frequently asked

What is the difference between a turn, a step and a round?

A step is one model request plus the tool executions caused by its response. A turn is one drain of admitted input in a session, ending after the model and its tools stop — so a turn contains one or more steps. A round is an outer policy iteration containing a turn.

What is a capability seam?

A swappable capability made of three roles: a Service Definition owning ctx.<key>, one or more Service Providers, and Consumers that inject the service. The seam is the complete capability, never one role.

What does shadowing mean in dsh?

Most-specific-wins name resolution. A scoped item replaces a same-named global item for that scope alone, which is how one agent can have a different version of a tool without affecting any other.

Keep reading