Skip to content

Bauer Technical Twin Demo

The Bauer demonstration covers two engineering-search problems:

  1. Find similar previous projects and configured designs.
  2. Find documents, parts, and engineering knowledge.

Drawing review, Dynamics 365 master-data creation, release approval, and supplier-change impact analysis are outside this demonstration.

Demonstration boundary

The document corpus contains public Bauer source material. The structured project, part, identifier, and compatibility records are synthetic demonstration data.

Dataset Count Status
Searchable Bauer source files 373 Uploaded and embedded
Synthetic historical projects 12 Deployed in PostgreSQL
Synthetic parts 75 Deployed in PostgreSQL
Public evidence links 8 Deployed in PostgreSQL
Terminology aliases 74 Deployed in PostgreSQL
Regression queries 19 Automated

Synthetic identifiers start with SYN-. They must never be presented as Bauer internal master data or confirmed engineering rules.

Why file search was not sufficient

File search retrieves relevant passages and citations, but a document corpus alone does not represent a configured project or part as a structured engineering object. Reliable similarity and compatibility search require explicit fields for medium, pressure, capacity, compressor family, topology, parts, standards, and linked evidence.

The deployed solution combines:

  • file_search for source passages and page-level evidence;
  • a structured Bauer Twin tool for projects, parts, filters, comparisons, and identifiers.

Document retrieval now has a second private evaluation path, Bauer Kompressoren - RAG v2 Test. It uses the same 373 public files and Bauer Twin tool but adds exact, lexical, vector, and table-aware retrieval. The normal demonstration Agent remains on V1 until gold adjudication and the formal comparison pass; V2 must not be presented as promoted.

Structured service

The Bauer Twin API runs in Railway and exposes a protected streamable HTTP MCP endpoint plus a protected HTTP search endpoint. Its public /health route reports service status and non-sensitive record counts.

The six tool actions are:

Action Result
search_similar_projects Ranked compatible historical-project candidates and exclusions
compare_projects Deterministic field-by-field differences
search_parts Exact, text, vector, and filtered part results
search_documents Structured document lookup
get_project_details One project's fields, parts, and documents
get_part_details One part's compatibility and linked records

Exact SYN- project/part IDs and DOC- document IDs bypass fuzzy ranking only after applicable hard constraints pass.

Flexible terminology contract

The MCP schema keeps actions and numerical parameters strict while accepting open text for business vocabulary. The service resolves known terms through the bauer_twin.terminology_aliases catalogue.

Examples include:

  • nitrogen, Stickstoff, and N2nitrogen;
  • breathing air and Atemluftbreathing air;
  • helium and Heliumgashelium;
  • booster and Nachverdichterbooster.

Safe record qualifiers such as synthetic nitrogen do not change the engineering medium. Negations, mixed media, and unknown terms are not guessed.

Every structured response has one of three outcomes:

Status Meaning Agent behaviour
matches_found Compatible records passed all hard constraints Explain and rank the returned records
no_compatible_match The terminology is known, but no record satisfies the mandatory combination Report no match; do not substitute another medium or weaken pressure/topology
unknown_constraint A supplied business term cannot be normalized safely Report the unknown term and optional suggestions; do not guess

The Agent may call the Bauer Twin tool no more than twice in one turn, may not repeat identical arguments, and must stop on no_compatible_match or unknown_constraint.

Engineering search rules

Project search extracts available requirements and applies hard exclusions before ranking. A candidate is excluded when it conflicts with an explicit:

  • medium;
  • minimum target pressure;
  • compressor family;
  • topology.

Compatible candidates are ranked using structured similarity, text relevance, and 1,024-dimensional vectors. Deterministic comparison logic reports matching and differing attributes instead of asking the language model to infer them.

Part search supports:

  • exact identifier lookup;
  • German and English names and synonyms;
  • category and lifecycle fields;
  • compatible compressor models and media;
  • pressure envelope;
  • related synthetic projects;
  • related public documents.

Demonstration sequence

Similar previous project

Find the closest previous nitrogen booster project for 420 bar and approximately
500 l/min. Explain why it matches and show incompatible alternatives that were rejected.

Expected top result: SYN-BK-N2-420-500. The 365-bar nitrogen project may appear only as a hard exclusion.

Fine-difference comparison

Compare SYN-BK-N2-420-500 with SYN-BK-N2-365-500 field by field.

Expected behaviour: capacity matches; pressure is a deterministic difference; both records are disclosed as synthetic.

Exact part lookup

Find part SYN-P-SNS-PRESSURE-500 and show its related demo projects and evidence documents.

Expected behaviour: the exact identifier ranks first and includes linked records.

Ask for a compatible component without supplying its identifier, then ask the Agent for source evidence. The structured tool should resolve the part; file_search should supply citations from the Bauer corpus.

Safe incompatible-medium rejection

Find a previous synthetic helium booster project for 420 bar and approximately
500 l/min. Apply medium, pressure, and topology as mandatory constraints.

Expected behaviour: one structured call returns no_compatible_match; no nitrogen, air, or breathing-air project is presented as compatible.

Acceptance results

Test Result
Deterministic service tests 24 passed
Live structured benchmark 19/19 passed
Hard-filter violations 0
Result-status violations 0
German/English family consistency Passed
MCP round trip Passed
PostgreSQL terminology catalogue 74 aliases loaded
Production Agent B12 English and German returned SYN-BK-N2-420-500
Production Agent B14 One tool call returned no_compatible_match for helium
Exact maximum-pressure file-search question Passed after context safeguards
Private V2 retrieval smoke Recall@5 0.6167; exact metadata 0.6667; p95 1.519 s; zero authorization violations
V2 promotion Blocked pending gold adjudication and formal end-to-end/holdout evaluation
Bauer B-DETECTION query under burst load Timed out during local-model overload test

The timeout demonstrates the current single-slot local-model reliability constraint. It does not indicate a structured search error; the corrective options are documented under Models, Context, and Reliability.

Meeting checklist

  1. Open a new conversation with the private Bauer Kompressoren Agent.
  2. Confirm the Bauer health endpoint reports PostgreSQL mode, 12 projects, 75 parts, and 8 documents.
  3. Run the 19-query benchmark before the meeting.
  4. Use a new conversation so previous context cannot influence the answers.
  5. State at the beginning that structured projects, parts, and relationships are synthetic.
  6. Demonstrate an exact hit, similar project, hard exclusion, comparison, part lookup, and cited document result.
  7. Keep a prepared result capture available if the local model is temporarily saturated.

Production work requiring Bauer input

Production validation requires Bauer-confirmed examples for:

  • project fields and numbering conventions;
  • part and master-data fields;
  • real repository and PLM/PDM boundaries;
  • compatibility and exclusion rules;
  • representative historical project sets;
  • actual German and English user queries and expected results;
  • access, retention, residency, and audit requirements.

Sources

  • D:\02_Code\LibreChat_Setup\docs\bauer-demo-findings.md
  • D:\02_Code\LibreChat_Setup\docs\bauer-demo-runbook.md
  • D:\02_Code\LibreChat_Setup\services\bauer-twin-api\app.py
  • D:\02_Code\LibreChat_Setup\services\bauer-twin-api\bauer_twin\schema.sql
  • D:\02_Code\LibreChat_Setup\services\bauer-twin-api\bauer_twin\terminology.py
  • D:\02_Code\LibreChat_Setup\scripts\run-bauer-benchmark.py
  • Live Railway, MCP, B12, and B14 checks captured on 2026-07-22