Coming from elsewhere

Harn's vocabulary doesn't always match what you'd read in OpenAI's, Anthropic's, LangGraph's, Inngest's, Mastra's, or the ACP/A2A/MCP specs. This page is the cross-reference.

If a term in your home system collides with a Harn term, find your row in the table for that system.

OpenAI Agents SDK

OpenAI termHarn equivalentNotes
Agent (class)agent_loop(...) invocation, or a personaOpenAI's Agent bundles instructions, tools, and output type; the closest Harn shape is a configured agent_loop call site.
Runner.run(...)agent_turn(...) or one agent_loop(...)One OpenAI "turn" wraps many model round-trips. Harn's agent_turn wraps the same idea.
"turn"Harn prompt_turn / agent_turnOpenAI's "turn" is the outer cycle (one user request → final answer). Map it to Harn's agent_turn wrapper, not to Harn's per-iteration counter.
"model roundtrip" (unnamed)Harn iterationThe inner unit.
max_turnsmax_iterationsBoth bound a budget, but the nouns are off-by-one — OpenAI counts outer SDK invocations, Harn counts inner LLM calls.
Session (SQLiteSession("id"))session_id + agent_session_open(id)Direct match.
handoffpersona handoff or spawn_agentDirect match in shape.
input_guardrails / output_guardrailstool middleware + persona pre/post hooksHarn has no single "guardrails" noun; the shape is built from hooks.

Anthropic Claude Agent SDK

Anthropic termHarn equivalentNotes
"agent loop"agent_loopDirect vocabulary match.
query() / ClaudeSDKClientagent_loop(...) / agent_chat_loop(...)Stateless single-shot vs stateful multi-turn.
AssistantMessage, TextBlock (typed stream)transcript eventsAnthropic streams typed messages; Harn streams typed transcript events.
Session resumptionagent_session_open(id) + transcript continuityDirect match.
"hook"register_tool_hook, register_session_hook, register_reminder_providerHarn's hook registry is the richer version.

Anthropic and Harn align closely on agent-loop vocabulary; this is the easiest mapping in the table.

LangGraph

LangGraph termHarn equivalentNotes
Nodestage (workflow)Both encode a unit of computation.
Edgeworkflow transitionSame shape; Harn doesn't expose it as a separate noun.
State (typed dict)Workflow artifacts + optional state-channel proposalLangGraph's strict typed-dict-with-reducers is not Harn's default state model. The v0 design is tracked in Workflow state channels.
Channelproposed workflow state channelLangGraph channels are typed slots with merge reducers. Harn's agent_channels are something else entirely (pub/sub for agent-to-agent communication).
Thread (thread_id)session_idDirect match.
super-stepiterationLangGraph's super-step is one parallel barrier; semantically Harn's per-iteration.
checkpoint / checkpointersession bundle, snapshotDirect match.
interrupt / Command(resume=...)agent_await_resumptionDirect match.

LangGraph's biggest Harn-doesn't-have-this-by-default is typed-state channels with reducers. Harn's v0 design keeps artifacts and transcripts as the common path, then adds explicit workflow state channels for structured fan-out/reduce cases.

Inngest

Inngest termHarn equivalentNotes
FunctionpipelineBoth are the durable unit.
Runsession, run_idDirect match.
step.run(key, ...)step.run(key, input?, handler, options?)Harn memoizes completed step results in the EventLog and replays matching steps without re-invoking the handler.
step.sleep / step.waitForEventagent_await_resumption + resume_whenConceptually equivalent.
Eventtrigger event, agent eventDirect match.
Step replaystep.run + session resume + worker snapshotHarn supports both replay-from-top memoized steps and checkpoint/snapshot resume.

If you arrive from Inngest expecting step.run-style memoized replay, start with Durable step stdlib. Durable timers and event waits remain separate primitives: use agent_await_resumption and resume_when for long waits.

Mastra

Mastra termHarn equivalentNotes
Agentagent_loop invocationDirect match.
WorkflowworkflowDirect match.
Thread (per-conversation)session_idMastra's thread is Harn's session.
Resource (per-user/entity)partial — tenant_id covers some of itMastra splits per-user vs per-conversation; Harn collapses to session + tenant.
working memory / semantic recallmemory builtinsConceptually similar, less typed.

ACP — Agent Client Protocol

ACP is the most important map for anyone using Harn's serve adapter, because we speak ACP natively.

ACP termHarn equivalentNotes
session/new, session/load, session/resumeagent_session_open, session fork, snapshot resumeDirect match.
session/promptone user message → agent_loop invocationDirect match.
prompt_turnagent_turn (the wrapper)The outer user-message → final-response cycle, terminated by stop_reason. Harn's agent_turn is the same concept; an agent_turn invocation contains many iterations.
stop_reasonstop_reasonSame names.
available_commandsskills, tool registryPartial match; ACP advertises slash-style commands.
Plan (agent plan updates)task_ledger, progress toolDirect match.
tool_calltool callSame names.
session/cancelclose_agent, cancellation tokenDirect match.
session/request_permissionapproval_policy, permissionsDirect match.

Read this carefully if you're writing ACP integrations: ACP's prompt_turn is the outer concept (one user request → final response with stop reason). Harn's loop counts iterations, which are model round-trips inside the prompt turn — the transcript events fire as iteration_start / iteration_end, and the steering seams use the same names. One agent_turn(...) invocation maps to one ACP prompt_turn and contains many iteration_* events.

A2A — Agent2Agent Protocol

A2A termHarn equivalentNotes
Taskworker, agent_loop invocationA2A's Task is one unit of work with lifecycle state and history.
Messagetranscript event, messageDirect match.
TaskState (submitted, working, input-required, completed, ...)final_status, suspended statesA2A's state machine is more explicit; Harn maps closely.
Part (TextPart, FilePart, DataPart)blockDirect match.
ArtifactartifactSame name.

MCP — Model Context Protocol

MCP deliberately avoids conversation-shape vocabulary. It defines Tool, Resource, Prompt, Sampling, Elicitation — primitives on which conversations run, not the conversations themselves.

MCP termHarn equivalentNotes
sampling/createMessagellm_callOne model call.
TooltoolSame shape.
Resourcehostlib resource, transcript assetSame shape.
Promptprompt template, prompt librarySame shape.
ElicitationHITL hitl.askServer-initiated pause-and-ask pattern.

MCP has no turn / session / agent_loop — those are above MCP's layer. Use MCP as your tool surface, not as your orchestration model.

AG-UI

AG-UI is event-based UI streaming, not loop topology. Its vocabulary (Lifecycle Events, Text Message Events, Tool Call Events, State Management Events) maps onto Harn's transcript event categories with different names but the same shapes. Harn's serve adapter emits AG-UI-compatible events.