NeoSyntropyDocumentation

Core concepts

SchemaNode, ReasoningNode, CombineNode

Drop tiny, scoped AI models into ordinary code paths. Each constructor has a fixed contract; the control layer — not the model — owns transitions.

SchemaNode — constrained JSON

Provider-backed extraction. The model must return JSON matching output_schema. It has no tools. input_schema, output_schema, and prompt are required.

Python SDKpython
SchemaNode(
    id="ExtractTicket",
    input_schema=OpenInput,        # required — what state the node reads
    output_schema=SupportTicket,   # required — constrained JSON contract
    prompt="Extract a support ticket as JSON from the customer message.",
)

ReasoningNode — tools and notes

Provider-backed reasoning. The model calls allow-listed tools and writes plain-text notes (not structured JSON). Its output feeds a later SchemaNode or CombineNode. input_schema, prompt, and tools are required — empty tools=() raises ValueError.

Python SDKpython
ReasoningNode(
    id="InvestigateRefund",
    input_schema=RefundInput,           # required
    prompt="Investigate the refund claim using tools. Reason step-by-step.",
    tools=(                             # required — at least one tool
        "lookup_customer_account",
        "fetch_transaction_history",
    ),
)

CombineNode — reasoning then schema

Authoring shortcut that compiles into two FSM states: {id} (reasoning + tools) then {id}.Schema (constrained JSON). External edges enter {id} and leave {id}.Schema. The internal linking edge is injected automatically.

Python SDKpython
CombineNode(
    id="InvestigateAndSummarise",
    input_schema=RefundInput,            # required
    tools=("lookup_customer_account",),  # required — at least one tool
    output_schema=RefundDecision,        # required — constrained JSON for {id}.Schema
    prompt="Investigate the claim with tools, then summarise.",
)

Grounded in neosyntropy-framework/docs/concepts-explained.md §3–5.