FlowFuse / FlowFuse/flowfuse

Let the Expert adapt how it talks to each person

Open
#8,396 0 comments 0 reactions 1 assignee Claimed by @cstns View on GitHub
area:ff-expert area:frontend task type:enhancement
Dominant language
JavaScript
Stars
400
Forks
89
Avg merge
1d 21h
Merged PRs (30d)
146

Description

Someone who works in OT and someone with no technical background need the same setup explained very differently. The Expert has enough signal to notice which it's talking to, from the answers it got and the way the person writes, so it should use it.

Not a rich profile. A small set of deductions it makes as the conversation goes, along the lines of: technical background or not, works in DevOps, works in OT rather than infrastructure. Enough to pitch the explanation at the right level and pick the right examples.

The Expert deduces them, hands them back, and the browser holds them and sends them along with each turn.

### Done when

* The Expert forms a few traits from the answers and the conversation.
* They come back to the browser, get stored, and go out with the next turn's context.
* How the Expert explains things visibly differs between a technical and a non-technical conversation.

### Worth knowing

Holding them client-side isn't laziness, it's what makes them survive. The Expert's own conversation history lives in flow context and gets cleared after thirty minutes of inactivity, so anything it worked out earlier is gone after a coffee break. Sending the traits back with every turn means they outlive that.

The context object already ships around twenty five fields on every turn, so there's an obvious place for them.

Deliberately scoped to the onboarding and trial period rather than being a permanent user profile. If it turns out useful it can grow later, but a persistent profile is a much bigger conversation involving what we store about people and why.

The structured answers are relevant here. `QuestionsList.compose()` currently flattens selections into a text string, so the Expert only sees prose rather than which option was chosen for which question. A sibling task covers fixing that, and this works better once it's done, though the Expert can still deduce from the prose in the meantime.

Worth keeping the trait list short and named explicitly rather than letting it become a free-form bag. A handful of known traits is testable; an open-ended object isn't.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.