Dynamic forms

The AI understands and explains — the function calculates exactly.

An open question becomes a validated form. Same inputs, same number.

The problem

Same question — clearly different answers

Unchecked assumptions create drift — even for an identical prompt. 320 m of profiles in one answer, 350 m in the other.

320 m

350 m

Unchecked assumptions create drift — even for an identical prompt.

The solution

Message loop: RAG, LLM, forms and functions

The loop finds the function, emits only missing fields as a FormSpec, and lets a deterministic function do the math.

The AI understands and explains — the function calculates exactly.

Our implementation

  1. Chat picks the calculator

    An open request becomes a concrete calculation. Two paths: wall dimensions or area.

  2. The form asks only what is needed

    Field type, unit and default come from the function schema. Required fields and ranges block incomplete input.

  3. The function returns the result

    Same inputs yield the same value. Parameters and result stay in the chat context.

Technical flow

From user text to an exact result

  • User
  • Chat UI
  • Message Loop
  • AI RAG · MCP · LLM
  • Calculation function
  1. RequestUser
  2. ForwardChat UI
  3. Find function + contextAI
  4. Function + missing valuesAI
  5. Missing values → generate FormSpecMessage Loop
  6. FormSpecChat UI
  7. FormChat UI
  8. Enter valuesUser
  9. Calculate validated parametersCalculation function
  10. Exact resultCalculation function
  11. Result in contextMessage Loop
  12. ReplyChat UI

59 boards · 320 m profiles

59 boards

320 m profiles

  • Free-form LLM answers are guesses

    Free-form LLM answers are guesses

  • Fewer follow-up questions

    Fewer follow-up questions

  • Dynamic instead of hard-wired

    Dynamic instead of hard-wired

  • Only the parameters that matter

    Only the parameters that matter

  • Traceable in the chat context

    Traceable in the chat context

  • Reproducible quantities

    Reproducible quantities