July 3, 2025
ecosystem.Ai 2026 Roadmap
The 2025–2026 platform roadmap, updated with the innovations that shipped — Runtime 0.9.7, Workbench 2, behavioral algorithms, Two-Tower, and MCP.

Updated September 2026. We published this roadmap in July 2025. This revision keeps the original intent and records what we actually built on Runtime 0.9.5 → 0.9.7.0 and Workbench 2.0.x.
Introduction
The 2025–2026 plan was not a marketing list. It was a bet that real-time scoring, interaction science, and agent tooling had to live in one prediction platform — not as wrappers on a batch stack. That bet is now in production: a Java Runtime that scores and learns in the closed loop, and a Workbench that configures, pushes, and operates it.
Pins today: Runtime 0.9.7.0, Workbench 2.0.3, Server 0.7.9.0. See the changelog and Runtime release notes.
Next-gen real-time scoring — shipped
The Runtime is still a self-contained scorer. What changed is how much of the platform you can run in one process, and how much of the contract is visible to operators.
- Multi-campaign JVM. Several use cases on a single Runtime instance, with a scheduler and campaign-scoped logs — not one properties file per box.
- OpenAPI +
/config. Live configuration dump for support and resilience (0.9.5). - JIT pre/post-score. Customer Java plugins compile from source in the Runtime; no mandatory plugin build pipeline (0.9.6.0).
- Virtual variables on every deployment type, not only Dynamic Interaction (0.9.6.1, guide).
- External runtime lookups so many scorers can share corpora without exploding Mongo sockets.
- Two-Tower large-catalog retrieval (
predictor.model.type=similarity) — embeddings, not a Dynamic Engagementapproach. Docs: Two-Tower. - Runtime Dashboard, campaign Cucumber/BDD, ontology for agents, Kubernetes samples. Hosted demo: medemo.ecosystem.ai .
Closed loop is unchanged and non-negotiable: POST /invocations then POST /response (singular). params is a JSON string.
Interaction science — shipped as algorithms, not slogans
Dynamic Engagement still rolls statistics in the options store and ranks offers on each /invocations call. The innovation is a catalog you can name in config, with model convergence as an operator skill — not a black box.
Dynamic Algorithm approach IDs (do not invent others):
| Intent | approach |
|---|---|
| Default / Thompson-style rewards | binaryThompson (Ecosystem Rewards) |
| Simple explore/exploit | epsilonGreedy |
| Online Naive Bayes | naiveBayes |
| State-based learning | QLearning |
| Route to other campaigns | Network |
Human Behavioral requires both approach=behaviorAlgos and a sub_approach:
| Behavioral type | sub_approach |
|---|---|
| High cost of bad offers | lossAversion (default if sub_approach is missing) |
| Consistency / regulated | riskAversion |
| Marketing framing | prospectTheory |
| Sentiment / equilibrium | sentimentalEquilibrium |
| Coverage-aware exploration | coverageAwareThompson |
| Long-tail catalog | longTailBoostMF |
| Generative Dynamic Engagement | generative |
Custom reward plugins, POST /learning, POST /refreshWithOptions, and asymmetric rewards landed on the 0.9.6.1 line. Network Selector (lookup / lookup_passthrough) routes traffic without turning the selector into a bandit.
Full selection tree: Algorithms overview.
Agents, MCP, and Workbench 2 — shipped
The 2025 note promised MCP as a unified tool surface. We shipped three MCP surfaces on purpose — they are not interchangeable (MCP Support):
- Runtime builtin MCP (
POST /mcpon the Java Runtime, 0.9.7+) — score, close the loop, campaign admin from an agent. Dual-era JSON-RPC and 2026-07-28 Streamable HTTP. - Workbench MCP — deployments, enrichment, scoring through the operator API.
- Runtime MCP sidecar — MLFlow refresh and custom Python routers.
Workbench 2.0 is the operator product (platform/versions.json). It pins Runtime; it does not replace it. Campaign manager, runtime push, simulations with visible failures, Spend/Money Personality (including drift), EcoGentic journeys, ontology-backed generation, and Claude/operator agents all sit here.
Generative stack — what landed vs what is still moving
Shipped in the generative configuration:
- Fact injection — prompt library, RAG, and Chat-to-SQL paths that call Runtime APIs.
- Chat to SQL — natural language to SQL against configured stores.
- Vector stores — connectors for retrieval, not a single vendor lock-in.
- MLRun (Train + Deploy) — train/serve path for teams that need a modeling console next to the Runtime.
Still on the path (not claimed as done): Chat-to-SQL V2 extras (schema-diff learning, join/window hints, plan preview), and fully multi-modal generation. We will not pretend those are GA.
Observability and convergence
We did not bolt on a generic APM. We instrumented the learning loop:
- Options store + contacts/responses logging (the data
/learningand rolling jobs consume). /configand/refreshso Virtual Variables and Dynamic Interaction state can move without a restart.- Model convergence — priors, levers, and when to switch
approachinstead of “training longer”. - Spend / Money Personality drift on the 0.9.7 line.
Grafana-style infra dashboards remain a deployment choice. The platform-native signal is whether scores converge and whether /response is actually closing the loop.
Solutions & modules (current)
| Module | What it is now |
|---|---|
| EcoGentic | Conversational / journey agents on Workbench + Runtime plugins — not a replacement for your customer chat stack. |
| Spend / Money Personality | Trait scoring, processing, notebooks, drift. |
| Data Agents | Agentic Data Analytics (ecosystem-data-agents) — Analytic / Interactions / Personality / Financial jobs and reports. Docs: Data Agents. |
| Interaction Science | The Dynamic Engagement catalog above — personality, experimentation, memory, behavioral types. |
| Real-time recommenders | Dynamic Engagement or Two-Tower similarity, plus Network Selector. |
| Networks | Workbench2 /networks/ graph lab (centrality, communities, jobs). Distinct from Selector and from approach: Network. Docs: Networks. |
| Dynamic experimentation | Epsilon, Thompson, coverage-aware Thompson, custom rewards. |
| Two-Tower | Embedding retrieval for large catalogs. |
| MLRun | Train + deploy alongside the Runtime. |
| Ontology | Shared language across Workbench meta, Server, Runtime closed loop, offer matrix, feature lookup. |
| Intelligent Sales / Campaigns | Campaign manager, push to Runtime, operator agents. |
| Fraud management | Same Runtime scoring loop; domain logic in plugins, not a fork of core. |
How they fit together
Channel → POST /invocations → Runtime 0.9.7 (plugins + approach)
← ranked offers / uuid
Channel → POST /response → learning / options store
Workbench 2 configures, pushes, MCP-operates
Server 0.7.9 trains / orchestrates
Ontology names the same objects across all threeLow-code in Workbench, Java plugins when you need them, Python SDK and notebooks when you are modeling. Prediction as a Service is the product; the versions above are how you pin it.
Why this still matters
- Milliseconds still win the session — see Milliseconds Matter.
- Behavioral intelligence is an architecture, not a plugin — February 2026.
- Named algorithms beat “the AI model”: you can choose
lossAversionvsbinaryThompsonand explain it to risk and marketing. - Agents that can score (MCP) are only safe if
/responsestays in the loop.
If you are upgrading: compile pre/post-score plugins against Runtime 0.9.7.0, keep params a string, and never call /responses.