Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Dialogue and Interviews

framex.dialogue loads the bundled policies/flow.fx. Rules decide which step is active, whether to ask again, which branch to take and when to stop. Models phrase questions and interpret answers. The tool reference distinguishes these dialogue tools from the generic host.

A scripted flow without a model

Save this as certificate.flow:

world open.
flow certificate starts collect.
ask collect "Which English certificate do you have?"
    answered "Does the answer name an English certificate?"
    attempts 2 then done.
say done "Thank you. The answer has been recorded." then end.

The compact .flow notation translates into ordinary F-Logic. To inspect that translation:

python -m framex.flow_notation certificate.flow

Save the following as certificate-answers.json:

{"answers": ["I have a C1 English certificate."], "verdicts": ["yes"]}

Run from a shell with the installed Python package and framex on PATH:

python -m framex.dialogue certificate.flow \
  --script certificate-answers.json --output certificate-run

--script supplies both answers and judgments, so this is a test of control flow rather than a model evaluation. Choose a new output directory for each run. The driver saves the transcript, receipts and outcome information.

For a live dialogue, configure model settings and omit --script. --answers supplies scripted human answers while the models remain live. The flow decides what follows from each receipt.

A verdict is not an admission decision

A Collect step checks whether an answer has been supplied. A substantive eligibility decision needs a separate criterion and rules. Merely naming an English certificate does not establish a C1 qualification.

The policy represents judge verdicts as slot states "true", "false" or "unknown". These are stored strings describing an interpretation; they are distinct from the engine’s logical answer about whether a fact holds. Failed calls and invalid formats follow separate policy paths. See Foundations.

Coverage interviewer

The public core also ships framex.interview, policies/coverage.fx, and the compact .guide notation. A guide declares blocks, objectives and budgets. An Observer assesses objective coverage, while a Speaker phrases the question chosen by rules. Full coverage needs a quote from the participant’s answer.

From the public framex-core checkout, after installation:

python -m framex.interview examples/interview/keynote.guide \
  --script examples/interview/terse.json --output keynote-run
python -m framex.interview export keynote-run --output keynote-bundle

The scripted mode needs no model. --stdin reads participant answers from the terminal; --live enables the Observer and Speaker model calls. The interviewer defaults its binary to target/release/framex relative to the working directory; use --binary or FRAMEX_BINARY when running elsewhere.