SynapCores

SynapCores v2.5.0-ce: decisions in one call with the d1 decision model

By , Founder & CTO, SynapCores · Published

SynapCores Community Edition v2.5.0-ce

Community Edition · free · seamless upgrade from v2.4.x

Most "should the agent do X?" questions don't need a chat completion — they need an answer you can branch on. v2.5.0-ce adds exactly that: a new endpoint, POST /v1/systemone, that returns a typed decision instead of prose — a routing choice with a probability for every option, a yes/no probability, or an urgency score — in a single forward pass with zero generated tokens. It's backed by d1, a purpose-built decision model, and it accepts any causal model you've pulled. Additive endpoint, drop-in upgrade, no data migration.

One call, a decision you can act on

Send the situation as state, plus one or more typed questions, and get a structured answer back for each:

  • choice — give a set of named options; get the chosen option, a probability for every option, and a confidence. Routing, triage, classification.
  • noul — ask a yes/no question; get the probability of "yes". Guardrail checks, gating.
  • score — give ordered levels, lowest first; get the expected (fractional) level with per-level probabilities. Priority and urgency scoring.

Because it weighs the options rather than writing text, a decision comes back in one pass and reports output_tokens: 0 — so it's fast and cheap to put on a hot path.

Proof: one message, three decisions

A real support message — "You charged my card twice and still have not shipped my order. I need this sorted TODAY or I am disputing the charge." — answered by d1 in a single /v1/systemone call:

  • route → billing (0.93)
  • angry → 0.78
  • urgency → "today" (0.79)
  • output_tokens: 0

You branch your workflow on the choice, on noul > 0.5, or on the score bucket — with the full probability maps there when you'd rather threshold than take the argmax.

Backed by d1, open to any model

d1 is the calibrated, recommended model — its probabilities are tuned to mean what they say. But the endpoint isn't locked to it: name any causal model you've pulled in the model field and it works, so you can decide with the model that already fits your deployment.

d1 is pull-on-demand (it isn't bundled in the image): pull it once, about 2.7 GiB, and the endpoint loads it on first use. Full install, enable, and call-it walkthrough: One-call decisions: the d1 decision model.

Also in this release

  • AutoML cleanup is reliable. DROP MODEL name;, DESCRIBE MODEL name; and the other model/experiment commands now handle a trailing ; correctly, so teardown and re-runs no longer error on the name.
  • One default chat model. The embedded local provider now defaults to qwen2.5:7b across chat, AGENT_RUN, and NL tooling — one consistent, budget-adaptive default.
  • Cypher CREATE accepts a comma-separated pattern list — CREATE (a), (b)-[:R]->(c) — matching standard Cypher, so multi-node creates no longer need separate statements.
  • Faster batch embeddings against Ollama via /api/embed, with a graceful fallback on older Ollama servers.

Proven before shipping

  • The state-asserting feature validator is fully green on the release build (316 assertions, 0 failures), including vector search and the bundled UI.
  • /v1/systemone is parity-matched to the reference d1 across the decision suite — argmax agrees on every case, worst-case probability difference 0.025.
  • Clean boot plus a d1 decision and an EMBED run on a non-AVX-512 CPU with no GPU — no illegal-instruction faults on older hardware.
  • Drop-in upgrade: no on-disk format change, existing data and vectors read as-is.

Get it

docker pull synapcores/community:v2.5.0-ce

Or upgrade in place — existing data is read as-is. Then pull the decision model once:

synapcores --config gateway.toml pull d1:latest

LM