Skip to content

An action should be able to satisfy multiple intents #100

@meldckn

Description

@meldckn

Actions should be able to inherit from multiple top-level intent actions (aka abstract actions), so that a single action may fulfill multiple high-level intents. And, while scoring such an action, it should get weight from both active intents.

Running getAction() or getActions() (which score actions based on current volition scores and social state) should sum the volition scores assigned to all top-level intents for an action that inherits from multiple. It shouldn't treat that action as multiple separate actions (one inheriting from each intent) that realize separate intents, with separate scores. Unexpected tool behavior suggests that Ensemble might be doing the undesirable action separation rather than summing multiple inherited volition scores:

When you call actions() on the authoring tool, any concrete actions that inherit from multiple intent-level, abstract actions are listed multiple times with different intents and scores.

This might only be a problem in the authoring tool, but I suspect it's a bug in both core Ensemble action scoring (e.g., getActions(), calculated action lineage being linear) and the authoring tool.

To Reproduce:

  1. Download and unzip this domain
    (or another with an action that satisfies multiple intents), and load it into the Ensemble authoring tool.
  2. Enter actions(barkeep,marco) in the console.
  3. Observe in the actions listed from Barkeep to Marco that the action askaboutfamily is listed twice, one associated with the INCREASEFRIENDSHIP intent with a score of 7, and the other associated with BEAGOSSIP with a score of 4. It should instead have askaboutfamily listed once, with a score of 10, with both intents listed in the intent field. There are other multiple-intent actions as well, including askaboutbusiness.

screenshot of separated actions

Example domain and bug discovery by @bluestar514

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions