LUMEN·PROCURE
Photometric Procurement Console
BUYER M. Ahmed
DESK Lighting / EU
SAP S/4HANA · MOCK TENANT

Agentic procurement / live engine

One messy RFQ in. A sourced, priced, human-approved plan out.

A buyer drops in a free-text customer order. The agent works it through seven typed tools, parse, match, source, compare, draft, then returns a purchase plan for one-click approval. Run a worked example, or paste your own order and watch the real engine source it.

Choose an inbound order

Inbound RFQ / Hotel Retrofit RFQ
47 lines · free text
> 600x600 led panel 36w 4000k - corridors x120> led panel 600 36w 4000k cool white, guest floors 84 off> panel 1200x600 50w 4000k back-lit x36> 36w dali dimmable panel 4000k 600x600 - meeting rooms qty 48> led panel 600x600 30w 4000k ugr19 - lift lobbies 26x> panel 600x600 36w 3500k - guest reading nooks 60 off
Deterministic engine, run live in the browser.
No network call for the worked examples.
01 / TRACE
The agent run
Seven typed tool calls, in sequence. Each step illuminates as it runs; expand any call to inspect its real input and output.

Pick an order above and run the agent to light up the trace.

How it is built

One orchestrator, a typed tool surface, a human gate

The architecture I would build: one reasoning agent as the orchestrator over a fixed set of typed tools. Not a sprawling multi-agent swarm: procurement needs determinism and an audit trail, so the surface is small, every tool returns structured output, and nothing free-texts a SKU or a price. The demo runs that tool surface under a deterministic orchestrator today.

Orchestrator

A reasoning agent plans the run, calls the tools and assembles the recommendation. The demo runs this step as a deterministic orchestration.

Typed tool surface

7 tools, JSON-schema input and output. The orchestrator only ever selects from tool results.

Confidence tiers + human gate

exact / high / review / substitute / unmatched. No PR is committed without buyer approval.

SAP integration tier

S/4HANA Cloud OData, OAuth 2.0 via a communication arrangement, SAP BTP runtime.

Observability: every tool call is logged and rendered in the trace panel above. The live model has one job, normalising a pasted order into clean line items; it never names a SKU, a supplier or a price, so matching, sourcing and pricing stay deterministic and auditable.

The 7 tools / and the SAP service each maps to

parse_order()

messy RFQ text into structured line items

match_sku()API_PRODUCT_SRV

line into Material Master, with a confidence tier

find_suppliers()API_INFORECORD_PROCESS_SRV

material into Purchasing Info Records

compare_prices()API_INFORECORD_PROCESS_SRV

info records into a chosen supplier plus the trade-off

get_supplier_status()API_BUSINESS_PARTNER

supplier into on-time rate, open POs, risk flag

suggest_equivalent()API_PRODUCT_SRV

no exact match into a spec-equivalent SKU

create_draft_pr()API_PURCHASEREQUISITION_2

approved lines into a draft Purchase Requisition

What is real here, and what is mocked.
The procurement engine is real and runs live: the parser, the matcher, the sourcing logic and the orchestrator all execute over the seven typed tools, in the browser for the worked examples and on a Vercel route for a pasted order. Every tier, score, supplier and price on screen is computed, never hardcoded. The catalog, the suppliers, the Info Record prices and the example RFQs are synthetic. The SAP S/4HANA Cloud tenant is a mock, no production system is touched. For a pasted order a live model normalises the messy text into clean line items; with no model key, a model error, or a hit rate limit, a built-in heuristic parser does that step instead, and the orchestrator panel always states which path ran.
Real engineSynthetic catalogMock SAP tenantLive model with heuristic fallback