Skip to Content
DocsQuick StartOverview

Quick Start

Get from zero to a ranked offer and a recorded response. Workbench configures campaigns; the Runtime (Client Pulse Responder) scores them in real time. Learning only happens if you close the loop.

Hosted demo: https://medemo.ecosystem.ai . Point the Runtime Dashboard Runtime URL at that host (or at your local Runtime on 8091 / 8099) and Invoke a campaign.

What you are running

Current Workbench train: 2.0.3 (pins Runtime 0.9.7.0, Server 0.7.9.0, Notebooks 0.3). Runtime runs on Java 25 (Amazon Corretto 25). Workbench 2 local backend is Python 3.14.

PieceRoleCurrent pin
RuntimeJava 25 scoring engine: plugins, /invocations, /response, builtin MCP, dashboard, campaign BDD0.9.7.0
WorkbenchOperator UI: projects, deployments, EcoGentic journeys, Claude Operator2.0.3
ServerModeling, corpora, push to Runtime0.7.9.0
NotebooksProcessing / generative workers (not the scorer)0.3

Product differences live in plugins and properties, not if (product == …) in the Runtime. See architecture.

Closed loop (required)

Your app or dashboard → POST /invocations (params is a JSON string) ← ranked final_result (save uuid + offer_name) → POST /response (singular — never /responses)
{ "campaign": "your_campaign", "subcampaign": "your_campaign", "customer": "none", "channel": "app", "numberoffers": "2", "userid": "ecosystem", "params": "{}" }

params stays a string ("{}" or encoded {"input":[...],"value":[...]}). Nested JSON in params is rejected.

On accept, send that row’s uuid plus offer_name:

{ "uuid": "dcb54a23-0737-4768-845d-48162598c0f7", "offers_accepted": [{ "offer_name": "OFFER_A" }], "channel_name": "app" }

Full contract: API Access.

Runtime Dashboard — invoke a campaign and accept an offer

First score (after install, or on the demo)

  1. Open the Runtime Dashboard. Default Runtime port is 8091 (local run_local.sh often 8099).
  2. Pick an ACTIVE campaign, set customer / channel / number of offers, Invoke.
  3. Accept a ranked row. That sends POST /response with that row’s uuid and offer_name.
  4. Optional: MCP tab → Ontology Explorer; Testing tab → properties-driven BDD.

Runtime Ontology Explorer — search concepts and related MCP tools

Campaign Testing — properties-driven BDD report

Install the stack

Longer local guide: Local Installation. Compose detail: Docker Compose. OpenShift: OpenShift. After containers are up: Post-install.

Copy ecosystem_env.txt to .env. Set ECOSYSTEM_API_KEY (license). OPENAI_API_KEY is only needed for generative paths. Do not commit .env.

Ports (typical)

SurfacePortNotes
Workbench (Docker / marketplace)80 / mapped pathDefault login admin@ecosystem.ai / password — change it
Workbench 2 local SPA5270frontend/run.sh
Workbench private API8001Workbench MCP Streamable HTTP POST /mcp
Server3001Modeling APIs
Runtime8091Scoring; builtin MCP is POST {RUNTIME}/mcp on this port. Local debug often 8099
Grafana3000Optional infra charts — not the Runtime tester UI

Default Docker Compose maps 8092–8095 to extra Runtime scoring instances (ecosystem-runtime-solo2 …). Builtin MCP is on the same scoring port as /invocations (8091). A separate Python MCP sidecar image exists for MLFlow / custom FastAPI; do not confuse it with Runtime-solo2.

There are three MCP-related surfaces. They share the path /mcp but are not interchangeable. See MCP Support.

SurfaceWhereUse
Runtime builtin MCPPOST {RUNTIME}/mcp (0.9.7+)Score, feedback, ontology validate, campaign admin
Workbench MCPWorkbench API 8001 POST /mcpDeployments, enrichment, operator tools
Runtime MCP sidecarOptional Python imageMLFlow refresh, custom FastAPI

Configure a campaign

  1. In Workbench, create or open a project and deployment.
  2. Choose predictor type: Dynamic Engagement (named approach / sub_approach), static H2O, or Two-Tower (predictor.model.type=similarity — not a bandit approach). Catalog: Algorithms.
  3. Set pre-score / post-score / reward plugins. Single-class custom Java can Compile (JIT /generateClass from Runtime 0.9.6.0). Multi-class plugins still need a build pipeline.
  4. Push the deployment to the Runtime. Confirm /ping and the campaign on the dashboard.

Do not invent algorithm IDs. Python create_online_learning(..., algorithm="ecosystem_rewards") is a document type, not the scoring approach.

Agents

Runtime 0.9.7+ exposes ontology REST (GET /ontology/runtime/...) and MCP tools so agents validate payloads before scoring.

Recommended flow: getClosedLoopRecipelistCampaignsvalidateInvokeRequestinvokevalidateResponseRequestresponse.

Walkthrough: Ontology for agents. Prompts such as runtime-closed-loop are listed on MCP Support.

What 0.9.7 / Workbench 2 added

Use these after the stack is up — they are the operator surfaces that used to be missing from this page.

CapabilityWhere
Runtime Dashboard (invoke / accept)Dashboard
Ontology Explorer + REST catalogOntology for agents
Campaign Cucumber / BDDCampaign testing (POST /test/campaign)
Builtin MCPMCP Support
JIT plugin compileParameters (/generateClass)
Virtual variables on all deployment typesVirtual variables
Model convergence (Dynamic Engagement)Model convergence

Release notes: Runtime 0.9.7.0, Workbench 2.0.3.

Next

Last updated on