Skip to content

Recognize and signal idleness #12

@josephbirkner

Description

@josephbirkner

Ravestate context should recognize whenever it encounters indecision/uncertainty/inactivity (:thinking: / :sleepy:). This is useful for the following use-cases:

  1. Indecision when waiting for a missing signal to activate a high-specificity state ↪️ Fillers
  2. Indecision when no activation pressure is present at all ↪️ Active engagement (Fillers, Personal QA, Games) -> Roboy is not waiting for user input.

Both situations may be modeled as functions of two new core variables:

  1. :pressure: A flag which indicates, whether or not activation pressure is present at all; i.e. whether a partially fulfilled high-specificity state is blocking a fulfilled low-specificity one.
  2. :activity: A counter for the number of states that are currently partially fulfilled.

For example:

  • Fillers may be adequate, when :pressure has been true for some minimum time (Filler to bridge "awkward" waiting)
  • Active engagement may be adequate, when :activity has dropped to zero.

Note, that :pressure is true -> :activity > 0, but not :activity > 0 -> :pressure is true: Multiple partially fulfilled states may be present, without a fulfilled one generating activation pressure.

Therefore, two idle signals will be realized in an idle module:

  1. idle:impatient ↪️ Fillers
  2. idle:bored ↪️ Active engagement (Fillers, Personal QA, Games)

Metadata

Metadata

Assignees

No one assigned

    Labels

    core ⚙️Issues that concern the core ravestate lib/API

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions