Skip to content

Capability and call-chain index ​

Complete API

Core has 21 routable leaves; optional RETRIEVAL adds SEARCH. This table describes current behavior and how to call it. Applications configure model, database, MCP and delivery services; a declared Node type does not establish those connections.

Implemented nodes ​

NodeExecution and call reference
CONTEXT.LOADBuild Context from messages/items/references or read a cached scope; explicitly enabled reference resolution. API
CONTEXT.SELECTReturn ContextSelection by purpose, query, budget and strategy; do not persist the projection. API
CONTEXT.UPDATEAdd/remove/replace items and merge ContextIngress into the working set. API
CONTEXT.COMPRESSDefault policy/budget pruning with protected items/groups; no model-generated summary by default. API
INFER.REASONING.SAMPLEOne model call returning message, actionRequests, usage and related fields; no action execution. API
INFER.REASONING.TRAJECTORYCoT, Long CoT, ToT, GoT, Self-consistency or an injected strategy; bounded public result/trajectory organization. API
INFER.REASONING.REFLECTcritique / verify / revise an existing candidate. API
INFER.REASONING.DELIBERATEOne model call for select / merge / consensus / debate, returning validated assessments/results. API
INFER.CACHE.LOOKUPQuery an injected computation cache. API
INFER.CACHE.WRITEExplicitly cache computation results with backend-supported TTL/options. API
INFER.CACHE.INVALIDATEInvalidate by key/tag/namespace. API
MEMORY.GETRead by id/key through MemoryStore. API
MEMORY.QUERYDatabase plugin handles filter/orderBy/cursor/limit. API
MEMORY.SEARCHNative database search, a directly reused Provider, or explicit RETRIEVAL delegation. API
MEMORY.WRITECreate durable records; plugin allocates IDs and returns complete records. API
MEMORY.UPDATEModify existing records by ID with documented field semantics. API
MEMORY.DELETEDelete by ID and return the IDs actually removed. API
INTERACTION.ACT.TOOLExecute registered tools with name, input and Sandbox checks. API
INTERACTION.ACT.MCPDiscover/invoke through connected clients; the operations return distinct shapes. API
INTERACTION.OBSERVENormalize ExternalResult into Observation with a tool Message. API
INTERACTION.OUTPUTSubmit through OutputSink and return an accepted/rejected/unknown receipt. API
RETRIEVAL.SEARCH (optional)Execute a target/strategy Provider with optional embedding, fusion and reranking. API

CONTEXT caching stores working sets; INFER caching stores computation results; MEMORY accesses durable databases. Applications and their storage plugins manage these distinct lifecycles.

Common call chains ​

NeedCompositionInput/output mapping
First runLOAD → SELECTSELECT returns context/selectedItemIds/purpose; run the quickstart
Document question answeringLOAD → SELECT(rag) → SAMPLE → OUTPUTInject ragStrategy, map selected items to messages and inspect SAMPLE NodeResult
Durable recallMEMORY.SEARCH → UPDATE → SELECT → SAMPLECheck status, map complete MemoryItems to ContextIngress; search results are not model messages
Multiple tool stepsReAct: SAMPLE → TOOL/MCP invoke → OBSERVE → next SAMPLESupply model-visible schemas and register matching tools on the execution Worker; flow API
Read and store database resultsMEMORY.GET/QUERY → application mapping → MEMORY.WRITE/UPDATESDKs perform database operations; cross-node calls are not an automatic transaction; applications/plugins own idempotency and transactions
Compare or revise candidatesSAMPLE/TRAJECTORY → REFLECT or DELIBERATESupply explicit public results; obtain independent candidates through repeated calls or trajectory strategies
Load Skill instructionsApplication resolution/authorization → runSkillFlow(LOAD → optional UPDATE)Sources are already resolved; the flow does not scan files, install plugins or execute scripts
Discover and use a toolMCP discover → application capability selection → MCP invoke → OBSERVEDiscovery returns descriptions, not ExternalResult; do not pass discovery directly to OBSERVE
Context budget managementSELECT / COMPRESSDefault selection/pruning; model summaries require explicit INFER calls and application-directed UPDATE
Independent retrieval resourcesMEMORY/CONTEXT adapter → RETRIEVAL.SEARCHThe same Provider can run within the original Worker, then move behind an independent retrieval Worker when needed

SQL and Milvus own storage and supported retrieval; Ditto does not duplicate databases. Embedding may be database-native or supplied by an external cloud/local Provider. Native database search does not require RETRIEVAL. Database examples · Retrieval Providers.

Execution boundaries ​

  • Graph defines nodes, dependencies and bindings. Exceptions stop subsequent work; applications explicitly handle structured failed outputs.
  • Loop owns state, graph selection, repetition and termination; it does not persist state or reset sessions automatically.
  • Same-process calls are direct, same-host processes use IPC, and separate hosts use HTTP. Worker settings and SDKs remain on the execution host. Deployment API
  • Node descriptors, type entry points and index exports do not execute business work. Factories configure implementations; register creates routable replicas. Composition API

Ditto · @codesoul-co/ditto · Node.js 24+