Dispatch is a deterministic grammar — no LLM
Skill selection is deterministic: the server reads the message’s parts and picks the operation by a fixed grammar — there is no LLM and no inference anywhere in dispatch. The same input always selects the same skill; free text with no operation payload dispatches as a default recall. This keeps the surface predictable for a machine caller: an A2A client can rely on the mapping the way it would rely on a route table.What the synchronous skills return
remember, recall, and query complete inside the request and answer with an A2A Message.
Recall and query results carry the node-view projection of each hit — the cell’s content and
metadata as HyphaeDB’s other surfaces present them, encoded as A2A message parts.
share returns a Task — and what “completed” means
share is the one skill that answers with a Task. Its lifecycle is
TASK_STATE_SUBMITTED → TASK_STATE_WORKING → TASK_STATE_COMPLETED (or TASK_STATE_FAILED) — the
states go on the wire as their ProtoJSON enum names — and the terminal transition has a precise
meaning:
completion = durable commit, never propagation state.
The task reaches TASK_STATE_COMPLETED exactly when the store durably commits the memory. Gossip propagation
is asynchronous by design — the diff fans out across the mesh on its own schedule, and the task
state never tracks how far it has traveled or who has received it. A completed share tells you
your memory is safely stored and released into the mesh, nothing more. To watch propagation itself,
use the Topology Observatory.
See Tasks & streaming for reading, canceling, and subscribing to the
task after share returns it.
Message caps
Two caps bound every inbound message, with values from thea2a config section:
a2a.max_message_bytes(default262144) — the request-body cap, enforced at the transport, before authentication, so an oversized body is refused before the server buffers it.a2a.max_parts(default16) — the maximum parts per message.