Delegation and Retrieval Seams¶
These are optional adapter seams. They do not add a durable worker service, a vector database, or new Core wire contracts.
Delegation¶
A subagent manager owns local child runs:
- Modes:
isolatedstarts with only the request;forkcarries the parent message history. - States:
queued,running,completed,failed,canceled. - Operations: launch, check, wait, optional mid-flight update, and cancel.
- Cancellation is local. It is not proof that remote work stopped.
- A terminal state is final for the local task; it is not an exactly-once or durable execution guarantee.
The Go reference is pkg/agent/delegation. Python provides
praxo.delegation.SubagentManager with an async runner seam; TypeScript
provides src/delegation.ts SubagentManager; Java provides
agent.delegation.SubagentManager; Rust provides
delegation::SubagentManager; C# provides
Praxo.Core.Delegation.SubagentManager; R provides a synchronous
subagent_run seam without an asynchronous manager; Ruby provides
Delegation::SubagentManager; PHP provides a synchronous
SubagentManager::run seam; Elixir provides Praxo.SubagentManager; Lua, C,
C++, Fortran, Haskell, OCaml, Swift, Dart, Perl, D, Delphi/Free Pascal, Objective-C, Nim, V, Zig, Julia, MATLAB/Octave, Erlang, and COBOL provide synchronous seams; PowerShell wraps the C# manager. Other
implementations do not have an in-tree delegation manager yet.
Retrieval¶
A retriever seam maps a query and limit to documents:
Document: id, content, optional metadata, optional score.Retriever: retrieve query/limit and return documents.- A function adapter is sufficient for local or caller-owned retrieval.
The Go reference is pkg/retriever. Python provides praxo.retriever with
Document, Retriever, and FuncRetriever; TypeScript provides
src/retriever.ts with the same shapes; Java provides retriever.Document and
retriever.Retriever; Rust provides retriever::Document and Retriever; C#
provides Praxo.Core.Retriever.Document and Retriever; R provides
document and retriever_retrieve; Ruby provides Document and
FuncRetriever; PHP provides Document, Retriever, and FuncRetriever;
Elixir provides Praxo.Document and Praxo.FuncRetriever; Lua provides
document and retriever_retrieve; C provides PxDocument and PxRetriever;
C++ provides Document and Retriever; Fortran provides document and
retriever; Haskell provides Praxo.Retriever.Document and Retriever; OCaml
provides document and retrieve_documents; Swift provides Document, FuncRetriever, and retrieveDocuments; Dart provides Document, FuncRetriever, and retrieveDocuments; Perl provides document, func_retriever, and retrieve_documents; D provides Document, Retriever, FuncRetriever, and retrieveDocuments; Delphi provides TPraxoDocument, TPraxoRetriever, and PraxoRetrieveDocuments; Objective-C provides PXDocument, PXRetriever, and PXRetrieveDocuments; Nim provides Document, Retriever, FuncRetriever, and retrieveDocuments; V provides Document, Retriever, FuncRetriever, and retrieve_documents; Zig provides retriever.Document, retriever.Retriever, and retriever.retrieveDocuments; Julia provides Document, FuncRetriever, and retrieve_documents; MATLAB and GNU Octave provide shared praxo.document and praxo.retrieve_documents; Erlang provides praxo_retriever:document, func_retriever, and retrieve/3; COBOL provides praxo-retriever over a caller-supplied callback. Other implementations do not have
an in-tree retriever yet.
Retrieval does not define an embedding model, vector store, ranking service, or search-quality claim. Memory stores and context compaction remain separate Core surfaces.
Baseline Status¶
The canonical per-language list is the adapter status and retriever tables. Current evidence is deterministic fixture or fake-runner coverage, not live worker or search systems.
Testing¶
Delegation tests cover launch, completion, failure, cancel, optional update, unknown tasks, and validation. Retrieval tests cover the document shape, query/limit forwarding, and the function seam.